OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  Haystack Experimental — deepset 推出的实验性 LLM 与检索组件集合

Haystack Experimental — deepset 推出的实验性 LLM 与检索组件集合

 
  blush ·  2026-04-06 11:00:25 · 4 次点击  · 0 条评论  

PyPI - Version
PyPI - Python Version
Tests
Project release on PyPi
Hatch project
Checked with mypy

Haystack 实验性功能包

haystack-experimental 包为 Haystack 用户提供对实验性功能的访问,而无需立即将其纳入官方版本。主要目标是收集用户反馈并快速迭代新功能。

安装

为简化起见,haystack-experimental 的每个版本都会包含当时所有可用的实验功能。要安装最新的实验性功能,请运行:

$ pip install -U haystack-experimental

main 分支安装以尝试最新功能:

pip install git+https://github.com/deepset-ai/haystack-experimental.git@main

[!IMPORTANT]
实验包的最新版本仅针对 Haystack 的最新版本进行测试。不保证与旧版本 Haystack 的兼容性。

实验功能生命周期

每个实验性功能自首次包含它的非预发布版本发布之日起,默认生命周期为 3 个月。一旦达到其生命周期结束,该实验将:

  • 合并到 Haystack 核心并在下一个次要版本中发布,或
  • 作为核心集成发布,或
  • 被弃用。

实验功能目录

活跃实验

名称 类型 预计结束日期 依赖项 示例教程 讨论
OpenAIChatGenerator 聊天生成器组件 2025年11月 在 Colab 中打开 讨论
MarkdownHeaderLevelInferrer 预处理器 2025年1月 讨论
Agent; BreakpointConfirmationStrategy; HITLBreakpointException 通过断点实现人机交互 2025年12月 讨论
LLMSummarizer 文档摘要器 2025年1月 讨论
InMemoryChatMessageStore; ChatMessageRetriever; ChatMessageWriter 聊天消息存储、检索器、写入器 2025年2月 在 Colab 中打开 讨论
Mem0MemoryStore 记忆存储 2025年4月 mem0ai --

已采纳的实验

名称 类型 最终发布版本
ChatMessage 重构;Tool 类;ChatGenerators 中的工具支持;ToolInvoker 工具调用支持 0.4.0
AsyncPipelinePipeline 错误修复和重构 异步 Pipeline 执行 0.7.0
LLMMetadataExtractor 使用 LLM 进行元数据提取 0.7.0
Auto-Merging RetrieverHierarchicalDocumentSplitter 文档分割与检索技术 0.8.0
Agent 简化 Agent 开发 0.8.0
SuperComponent 简化 Pipeline 开发 0.8.0
Pipeline 用于调试的 Pipeline 断点 0.12.0
ImageContent;图像转换器;OpenAIChatGeneratorAmazonBedrockChatGenerator 中的多模态支持;ChatPromptBuilder 重构;SentenceTransformersDocumentImageEmbedderLLMDocumentContentExtractor;新的 Routers 多模态 0.12.0
QueryExpander 查询扩展组件 0.14.3
MultiQueryEmbeddingRetriever 多查询嵌入检索器 0.14.3
MultiQueryTextRetriever 多查询文本检索器 0.14.3
EmbeddingBasedDocumentSplitter 文档分割 0.15.2
Confirmation PoliciesConfirmationUIsBlockingConfirmationStrategyConfirmationUIResultToolExecutionDecision 人机交互 0.16.0

已终止的实验

名称 类型 最终发布版本 示例教程
OpenAIFunctionCaller 函数调用组件 0.3.0
OpenAPITool OpenAPITool 组件 0.3.0 Notebook
EvaluationHarness 评估编排器 0.7.0

使用方法

实验性新功能可以像任何其他 Haystack 集成包一样导入:

from haystack.dataclasses import ChatMessage
from haystack_experimental.components.generators import FoobarGenerator

c = FoobarGenerator()
c.run([ChatMessage.from_user("What's an experiment? Be brief.")])

实验功能也可以覆盖现有的 Haystack 功能。例如,用户只需更改通常的导入即可选择使用实验性的 Pipeline 类型:

# from haystack import Pipeline
from haystack_experimental import Pipeline

pipe = Pipeline()
# ...
pipe.run(...)

一些实验性功能附带示例 Notebook,可以在 Haystack 示例教程 中找到。

文档

haystack-experimental 的文档可以在 这里 找到。

实现方式

实验功能应复制核心包的命名空间。例如,一个新的生成器:

# 位于 haystack_experimental/components/generators/foobar.py

from haystack import component


@component
class FoobarGenerator:
    ...

当实验功能覆盖现有功能时,应在实验包的相同路径下创建新的符号。这个新符号将覆盖 haystack-ai 中的原始符号:对于类,使用子类;对于纯函数,使用包装器。例如:

# 位于 haystack_experiment/src/haystack_experiment/core/pipeline/pipeline.py

from haystack.core.pipeline import Pipeline as HaystackPipeline


class Pipeline(HaystackPipeline):
    # 任何在原始类中不存在的新实验方法
    def run_async(self, inputs) -> Dict[str, Dict[str, Any]]:
        ...

    # 对其签名进行破坏性更改的现有方法,例如添加新的必需参数
    def to_dict(self, new_param: str) -> Dict[str, Any]:
        # 使用新参数做一些事情
        print(new_param)
        # 调用原始方法
        return super().to_dict()

贡献

不期望直接向 haystack-experimental 贡献代码,但 Haystack 维护者可能会要求将针对 核心仓库 的拉取请求移动到此仓库。

遥测

与 Haystack 核心包一样,我们依赖匿名使用统计数据来确定实验功能的影响和实用性。有关我们收集什么数据、如何使用这些数据以及如何选择退出的说明,请参阅我们的 文档

4 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私 ·  条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 26 ms
Developed with Cursor