Update docs for app
This commit is contained in:
parent
3bb1721e0f
commit
f3b644a2a3
3 changed files with 117 additions and 5 deletions
|
|
@ -6,4 +6,5 @@ OPENAI_API_KEY=your-openai-key
|
||||||
DB_PATH=/path/to/your/haiku.rag.lancedb
|
DB_PATH=/path/to/your/haiku.rag.lancedb
|
||||||
|
|
||||||
# Optional: Ollama base URL (if using local models)
|
# Optional: Ollama base URL (if using local models)
|
||||||
OLLAMA_BASE_URL=http://localhost:11434
|
# Use host.docker.internal to reach Ollama running on the host machine
|
||||||
|
OLLAMA_BASE_URL=http://host.docker.internal:11434
|
||||||
|
|
|
||||||
108
app/README.md
Normal file
108
app/README.md
Normal file
|
|
@ -0,0 +1,108 @@
|
||||||
|
# haiku.rag Chat App
|
||||||
|
|
||||||
|
A conversational RAG interface built with [CopilotKit](https://copilotkit.ai/) and [pydantic-ai](https://github.com/pydantic/pydantic-ai)'s AG-UI protocol.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
- Docker and Docker Compose
|
||||||
|
- A haiku.rag database (created via the `haiku-rag` CLI)
|
||||||
|
- An LLM API key (Anthropic, OpenAI, or local Ollama)
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
1. **Set up environment variables:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cp .env.example .env
|
||||||
|
# Edit .env with your API keys and database path
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Configure the LLM and embedding models:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cp haiku.rag.yaml.example haiku.rag.yaml
|
||||||
|
# Edit haiku.rag.yaml to configure your models
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Start the app:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
4. **Open the chat interface:** http://localhost:3000
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
### Environment Variables
|
||||||
|
|
||||||
|
| Variable | Description | Required |
|
||||||
|
|----------|-------------|----------|
|
||||||
|
| `DB_PATH` | Path to your haiku.rag LanceDB database | Yes |
|
||||||
|
| `ANTHROPIC_API_KEY` | Anthropic API key | One LLM key required |
|
||||||
|
| `OPENAI_API_KEY` | OpenAI API key | One LLM key required |
|
||||||
|
| `OLLAMA_BASE_URL` | Ollama server URL (default: `http://host.docker.internal:11434`) | For local models |
|
||||||
|
| `LOGFIRE_TOKEN` | Pydantic Logfire token for debugging | No |
|
||||||
|
|
||||||
|
### haiku.rag.yaml
|
||||||
|
|
||||||
|
Configure the chat agent's LLM, embeddings, and search settings:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
qa:
|
||||||
|
model:
|
||||||
|
provider: anthropic # or openai, ollama
|
||||||
|
name: claude-sonnet-4-20250514
|
||||||
|
|
||||||
|
embeddings:
|
||||||
|
model:
|
||||||
|
provider: ollama
|
||||||
|
name: nomic-embed-text
|
||||||
|
|
||||||
|
search:
|
||||||
|
limit: 10
|
||||||
|
context_radius: 1
|
||||||
|
```
|
||||||
|
|
||||||
|
See `haiku.rag.yaml.example` for all options.
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
For local development with hot reloading:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose -f docker-compose.dev.yml up -d --build
|
||||||
|
```
|
||||||
|
|
||||||
|
- Backend code changes reload automatically
|
||||||
|
- Frontend available at http://localhost:3000
|
||||||
|
- Backend API at http://localhost:8001
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
||||||
|
│ Frontend │────▶│ Backend │────▶│ haiku.rag │
|
||||||
|
│ (CopilotKit) │ │ (pydantic-ai) │ │ (LanceDB) │
|
||||||
|
│ localhost:3000 │ │ localhost:8001 │ │ │
|
||||||
|
└─────────────────┘ └─────────────────┘ └─────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
### Backend Endpoints
|
||||||
|
|
||||||
|
| Endpoint | Method | Description |
|
||||||
|
|----------|--------|-------------|
|
||||||
|
| `/v1/chat/stream` | POST | AG-UI chat streaming |
|
||||||
|
| `/api/documents` | GET | List documents in database |
|
||||||
|
| `/api/info` | GET | Database statistics |
|
||||||
|
| `/api/visualize/{chunk_id}` | GET | Visual grounding for chunks |
|
||||||
|
| `/health` | GET | Health check |
|
||||||
|
|
||||||
|
## Chat Capabilities
|
||||||
|
|
||||||
|
The chat agent can:
|
||||||
|
|
||||||
|
- **Search** your documents with hybrid vector + full-text search
|
||||||
|
- **Answer questions** with citations from your knowledge base
|
||||||
|
- **Filter by document** when you ask about specific files
|
||||||
|
- **Show visual grounding** for PDF/image sources
|
||||||
|
|
@ -17,10 +17,12 @@ qa:
|
||||||
embeddings:
|
embeddings:
|
||||||
model:
|
model:
|
||||||
provider: ollama
|
provider: ollama
|
||||||
name: nomic-embed-text
|
name: qwen3-embedding:4b
|
||||||
|
vector_dim: 2560
|
||||||
# For OpenAI:
|
# For OpenAI:
|
||||||
# provider: openai
|
# provider: openai
|
||||||
# name: text-embedding-3-small
|
# name: text-embedding-3-small
|
||||||
|
# vector_dim: 1536
|
||||||
|
|
||||||
# Optional reranking
|
# Optional reranking
|
||||||
# reranking:
|
# reranking:
|
||||||
|
|
@ -30,10 +32,11 @@ embeddings:
|
||||||
|
|
||||||
# Search settings
|
# Search settings
|
||||||
search:
|
search:
|
||||||
limit: 10
|
limit: 5
|
||||||
context_radius: 1
|
context_radius: 0
|
||||||
|
|
||||||
# Provider settings
|
# Provider settings
|
||||||
providers:
|
providers:
|
||||||
ollama:
|
ollama:
|
||||||
base_url: http://localhost:11434
|
# Use host.docker.internal to reach Ollama running on the host machine
|
||||||
|
base_url: http://host.docker.internal:11434
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue