AI Chat Bot
CareShield Ai
Tech stack: Python, FastAPI, React, PostgreSQL, OpenAI Whisper, Ollama (Qwen 2.5)
CareShield AI is a full-stack AI system I developed as my capstone project for a real-world aged care and disability services provider. The goal was to design a structured, AI-assisted documentation workflow that transforms natural language input (including voice) into structured, audit-ready case records.
The system integrates transcription, language detection, contextual translation, conversational slot-filling logic and structured data extraction inside a controlled FastAPI backend, with all interactions persisted in PostgreSQL. The backend is coded in Python, while the LLM model used was qwen2.5:32b.
Workflow in action
The system uses a session-based conversational interface built in React. Users can submit either typed messages or recorded voice input. Audio is transcribed locally using Whisper before entering the AI pipeline.
The backend manages the entire workflow. When a message is received, it determines whether transcription or translation is required, preserves session context, and routes the input through a modular AI pipeline. Instead of issuing a single prompt to the model, the backend separates responsibilities into dedicated stages: translation, follow-up logic, and structured extraction.
The conversational module implements slot-filling behaviour. If required information is missing, the model generates targeted follow-up questions rather than free-form responses. This ensures structured data completeness while maintaining a natural interaction style.
Structured output Generation
Once sufficient context has been gathered, the structured extraction module converts the full conversation into predefined JSON fields. These include metadata such as category, severity, escalation requirement and a concise summary generated by the LLM.
The extraction layer enforces strict JSON formatting through prompt constraints. The backend validates and parses the response, applying fallback handling if necessary. This design ensures that probabilistic LLM output is converted into deterministic, machine-readable data.
The resulting structured case note is stored in PostgreSQL alongside the original conversation. Importantly, raw input is never overwritten. Both the human-readable interaction and structured metadata are preserved, supporting traceability and audit requirements.
Multilingual Handling & Audit Traceability
The system supports multilingual input and voice recording. Language detection is performed locally to avoid unnecessary model calls, and translation is applied only when required.
Each message is explicitly flagged in the conversation log. If input was spoken, it is marked as transcribed from audio. If translation occurred, the original detected language is recorded and the translated content is preserved. This provides transparency into how the AI processed each message.
By storing original text, translated text, AI responses, and structured output separately, the system maintains a clear audit trail. This was particularly important given the regulated context of the client environment.
Professional Growth & Career Direction
This project was a turning point in my development as an IT professional. It pushed me beyond writing code into designing and integrating a complete AI-driven system, from backend architecture and database modelling to prompt engineering and deployment.
It solidified my direction toward AI-assisted systems and backend engineering. I found particular interest in building workflows around large language models, ensuring outputs are controlled and aligned with real operational requirements.
It also clarified what I want to improve next: stronger testing discipline, and deeper expertise in deployment strategies and scalable system design.
Delivering a solution for a real-world care provider strengthened my ability to translate business needs into practical solutions. It reflects my capability to make complex architecture decisions and deliver maintainable software in a collaborative environment.