コンテンツにスキップ
Nibiru docsv0.9.2

Oracleに尋ねる

サイト内のAIアシスタントの仕組み — ドキュメント上のRAG、あなたの自社のOllamaで提供されています。

Stable Reading time ~ 1 min Edit on GitHub

各ページのコーナーにあるアンバー色のボタンは、Nibiru Oracle です — このドキュメンテーションに基づいたAIアシスタントです。ルーティング、モジュール、CLI、Smartyレイヤー、pageAction() の意味について尋ねることができます。それはそのソースを引用します。

それが動いているのは何ですか

Section titled “それが動いているのは何ですか”

デフォルトでは、Oracleはあなたのインフラストラクチャ上で完全に動作します

レイヤーバックエンドデフォルトモデル
チャット(回答生成)Ollama on https://your-ollama-host.exampleqwen2.5-coder:14b
エンベディング(RAG検索)Ollama on https://your-ollama-host.examplenomic-embed-text

有料のAPIキーはありません。データはあなたのネットワーク内に留まります。既に実行している5-GPUのOllamaクラスターが負荷を処理します。

有料プロバイダを使用したい場合は、Claude(チャット)とOpenAI(埋め込み)を設定します。LLM_PROVIDER=anthropic および/又は EMBED_PROVIDER=openai を設定し、対応するAPIキーも追加してください。コードパスは同一です。

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]
  1. ビルド時に、ドキュメントサイトはすべてのMarkdownページを走査し、H2/H3境界で約600トークンずつに分割し、各チャンクにnomic-embed-textで埋め込み、結果をpublic/oracle-index.jsonに書き出します。データベースは必要ありません。
  2. リクエスト時に、ユーザーの質問も同じように埋め込み、コサイン類似度で最も近いチャンクを取り出し、それらをチャットモデルのシステムプロンプトに組み立てます。
  3. チャットモデルは、ユーザーの言語で回答し、ソースチャンクをURLで引用します。
ファイル機能
scripts/lib/providers.mjs共有チャット + 埋め込みアダプター (Ollama / Anthropic / OpenAI)。
scripts/build-oracle-index.mjsビルド時に public/oracle-index.json を構築します。
public/oracle-index.jsonコミットされた/ビルド出力の埋め込みインデックスです。
src/pages/api/oracle.tsチャットウィジェットが POST する SSR エンドポイント。診断用の GET も提供しています。
src/components/CosmicHeader.astroフローティングランチャー + チャット UI です。

ニューロネットワークの初期設定

Section titled “ニューロネットワークの初期設定”

Oracleが使用する2つのモデルを取得します:

Terminal window
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 は既にインストール済み(確認済み)。nomic-embed-text が不足している;これがないと、Oracle はチャットのみ(RAGなし)モードで動作します。

Oracleは環境変数から設定を読み込みます。適切なデフォルト値が組み込まれています。

Terminal window
# Default mode (Ollama on your Ollama instance)
LLM_PROVIDER=ollama # default
OLLAMA_BASE_URL=https://your-ollama-host.example # default
OLLAMA_CHAT_MODEL=qwen2.5-coder:14b # default
OLLAMA_EMBED_MODEL=nomic-embed-text # default
# Optional fallbacks
LLM_PROVIDER=anthropic
ANTHROPIC_API_KEY=sk-ant-...
ANTHROPIC_MODEL=claude-haiku-4-5-20251001
EMBED_PROVIDER=openai
OPENAI_API_KEY=sk-...
OPENAI_EMBED_MODEL=text-embedding-3-small
# Behaviour
ORACLE_TOP_K=6
ORACLE_MAX_TOKENS=800

ディアグノスティックエンドポイント

Section titled “ディアグノスティックエンドポイント”

GET /api/oracle は現在の構成(シークレットなし)を返します:

Terminal window
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" }
}

新しくデプロイされたコンテナが予想したバックエンドを使用していることを確認するのに便利です。

  • 質問と会話履歴は、あなたのOllamaサーバーに送られます。デフォルトのOllama設定では、ドキュメントサイトやAnthropic/OpenAIによって保存されません
  • OpenAIキー(使用されている場合)は、埋め込みのみで呼び出されます。
  • Oracleウィジェット自体では、分析情報やクッキーが設定されません。

Nibiruトレーニングモデルを使用する理由は何ですか?

Section titled “Nibiruトレーニングモデルを使用する理由は何ですか?”

ロードマップ(AI Roadmapを参照)は、Training CorpusのエクスポートでLoRAを微調整することです。これにより、チャットモデル自体がNibiruネイティブになります。それが準備でき次第、OracleのOLLAMA_CHAT_MODELが微調整されたモデルに切り替わり、システムプロンプトが単純化されます。同じコードですが、より賢い回答が得られます。

オラクル(アンバーの惑星、右下)を開き、以下のいずれかを試してみてください。

  • “新しいモジュールを作成する方法は?”
  • pageActionは何をするの?”
  • “JSONエンドポイントを処理する方法を示してください.”
  • “Wie schreibe ich eine Migration?” (Deutsch funktioniert.)
  • “認証フローを教えて” (日本語でも機能します.)