📌 项目:deepset-ai/haystack | 星数:26.6k(2026-09-25) | 协议:Apache-2.0 | 语言:Python | GitHub
一句话定位:"组件化AI编排框架——像搭积木一样构建RAG管道和Agent工作流,生产就绪。" Haystack用组件化设计让AI应用开发变成积木式拼装:检索器+生成器+管道=一个完整的RAG应用,每一步可替换、可调试、可监控。
Haystack的核心是组件+管道:
from haystack import Pipeline
from haystack.components.retrievers import InMemoryEmbeddingRetriever
from haystack.components.generators import OpenAIGenerator
from haystack.components.builders import PromptBuilder
# 构建RAG管道
pipe = Pipeline()
pipe.add_component("retriever", InMemoryEmbeddingRetriever(...))
pipe.add_component("prompt", PromptBuilder(template=TEMPLATE))
pipe.add_component("generator", OpenAIGenerator())
pipe.connect("retriever.documents", "prompt.documents")
pipe.connect("prompt.prompt", "generator.prompt")
# 运行
result = pipe.run({"retriever": {"query": "什么是RAG?"}})每个组件职责单一,可独立测试和替换。和 OpenResearch 端到端不同,Haystack强调组件组合的灵活性。
pip install haystack-ai
from haystack import Pipeline, Document
from haystack.components.embedders import SentenceTransformersTextEmbedder
from haystack.components.writers import DocumentWriter
# 索引文档
pipe = Pipeline()
pipe.add_component("embedder", SentenceTransformersTextEmbedder())
pipe.add_component("writer", DocumentWriter(document_store))
pipe.connect("embedder.embedding", "writer.embedding")
# 写入文档
docs = [Document(content="RAG是检索增强生成...")]
pipe.run({"embedder": {"text": docs[0].content}})
| ✅ 优点 | ⚠️ 不足 |
|---|---|
| 组件化设计,管道灵活组合 | 学习曲线比LangChain略陡 |
| 生产就绪,可视化调试 | 2.x重写后部分1.x功能未迁移 |
| HuggingFace深度集成,本地模型友好 | |
| 多向量库后端支持 | |
| Apache-2.0协议,deepset团队专业维护 |
Haystack更强调组件化管道设计和生产就绪,每个组件职责清晰可独立测试。LangChain更偏链式调用,灵活但调试较难。Haystack 2.x完全重写更现代化。
支持。深度集成HuggingFace transformers,embedding和生成都可用本地模型。推荐用sentence-transformers做embedding。
可以。Haystack内置评估工具,支持faithfulness、answer relevance等指标,可对比不同管道配置的效果。