- Frontend: Vite + React + TypeScript chat interface - Backend: FastAPI gateway with LangGraph routing - Knowledge Service: ChromaDB RAG with Gitea scraper - LangGraph Service: Multi-agent orchestration - Airflow: Scheduled Gitea ingestion DAG - Documentation: Complete plan and implementation guides Architecture: - Modular Docker Compose per service - External ai-mesh network for communication - Fast rebuilds with /app/packages pattern - Intelligent agent routing (no hardcoded keywords) Services: - Frontend (5173): React chat UI - Chat Gateway (8000): FastAPI entry point - LangGraph (8090): Agent orchestration - Knowledge (8080): ChromaDB RAG - Airflow (8081): Scheduled ingestion - PostgreSQL (5432): Chat history Excludes: node_modules, .venv, chroma_db, logs, .env files Includes: All source code, configs, docs, docker files
108 lines
2.7 KiB
Markdown
108 lines
2.7 KiB
Markdown
# AboutMe AI Chat Demo
|
|
|
|
A comprehensive AI agent system with multi-service architecture for personal knowledge management and intelligent query responses.
|
|
|
|
## Architecture Overview
|
|
|
|
```
|
|
User Query → Chat Gateway → LangGraph Supervisor → [Librarian | Opencode | Brain]
|
|
↓
|
|
Knowledge Service (ChromaDB) ← Airflow ← Gitea API
|
|
```
|
|
|
|
## Services
|
|
|
|
| Service | Port | Technology | Purpose |
|
|
|---------|------|------------|---------|
|
|
| Frontend | 5173 | Vite + React + TS | Chat UI |
|
|
| Chat Gateway | 8000 | FastAPI | API entry point |
|
|
| LangGraph | 8090 | FastAPI + LangGraph | Agent orchestration |
|
|
| Knowledge | 8080 | FastAPI + ChromaDB | RAG / Vector search |
|
|
| Airflow | 8081 | Apache Airflow | Scheduled ingestion |
|
|
| PostgreSQL | 5432 | Postgres 15 | Chat history |
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# 1. Ensure Docker network exists
|
|
docker network create ai-mesh
|
|
|
|
# 2. Start Knowledge Service
|
|
cd knowledge_service && docker-compose up -d
|
|
|
|
# 3. Start LangGraph Service
|
|
cd ../langgraph_service && docker-compose up -d
|
|
|
|
# 4. Start Chat Demo
|
|
cd ../aboutme_chat_demo && docker-compose up -d
|
|
|
|
# 5. Start Airflow (optional)
|
|
cd ../airflow && docker-compose up -d
|
|
```
|
|
|
|
## Environment Variables
|
|
|
|
Create `.env` files in each service directory:
|
|
|
|
**knowledge_service/.env:**
|
|
```
|
|
OPENROUTER_API_KEY=your_key_here
|
|
GITEA_URL=https://gitea.lab.audasmedia.com.au
|
|
GITEA_TOKEN=your_token
|
|
GITEA_USERNAME=sam
|
|
```
|
|
|
|
**langgraph_service/.env:**
|
|
```
|
|
OPENCODE_PASSWORD=sam4jo
|
|
```
|
|
|
|
**airflow/.env:**
|
|
```
|
|
AIRFLOW_UID=1000
|
|
GITEA_TOKEN=your_token
|
|
```
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
aboutme_chat_demo/
|
|
├── frontend/ # React chat interface
|
|
├── backend/ # FastAPI gateway (routes to LangGraph)
|
|
├── plan.md # Full project roadmap
|
|
└── code_1.md # Implementation guide
|
|
|
|
knowledge_service/
|
|
├── main.py # FastAPI + ChromaDB
|
|
├── gitea_scraper.py # Gitea API integration
|
|
└── docker-compose.yml
|
|
|
|
langgraph_service/
|
|
├── main.py # FastAPI entry point
|
|
├── supervisor_agent.py # LangGraph orchestration
|
|
└── docker-compose.yml
|
|
|
|
airflow/
|
|
├── dags/ # Workflow definitions
|
|
│ └── gitea_ingestion_dag.py
|
|
└── docker-compose.yml
|
|
```
|
|
|
|
## Technologies
|
|
|
|
- **Frontend:** Vite, React 19, TypeScript, Tailwind CSS, TanStack Query
|
|
- **Backend:** FastAPI, Python 3.11, httpx
|
|
- **AI/ML:** LangGraph, LangChain, ChromaDB, OpenRouter API
|
|
- **Orchestration:** Apache Airflow (CeleryExecutor)
|
|
- **Infrastructure:** Docker, Docker Compose
|
|
|
|
## Documentation
|
|
|
|
- `plan.md` - Complete project roadmap (7 phases)
|
|
- `code_1.md` - Modular implementation guide
|
|
- `code.md` - Legacy implementation reference
|
|
|
|
## License
|
|
|
|
MIT
|