amirshq/personal-chatbot
Personal AI assistant chatbot and RAG built with FastAPI, SQLAlchemy, and Hugging Face LLMs. Clean architecture, rate limiting, and vector database support.
What's novel
Personal AI assistant chatbot and RAG built with FastAPI, SQLAlchemy, and Hugging Face LLMs. Clean architecture, rate limiting, and vector database support.
Code Analysis
25 files read · 5 roundsA personal chatbot with an agentic ReAct loop (tool-calling LLM), three-tier memory (Redis/ChromaDB/SQLite), and a complete RAG pipeline over locally-parsed PDFs (Docling → chunk → embed → Chroma → cross-encoder re-rank → generate), served via a layered FastAPI backend with rate limiting, Prometheus
Strengths
Consistent ABC+factory abstraction across every external dependency (LLM, embedder, vector store, memory) makes the system genuinely swappable and testable; the re-ranker's layered design (interface → scorer → orchestrator → policy-based fallback) and the three-tier memory with proactive semantic prefetch show real architectural thoughtfulness beyond boilerplate.
Weaknesses
Tests cover only the re-ranker orchestration (3 test files) while the chatbot, RAG pipeline, memory, and API layers are entirely untested; several bugs exist (LocalHFModel uses max_input_tokens for generation length, process_chat_message hardcodes model_used and returns None for tokens, LongTermMemory._build_id can collide on rapid calls).
Score Breakdown
Signal breakdown
Innovation
Craft
Traction
Scope
Evidence
Commits
38
Contributors
1
Files
58
Active weeks
10
Repository
Language
Python
Stars
1
Forks
0
License
—