知識ベースのセクション ▾

ナビゲーション

▸ ここから始める 役割別

カテゴリー

ツール 32
用語集 12

ツール

LlamaIndex + Gonka AI — 超低コストの RAG アプリケーション

LlamaIndexは、RAGアプリケーションやAIエージェントをPythonで構築するための主要フレームワークです(TypeScript版のLlamaIndex.TSも存在します)。ドキュメントの読み込み、チャンク分割、インデックス作成、ベクトル検索、回答生成までを包括的にサポートしており、データを記述するだけで、任意のLLMを利用した質問回答システムが構築可能です。

唯一の課題はインファレンスのコストです。RAGは構造上、消費量が大きくなりがちです。質問ごとに、元のクエリに加えて見つかったコンテキストのフラグメントがモデルに送信され、大規模コレクションのインデックス化には埋め込み(embeddings)も追加されるためです。本番環境では1日に数千件のリクエストが発生します。OpenAI (1Mトークンあたり$2.50–15) や Anthropic (1Mトークンあたり$3–15) を使用すると、小規模なQ&Aサービスであっても月額数万ドルに達する可能性があります。

LlamaIndexは、OpenAILikeクラスを通じてあらゆるOpenAI互換エンドポイントとネイティブに連携します。つまり、JoinGonka Gatewayは数行のコードで接続可能であり、カスタムプロバイダーやパッチは不要です。その結果、同じRAGシステムが分散型ネットワークGonkaを通じて、入力1Mトークンあたり $0.003(出力は3倍)で動作し、クラウドAPIと比較して数百倍から数千倍安価になります。

クイックスタート: OpenAILike を介した接続

JoinGonka APIキー: gate.joingonka.ai/register に登録し(初回登録時に1,000万トークンを無料プレゼント)、Dashboardで jg-xxx 形式のキーを作成してください。

インストール:

pip install llama-index llama-index-llms-openai-like

任意のOpenAI互換APIを使用するため、LlamaIndexは llama_index.llms.openai_like パッケージの OpenAILike クラスを提供しています。Gonkaへのリクエストの最小構成例:

from llama_index.llms.openai_like import OpenAILike

llm = OpenAILike(
    api_base="https://gate.joingonka.ai/v1",
    api_key="jg-your-key",
    model="MiniMaxAI/MiniMax-M2.7",
    is_chat_model=True,            # Gonkaはchatエンドポイントです
    is_function_calling_model=True, # ネイティブtool callingをサポート
    context_window=200000,         # ネットワークモデルの200K
    max_tokens=8192,               # Gateway経由の出力上限
)

response = llm.complete("RAGとは何か、3つの文で説明してください。")
print(response)

OpenAILike に関する重要事項: 必ず is_chat_model=True を指定してください。そうしないと、LlamaIndexはGonkaがサポートしていないcompletionエンドポイントへアクセスしようとします。is_function_calling_model=True はネイティブtool callingを有効にします。LlamaIndexがコンテキストを適切に分割できるよう、context_window はモデルに合わせて設定してください。

例: クエリエンジンを使用した RAG パイプライン

LlamaIndexの一般的なシナリオとして、ドキュメントのインデックス作成と query_engine を介したクエリ実行があります。グローバルなLLMは Settings.llm を通じて一度設定すれば、以降のパイプラインすべてでGonkaが自動的に使用されます。

from llama_index.core import (
    VectorStoreIndex,
    SimpleDirectoryReader,
    Settings,
)
from llama_index.llms.openai_like import OpenAILike
from llama_index.embeddings.huggingface import HuggingFaceEmbedding

# 1. Gonka経由のLLM(グローバルに一度設定)
Settings.llm = OpenAILike(
    api_base="https://gate.joingonka.ai/v1",
    api_key="jg-your-key",
    model="MiniMaxAI/MiniMax-M2.7",
    is_chat_model=True,
    context_window=200000,
    max_tokens=8192,
)

# 2. ローカル埋め込み(無料、OpenAI不使用)
Settings.embed_model = HuggingFaceEmbedding(
    model_name="BAAI/bge-small-en-v1.5"
)

# 3. ./dataディレクトリからのドキュメント読み込みとインデックス化
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)

# 4. ナレッジベースへのクエリ
query_engine = index.as_query_engine()
response = query_engine.query("このドキュメントは何について記述されていますか?")
print(response)

