4NK a1ac5ae66b Add Chandra OCR service (datalab-to upstream submodule, CLI wrapper)
- 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
2026-04-03 22:27:18 +02:00

47 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Chandra OCR (amont)
[Chandra OCR 2](https://github.com/datalab-to/chandra) convertit images et PDF en **Markdown**, **HTML** ou **JSON** en conservant la mise en page (tableaux, formulaires, écriture manuscrite, math). Code sous **Apache-2.0** ; les **poids du modèle** suivent une licence dédiée (**MODEL_LICENSE** dans `upstream/`) — voir le [dépôt amont](https://github.com/datalab-to/chandra).
Ce répertoire **`services/chandra/`** contient :
- **`upstream/`** : sous-module Git vers **datalab-to/chandra**.
- **`run-chandra.sh`** : lance la CLI **`chandra`** depuis lenvironnement installé dans **`upstream/`** (`uv` ou `.venv`).
- **`.env.example`** : variables usuelles (vLLM, modèle) ; lamont charge aussi **`local.env`** dans **`upstream/`** (non versionné).
## Installation (une fois par poste)
Depuis les sources du sous-module (recommandé ici) :
```bash
cd services/chandra/upstream
uv sync
# optionnel : modèle local Hugging Face (lourd)
# uv sync --extra hf
```
Sans **`uv`** : créer un venv, puis `pip install -e ".[hf]"` ou `pip install -e .` selon le mode dinférence (voir [README amont](https://github.com/datalab-to/chandra/blob/master/README.md)).
**Inférence vLLM** (léger côté client si le serveur tourne ailleurs) : démarrer le serveur comme documenté amont (`chandra_vllm` après install du paquet).
## Usage
```bash
cd services/chandra
./run-chandra.sh input.pdf ./output --method vllm
# ou --method hf si dépendances HF installées
```
Options CLI (`--page-range`, `--max-workers`, etc.) : même interface que la commande **`chandra`** amont.
## Rôle dans smart_ide
- **OCR / numérisation structurée** pour pipelines documentaires, en amont de **PageIndex** ([PageIndex](../pageindex/README.md)) ou d**AnythingLLM** / **docv**.
- **Pas de service HTTP** dans ce dépôt : exécution **CLI** (comme **`services/pageindex/`**).
Documentation : [docs/repo/service-chandra.md](../../docs/repo/service-chandra.md), [docs/features/chandra-ocr-documents.md](../../docs/features/chandra-ocr-documents.md).
## Ressources amont
- Dépôt : [datalab-to/chandra](https://github.com/datalab-to/chandra)
- Paquet PyPI : `chandra-ocr` (alternative à linstallation depuis **`upstream/`**)