6e2e7386ad8f92afd8ac35e3fe205c4f6a2755be
Implemented: - context_budget.py: ContextBudgetConfig (Pydantic, frozen) mit 4 Stage-Limits, validation (ge/le), get_limit(), total_max_tokens, stage_keys - context_budget.py: ContextBudgetTracker mit track_tokens(), get_usage(), is_exhausted(), reset_stage(), reset_all(), total_usage, elapsed_seconds - context_budget.py: ContextBudgetExhaustedError mit stage_name, used_tokens, limit_tokens - orchestrator.py: _track_context_tokens() Methode, context_budget_config/tracker init - orchestrator.py: context_budget_tracker property export - __init__.py: exports ContextBudgetConfig, ContextBudgetExhaustedError, ContextBudgetTracker - priority_queue.py: __aenter__/__aexit__ auf async geandert (Testfix) - test_context_budget.py: 28 Tests (DefaultConfig, TrackAccumulation, ExhaustedError, GetUsage, Reset, IsExhausted, InvalidStageNames, InvalidTokens) - test_context_budget_integration.py: 6 Tests (Orchestrator-Integration) - HANDOFF.md: Stage 20 abgeschlossen dokumentiert Tests: 34 passed (28 unit + 6 integration) + 14 performance = 48 total
============================================================
NSCT — Neutral Search Crawler Tool
============================================================
NSCT ist ein vollständig lokal betreibbares, containerisiertes Recherche- und Analyse-System. Es durchsucht Webquellen, extrahiert Inhalte, vergleicht Behauptungen (Claims) aus verschiedenen Quellen und erzeugt einen neutralen, quellengestützten Bericht.
NSCT steht für: Neutral Search Crawler Tool.
Architektur-Übersicht
┌─────────────┐ ┌──────────────┐ ┌───────────────┐
│ User / CLI │───▶│ NSCT API │───▶│ FastAPI / │
│ │ │ (FastAPI) │ │ uvicorn │
└─────────────┘ └──────────────┘ └───────────────┘
│
┌────────────┼─────────────┐
▼ ▼ ▼
┌───────────┐ ┌─────────┐ ┌──────────┐
│ LLM │ │ Vision │ │ Audio │
│ Provider │ │ Model │ │ Model │
└───────────┘ └─────────┘ └──────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────┐
│ PostgreSQL (evidence store) │
└─────────────────────────────────────┘
▲
│
┌──────────────┐
│ SearXNG │ (optional search backend)
└──────────────┘
Quick Start
Docker Compose
# 1. Kopiere die Beispiel-Env
cp .env.example .env
# 2. Trage deine Endpunkte ein (LLM, Vision, Audio, PostgreSQL)
# 3. Starte alles
docker compose up --build
# 4. Prüfe den Health-Check
curl http://localhost:8080/health
Die API ist danach unter http://localhost:8080 erreichbar.
/docs zeigt die auto-generierte Swagger-Dokumentation (nur bei NSCT_DEBUG=true).
Projektstruktur
nsct/
├── src/nsct/
│ ├── api/ # FastAPI-Routen
│ ├── models/ # Pydantic-Schemata
│ ├── providers/ # Abstrakte Provider-Interfaces
│ ├── security/ # SSRF-Schutz, URL-Validierung
│ └── storage/ # SQLAlchemy Models + Engine
├── tests/ # pytest-Tests
├── docker-compose.yml
├── Dockerfile
├── pyproject.toml
├── README.md
├── ARCHITECTURE.md
├── SECURITY.md
├── METHODOLOGY.md
├── API.md
├── DEPLOYMENT.md
└── .env.example
Status
Stage 0 — Repository und Architekturgrundlage.
Stage 0 enthält:
- Vollständige Projektstruktur mit allen Konfigurationsdateien
- Pydantic v2 Datenmodelle
- SQLAlchemy 2.0 Persistenzmodelle
- Sicherheitshards (SSRF-Schutz, IP-Blocklist)
- Provider-Interfaces (abstrakte Basisklassen)
- Health-, Ready- und Provider-Endpunkte
- Strukturiertes Logging
- Docker-Konfiguration für PostgreSQL, SearXNG und NSCT
Die eigentliche Evidence-Pipeline (Search, Fetch, Extract, Claim, Compare, Report) wird in späteren Stages implementiert.
Lizenz
MIT
Description
Languages
Python
99.9%
Dockerfile
0.1%