**Motivations:** - Single canonical documentation tree under docs/; reduce drift between README copies. **Evolutions:** - Add docs/repo/ with operational guides (cron, systemd, projects, logs, docv, ia_dev, services, scripts, extension). - Replace scattered README.md files with pointers to docs/repo/*.md. - Refresh docs/README.md index and cross-links across docs/, .cursor rules/agents. - Bump ia_dev submodule to matching doc pointer commits.
2.2 KiB
LangExtract — API locale (services/langextract-api)
Objectif
Exposer LangExtract (Google, Apache-2.0) comme service HTTP local : à partir d’un texte, d’une consigne et d’exemples few-shot, produire des extractions structurées (classes, attributs, texte extrait) avec ancrage dans le texte lorsque le modèle et la librairie le fournissent (char_interval).
Périmètre
- Pas de logique métier supplémentaire : l’API se limite à valider le JSON, appeler
langextract.extract, sérialiser le résultat. - Les modèles cloud (Gemini, etc.) suivent la configuration amont (clés API, quotas).
- Les modèles locaux passent typiquement par Ollama (
model_url, optionsfence_output/use_schema_constraintsselon la doc amont).
Exploitation
| Élément | Détail |
|---|---|
| Code | repo/service-langextract.md |
| Hôte / port | 127.0.0.1 et port par défaut 37141 (voir README) |
| Auth | Si LANGEXTRACT_SERVICE_TOKEN est défini : en-tête Authorization: Bearer … obligatoire sur POST /extract |
| Santé | GET /health |
Schéma de requête (POST /extract)
Champs principaux : text, prompt_description, examples[] (text, extractions[] avec extraction_class, extraction_text, attributes), model_id, et options optionnelles alignées sur l’API Python (model_url, extraction_passes, max_workers, max_char_buffer, api_key, fence_output, use_schema_constraints).
Réponse : { "documents": [ { "extractions": [ … ] } ] } avec, par extraction, extraction_class, extraction_text, attributes, et char_interval { "start", "end" } si présent.
Intégration architecture
Ce service complète le socle décrit dans system-architecture.md : un client (éditeur type Lapce, gateway, script) peut appeler l’extraction structurée sans embarquer Python dans l’UI, tant que le réseau local et le token le permettent.
Références
- Dépôt amont : https://github.com/google/langextract
- PyPI : https://pypi.org/project/langextract/