System Overview
ChatbotForCse consists of three independent subsystems communicating via REST APIs and a shared MongoDB database.- System Diagram
- Components
Layered Architecture
The backend follows a clean 4-layer architecture:- Layer Diagram
- Responsibilities
Design Pattern Locations
Strategy Pattern
Files:
llm_engine/classifiers/strategies/context_strategies.py
Factory Pattern
Files:
llm_engine/classifier.pystrategies/context_strategies.py
Singleton Pattern
Files:
db/mongo.pyclients/ollama_client.py
Chat Request Flow
User Message
User sends “bugün menüde ne var?” via WhatsApp
Message Forwarding
WhatsApp Client forwards to FastAPI backend
Intent Classification
Factory returns HybridClassifier → classifies as “dining”
Context Fetching
Factory returns DiningStrategy → fetches menu from MongoDB
LLM Response
Gemini generates natural language response
Reply
Response sent back to WhatsApp user
Sequence Diagram
View Full Sequence Diagram
View Full Sequence Diagram
Directory Structure
Full Project Structure
Full Project Structure
Component Diagram
View Component Diagram
View Component Diagram