-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
51 lines (47 loc) · 1.84 KB
/
Copy pathpyproject.toml
File metadata and controls
51 lines (47 loc) · 1.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
[project]
name = "grounded"
version = "0.1.0"
description = "An open, evaluated, domain-specialized RAG platform — energy profile first."
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
# --- light runtime: CLI + acquisition + discovery (no ML stack) ---
"typer>=0.12",
"pyyaml>=6.0",
"python-dotenv>=1.0",
"httpx>=0.27",
"ddgs>=6.0",
]
[project.optional-dependencies]
dev = ["pytest>=8.0"]
# Web API layer (Slice 5) — install with `uv sync --extra web`. Deliberately kept
# out of core AND out of the ml stack: the API is a thin HTTP shell that imports
# the engine lazily, so fastapi/uvicorn never enter the light or ml lanes.
web = [
"fastapi>=0.115",
"uvicorn[standard]>=0.30",
]
# The ML / RAG stack — install with `uv sync --extra ml` (or `uv pip install -e '.[ml]'`).
# Kept out of the light lane so the CLI + acquisition stay torch-free.
ml = [
"pymupdf>=1.24", # PDF parsing (Slice 1b)
"sentence-transformers>=3.0", # local embeddings (Slice 1b)
"torch>=2.2", # CPU build on this box; pulled by sentence-transformers
"chromadb>=0.5", # vector store (Slice 1b)
"rank-bm25>=0.2", # hybrid retrieval (Slice 2)
"llama-index>=0.12", # framework (Slices 2–3)
"llama-index-vector-stores-chroma>=0.4",
"llama-index-embeddings-huggingface>=0.4",
"llama-index-llms-litellm>=0.3",
"litellm>=1.44", # LLM gateway (Slice 2)
"ragas>=0.2", # evaluation (Slice 4)
"langchain-litellm>=0.1", # RAGAS judge via LiteLLM → Groq (Slice 4)
"langchain-huggingface>=0.1", # RAGAS embeddings wrapper (Slice 4)
]
[project.scripts]
grounded = "grounded.cli:app"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src/grounded"]