Update ag-ui-research example with haiku.rag-slim image
This commit is contained in:
parent
d197fb5a35
commit
4b0a1f0038
5 changed files with 71 additions and 13 deletions
11
CHANGELOG.md
11
CHANGELOG.md
|
|
@ -18,6 +18,13 @@
|
||||||
- `true`: Tables preserved as markdown format with structure
|
- `true`: Tables preserved as markdown format with structure
|
||||||
- **Chunking Configuration**: Additional chunking control options
|
- **Chunking Configuration**: Additional chunking control options
|
||||||
- New `chunking_merge_peers` config option (default: `true`) to merge undersized successive chunks
|
- New `chunking_merge_peers` config option (default: `true`) to merge undersized successive chunks
|
||||||
|
- **Docker Images**: Two Docker images for different deployment scenarios
|
||||||
|
- `haiku.rag`: Full image with all dependencies for self-contained deployments
|
||||||
|
- `haiku.rag-slim`: Minimal image designed for use with external docling-serve
|
||||||
|
- Multi-platform support (linux/amd64, linux/arm64)
|
||||||
|
- Docker Compose examples with docling-serve integration
|
||||||
|
- Automated CI/CD workflows for both images
|
||||||
|
- Build script (`scripts/build-docker-images.sh`) for local multi-platform builds
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
|
|
@ -25,6 +32,10 @@
|
||||||
- Default tokenizer changed from tiktoken "gpt-4o" to "Qwen/Qwen3-Embedding-0.6B"
|
- Default tokenizer changed from tiktoken "gpt-4o" to "Qwen/Qwen3-Embedding-0.6B"
|
||||||
- New `chunking_tokenizer` config option in `ProcessingConfig` for customization
|
- New `chunking_tokenizer` config option in `ProcessingConfig` for customization
|
||||||
- `download-models` CLI command now also downloads the configured HuggingFace tokenizer
|
- `download-models` CLI command now also downloads the configured HuggingFace tokenizer
|
||||||
|
- **Docker Examples**: Updated examples to demonstrate remote processing
|
||||||
|
- `examples/docker` now uses slim image with docling-serve
|
||||||
|
- `examples/ag-ui-research` backend uses slim image with docling-serve
|
||||||
|
- Configuration examples include remote processing setup
|
||||||
|
|
||||||
## [0.16.1] - 2025-11-14
|
## [0.16.1] - 2025-11-14
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,8 @@ Research assistant powered by [haiku.rag](https://ggozad.github.io/haiku.rag/),
|
||||||
### Setup
|
### Setup
|
||||||
|
|
||||||
1. **Prepare your knowledge base**
|
1. **Prepare your knowledge base**
|
||||||
|
|
||||||
|
**Option A: Create a new database**
|
||||||
```bash
|
```bash
|
||||||
mkdir -p data
|
mkdir -p data
|
||||||
haiku-rag add "Your documents here" --db data/haiku_rag.lancedb
|
haiku-rag add "Your documents here" --db data/haiku_rag.lancedb
|
||||||
|
|
@ -30,6 +32,22 @@ Research assistant powered by [haiku.rag](https://ggozad.github.io/haiku.rag/),
|
||||||
haiku-rag add-src document.pdf --db data/haiku_rag.lancedb
|
haiku-rag add-src document.pdf --db data/haiku_rag.lancedb
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Option B: Use an existing database**
|
||||||
|
|
||||||
|
Set the `DB_PATH` environment variable to point to your existing haiku.rag database:
|
||||||
|
```bash
|
||||||
|
# In .env file
|
||||||
|
DB_PATH=/path/to/your/existing/haiku_rag.lancedb
|
||||||
|
```
|
||||||
|
|
||||||
|
Or export it before running docker compose:
|
||||||
|
```bash
|
||||||
|
export DB_PATH=/path/to/your/existing/haiku_rag.lancedb
|
||||||
|
docker compose up --build
|
||||||
|
```
|
||||||
|
|
||||||
|
The database will be mounted as read-write, so the research assistant can access all documents in your existing knowledge base.
|
||||||
|
|
||||||
2. **Configure haiku.rag**
|
2. **Configure haiku.rag**
|
||||||
```bash
|
```bash
|
||||||
cp haiku.rag.yaml.example haiku.rag.yaml
|
cp haiku.rag.yaml.example haiku.rag.yaml
|
||||||
|
|
@ -41,16 +59,17 @@ Research assistant powered by [haiku.rag](https://ggozad.github.io/haiku.rag/),
|
||||||
```bash
|
```bash
|
||||||
cp .env.example .env
|
cp .env.example .env
|
||||||
# Edit .env to set your API keys
|
# Edit .env to set your API keys
|
||||||
export OPENAI_API_KEY=your-key-here
|
OPENAI_API_KEY=your-key-here
|
||||||
export ANTHROPIC_API_KEY=your-key-here
|
ANTHROPIC_API_KEY=your-key-here
|
||||||
|
DB_PATH=/path/to/your/existing/haiku_rag.lancedb # If using an existing db.
|
||||||
```
|
```
|
||||||
|
|
||||||
4. **Start the application**
|
1. **Start the application**
|
||||||
```bash
|
```bash
|
||||||
docker compose up --build
|
docker compose up --build
|
||||||
```
|
```
|
||||||
|
|
||||||
5. **Access the interface**
|
2. **Access the interface**
|
||||||
- Frontend: http://localhost:3000
|
- Frontend: http://localhost:3000
|
||||||
- Backend health: http://localhost:8000/health
|
- Backend health: http://localhost:8000/health
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
FROM ghcr.io/ggozad/haiku.rag:latest
|
FROM ghcr.io/ggozad/haiku.rag-slim:latest
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
|
|
@ -6,7 +6,6 @@ WORKDIR /app
|
||||||
COPY main.py agent.py ./
|
COPY main.py agent.py ./
|
||||||
|
|
||||||
# Install additional dependencies for the example
|
# Install additional dependencies for the example
|
||||||
# Note: haiku-rag-slim is already installed in the base image
|
|
||||||
RUN pip install --no-cache-dir \
|
RUN pip install --no-cache-dir \
|
||||||
starlette>=0.45.2 \
|
starlette>=0.45.2 \
|
||||||
uvicorn[standard]>=0.34.2 \
|
uvicorn[standard]>=0.34.2 \
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,22 @@
|
||||||
services:
|
services:
|
||||||
|
docling-serve:
|
||||||
|
image: quay.io/docling-project/docling-serve:latest
|
||||||
|
container_name: ag-ui-docling-serve
|
||||||
|
ports:
|
||||||
|
- "5001:5001"
|
||||||
|
environment:
|
||||||
|
- DOCLING_SERVE_ENABLE_UI=1
|
||||||
|
networks:
|
||||||
|
- ag-ui-network
|
||||||
|
restart: unless-stopped
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-f", "http://localhost:5001/health"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 3
|
||||||
|
start_period: 40s
|
||||||
|
start_interval: 5s
|
||||||
|
|
||||||
backend:
|
backend:
|
||||||
build:
|
build:
|
||||||
context: ./backend
|
context: ./backend
|
||||||
|
|
@ -17,13 +35,13 @@ services:
|
||||||
volumes:
|
volumes:
|
||||||
- ${DB_PATH}:/app/data/haiku.rag.lancedb
|
- ${DB_PATH}:/app/data/haiku.rag.lancedb
|
||||||
- ./haiku.rag.yaml:/app/haiku.rag.yaml:ro
|
- ./haiku.rag.yaml:/app/haiku.rag.yaml:ro
|
||||||
- ./backend/main.py:/app/main.py
|
|
||||||
- ./backend/agent.py:/app/agent.py
|
|
||||||
- ../../haiku_rag_slim/haiku:/app/.venv/lib/python3.13/site-packages/haiku
|
|
||||||
networks:
|
networks:
|
||||||
- ag-ui-network
|
- ag-ui-network
|
||||||
extra_hosts:
|
extra_hosts:
|
||||||
- "host.docker.internal:host-gateway"
|
- "host.docker.internal:host-gateway"
|
||||||
|
depends_on:
|
||||||
|
docling-serve:
|
||||||
|
condition: service_healthy
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"]
|
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"]
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,21 @@
|
||||||
# haiku.rag configuration for ag-ui-research example
|
# haiku.rag configuration for ag-ui-research example
|
||||||
# Copy to haiku.rag.yaml and customize
|
# Copy to haiku.rag.yaml and customize
|
||||||
|
|
||||||
|
# Document processing with docling-serve
|
||||||
|
processing:
|
||||||
|
converter: docling-serve
|
||||||
|
chunker: docling-serve
|
||||||
|
chunk_size: 256
|
||||||
|
chunker_type: hybrid
|
||||||
|
|
||||||
|
providers:
|
||||||
|
docling_serve:
|
||||||
|
base_url: http://docling-serve:5001
|
||||||
|
api_key: ""
|
||||||
|
timeout: 300
|
||||||
|
ollama:
|
||||||
|
base_url: http://host.docker.internal:11434
|
||||||
|
|
||||||
research:
|
research:
|
||||||
provider: ollama
|
provider: ollama
|
||||||
model: gpt-oss:latest
|
model: gpt-oss:latest
|
||||||
|
|
@ -8,10 +23,6 @@ research:
|
||||||
confidence_threshold: 0.8
|
confidence_threshold: 0.8
|
||||||
max_concurrency: 1
|
max_concurrency: 1
|
||||||
|
|
||||||
providers:
|
|
||||||
ollama:
|
|
||||||
base_url: http://host.docker.internal:11434
|
|
||||||
|
|
||||||
# For OpenAI:
|
# For OpenAI:
|
||||||
# research:
|
# research:
|
||||||
# provider: openai
|
# provider: openai
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue