Demandez à l'Oracle
Comment fonctionne l'assistant IA intégré au site — RAG sur les documents, servi par votre propre Ollama sur votre Ollama.
Le bouton jaune dans le coin de chaque page est l’Oracle Nibiru — un assistant IA basé sur cette documentation même. Posez-lui des questions sur le routage, les modules, la CLI, la couche Smarty, le sens de pageAction(). Il cite ses sources.
Ce qui le propulse
Section intitulée « Ce qui le propulse »Par défaut, l’Oracle fonctionne entièrement sur votre propre infrastructure :
| Calque | Backend | Modèle par défaut |
|---|---|---|
| Chat (génération de réponse) | Ollama sur https://your-ollama-host.example | qwen2.5-coder:14b |
| Embeddings (retrieval RAG) | Ollama sur https://your-ollama-host.example | nomic-embed-text |
Aucune clé d’API payante. Aucune donnée ne quitte votre réseau. Le cluster Ollama à 5 GPU que vous exécutez déjà gère la charge.
Si vous préférez utiliser un fournisseur payant — Claude pour les conversations, OpenAI pour les embeddings — définissez LLM_PROVIDER=anthropic et/ou EMBED_PROVIDER=openai ainsi que les clés d’API correspondantes. Les chemins de code sont identiques.
Comment ça fonctionne
Section intitulée « Comment ça fonctionne »flowchart LR A[User question] --> B[Embed via Ollama<br/>nomic-embed-text] B --> C[Cosine search<br/>against pre-computed<br/>doc-chunk index] C --> D[Top-K chunks] D --> E[Ollama chat<br/>qwen2.5-coder:14b<br/>system + retrieved context] E --> F[Answer + source list] F --> G[Render in chat UI]- À l’heure de la construction, le site de documentation parcourt chaque page Markdown, la découpe en morceaux d’environ 600 jetons aux frontières H2/H3, intègre chaque morceau avec
nomic-embed-text, et écrit le résultat danspublic/oracle-index.json. Aucune base de données n’est nécessaire. - À l’heure de la requête, la question de l’utilisateur est intégrée de la même manière, les morceaux les plus proches sont récupérés par similitude cosinus, et ils sont assemblés dans une invite système pour le modèle de conversation.
- Le modèle de conversation répond dans la langue de l’utilisateur, en citant les morceaux source par URL.
Fichiers
Section intitulée « Fichiers »| Fichier | Objectif |
|---|---|
scripts/lib/providers.mjs | Adaptateur partagé de conversation + intégration (Ollama / Anthropic / OpenAI). |
scripts/build-oracle-index.mjs | Construit public/oracle-index.json au moment de la construction. |
public/oracle-index.json | L’index d’intégration engagé/produit à la construction. |
src/pages/api/oracle.ts | Le point final SSR auquel le widget de conversation POSTe. Il sert également une requête GET pour les diagnostics. |
src/components/CosmicHeader.astro | Le lanceur flottant + l’interface utilisateur de conversation. |
Configuration unique sur votre Ollama.ai
Section intitulée « Configuration unique sur votre Ollama.ai »Extrayez les deux modèles que l’Oracle utilise :
curl https://your-ollama-host.example/api/pull -d '{"name":"qwen2.5-coder:14b"}'curl https://your-ollama-host.example/api/pull -d '{"name":"nomic-embed-text"}'qwen2.5-coder:14b est déjà installé (vérifié en direct). nomic-embed-text est la pièce manquante ; sans elle, l’Oracle fonctionne en mode conversationnel uniquement (sans RAG).
Configuration
Section intitulée « Configuration »L’Oracle lit sa configuration à partir des variables d’environnement. Des valeurs par défaut sensibles sont intégrées.
# Default mode (Ollama on your Ollama instance)LLM_PROVIDER=ollama # defaultOLLAMA_BASE_URL=https://your-ollama-host.example # defaultOLLAMA_CHAT_MODEL=qwen2.5-coder:14b # defaultOLLAMA_EMBED_MODEL=nomic-embed-text # default
# Optional fallbacksLLM_PROVIDER=anthropicANTHROPIC_API_KEY=sk-ant-...ANTHROPIC_MODEL=claude-haiku-4-5-20251001
EMBED_PROVIDER=openaiOPENAI_API_KEY=sk-...OPENAI_EMBED_MODEL=text-embedding-3-small
# BehaviourORACLE_TOP_K=6ORACLE_MAX_TOKENS=800Point d’accès des diagnostics
Section intitulée « Point d’accès des diagnostics »GET /api/oracle retourne la configuration actuelle (sans secrets) :
curl https://nibiru-framework.com/api/oracle{ "status": "ok", "llm": { "provider": "ollama", "ollamaUrl": "https://your-ollama-host.example", "model": "qwen2.5-coder:14b" }, "embed": { "provider": "ollama", "ollamaUrl": "https://your-ollama-host.example", "model": "nomic-embed-text" }, "index": { "present": true, "chunks": 177, "provider": "ollama", "model": "nomic-embed-text" }}Pratique pour vérifier qu’un conteneur fraîchement déployé utilise le backend que vous attendiez.
Confidentialité
Section intitulée « Confidentialité »- Les questions et l’historique de conversation sont envoyés à votre serveur Ollama. Ils ne sont pas stockés par le site de documentation ou par Anthropic/OpenAI dans la configuration Ollama par défaut.
- La clé OpenAI (si elle est utilisée) est invoquée uniquement pour les embeddings.
- Aucune analyse ni aucun cookie n’est défini par le widget Oracle lui-même.
Pourquoi un modèle formé avec Nibiru ?
Section intitulée « Pourquoi un modèle formé avec Nibiru ? »La feuille de route (voir Feuille de route de l’IA) consiste à affiner un LoRA sur l’exportation du Corpus d’entraînement afin que le modèle de conversation lui-même soit natif Nibiru. Une fois cela prêt, le OLLAMA_CHAT_MODEL de l’Oracle passe au modèle affiné et la promesse système se simplifie. Même code, réponses plus intelligentes.
Essayez-le
Section intitulée « Essayez-le »Ouvrez l’Oracle (la planète ambrée en bas à droite) et essayez l’un de ces éléments :
- Comment créer un nouveau module ?
- Quelle est la fonction de
pageAction? - Montrez-moi comment gérer un point de terminaison JSON.
- Wie schreibe ich eine Migration? (Le français fonctionne aussi bien.)
- Expliquez le flux d’authentification.