埋め込み(embeddings)に関する重要な注意点: デフォルトでは VectorStoreIndex はOpenAIの埋め込み(text-embedding-ada-002)を使用します。これはGonkaではなくOpenAIへの有料呼び出しとなります。OpenAIへの依存を完全に排除するには、Settings.embed_model を介してローカルモデルを指定してください(上記の例では HuggingFaceEmbedding、別途 pip install llama-index-embeddings-huggingface が必要)。これにより、生成はGonka経由、ベクトル化はローカル(無料)で実行されます。

コスト: RAGパイプラインの1リクエスト(検索+生成)で約2〜5KのLLMトークンを消費します。Gonka経由ならわずかなコストで済みます。OpenAI/Anthropicと比較して3〜4桁安価です。日次で数千のリクエストが発生する場合、月間で数万ドルの節約につながります。

RAG ワークロードのコスト比較

RAGアプリケーションは単発のチャットではなく、継続的なリクエストのストリームです。各ユーザーの質問には2〜5KトークンのLLM消費が伴います(質問自体とコンテキストのフラグメントを含む)。典型的なボリュームと、各プロバイダーでのコストを計算してみましょう。JoinGonka Gateway経由のGonka料金:入力は約$0.003/1M、出力は3倍となります。

シナリオLLMトークンOpenAI / AnthropicJoinGonka Gonka
知識ベースへの質問 1回~4K$0.01 — $0.06~$0.00002
サポートチャットボット (1日1Kリクエスト)~4M/日$10 — $60/日~$0.019/日
コーパスのインデックス作成 + Q&A (1Mワード)~5M$12 — $75~$0.024
本番サービス (月50Kリクエスト)~200M/月$500 — $3,000/月~$0.96/月

無料の10Mトークン枠を使用すれば、RAGパイプライン全体のデバッグ、テストコーパスのインデックス作成、数千件のリクエスト実行をコストゼロで行えます。本番環境の規模では、JoinGonka GatewayはRAGを非常に高価なサービスから、無視できるレベルの経費へと変貌させます。

エージェント、ツール呼び出し、モデル選択

LlamaIndexはドキュメントに対する回答だけでなく、ツールを備えたエージェントの構築も可能です。両方のGonkaモデルはネイティブtool callingをサポートしており、エージェントはテキスト解析なしで構造化された関数の呼び出しが可能です。ツールを使用するエージェントの例:

import asyncio
from llama_index.core.agent.workflow import FunctionAgent
from llama_index.llms.openai_like import OpenAILike

llm = OpenAILike(
    api_base="https://gate.joingonka.ai/v1",
    api_key="jg-your-key",
    model="MiniMaxAI/MiniMax-M2.7",
    is_chat_model=True,
    is_function_calling_model=True,
    context_window=200000,
    max_tokens=8192,
)

def multiply(a: float, b: float) -> float:
    """2つの数値を乗算します。"""
    return a * b

agent = FunctionAgent(
    tools=[multiply],
    llm=llm,
    system_prompt="あなたは役に立つアシスタントです。計算にはツールを使用してください。",
)

async def main():
    # 1234掛ける5678は?
    result = await agent.run("1234かける5678は?")
    print(result)

asyncio.run(main())

モデルの選択 (model フィールドおよび対応する context_window / max_tokens の制限):

モデル (model)コンテキスト最大出力推奨用途
moonshotai/Kimi-K2.6200K8192デフォルト: 高度な推論、tool calling、エージェント
MiniMaxAI/MiniMax-M2.7200K8192RAG、長いコンテキスト、長い応答

Gateway経由の max_tokens 制限はネットワーク上の全モデルで最大8192です。ストリーミング要求ではない場合、max_tokens が設定されていないとデフォルトで1500トークンまでしか返されません。RAG回答やエージェントのアクション用には値を明示的に設定してください。

TypeScript: LlamaIndex.TSでも同様の手順が可能です。@llamaindex/openai パッケージの OpenAI クラスは baseURLapiKey を受け付ける(または OPENAI_BASE_URL / OPENAI_API_KEY 変数を読み込む)ため、Node.jsスタックでもGatewayを接続できます。PythonフレームワークでAIアプリケーションを構築している場合は、LangChain のガイドも参照してください。

LlamaIndex + Gonka = セント単位のコストで実現するProduction-readyなRAGとAIエージェント。OpenAILike (is_chat_model=True) による接続、ネイティブなtool calling、ローカル埋め込みに対応。OpenAIの$2.50–15に対して入力1Mあたり$0.003で運用可能。無料の10Mトークン枠でパイプライン全体のデバッグが可能です。

もっと知りたいですか?

他のセクションを探索するか、Gonkaを今すぐ獲得し始めましょう。

10M の無料トークンを取得 →