96 lines
3.1 KiB
Markdown
96 lines
3.1 KiB
Markdown
# CLAUDE.md
|
|
|
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
|
|
## Project Overview
|
|
|
|
DevDen is a self-hosted AI chat platform that enables organizations to provide AI-powered Q&A based on their own knowledge bases. Users interact through a clean chat interface while administrators manage knowledge bases, AI providers, and user access through a terminal-style dashboard.
|
|
|
|
**Current Status:** MVP with AI integration complete. Backend FastAPI server with Claude and OpenAI support. Frontend streams responses in real-time.
|
|
|
|
## Architecture
|
|
|
|
**Technology Stack:**
|
|
- **Frontend:** Vanilla JavaScript (prototype), potential migration to Svelte
|
|
- **Backend:** FastAPI (Python)
|
|
- **Database:** PostgreSQL (users, conversations, settings)
|
|
- **Cache:** Redis (sessions)
|
|
- **Vector DB:** Qdrant or ChromaDB (semantic search)
|
|
- **Auth:** Microsoft Entra ID
|
|
- **AI Providers:** Claude, OpenAI, Gemini, OpenRouter, Ollama (local)
|
|
|
|
**Two-Interface Design:**
|
|
- Clean chat interface for end users (warm, accessible design)
|
|
- Terminal-style dashboard for administrators
|
|
|
|
## Current Files
|
|
|
|
**Frontend:**
|
|
- `index.html` - Main chat interface structure with welcome screen
|
|
- `script.js` - Chat interaction logic with SSE streaming
|
|
- `style.css` - Catppuccin Mocha theme with pixel aesthetic
|
|
|
|
**Backend:**
|
|
- `backend/app/main.py` - FastAPI application entry point
|
|
- `backend/app/config.py` - Environment configuration
|
|
- `backend/app/api/chat.py` - Chat endpoints (POST /api/chat, POST /api/chat/stream)
|
|
- `backend/app/services/provider_manager.py` - Provider abstraction and fallback
|
|
- `backend/app/services/provider_claude.py` - Claude implementation
|
|
- `backend/app/services/provider_openai.py` - OpenAI implementation
|
|
- `backend/app/models/schemas.py` - Pydantic request/response models
|
|
|
|
**Infrastructure:**
|
|
- `docker-compose.yml` - Multi-service orchestration
|
|
- `backend/Dockerfile.backend` - Backend container
|
|
- `.env.example` - Environment template
|
|
|
|
## Development Phases (from project.md)
|
|
|
|
1. Core Chat - Basic chat with single AI provider
|
|
2. Knowledge Base - Document indexing and semantic search
|
|
3. Authentication - Microsoft Entra ID integration
|
|
4. Admin Dashboard - Management interface
|
|
5. Multi-Provider - Multiple AI provider support
|
|
6. Git Integration - Auto-sync from repositories
|
|
7. Polish - Production readiness
|
|
|
|
## Commands
|
|
|
|
**Start the application:**
|
|
```bash
|
|
docker compose up -d --build
|
|
```
|
|
|
|
**View logs:**
|
|
```bash
|
|
docker compose logs -f backend
|
|
docker compose logs -f frontend
|
|
```
|
|
|
|
**Stop the application:**
|
|
```bash
|
|
docker compose down
|
|
```
|
|
|
|
**Test backend API:**
|
|
```bash
|
|
# Health check
|
|
curl http://localhost:8000/health
|
|
|
|
# List available providers
|
|
curl http://localhost:8000/api/chat/providers
|
|
|
|
# Test chat (non-streaming)
|
|
curl -X POST http://localhost:8000/api/chat \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"message": "Hello!"}'
|
|
```
|
|
|
|
## Design Decisions
|
|
|
|
- Knowledge bases connect via Git repositories (auto-sync) or Docker volumes (local files)
|
|
- Source transparency: answers show which documents were referenced
|
|
- User quotas configurable per-user (questions per day/month)
|
|
- API keys encrypted at rest
|
|
- All data stays on-premises (self-hosted)
|