使用说明

Hayhooks 是一个开源项目,旨在简化将 Haystack 管道作为 Model Context Protocol (MCP) 服务器进行部署的过程,从而为大型语言模型 (LLM) 应用提供结构化的上下文和功能服务。

主要功能点:

  • Haystack Pipeline 部署为 MCP 工具: 轻松将现有的 Haystack 管道封装并发布为标准 MCP 工具,供兼容 MCP 协议的 LLM 客户端调用。
  • 资源管理 (通过 Haystack Pipeline): 利用 Haystack 强大的数据处理和检索能力,间接实现 MCP 资源管理,为 LLM 提供丰富的上下文数据。
  • 工具注册与执行 (PipelineWrapper): 通过灵活的 PipelineWrapper 类,用户可以自定义管道逻辑,并将其注册为 MCP 工具,实现 LLM 对外部功能的调用。
  • Prompt 模板 (通过 Haystack Pipeline): Haystack Pipeline 本身支持 Prompt 模板,Hayhooks 继承了这一能力,允许用户定义和渲染 Prompt,定制 LLM 交互模式。
  • OpenAI 兼容性: 除了 MCP 服务器功能,Hayhooks 还兼容 OpenAI API 协议,可以作为 'open-webui' 等前端应用的后端,提供聊天补全服务。
  • 多种传输协议支持 (SSE): MCP 服务器默认使用 Server-Sent Events (SSE) 作为传输协议,保证实时性和效率。

安装步骤:

  1. 确保您的 Python 环境为 3.10 或更高版本。
  2. 安装 Hayhooks 包,并包含 MCP 支持:
    pip install hayhooks[mcp]

服务器配置(MCP 客户端配置示例):

以下 JSON 配置信息可用于配置 MCP 客户端连接 Hayhooks MCP 服务器。请根据您的实际部署情况修改 'command' 和 'args' 字段。

{
  "serverName": "hayhooks-mcp-server",
  "command": "hayhooks mcp run",
  "args": [],
  "transport": {
    "type": "sse",
    "url": "http://localhost:1417/sse",
    "messageUrl": "http://localhost:1417/messages/"
  },
  "tools": []
}

配置参数说明:

  • 'serverName': MCP 服务器的名称,可以自定义。
  • 'command': MCP 服务器的启动命令,这里使用 'hayhooks mcp run' 启动 Hayhooks MCP 服务器。
  • 'args': 启动命令的参数,默认为空列表 '[]'。 您可以根据需要添加参数,例如 '--host' 和 '--port' 来指定服务器监听的地址和端口。
  • 'transport': 传输协议配置。
    • 'type': 传输协议类型,这里为 'sse' (Server-Sent Events)。
    • 'url': SSE 连接的 URL,默认为 'http://localhost:1417/sse',与 'hayhooks mcp run' 默认端口 1417 对应。
    • 'messageUrl': SSE 消息发送的 URL,默认为 'http://localhost:1417/messages/'。
  • 'tools': 初始工具列表,Hayhooks MCP 服务器会自动发现并注册部署的 Pipeline 作为工具,客户端无需在此处手动配置。

基本使用方法:

  1. 创建 PipelineWrapper: 为您的 Haystack Pipeline 创建一个 PipelineWrapper 类,定义 'setup()' 方法来初始化 Pipeline,并实现 'run_api()' 方法来定义工具的执行逻辑。您可以选择性地添加 'run_chat_completion()' 方法以支持 OpenAI 兼容的聊天接口。
  2. 部署 Pipeline: 将包含 'pipeline_wrapper.py' 和 Pipeline 定义文件(如 YAML)的目录部署到 Hayhooks 服务器。 使用 'hayhooks pipeline deploy-files -n <pipeline_name> <pipeline_dir>' 命令部署。
  3. 启动 MCP 服务器: 运行 'hayhooks mcp run' 命令启动 Hayhooks MCP 服务器。
  4. MCP 客户端连接: 配置您的 MCP 客户端,使用上述提供的服务器配置信息连接到 Hayhooks MCP 服务器。
  5. 调用 MCP 工具: 在 MCP 客户端中,您可以发现并调用已部署的 Hayhooks Pipeline 作为 MCP 工具,利用 LLM 与外部功能进行交互。

示例 (部署 Chat with Website Pipeline 作为 MCP Tool):

参考仓库 'examples/pipeline_wrappers/chat_with_website_mcp' 目录下的示例,创建一个 PipelineWrapper 并部署。 部署后,该 Pipeline 将作为一个名为 'chat_with_website' 的 MCP Tool 在 MCP 服务器上可用。

信息

分类

AI与计算