📘 **TELUS Agriculture & Consumer Goods** 如何通过 **Haystack Agents** 转变促销交易

使用 Hayhooks 更快地部署 AI 管道

将 Haystack 管道转换为生产就绪的 REST API,或将其公开为 MCP 工具,实现完全自定义和最少的代码

Haystack 是一个 AI 编排框架,使开发人员能够使用模块化的构建块方法轻松构建自定义 AI 管道。然而,当需要将这些管道从开发环境迁移到生产环境时,您通常面临一个艰难的决定:是编写自定义服务器代码,还是依赖可能无法提供所需灵活性的专有工具。

我们很高兴地宣布 Hayhooks,这是一个旨在简化部署的开源软件包。它让您可以专注于开发有意义的 AI 系统,而不是担心底层基础设施。

借助 Hayhooks,您可以部署具有自定义逻辑的 Haystack 管道,公开与 OpenAI 兼容的聊天端点,实时流式传输响应,并自定义您的服务器——所有这些都只需最少的代码和完整的灵活性。继续阅读,了解为什么 Hayhooks 对每一位 Haystack 开发者来说都是一个游戏规则的改变者。

什么是 Haystack 管道?

Haystack 是一个 AI 编排框架,旨在创建强大的基于 LLM 的系统。它提供了丰富的预构建组件库,如果您的项目需要,您可以轻松地用自定义逻辑进行扩展。Haystack 管道被设计为模块化图,允许您定义组件如何连接,并在逻辑中添加分支或循环。这种灵活性使得开发复杂的 代理系统、自定义检索增强生成 (RAG) 应用程序、语义搜索等成为可能。

介绍 Hayhooks

虽然借助 Haystack 等框架 构建 AI 管道 变得越来越容易,但将笔记本电脑中的可用管道转化为生产就绪系统仍然充满挑战。对于处理请求和流式传输响应等基本任务,开发人员通常发现自己需要编写大量样板代码并处理复杂的部署设置。

通过简化部署,Hayhooks 为 Haystack 易于构建自定义 AI 管道的功能提供了缺失的一环。借助 Hayhooks,您可以快速将任何 Haystack 管道转换为生产就绪的 REST API,或将其公开为 MCP 服务器。这使得,例如,大量用户可以通过 UI 立即与管道交互,或将其作为 MCP 工具供 MCP 客户端使用。

📺 在 Open NLP Meetup #15 中详细了解 Hayhooks 并观看演示。

Hayhooks 的主要功能

Hayhooks 弥合了管道开发与生产部署之间的差距,专注于开发人员最需要的东西。以下是使该框架成为每个 Haystack 开发人员必备功能的主要特点:

1. 简化部署

有了 Hayhooks,编写样板服务器代码以暴露管道的日子一去不复返了。现在,您只需一个命令即可将 Haystack 管道转换为 REST API。Hayhooks CLI 负责 API 创建,自动生成 Swagger 和 ReDocly 文档,并为您处理请求/响应格式,因此您可以专注于管道的功能,而不是如何服务它。

Hayhooks Swagger Documentation
Hayhooks API 端点的 Swagger 文档

2. API 的完全自定义

在实际的 AI 应用中,自定义至关重要。Hayhooks 引入了 PipelineWrapper 范例,允许您精确定义管道作为 API 的行为方式。您可以在管道执行之前和之后插入自定义逻辑,用于预处理、响应格式化和动态组件配置,从而完全控制您的部署。

from pathlib import Path
from typing import List
from haystack import Pipeline
from hayhooks import BasePipelineWrapper

class PipelineWrapper(BasePipelineWrapper):
    def setup(self) -> None:
        ## Create the pipeline
        my_pipeline = Pipeline()
        my_pipeline.add_component(....
        ...
        self.pipeline = my_pipeline
        ## or load from yaml
        pipeline_yaml = (Path(__file__).parent / "chat_with_website.yml").read_text()
        self.pipeline = Pipeline.loads(pipeline_yaml)

    def run_api(self, urls: List[str], question: str) -> str:
        """
        Ask a question about one or more websites using a Haystack pipeline.
        """
        result = self.pipeline.run({"fetcher": {"urls": urls}, "prompt": {"query": question}})
        return result["llm"]["replies"][0]

3. 支持模型上下文协议 (MCP)

模型上下文协议 (MCP) 提供了一种与 大型语言模型 (LLM) 和其他 AI 模型交互的标准方法,从而更容易构建自定义 AI 应用程序。借助 Hayhooks,您可以使用一个命令将 Haystack 管道包装成一个MCP 服务器,并将其公开为 MCP 工具,供 Cursor、Windsurf、Claude Desktop 和 Haystack Agents 等 MCP 客户端交互。

4. 生产就绪的流式传输和聊天端点

如果您的 AI 管道运行良好,并且您可以通过 IDE 与之通信,那很棒。但这并不是将其带给更广泛受众的方式!Hayhooks 生成与 OpenAI 兼容的端点,用于 Open WebUI 等聊天界面,并支持开箱即用的响应流式传输,因此您可以轻松地提供用户习惯的、引人入胜的聊天体验,就像 ChatGPT、Perplexity 等产品一样。

5. 开发人员友好的工作流程

Hayhooks 包含加快开发期间迭代速度的工具。--overwrite 标志允许您在不重新启动服务器的情况下更新现有管道。如果您正在调试并进行频繁的更改,可以通过跳过文件持久化来进一步加快速度。为了在开发过程中获得更好的错误可见性,请启用堆栈跟踪:HAYHOOKS_SHOW_TRACEBACKS=true。这会在出现问题时提供详细信息,帮助您更快地诊断和修复问题。

6. 可随您扩展的基础设施

由于 Hayhooks 是在 FastAPI 上构建的,因此您可以利用所有 FastAPI 功能来满足更高级的需求。例如,您可以添加身份验证机制以实现安全部署,实施自定义日志记录以进行监控,创建额外的端点以进行管理或诊断,并集成到您基础设施中现有的 FastAPI 应用程序。此外,您可以使用 Docker 轻松容器化您的 Hayhooks Web 服务器,并使用 Kubernetes 进行大规模部署。这种灵活性意味着 Hayhooks 可以适应您的生产需求,而不是强迫您适应其局限性。

观看 Hayhooks 实操演示

想了解 Hayhooks 如何将您的管道转化为生产就绪解决方案吗?请查看我们的 分步教程,其中展示了如何使用 HaystackHayhooksOpen WebUI 构建一个与网站内容交互的聊天机器人。您将在几分钟内拥有一个功能齐全的聊天机器人,它可以流式传输响应并实时响应用户查询。

我们的 GitHub 上探索更多示例。

与网站内容交互的聊天示例

展望与入门

自 Hayhooks 发布以来,开发人员的反馈一直很好。许多人已经成功使用 Hayhooks 部署了他们的管道,验证了 AI 领域对可自定义部署解决方案的需求。我们正在不断改进该框架,并优先处理社区的功能请求,包括:

  • 更好地支持管道重新部署。
  • 使用 requirements.txt 进行依赖项管理。
  • 异步管道支持。

如果您是 Haystack 开发人员,正在寻找一种快速、简单且强大的部署方法,请查看 Hayhooks,并通过 GitHub我们的 Discord 告诉我们您的想法。希望您今晚能睡得更好,因为现在有一个安全便捷的方法可以更快地将您的 AI 管道大规模推广出去;)