- Comment block mapping services to submodule paths (carbonyl/chandra/pageindex/langextract upstream) - Note agent-regex-search-api and claw-harness-api as in-repo only - Add services/langextract-api/upstream → google/langextract (shallow) - Document submodule and optional pip install -e in service-langextract.md
1.9 KiB
langextract-api (services/langextract-api/)
API HTTP locale sur 127.0.0.1 autour de google/langextract : extractions structurées depuis du texte, avec ancrage caractères optionnel.
Le dépôt amont est aussi référencé comme sous-module Git : services/langextract-api/upstream (voir .gitmodules à la racine du monorepo). Après git clone, exécuter git submodule update --init --recursive services/langextract-api/upstream si le dossier est vide. Par défaut l’API installe la librairie via PyPI (requirements.txt). Pour utiliser la révision du sous-module : pip install -e ./upstream dans le venv et retirer la ligne langextract du fichier requirements.txt pour cette installation.
Variables
| Variable | Obligatoire | Description |
|---|---|---|
LANGEXTRACT_SERVICE_TOKEN |
non | Si défini, Authorization: Bearer requis. |
LANGEXTRACT_API_HOST |
non | Défaut 127.0.0.1 |
LANGEXTRACT_API_PORT |
non | Défaut 37141 |
LANGEXTRACT_API_KEY |
non | Modèles cloud (ex. Gemini) côté serveur. |
Endpoints
GET /healthPOST /extract— corps JSON aligné sur les paramètresextract()amont (text,prompt_description,examples,model_id,model_urlpour Ollama, etc.)
Run
cd services/langextract-api
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
export LANGEXTRACT_SERVICE_TOKEN='…'
uvicorn app.main:app --host "${LANGEXTRACT_API_HOST:-127.0.0.1}" --port "${LANGEXTRACT_API_PORT:-37141}"
Pour Ollama : model_id (ex. gemma2:2b), model_url http://127.0.0.1:11434, souvent fence_output: false, use_schema_constraints: false selon amont.