馃搫 feat: Add Opt-In DOCX Extraction Profile - #330
lia-by-librechat[bot] wants to merge 2 commits into
Conversation
|
Ready for review at pushed head This is a disabled-by-default DOCX Verification on this head: 323 non-container tests passed, 6 skipped; Black, compilation, pip compatibility, and diff checks passed. Container-backed PostgreSQL verification was attempted but blocked by an inaccessible localhost port from the sandbox; the CI lane will exercise it. Subsystem review covered parser refusal before fallback, bounded input/output and admission, media-omission signaling, auth gates, worker crash/timeout/cancellation and temp cleanup, legacy |
|
Ready for review at new pushed head Follow-up to the first working pass: the opt-in extraction router is now absent at startup unless The real HTTP DOCX/worker contract checks pass (21 tests). The complete non-container suite has been dispatched on this head. The prior head passed GitHub CI including its configured database lane, but that CI result does not cover this follow-up commit; the new CI run is the authoritative one. The sandbox cannot reach its own Docker-published localhost port, so local SQL assertions remain unverified. |
Summary
Build the first opt-in service-side slice of LibreChat's document-parsing consolidation: a versioned
POST /v1/extractprofile for DOCX using the Python AnyDoc 0.1.3 binding. This matches the AnyDoc version in Marco's LibreChat PR #14701 and includes its 1,803-byte structured DOCX fixture for real contract tests.This does not switch LibreChat callers, change RAG
/textor ingestion, re-embed collections, or enable OCR or reranking. The existing upload, inspection and persistence paths remain authoritative until caller-specific parity is proven.Mechanism
JWT_SECRETand a verified userid, even where the legacy API permits unauthenticated requests. Feature disabled by default: the route is not registered on startup, so it does not parse multipart bodies or appear in OpenAPI when off.EXTRACTION.md. The wheel is separately pinned inrequirements.extraction.txtand installed in CI. Current default Docker images do not include it; an opt-in deployment must install it into a custom image.Verification
/text, retrieval, authorization, ingestion, loader testspip check,git diff --checklocalhostport was unreachable from this worker network namespace; fixture setup failed before any SQL assertions. CI runs the real container lane.Installation note: full lite requirements plus test requirements still conflict at
httpxvia the existing Google GenAI pin. For local verification, installed the repo-pinned lite packages without that conflicting provider, plustest_requirements.txtand the new optional wheel. No existing dependency pins changed.Known limits / next slice