- Submodule services/chandra/upstream (shallow), run-chandra.sh, .env.example - Docs: service-chandra, chandra-ocr-documents; link from PageIndex feature - Index updates in docs/README, repo/README, services, system-architecture
51 lines
4.5 KiB
Markdown
51 lines
4.5 KiB
Markdown
# Services sur l’hôte (socle technique)
|
||
|
||
Ce document décrit les **services logiciels** typiques sur l’**hôte** (serveur distant **ou** machine IA unique — voir [deployment-target.md](./deployment-target.md) et [platform-target.md](./platform-target.md)), en complément de [system-architecture.md](./system-architecture.md). **Ollama** et **AnythingLLM** peuvent cohabiter sur le même hôte que les micro-services ; l’**orchestrateur** HTTP ([features/orchestrator-api.md](./features/orchestrator-api.md)) et **`ia-dev-gateway`** ([features/ia-dev-service.md](./features/ia-dev-service.md)) sont spécifiés pour unifier les appels depuis Lapce ou le front.
|
||
|
||
## Ollama
|
||
|
||
- **Rôle** : inférence LLM locale.
|
||
- **Accès** : URL/port configurés sur l’hôte (souvent `127.0.0.1:11434` côté serveur) ; depuis le client, tunnel SSH si besoin.
|
||
|
||
## AnythingLLM
|
||
|
||
- **Rôle** : RAG, mémoire documentaire, **un workspace par projet**.
|
||
- **Déploiement** : souvent Docker sur le même hôte que les dépôts ; chemins de persistance sur l’hôte.
|
||
- Détail : [anythingllm-workspaces.md](./anythingllm-workspaces.md).
|
||
|
||
## ONLYOFFICE
|
||
|
||
- **Rôle** : bureautique métier (documents, feuilles, présentations), édition riche.
|
||
- Utilisé dans la couche **doc-services** de l’architecture ; ne pas confondre avec Local Office.
|
||
|
||
## Local Office (`services/local-office/`)
|
||
|
||
- **Rôle** : **API REST** pour applications tierces ou agents : upload de fichiers Office, métadonnées, téléchargement, **commandes programmatiques** sur les **docx** (`replaceText`, `insertParagraph`). Stockage fichiers + SQLite ; isolation par clé `X-API-Key` ; rate limiting.
|
||
- **Emplacement dans le monorepo** : [`../services/local-office/`](../services/local-office/).
|
||
- **Documentation** : [features/local-office.md](./features/local-office.md) et [repo/service-local-office.md](./repo/service-local-office.md).
|
||
- **Sécurité** : définir `API_KEYS` via variables d’environnement ou fichiers hors dépôt (voir `.env.example` dans `services/local-office/`). En production, préférer **bind `127.0.0.1`** derrière un reverse proxy TLS plutôt que `0.0.0.0` exposé.
|
||
- **Périmètre fonctionnel** : édition par commandes **docx** ; xlsx/pptx peuvent être stockés mais les commandes d’édition peuvent renvoyer **400** selon l’implémentation actuelle.
|
||
|
||
## docv (hors monorepo, contrat sous `services/docv/`)
|
||
|
||
- **Rôle** : gestion documentaire métier pour les projets Enso ; processus HTTP dans le **dépôt docv**, pas dans smart_ide.
|
||
- **Données** : convention **`${PROJECTS_CLONE_ROOT}/<projet>/data/`** (souvent **`../projects/<projet>/data`** relatif à smart_ide) ; variable **`DOCV_PROJECTS_ROOT`** côté docv.
|
||
- **Documentation** : [features/docv-service-integration.md](./features/docv-service-integration.md), [repo/docv-services-directory.md](./repo/docv-services-directory.md), [API/docv.md](./API/docv.md).
|
||
|
||
## Micro-services HTTP sous `services/`
|
||
|
||
Services d’appoint sur **`127.0.0.1`** (souvent auth **Bearer**) : Git devtools, **anythingllm-devtools** (AnythingLLM + RAG initial), LangExtract, recherche regex, proxy claw, **`ia-dev-gateway`** (agents / runs stub), **`smart-ide-orchestrator`** (routage intentions) — voir tableau dans [system-architecture.md](./system-architecture.md), la **référence API** dans [`API/README.md`](./API/README.md), et l’index d’exploitation [repo/README.md](./repo/README.md) (fichiers `repo/service-*.md`). **Carbonyl** (`services/carbonyl/`) n’est pas un listener HTTP : navigateur terminal pour prévisualiser des URLs (ex. déploiement test) — [repo/service-carbonyl.md](./repo/service-carbonyl.md).
|
||
|
||
**PageIndex** (`services/pageindex/`) n’est pas un listener HTTP : outil Python (sous-module [VectifyAI/PageIndex](https://github.com/VectifyAI/PageIndex)) pour produire un **index arborescent** sémantique sur PDF / Markdown, en complément du RAG **AnythingLLM** — [repo/service-pageindex.md](./repo/service-pageindex.md).
|
||
|
||
**Chandra OCR** (`services/chandra/`) n’est pas un listener HTTP : CLI (sous-module [datalab-to/chandra](https://github.com/datalab-to/chandra)) pour **OCR** PDF / images vers Markdown, HTML, JSON avec layout — [repo/service-chandra.md](./repo/service-chandra.md).
|
||
|
||
## Documentation liée
|
||
|
||
- [platform-target.md](./platform-target.md)
|
||
- [features/local-office.md](./features/local-office.md)
|
||
- [system-architecture.md](./system-architecture.md)
|
||
- [anythingllm-workspaces.md](./anythingllm-workspaces.md)
|
||
- [API/README.md](./API/README.md)
|
||
- [features/docv-service-integration.md](./features/docv-service-integration.md)
|