Multi-stage evidence-grounded inference architecture replacing the monolithic 9B model extraction pipeline. CPU-first specialist services handle routine extraction while the 9B vLLM model is preserved for semantic adjudication of ambiguous cases. Key components: - Capability-aware inference gateway (OpenAI-compatible + Ollama) - Endpoint registry with DB migrations and REST API - Sentence-aware document segmenter (property tests) - Deterministic financial parsing with offset integrity - Symbol resolution with ambiguity detection - Specialist service (GLiNER2, dynamic batching, K8s deployment) - Company-specific sentiment (FinBERT, calibration) - Retrieval-based novelty and duplicate detection - Confidence calibration pipeline - Deterministic routing engine (property tests) - 9B adjudication layer with VRAM gating - Stock-specific impact model (features, labels, baseline, trained) - Pipeline orchestrator (state machine, queues, leases, feature flags) - Bounded parallelism (async workers, semaphore, load shedding) - Observability (tracing, metrics, alerts) - Compatibility adapter (v3→v2 golden mapping tests) - Shadow/canary promotion framework - Active learning and fine-tuning pipeline Test results: 1,161 tests pass, ruff lint clean. All 282 spec tasks completed.
45 lines
571 B
Plaintext
45 lines
571 B
Plaintext
# Web framework
|
|
fastapi>=0.115.0
|
|
uvicorn>=0.30.0
|
|
pydantic>=2.0.0
|
|
|
|
# Database
|
|
asyncpg>=0.30.0
|
|
redis>=5.0.0
|
|
|
|
# Object storage
|
|
minio>=7.2.0
|
|
|
|
# HTTP client
|
|
httpx>=0.27.0
|
|
|
|
# JSON repair for LLM output
|
|
json-repair>=0.59.0
|
|
|
|
# JSON Schema validation
|
|
jsonschema>=4.20.0
|
|
|
|
# Web scraping
|
|
beautifulsoup4>=4.12.0
|
|
requests>=2.31.0
|
|
|
|
# Data / Lakehouse
|
|
pyarrow>=17.0.0
|
|
pandas>=2.2.0
|
|
|
|
# Trino
|
|
trino>=0.330.0
|
|
|
|
# Observability
|
|
prometheus_client>=0.21.0
|
|
|
|
# YAML parsing (used by K8s security tests)
|
|
pyyaml>=6.0.0
|
|
|
|
# Testing
|
|
pytest>=8.0.0
|
|
pytest-asyncio>=0.24.0
|
|
|
|
# Code quality
|
|
ruff==0.15.10
|