LangChain vs LlamaIndex
LLMアプリケーション開発を牽引する2つのフレームワーク:汎用性の高いLangChainと、データ接続に特化したLlamaIndex。RAGやAIエージェント開発ではどちらを選ぶべきか?
モデルではなくデータを更新する:クエリのたびに関連する断片をコンテキストに追加するアーキテクチャ
retrievalを必要とせず、すべてのデータを直接プロンプトに埋め込む+プロンプトキャッシング
場合による——ただし損益分岐点は思ったより低い。出典付きの料金で計算すると、損益分岐点は約20万トークン(5Kチャンク基準)。それ未満ではプロンプトキャッシュ付きの長いコンテキストの方がシンプルかつ安価であり、それを超えるとクエリ単価はRAGに有利になる。頻繁に更新される、巨大な、あるいはユーザー単位の認可が必要なデータでは、RAGのアクセス制御と鮮度の優位性は代替できない。成熟したアーキテクチャでは、両者を異なるデータ領域で併用するのが一般的なパターンだ。
| カテゴリー | RAG (Retrieval-Augmented Generation) | Uzun bağlam (1M+ token) |
|---|---|---|
| パフォーマンス | 7/10 | 7/10 |
| 学習のしやすさ | 5/10 | 9/10 |
| エコシステム | 9/10 | 7/10 |
| コミュニティ | 9/10 | 7/10 |
| 求人市場 | 8/10 | 6/10 |
| 将来性 | 8/10 | 9/10 |
# OpenAI Responses API — File Search(マネージドRAGツール)
# 2026年9月時点の公式ドキュメント: platform.openai.com/docs/guides/tools-file-search
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-6-astra",
input="Q3 finansal raporunda net kâr marjı neydi?",
tools=[{
"type": "file_search",
"vector_store_ids": ["vs_abc123"],
}],
)
print(response.output_text)
# このホスト型ツールは、embedding + インデックス作成 + retrievalをOpenAI側で管理する
# (コードを書かずに動作する)。コスト:ツール呼び出し1,000回あたり$2.50
# + ストレージ $0.10/GB/日(最初の1GBは無料)。出典: platform.openai.com/docs/pricing# Claude API — プロンプトキャッシングで100万トークンのコンテキストを安くする
# 出典: platform.claude.com/docs/en/build-with-claude/prompt-caching
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
system=[
{
"type": "text",
"text": full_knowledge_base_text, # 例:80万トークン規模の社内ドキュメント
"cache_control": {"type": "ephemeral"},
}
],
messages=[{"role": "user", "content": "Onboarding sürecinde hangi adımlar zorunlu?"}],
)
# 最初の呼び出し:フル入力価格で課金される(キャッシュ書き込み)。
# その後の呼び出し(短時間内、例:5分以内):キャッシュ読み取り価格が適用される
# ——ベース入力価格のごく一部(公式料金ページを参照)。場合による——ただし損益分岐点は思ったより低い。出典付きの料金で計算すると、損益分岐点は約20万トークン(5Kチャンク基準)。それ未満ではプロンプトキャッシュ付きの長いコンテキストの方がシンプルかつ安価であり、それを超えるとクエリ単価はRAGに有利になる。頻繁に更新される、巨大な、あるいはユーザー単位の認可が必要なデータでは、RAGのアクセス制御と鮮度の優位性は代替できない。成熟したアーキテクチャでは、両者を異なるデータ領域で併用するのが一般的なパターンだ。
無料相談を受けるはい、ただしすべてのシナリオで必要というわけではなくなった。100万トークン以上のコンテキストウィンドウは、静的かつ単発セッションのクエリにおいてRAGの必要性を大幅に減らした。それでもretrievalが必要な状況は3つある:頻繁に更新されるデータ(更新のたびにキャッシュが無効になる)、ユーザー単位・行単位のアクセス制御が必要なマルチテナントデータ、そしてコーパスが1リクエストあたりのコンテキスト上限(100万トークン)を超える場合だ。