跳转到主要内容

Haystack LLM框架的实验组件和功能。

项目描述

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

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

实验生命周期

每个实验功能从包含它的第一个非预发布构建日期开始,默认寿命为3个月。一旦达到寿命结束,实验将

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

实验目录

包的最新版本包含以下实验

名称 类型 预期结束日期 依赖关系 食谱 讨论
EvaluationHarness Evaluation orchestrator 2024年10月 Open In Colab 讨论
OpenAIFunctionCaller 函数调用组件 2024年10月 🔜
OpenAPITool OpenAPITool组件 2024年10月 jsonref Open In Colab 讨论
支持工具:重构的ChatMessage数据类Tool数据类重构的OpenAIChatGeneratorToolInvoker组件 工具调用支持 2024年11月 jsonschema Open In Colab 讨论
ChatMessageWriter 内存组件 2024年12月 Open In Colab 讨论
ChatMessageRetriever 内存组件 2024年12月 Open In Colab 讨论
内存中的ChatMessage存储 内存存储 2024年12月 Open In Colab 讨论
自动合并检索器 & 分层文档分割器 文档分割与检索技术 2024年12月 Open In Colab 讨论

用法

实验性新功能可以像其他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(...)

一些实验性功能附带示例笔记本和资源,可以在examples文件夹中找到。

文档

有关的文档可以在此处找到。

实现

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

# in haystack_experimental/components/generators/foobar.py

from haystack import component


@component
class FoobarGenerator:
    ...

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

# in haystack_experiment/src/haystack_experiment/core/pipeline/pipeline.py

from haystack.core.pipeline import Pipeline as HaystackPipeline


class Pipeline(HaystackPipeline):
    # Any new experimental method that doesn't exist in the original class
    def run_async(self, inputs) -> Dict[str, Dict[str, Any]]:
        ...

    # Existing methods with breaking changes to their signature, like adding a new mandatory param
    def to_dict(new_param: str) -> Dict[str, Any]:
        # do something with the new parameter
        print(new_param)
        # call the original method
        return super().to_dict()

贡献

不期望直接向贡献,但Haystack维护者可能会要求贡献者将针对核心存储库的拉取请求移动到这个存储库。

遥测

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

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

haystack_experimental-0.2.0.tar.gz (48.2 kB 查看哈希)

上传时间

构建分布

haystack_experimental-0.2.0-py3-none-any.whl (68.5 kB 查看哈希)

上传于 Python 3

支持者