跳到主要内容

Haystack

Haystack 是用于构建 LLM 应用的框架,涵盖管道、检索、索引、文档处理、Agent 和生成器。AISIX 位于模型请求边界,而 Haystack 继续负责管道执行和检索。

Haystack 的 OpenAIResponsesChatGenerator 组件通过 api_base_url 支持自定义兼容 OpenAI 的部署。当 Haystack 管道需要通过 AISIX 发送 Responses API 请求时,请使用此设置。

本指南使用 OpenAIResponsesChatGenerator。你将使用 AISIX 代理 URL、调用方 API Key 和模型别名配置生成器。

前置条件

开始前,请准备以下内容:

  • 一个受 Haystack 支持的 Python 环境。
  • 一个代理监听器可用的运行中 AISIX 网关。
  • 一个 AISIX 调用方 API Key。
  • 一个调用方 API Key 可通过Responses API访问的模型别名。

配置 Haystack

如果应用尚未包含 Haystack,请先安装:

pip install haystack-ai

设置 Haystack 应用要使用的值:

# Replace with your values
export AISIX_BASE_URL="http://127.0.0.1:3000/v1"
export AISIX_API_KEY="YOUR_CALLER_API_KEY"
export AISIX_MODEL="gpt-4o-prod"

使用 AISIX 值创建 OpenAIResponsesChatGenerator

import os

from haystack.components.generators.chat import OpenAIResponsesChatGenerator
from haystack.dataclasses import ChatMessage
from haystack.utils import Secret

generator = OpenAIResponsesChatGenerator(
model=os.environ["AISIX_MODEL"],
api_base_url=os.environ["AISIX_BASE_URL"],
api_key=Secret.from_token(os.environ["AISIX_API_KEY"]),
)

response = generator.run([
ChatMessage.from_user("Write one sentence about retrieval pipelines."),
])

print(response["replies"][0].text)

模型值应填写 AISIX 模型别名,而不是上游服务提供方模型 ID。AISIX 管理模型请求路径,而 Haystack 继续负责管道组件、提示词构建器、检索器、排序组件和响应处理。

Haystack 还提供用于 Chat Completions 的 OpenAIChatGenerator。当管道需要广泛的兼容 OpenAI 聊天支持,而不是 Responses 特有功能时,请使用该组件。

验证集成

在已设置 AISIX 环境变量的 Shell 中运行脚本。

请求成功后,请确认以下结果:

  • 脚本输出聊天响应。
  • AISIX 为所选模型别名记录一条成功的 POST /v1/responses 请求。

如果使用 AISIX Cloud 或私有化部署的托管控制面,请在托管网关日志中验证请求。对于自托管网关,请使用已配置的日志、指标或上游服务提供方日志。

如果请求失败,请先确认调用方 API Key 可以访问所选模型别名,且 api_base_url 指向包含 /v1 的 AISIX 代理 API 根路径。

Haystack 应用通常会组合生成器、检索器、排序组件、工具和结构化输出。依赖网关对流式传输、工具调用或结构化输出执行策略或采集遥测前,请先验证实际管道。

后续步骤

  • Responses API:查看面向网关的 Responses 行为。
  • 兼容 OpenAI 的 API:当工作流需要广泛的兼容 OpenAI 支持时使用 Chat Completions。
  • 向量嵌入:当 Haystack 工作流通过 AISIX 使用嵌入时配置嵌入流量。
  • 重排序:当 Haystack 管道通过 AISIX 使用重排序模型时配置重排序流量。