haystack は何をしますか?
エンドツーエンドのLLMオーケストレーションフレームワークで、大規模なドキュメント分析のための堅牢な検索・処理ツールを提供します。
概要
Haystack は、大規模なドキュメントコレクションに対して検索、質問応答、要約、抽出QAなどの複雑なタスクを実行するための強力なフレームワークです。モジュール化されたアーキテクチャにより、カスタムパイプラインを簡単に構築でき、さまざまなバックエンド(Elasticsearch、FAISS、Weaviate など)とLLMプロバイダー(OpenAI、Cohere、Hugging Face など)をサポートします。
主な機能
- ドキュメントインデックス作成: テキストを前処理し、ベクトル埋め込みを生成して、インデックスを作成します。
- 検索: セマンティック検索、キーワード検索、ハイブリッド検索をサポート。
- 質問応答: 抽出型QA、生成型QA、マルチホップQAを実現。
- 要約: ドキュメントや検索結果の要約を生成。
- カスタムパイプライン: 独自の処理フローを定義可能。
対応プラットフォーム
Haystack は以下のAIエージェントプラットフォームで利用できます:
- Claude Code
- Cursor
- Codex
- その他のカスタムエージェント
クイックスタート
from haystack import Document
from haystack.document_stores import InMemoryDocumentStore
from haystack.nodes import EmbeddingRetriever
from haystack.pipelines import DocumentSearchPipeline
# ドキュメントストアを作成
document_store = InMemoryDocumentStore(embedding_dim=384)
# ドキュメントを追加
documents = [Document(content="Haystack はLLMオーケストレーションフレームワークです。")]
document_store.write_documents(documents)
# Retriever を設定
retriever = EmbeddingRetriever(
document_store=document_store,
embedding_model="sentence-transformers/all-MiniLM-L6-v2"
)
# パイプラインを構築
pipeline = DocumentSearchPipeline(retriever=retriever)
# 検索を実行
results = pipeline.run(query="Haystack とは何ですか?")
print(results)
設定例
# haystack_pipeline.yaml
version: '1.0'
components:
- name: DocumentStore
type: ElasticsearchDocumentStore
params:
host: localhost
port: 9200
index: documents
- name: Retriever
type: EmbeddingRetriever
params:
embedding_model: sentence-transformers/all-MiniLM-L6-v2
top_k: 10
- name: Reader
type: FARMReader
params:
model_name_or_path: deepset/roberta-base-squad2
pipelines:
- name: query_pipeline
nodes:
- name: Retriever
inputs: [Query]
- name: Reader
inputs: [Retriever]
ドキュメントとサポート
詳細なドキュメントは Haystack 公式サイト を参照してください。
ライセンス
Apache License 2.0