Wire the guarded conversational RAG answer layer end-to-end
This commit is contained in:
@@ -1,10 +1,36 @@
|
||||
[project]
|
||||
name = "ai-service"
|
||||
version = "0.0.0"
|
||||
description = "RAG orchestration + OpenAI calls for the Duoc Thu medical chatbot"
|
||||
description = "RAG orchestration for the Duoc Thu medical chatbot"
|
||||
requires-python = ">=3.11"
|
||||
dependencies = []
|
||||
dependencies = [
|
||||
"fastapi>=0.115,<1",
|
||||
"httpx>=0.27,<1",
|
||||
"psycopg[binary]>=3.2,<4",
|
||||
"pydantic-settings>=2.6,<3",
|
||||
"qdrant-client>=1.7,<2",
|
||||
"uvicorn[standard]>=0.30,<1",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
test = ["pytest>=7.4,<9"]
|
||||
# Both optional on purpose: the service answers without a metrics stack, and
|
||||
# without a cloud generator. Neither is a precondition for a grounded answer.
|
||||
metrics = ["prometheus-client>=0.20,<1"]
|
||||
generation = ["anthropic>=0.112,<1"]
|
||||
|
||||
[build-system]
|
||||
requires = ["setuptools>=68"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[tool.ruff]
|
||||
line-length = 100
|
||||
|
||||
[tool.ruff.lint]
|
||||
select = ["F", "E9", "B", "ARG"]
|
||||
|
||||
[tool.ruff.lint.per-file-ignores]
|
||||
# Test doubles implement the domain's Protocols. Conformance requires the full
|
||||
# signature even where a double ignores an argument, so ARG here would push
|
||||
# tests toward fakes that no longer match the interface they stand in for.
|
||||
"tests/*" = ["ARG001", "ARG002"]
|
||||
|
||||
Reference in New Issue
Block a user