- 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
36 lines
2.2 KiB
Markdown
36 lines
2.2 KiB
Markdown
# LangExtract — API locale (`services/langextract-api`)
|
||
|
||
## Objectif
|
||
|
||
Exposer [LangExtract](https://github.com/google/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`, options `fence_output` / `use_schema_constraints` selon la doc amont).
|
||
|
||
## Exploitation
|
||
|
||
| Élément | Détail |
|
||
|--------|--------|
|
||
| Code | [services/langextract-api/README.md](../../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](../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](https://github.com/google/langextract)
|
||
- PyPI : [https://pypi.org/project/langextract/](https://pypi.org/project/langextract/)
|