ragsolver / pyproject.toml
CamiloS1111's picture
Upload pyproject.toml with huggingface_hub
3fea70b verified
Raw History Blame Contribute Delete
2.01 kB
[project]
name = "ragsolver"
version = "0.1.0"
description = "Sistema multiagente de razonamiento verificable (RAG + Lean 4/Mathlib) — UPTC"
requires-python = ">=3.12,<3.13"
dependencies = [
"pydantic>=2.9",
"pyyaml>=6.0",
"lancedb>=0.17",
"pyarrow>=17.0",
"sentence-transformers>=3.3",
"transformers>=4.51",
"torch>=2.4",
"huggingface_hub>=0.26",
"pymupdf>=1.24",
"langgraph>=0.2",
"lean-interact>=0.7",
"httpx>=0.27", # ragsolver/llm.py, rag/embed.py (backend llama): usado directamente, no sólo transitivo (auditoría DEP-1)
"tenacity>=8.0", # ragsolver/llm.py: reintentos del cliente LLM
]
[project.optional-dependencies]
# Sólo necesario en la Fase 2 (ingesta de PDFs); pesado (modelos de layout/formula), se instala aparte.
ingest = ["mineru>=2.5,<5"]
# Demo Gradio (demo/app.py): gradio llegaba sólo como transitiva del extra `ingest` (vía mineru);
# con `uv sync` a secas la demo fallaba en silencio (auditoría DEP-1).
demo = ["gradio>=5.0"]
dev = [
"pytest>=8.0",
"pytest-cov>=5.0",
"ranx>=0.3", # sólo se usa en tests/test_metrics.py para verificar rag/metrics.py contra la referencia (docs/DECISIONS.md #43); nunca en producción
]
# ponytail: `pandas` y `accelerate` no se importan en ningún módulo de ragsolver/scripts/demo (grep
# verificado); llegan igual como transitivas de `ranx`/`gradio` (pandas) y `mineru` (accelerate) en
# los entornos que ya los necesitan. Confirmado sin ellos instalados (docs/DECISIONS.md #78):
# tests/test_retriever_integration.py carga el embedder Y el reranker reales (rerank=True) en verde.
[tool.uv]
# ponytail: sin flash-attn por defecto (CUDA-only, no compila en ROCm — ver docs/PLAN_RAG.md §9.4).
# Añadir sólo si la máquina de ejecución es NVIDIA y se quiere el acelerador opcional.
[project.scripts]
ragsolver = "ragsolver.cli:main"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src/ragsolver"]