Phase 1: router skeleton + Qdrant read path - FastAPI app with /health, /search/generic, /ingest endpoints - Qdrant reader (hybrid dense+sparse w/ RRF, plus payload scroll) - BGE-M3 TEI client for query-side embedding - memory-api client proxying writes to /memory/store (m2-memory untouched) - Pydantic Fact + Exemplar payloads, discriminated by `kind` - Dockerfile + docker-compose joining the coolify Docker network Phase 2: authoritative-source ingest pipeline - PDF text extraction + paragraph-aware (§ N) and size chunkers - Loaders for bnatschg, mhbasp, biotopwertliste, state-<slug> - CLI: artenschutz-ingest --source <name> [--states ...] [--dry-run] - Helper script to fetch BNatSchG from gesetze-im-internet.de - End-to-end smoke script (scripts/smoke.sh) for Coolify validation 22/22 unit tests pass. Real-world dry-runs verified against mhbasp Anhang 4, biotopwertlisteNEU and Berlin Kartierstandards PDFs from GST-DATA. See COOLIFY-DEPLOY.md for staging deploy + smoke procedure.
22 lines
819 B
Text
22 lines
819 B
Text
# Qdrant + BGE-M3 — same services agent.memory.system uses.
|
|
# In the Coolify Docker network these resolve by container name.
|
|
# For local dev pointed at a remote stack, use container IPs from
|
|
# docker inspect or memory-api's resolved endpoints.
|
|
QDRANT_URL=http://memory-qdrant:6333
|
|
QDRANT_COLLECTION=agent_memory
|
|
BGE_TEI_URL=http://memory-embeddings:8000
|
|
|
|
# memory-api is only used for the WRITE path (/ingest → /memory/store).
|
|
# Reads go directly to Qdrant.
|
|
MEMORY_API_URL=http://memory-api:8000
|
|
|
|
# agent_id partition in Qdrant. Default scopes by client; override per deploy.
|
|
# Examples:
|
|
# gruenstifter — production client
|
|
# gruenstifter_staging — same client, staging env (cleanly deletable)
|
|
ARTENSCHUTZ_AGENT_ID=gruenstifter
|
|
|
|
# Service binding
|
|
ROUTER_HOST=0.0.0.0
|
|
ROUTER_PORT=8080
|
|
LOG_LEVEL=INFO
|