# rag

Déploie la chaîne RAG sur storage-01 : scripts d'ingestion/requête + copie des docs + skill Hermes.

## Ce que fait le rôle

- Crée `/srv/data/rag/docs`
- Déploie `/usr/local/bin/rag-ingest` et `/usr/local/bin/rag-query`
- **Synchronise `admin/` du repo vers `/srv/data/rag/docs/`** (copie indexée)
- Déploie le skill `rag-docs` dans les skills globaux Hermes + le profil funk-ai

## Variables principales

| Variable | Défaut |
|---|---|
| `rag_docs_dir` | `/srv/data/rag/docs` |
| `qdrant_url` | `http://127.0.0.1:6333` |
| `embed_url` | `http://192.168.10.20:1234/v1/embeddings` (llama-server GPU) |
| `embed_model` | `qwen3-8b` |
| `rag_collection` | `funk-docs` |

## Workflow après modification de `admin/`

```bash
ansible-playbook -i inventory.yml playbooks/storage-01.yml --tags rag   # re-sync les docs
ssh storage-01 /usr/local/bin/rag-ingest                                # ré-indexe dans Qdrant
```

(`hermes-auto-improve` fait aussi un rsync + rag-ingest en fin de run.)

## Caveats

- **Dépendances fortes** : Qdrant up (`:6333`) et llama-server GPU up (`:1234`) — sinon connection refused
- `rag-ingest` parcourt **tout** `/srv/data/rag/docs` y compris `hermes/builtin/` (rapports du bot) — pollution potentielle des résultats, exclusion à prévoir
- Les embeddings viennent du modèle de génération (Qwen3-8B) — un modèle d'embedding dédié (nomic-embed, bge-m3) est dans la roadmap
