Richie
4799054601
ci(ebook-search): run tests via uv on the runner instead of docker
...
build_systems / build-brain (pull_request) Successful in 44s
build_systems / build-jeeves (pull_request) Successful in 2m54s
test ebook search / test-ebook-search (pull_request) Failing after 19s
treefmt / nix fmt (pull_request) Successful in 5s
pytest / pytest (pull_request) Successful in 27s
build_systems / build-bob (pull_request) Successful in 47s
build_systems / build-rhapsody-in-green (pull_request) Successful in 56s
The gitea runner containers have no docker access, so build the test
env with uv from the existing lockfile and run pytest directly:
- test_ebook_search workflow: uv sync --locked + uv run pytest, with
UV_PYTHON_DOWNLOADS=never so uv uses the nix-provided python 3.14
- add uv to the runner hostPackages (needs a jeeves rebuild to apply)
- ignore nested **/.venv in .dockerignore (uv sync creates one in
python/ebook_search/docker)
- document the uv test commands in the docker README; the docker test
image remains for validating the image itself
2026-07-12 16:40:56 -04:00
Richie
e9636d19de
feat(ebook-search): add containerized test environment
pytest / pytest (pull_request) Successful in 26s
build_systems / build-brain (pull_request) Successful in 45s
build_systems / build-bob (pull_request) Successful in 45s
build_systems / build-rhapsody-in-green (pull_request) Successful in 57s
build_systems / build-jeeves (pull_request) Successful in 2m17s
treefmt / nix fmt (pull_request) Successful in 5s
test ebook search / test-ebook-search (pull_request) Failing after 4s
2026-07-12 16:12:40 -04:00
Richie
f5ec88f1e5
feat(ebook): add Docker packaging and lifecycle tooling
...
Add a self-contained docker/ package for running the ebook search app
against the existing Postgres database on jeeves:
- Dockerfile: python:3.14-slim image, non-root user, runs the FastAPI
app on port 8070
- docker-compose.yml: service definition with library volume mount,
BM25 index volume, .env loading, and a /health healthcheck
- containers.py: Typer CLI (ebook-search-containers) for build/start/
stop/restart/logs/ps lifecycle management
- README.md: usage and configuration docs
2026-07-12 16:12:40 -04:00
Richie
03f610feed
feat(ui): refactor HTML templates for consistent structure and improved styling
treefmt / nix fmt (pull_request) Successful in 5s
pytest / pytest (pull_request) Successful in 37s
build_systems / build-leviathan (pull_request) Successful in 1m20s
build_systems / build-jeeves (pull_request) Successful in 2m57s
build_systems / build-brain (pull_request) Successful in 3m3s
build_systems / build-rhapsody-in-green (pull_request) Successful in 3m25s
build_systems / build-bob (pull_request) Successful in 32m7s
treefmt / nix fmt (push) Successful in 5s
pytest / pytest (push) Successful in 26s
build_systems / build-brain (push) Successful in 31s
build_systems / build-bob (push) Successful in 34s
build_systems / build-leviathan (push) Successful in 41s
build_systems / build-rhapsody-in-green (push) Successful in 46s
build_systems / build-jeeves (push) Successful in 2m10s
2026-06-29 10:23:13 -04:00
Richie
09d963ba34
fix(ebook-search): skip comment lines in gold query loader and realign tests
...
treefmt / nix fmt (pull_request) Successful in 10s
pytest / pytest (pull_request) Successful in 31s
build_systems / build-brain (pull_request) Successful in 52s
build_systems / build-bob (pull_request) Successful in 52s
build_systems / build-jeeves (pull_request) Successful in 2m43s
build_systems / build-leviathan (pull_request) Successful in 59s
build_systems / build-rhapsody-in-green (pull_request) Successful in 1m5s
load_gold_queries now skips blank and `//` comment lines so the committed
section separator in queries.jsonl no longer breaks dataset/load-test loading.
Update tests left stale by the search refactor (6bc3011 ):
- pass the now-required rank_constant to reciprocal_rank_fusion
- expect bm25_candidates to receive the full query and drop the removed
"BM25 query preparation" timing step
- assert reranking is enabled by default
2026-06-21 14:45:31 -04:00
Richie
6bc30115d9
fix(ebook-search): code clean up to impove reliablty and readabilty
2026-06-18 12:45:56 -04:00
Richie
6ae1ff1f5c
feat(ebook-search): add load-test CLI for the search service
...
Add a Typer CLI script that drives POST /search on a running server at a
configurable concurrency and reports latency percentiles (p50/p90/p95/p99),
throughput, and HTTP status distribution. Queries are drawn from the shared
eval JSONL set so load testing and evaluation exercise the same questions.
2026-06-18 12:39:55 -04:00
Richie
a9daa60c17
moved TC001 expetop out of pyproject.toml
2026-06-16 18:31:40 -04:00
Richie
241a42b20d
updated front end
treefmt / nix fmt (pull_request) Failing after 6s
pytest / pytest (pull_request) Failing after 52s
build_systems / build-brain (pull_request) Successful in 1m11s
build_systems / build-bob (pull_request) Successful in 1m13s
build_systems / build-leviathan (pull_request) Successful in 1m46s
build_systems / build-rhapsody-in-green (pull_request) Successful in 1m48s
build_systems / build-jeeves (pull_request) Successful in 3m46s
2026-06-16 00:00:13 -04:00
Richie
4640ebf8ce
converted addmin.py and page.py to DbSession and AppConfig
2026-06-15 22:01:42 -04:00
Richie
0c9583c1cc
moved config = load_config() to lifespan
2026-06-15 21:59:51 -04:00
Richie
f71ae7d2c6
added guardrails.py to constrain responses and added validation to config.py
2026-06-15 21:57:38 -04:00
Richie
2e68c83021
added health endpoints
2026-06-15 21:21:01 -04:00
Richie
b126987b63
added AppConfig and AppEngine
2026-06-15 21:08:55 -04:00
Richie
68b3a38b81
converting to pydantic-settings
2026-06-14 21:29:45 -04:00
Richie
2995a75748
fixed test
treefmt / nix fmt (pull_request) Failing after 5s
pytest / pytest (pull_request) Successful in 28s
build_systems / build-bob (pull_request) Successful in 48s
build_systems / build-brain (pull_request) Successful in 53s
build_systems / build-leviathan (pull_request) Successful in 54s
build_systems / build-rhapsody-in-green (pull_request) Successful in 1m1s
build_systems / build-jeeves (pull_request) Successful in 2m43s
2026-06-14 15:41:09 -04:00
Richie
c88315e9b6
improved BM25 write
2026-06-14 15:41:09 -04:00
Richie
50795ab7fc
added ZstdMiddleware to ebook_search
2026-06-14 15:41:09 -04:00
Richie
e9a80a0308
added vector_engine to fix name postgres name space issue
2026-06-14 15:41:09 -04:00
Richie
eb76edb740
reworked ebook_search routers
2026-06-14 15:41:09 -04:00
Richie
8301db39e5
added proper cache invalidation to load_bm25_corpus
2026-06-14 15:40:31 -04:00
Richie
dd67de3993
improved reranking weights
2026-06-14 15:40:31 -04:00
Richie
6e3635ca01
fixed duplicat enrichment
2026-06-14 15:40:31 -04:00
Richie
11cbe31152
improved queary for vector search
2026-06-14 15:40:31 -04:00
Richie
6715bbf0a5
build api and frountend
2026-06-14 15:40:04 -04:00
Richie
26ff1f0fd3
added answer.py and config
2026-06-14 15:40:04 -04:00
Richie
666ea97754
added __init__
2026-06-14 15:40:04 -04:00
Richie
e01c687625
made llm_interface.py
2026-06-14 15:40:04 -04:00
Richie
82a367a2b6
added rerank
2026-06-14 15:40:04 -04:00
Richie
ad1834c537
built ingest
2026-06-14 15:40:04 -04:00
Richie
aed1e14d95
built rag search setup
2026-06-14 15:40:04 -04:00
Richie
0a2d4c08cb
set up embedding system
2026-06-14 15:40:04 -04:00
Richie
db98bd3559
built BM25 search foundation
2026-06-14 15:40:04 -04:00