yuk-sehat
Public sourcePrototypeA Mistral-based conversational triage prototype with JSON prompts, follow-up questions, history context, warning-sign rules, and a dashboard.
Passed PKM-KC proposal selection
The yuk-sehat proposal passed the PKM-KC proposal stage but did not pass funding selection.
Did not pass funding selection
From symptoms to a conversation. A conversational triage prototype with follow-up questions, urgency categories, and history. Prototype, not a clinical diagnosis · interface with a demo profile
My contribution highlights
- Integrated Mistral chat completion with Indonesian prompts and structured JSON for categories, urgency, questions, and reasons.
- Combined complaints, previous answers, and history summaries; filtered repeated questions and limited investigation rounds.
- Developed warning-sign catalogues/rules, risk groups, duration extraction, and symptom mapping through TheFuzz.
Contents · 8 contribution modules
Main workflow
6 stepsThe prototype combines Mistral conversations with symptom rules. Follow-up answers complete the context before the app displays an urgency category and summary.
01Build complaint context
Select a conversation profile
User & React frontendSubmit the initial complaint
User & FastAPI API
02Complete information with AI
Read structured output
Mistral & backendChoose the next question
Conversation controller
03Combine rules and results
Map urgency levels
Symptom rules & model resultsDisplay the conversation summary
Frontend & history storage
Process details & branches
Select a conversation profileUser & React frontend
Enter the identity/profile used by the prototype. Related history can be included as context for subsequent conversations.
Submit the initial complaintUser & FastAPI API
The complaint, previous answers, recognised duration, and history summary form the request context.
Read structured outputMistral & backend
Indonesian prompts request categories, urgency, reasons, and follow-up requirements as JSON processed by the API.
Choose the next questionConversation controller
Filter repeated questions and limit rounds. The user receives one follow-up question at a time.
Is more information needed?
- INCOMPLETE. Show a question; the answer returns to the context and AI processing in this phase.
- COMPLETE. Continue to rule mapping, urgency categories, and results.
Map urgency levelsSymptom rules & model results
Symptom matching, warning signs, risk groups, duration, and model urgency combine into red, yellow, or green statuses.
Display the conversation summaryFrontend & history storage
Display the category and reasons, then save history. Symptom-based recommendations are separate from urgency; OTC recommendations are not shown for red results.
A conversation and urgency classification prototype using an LLM and symptom rules; outputs are not clinical diagnoses.
About yuk-sehat
yuk-sehat is a health complaint conversation prototype combining the Mistral LLM with symptom rules. Users complete a profile, describe a complaint, answer follow-up questions, and read an urgency category, reasons, related recommendations, and conversation history.
I built the React frontend, FastAPI backend, model integration, JSON prompts, triage rules, history storage, and community health centre dashboard. The project focuses on conversational workflows and AI Engineering integration; generated categories are prototype outputs, not clinical diagnoses.
My contributions
React profile and conversation pages
I developed start/profile pages, chat, question loading, category results, AI reasons, recommendations, and history. React Router connects navigation, while hooks and Axios services connect the UI to the backend. I mapped API statuses so screens show questions or summaries according to the conversation state.
Mistral integration and provider migration
I replaced the previous model integration with Mistral chat completion. I worked on SDK calls, response reading, and transforming results into the format used by application endpoints. Frontend, backend, and model connections let AI outputs feed into the same conversation workflow.
Indonesian prompts and structured JSON
I designed Indonesian system prompts for complaint categories, urgency levels, follow-up requirements, questions, and reasons. I used JSON object responses and mapped result fields to API schemas. This lets the frontend read required information without relying on a single free-form paragraph from the model.
Context and follow-up question control
I combined initial complaints, previous answers, recognised duration, and history summaries as model context. I filtered repeated questions, avoided already-answered slots, and limited investigation rounds. INCOMPLETE shows one question at a time, while COMPLETE directs the user to results.
Symptom catalogues, warning signs, and fuzzy matching
I developed catalogues and rules considering warning signs, risk groups, and complaint duration. I connected user text to keyword mapping and fuzzy matching through TheFuzz. These mappings are used alongside model outputs to determine the application’s urgency categories.
Urgency categories and symptom-based recommendations
I combined rules, manual indicators, and model urgency into red, yellow, or green statuses. I separated symptom-based recommendation paths from urgency calculation. Red results do not display OTC recommendations; the frontend shows the category and reasons returned by the backend.
FastAPI APIs and PostgreSQL history
I designed Pydantic input/output schemas, triage and history endpoints, SQLAlchemy log models, and PostgreSQL connections. History associated with the entered identity can become context for later conversations. I connected saving and reading to user history pages.
Community health centre dashboard and result presentation
I added a dashboard for reading red-status entries and connected it to backend queries. On the user side, I brought together results, AI reasons, recommendations, and history from application response data. These pages complete the journey from the initial complaint to recording conversation results.
Fields & core technologies
Project fields
Core technologies
31 commits in the last 12 months
All branches| Nov | Dec | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sept | Oct | Nov | |||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Sunday | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Monday | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Tuesday | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Wednesday | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Thursday | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Friday | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Saturday |
How it is counted · 1 repo · 1 branch
My authored commits reachable from all remote branches at sync time. Each SHA is counted once, even across branches or forks. Merge commits are excluded. Dates use the author timestamp in Western Indonesia Time (UTC+7), rather than push time. The current streak remains active when the last commit was yesterday and today is still in progress.
This calendar covers commits across all branches. Its totals may differ from GitHub’s contribution calendar, which includes other activity types and follows its own branch rules. This calendar covers only the project you are viewing.
Contribution history
31 of my non-merge commits · All branches · Data as of 3 November 2026.