Self-hosted document library manager with BM25 keyword search and RAG chat with page-level citations
Find a file
pyr0ball 0e493ab560 feat(api): add retriever, synthesizer, and chat endpoint (BSL — BYOK gate)
- app/services/retriever.py: hybrid BM25 + semantic Retriever with BM25-only fallback when llm=None
- app/services/synthesizer.py: LLM answer synthesis with citation assembly over retrieved chunks
- app/api/chat.py: POST /api/chat endpoint with 402 gate when PAGEPIPER_OLLAMA_URL is unset
- tests/test_synthesizer.py: 3 TDD unit tests (mocked LLM, context building, system prompt)
- tests/test_chat_api.py: 2 integration tests (402 without Ollama, 200 with mocked retriever+LLM)
2026-05-04 17:47:10 -07:00
app feat(api): add retriever, synthesizer, and chat endpoint (BSL — BYOK gate) 2026-05-04 17:47:10 -07:00
config chore: initial pagepiper repo scaffold 2026-05-04 16:54:08 -07:00
docker/web fix(scaffold): split api:8522/web:8521, fix nginx proxy to host.docker.internal 2026-05-04 17:02:41 -07:00
migrations feat: add database schema and migration runner 2026-05-04 17:10:38 -07:00
scripts fix(ingest): batch embedding, connection guard, correct upsert id param, module-level imports in tests 2026-05-04 17:36:18 -07:00
tests feat(api): add retriever, synthesizer, and chat endpoint (BSL — BYOK gate) 2026-05-04 17:47:10 -07:00
.env.example chore: initial pagepiper repo scaffold 2026-05-04 16:54:08 -07:00
.gitignore fix(scaffold): split api:8522/web:8521, fix nginx proxy to host.docker.internal 2026-05-04 17:02:41 -07:00
compose.override.yml.example chore: initial pagepiper repo scaffold 2026-05-04 16:54:08 -07:00
compose.yml fix(scaffold): split api:8522/web:8521, fix nginx proxy to host.docker.internal 2026-05-04 17:02:41 -07:00
Dockerfile fix(scaffold): split api:8522/web:8521, fix nginx proxy to host.docker.internal 2026-05-04 17:02:41 -07:00
environment.yml chore: initial pagepiper repo scaffold 2026-05-04 16:54:08 -07:00
manage.sh fix(scaffold): split api:8522/web:8521, fix nginx proxy to host.docker.internal 2026-05-04 17:02:41 -07:00
pyproject.toml chore: initial pagepiper repo scaffold 2026-05-04 16:54:08 -07:00