- Add ia_dev submodule (projects/smart_ide on forge 4nk) - Document APIs, orchestrator, gateway, local-office, rollout - Add systemd/scripts layout; relocate setup scripts - Remove obsolete nginx/enso-only docs from this repo scope
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 | services/langextract-api/README.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/