Funk-lab/ansible/roles/rag/README.md
alkatrazz 0d4dfcc3f5 feat(rag): embedder dédié nomic-embed-text (768) au lieu de qwen3-8b
funk-docs utilisait le modèle de CHAT qwen3-8b (:1234, 4096 dim) comme
embedder → similarités quasi indiscernables (tous les scores ~0.96, ranking
médiocre). Bascule sur l'instance dédiée nomic-embed-text (:1238, 768 dim) —
la même que la mémoire STT — déjà identifiée comme roadmap dans le README.

rag-ingest ET rag-query alignés (même modèle/dim). Seuil rag-query abaissé
0.60→0.40 (nomic étale les scores plus bas). Collection recréée en 768.

Mesure : scores désormais étalés 0.61-0.74, et les bons docs ressortent en
tête (dnsmasq→dnsmasq.md, nftables→phase gateway, wedge→llama_server.md).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 21:29:38 +02:00

1.8 KiB

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:1238/v1/embeddings (instance llama-embed dédiée)
embed_model / dim nomic-embed-text / 768
rag_collection funk-docs

Ces valeurs sont les défauts codés dans rag-ingest/rag-query (surchargeables par env : EMBED_URL, EMBED_MODEL, RAG_VECTOR_DIM, RAG_MIN_SCORE, RAG_EXCLUDE). rag-ingest et rag-query doivent utiliser le même modèle/dim, sinon la recherche renvoie n'importe quoi.

Workflow après modification de admin/

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 l'instance llama-embed up (:1238, nomic-embed-text) — sinon connection refused
  • rag-ingest exclut hermes/builtin/ (rapports auto-générés par hermes-auto-improve) via RAG_EXCLUDE — ils noyaient sinon la vraie doc (~84% des points)
  • Changement de modèle d'embedding = changement de dimension → il faut supprimer puis recréer la collection (curl -X DELETE …/collections/funk-docs avant rag-ingest), sinon Qdrant refuse un vecteur de dim différente