diff --git a/nlp-service/requirements.txt b/nlp-service/requirements.txt index fcf249a..4c7e201 100644 --- a/nlp-service/requirements.txt +++ b/nlp-service/requirements.txt @@ -1,30 +1,30 @@ # Kompl v2 nlp-service — commit 4. Pins per docs/research/2026-04-08-conversion-deps.md # and docs/research/2026-04-09-llm-compile.md. -fastapi==0.139.0 -uvicorn[standard]==0.51.0 +fastapi==0.141.1 +uvicorn[standard]==0.52.3 pydantic==2.13.4 httpx==0.28.1 -markitdown[all]==0.1.6 +markitdown[all]==0.1.7 # Promoted to a direct dep so routers/conversion.py can call # youtube-transcript-api WITHOUT going through MarkItDown for YouTube URLs. # Reason: MarkItDown's YouTubeConverter silently falls back to scraping the # watch-page HTML when no transcript exists (returns ~800 chars of footer # chrome — verified live on session 4a00f339). We need the transcript-vs-no- # transcript signal explicitly, which only the direct API exposes. -# markitdown[all]==0.1.6 constrains ~=1.0.0; Dockerfile upgrades to 1.2.x +# markitdown[all]==0.1.7 constrains ~=1.0.0; Dockerfile upgrades to 1.2.x # after pip install (1.0.x breaks on current YouTube timedtext responses). youtube-transcript-api~=1.0.0 # Commit 4: LLM compile. Use google-genai NOT google-generativeai (deprecated 2025-Q1). -google-genai==2.11.0 +google-genai==2.18.1 # Commit 4: async token-bucket rate limiter. Single uvicorn worker only — # InMemoryBucket is process-local; see research artifact section 3. pyrate-limiter==3.9.0 # Part 2a: multi-layer NLP extraction pipeline. -spacy==3.8.14 +spacy==3.8.15 rake-nltk==1.0.6 yake==0.7.3 keybert==0.9.0 -sentence-transformers==5.6.0 +sentence-transformers==5.7.0 # Dockerfile pins torch==2.6.0 (CPU wheel). torch 2.5.1 breaks transformers # 5.x imports; torch >=2.7 breaks sentence-transformers meta-device init # (NotImplementedError on .to(device)). @@ -35,7 +35,7 @@ transformers==5.9.0 pytextrank==3.3.0 scikit-learn==1.9.0 # nltk: required by rake-nltk (stopwords + punkt tokenizer data). -nltk==3.10.0 +nltk==3.10.3 # Part 2b: fast Levenshtein/Jaro-Winkler matching for entity resolution. rapidfuzz>=3.14.5 # Recovers truncated JSON from Gemini 2.5 Flash repetition-loop bug