06ea18f425
Highlights: - Streaming chat chunks + web search auto (Sherlock/SearXNG) - pino structured logging (43->0 console.log) - Zod validation (19 schemas API + storage) - Qwen3-TTS 0.6B + 33 persona voices - Docling + bge-reranker RAG pipeline - React lazy routes (-50% bundle), virtualized chat - SEC-01->05 all resolved - A11y WCAG (40 ARIA attrs) - Perf + error telemetry endpoints - Systemd units (TTS, LightRAG, reranker) - p-limit Ollama, WS reconnect, signal handlers - createId thread-safe via crypto.randomBytes (lot-59) - Hyperparam bounds validation with Zod schema (lot-60) - DPO extractDPOPairs warns on empty pairs (lot-61) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
3.1 KiB
3.1 KiB
OSS Priorities - 2026-03-17
Decision
Priorite d'integration pour le cycle actuel:
SearXNGcomme backend de recherche self-hosted.DoclingetMinerUcomme spike document parsing adjacent.MCP TypeScript SDKcomme standard d'outillage/personas.LiveKit Agents JScomme candidat principal pour le lot voice/WebRTC.
Projets gardes comme benchmarks produit, pas comme dependances embarquees:
Open WebUILibreChatAnythingLLM
Shortlist
| Projet | Role retenu | Pourquoi maintenant | Source |
|---|---|---|---|
| SearXNG | integration directe | moteur self-hosted, API JSON, alignement avec la recherche web locale | https://github.com/searxng/searxng , https://docs.searxng.org/ |
| Docling | spike prioritaire | conversion multi-format, OCR, sorties Markdown/JSON, execution locale | https://docling-project.github.io/docling/ |
| MinerU | spike prioritaire | PDF complexes, OCR CPU/GPU, oriente extraction LLM | https://github.com/opendatalab/MinerU |
| MCP TypeScript SDK | integration directe | standardiser tools/resources/prompts cote personas et services | https://github.com/modelcontextprotocol/typescript-sdk |
| LiveKit Agents JS | lot suivant | voice/WebRTC temps reel en Node, bon fit pour la suite voice-mcp | https://github.com/livekit/agents-js |
Benchmarks produit
| Projet | Usage retenu | Source |
|---|---|---|
| Open WebUI | benchmark UX local/Ollama/RAG | https://github.com/open-webui/open-webui |
| LibreChat | benchmark multi-provider, auth, MCP, memory | https://www.librechat.ai/ , https://github.com/LibreChat-AI |
| AnythingLLM | benchmark workspaces/RAG/agents | https://github.com/Mintplex-Labs/anything-llm |
Notes d'adoption
SearXNGest le seul candidat a brancher dans le cycle current sans attendre une refonte majeure.DoclingetMinerUdoivent rester adjacents tant que la boucleaudit -> test -> resume -> sync-docs -> purgen'est pas stabilisee.LiveKit Agents JSne doit pas entrer dans le cycle backend immediat; il reste assigne au lot voice-mcp.BGE-M3reste un spike benchmark, pas une decision de remplacement immediate.
Seams prets
| Zone | Etat actuel | Petite action utile maintenant |
|---|---|---|
| Recherche web | apps/api/src/web-search.ts tente SearXNG puis WEB_SEARCH_API_BASE puis DuckDuckGo, et scripts/mcp-server.js a deja un fallback SearXNG. |
Utiliser scripts/health-doc-search.sh search --strict pour valider le endpoint JSON et garder le fallback visible en ops. |
| PDF/doc parsing | apps/api/src/ws-upload-handler.ts appelle deja scripts/extract_pdf_docling.py pour les PDFs et scripts/extract_document.py pour le reste. |
Utiliser scripts/health-doc-search.sh docs pour verifier les deps docling/PyMuPDF et la presence du futur chemin magic_pdf MinerU. |
| Docs de reference | docs/DOCUMENT_AI_STATE_OF_ART_2026.md recommande Docling d'abord, MinerU ensuite. |
Laisser le produit inchangé et documenter l'ordre d'adoption avant tout branchement runtime. |
Commande de preparation
bash scripts/health-doc-search.sh all --verbose