Repository navigation
Releases
v0.1.0 — Development Preview (pre-release)
v0.1.0 — Development preview (pre-release)
First public snapshot of RAG_LLM_Services, a production-shaped RAG/LLM
learning platform. All 16 planned phases are implemented and verified
locally. This is an early development preview, not production-ready.
What is in this release
- Backend foundation — FastAPI with typed settings, structured redacting
JSON logs, request IDs, standard error envelopes, health endpoints, async
SQLAlchemy + Alembic migrations. - Documents & storage — owner-scoped knowledge bases and document APIs,
MinIO raw-object storage, checksum dedup, safe upload validation. - RAG pipeline — parsing/normalization/semantic chunking, BGE-M3
embeddings (deterministic fake provider for tests), pgvector persistence,
hybrid vector + keyword retrieval with RRF fusion and optional reranking. - LLM gateway — DeepSeek-compatible adapter (Responses-first, semantic
SSE streaming, explicit Chat Completions fallback, usage/cost accounting);
chat defaults to the mocked provider so tests never make paid calls. - Study agents — OpenAI Agents SDK runtime with bounded tools; quiz,
flashcard, and learning-plan generation with citation validation. - Async infrastructure — Redis/Celery ingestion and evaluation queues
with retry, stale-job reclaim, and queue status APIs. - Automation — n8n compose service and five source-controlled,
credential-free workflow exports driving bounded async APIs only. - Observability — Prometheus metrics for API/worker, source-provisioned
Grafana datasources and dashboards. - Evaluation — fixture-safe deterministic retrieval/citation metric
runner with queued evaluation API. - Web — Next.js frontend for chat, documents, knowledge bases, study,
and system status. - Security & tooling — CORS/rate-limit/upload/prompt-injection/citation
hardening gates, secret/SQL/dependency scanners, GitHub Actions workflow
definitions (CI, container build, security), Docker Compose topology.
Verification status (evidence taxonomy)
| Gate | Status |
|---|---|
Local release gate scripts/verify-phase-16.ps1 |
PASS (PHASE_16_VERIFY_PASS, 303 backend tests + web tests + compose smoke) |
| Secret scan (full git history + working tree) | PASS (zero real credentials; .env never tracked) |
| Adversarial release review (secrets, oracles, claims) | PASS_TO_PUBLISH |
| Hosted GitHub Actions (CI, Security, Container Build) | PASS on the tagged commit d9162f8 and green again on current main |
| Live DeepSeek provider proof | PASS (2026-09-08, operator-supplied key; one synthetic prompt, bounded output; key-containment audit clean) |
| Registry publication | DONE (one-off) — v0.1.0 on GHCR and Docker Hub, layer-audited; local-first model per maintainer decision, future publication is manual |
| Production deployment / auth / TLS | HOLD — deliberately not implemented; day-to-day operation is local Docker Compose |
Do not read this release as production-readiness. See
plans/260906-2101-rag-llm-services-production-platform/reports/release-readiness.md
for the full evidence matrix and SECURITY.md for the disclosure policy.
Container images
| Registry | Pull |
|---|---|
| GitHub Container Registry | docker pull ghcr.io/jasontm17/rag-llm-services-api:v0.1.0 (worker, web likewise) |
| Docker Hub | docker pull nguyenson1710/rag-llm-services-api:v0.1.0 (worker, web likewise) |
Both registries serve manifest-identical content, are public and
anonymously pullable (:latest currently mirrors :v0.1.0), and were
layer-audited: no .env, credentials, repository plans, or build secrets in
any image layer. These are one-off release artifacts: per the maintainer
decision of 2026-09-08 the container operating model is local Docker Compose
builds (make container-build), and CI does not publish to registries; any
future remote publication is a manual operator action.
Getting started
uv sync
copy .env.example .env # replace placeholders; LLM_PROVIDER=fake keeps everything offline
uv run alembic -c apps/api/alembic.ini upgrade head
make api-run # or: uv run uvicorn rag_llm_services_api.main:app --reload
make api-testFull instructions: README.md and CONTRIBUTING.md.