Haystack LLM框架的实验组件和功能。
项目描述
Haystack实验包
haystack-experimental
包为Haystack用户提供访问实验功能的权限,而不必立即对其官方发布做出承诺。主要目标是收集用户反馈并快速迭代新功能。
安装
为了简单起见,haystack-experimental
的每个版本都将包含当时可用的所有实验。要安装最新的实验功能,请运行
$ pip install -U haystack-experimental
[!IMPORTANT] 实验包的最新版本仅针对Haystack的最新版本进行测试。与Haystack旧版本的兼容性无法保证。
实验生命周期
每个实验功能从包含它的第一个非预发布构建日期开始,默认寿命为3个月。一旦达到寿命结束,实验将
- 合并到Haystack核心并发布在下一个次要版本中,或
- 作为核心集成发布,或
- 放弃。
实验目录
包的最新版本包含以下实验
名称 | 类型 | 预期结束日期 | 依赖关系 | 食谱 | 讨论 |
---|---|---|---|---|---|
EvaluationHarness |
Evaluation orchestrator | 2024年10月 | 无 | 讨论 | |
OpenAIFunctionCaller |
函数调用组件 | 2024年10月 | 无 | 🔜 | |
OpenAPITool |
OpenAPITool组件 | 2024年10月 | jsonref | 讨论 | |
支持工具:重构的ChatMessage 数据类,Tool 数据类,重构的OpenAIChatGenerator ,ToolInvoker 组件 |
工具调用支持 | 2024年11月 | jsonschema | 讨论 | |
ChatMessageWriter |
内存组件 | 2024年12月 | 无 | 讨论 | |
ChatMessageRetriever |
内存组件 | 2024年12月 | 无 | 讨论 | |
内存中的ChatMessage存储 |
内存存储 | 2024年12月 | 无 | 讨论 | |
自动合并检索器 & 分层文档分割器 |
文档分割与检索技术 | 2024年12月 | 无 | 讨论 |
用法
实验性新功能可以像其他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_experimental-0.2.0.tar.gz (48.2 kB 查看哈希)