LlamaIndex
LlamaIndex 是用于构建 LLM 应用的框架,可将 LLM 调用与数据连接器、索引、检索和查询工作流结合。AISIX 位于模型请求边界,而 LlamaIndex 继续负责文档加载、索引、检索和响应组装。
LlamaIndex 的 OpenAI 集成提供 OpenAIResponses,这是一个可通过自定义 API 基础 URL 使用 OpenAI Responses API 的 LLM 适配器。当 LlamaIndex 应用需要通过 AISIX 发送 Responses API 请求时,请使用此适配器。
本指南使用带有 llama-index-llms-openai 的 LlamaIndex Python。你将使用 AISIX 代理 URL、调用方 API Key 和模型别名配置 OpenAIResponses。
前置条件
开始前,请准备以下内容:
- 一个受 LlamaIndex 支持的 Python 环境。
- 一个正在运行且应用可以访问的 AISIX 网关。
- 一个 AISIX 调用方 API Key。
- 一个可通过Responses API访问的模型别名。
如果你的组织已经部署 AISIX,请向管理团队获取网关 URL、模型别名和调用方 API Key。否则,请按照开源 AISIX 网关快速上手或 AISIX Cloud 快速上手完成部署,也 可以联系 API7申请 Hybrid Cloud 访问权限。
配置 LlamaIndex
如果应用尚未包含 OpenAI LLM 集成,请先安装:
pip install llama-index-llms-openai
设置 LlamaIndex 应用要使用的值:
# 请替换为实际值
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"
export AISIX_CONTEXT_WINDOW="128000"
使用 AISIX 值创建 OpenAIResponses 客户端:
import os
from llama_index.core.llms import ChatMessage
from llama_index.llms.openai import OpenAIResponses
llm = OpenAIResponses(
model=os.environ["AISIX_MODEL"],
api_base=os.environ["AISIX_BASE_URL"],
api_key=os.environ["AISIX_API_KEY"],
context_window=int(os.environ["AISIX_CONTEXT_WINDOW"]),
)
response = llm.chat([
ChatMessage(role="user", content="Write one sentence about retrieval systems."),
])
print(response.message.content)
模型值应填写 AISIX 模型别名,而不是上游服务提供方模型 ID。将 AISIX_CONTEXT_WINDOW 设置为别名背后模型的上下文大小,使 LlamaIndex 不必从别名名称推断该值。AISIX 负责模型请求路径,而 LlamaIndex 应用继续负责数据加载、索引、检索和响应组装。
验证集成
在已设置 AISIX 环境变量的 Shell 中运行脚本。
请求成功后,请确认以下结果:
- 脚本输出聊天响应。
- AISIX 为所选模型别名记录一条成功的
POST /v1/responses请求。
请在 AISIX 网关日志中验证请求。也可以使用已配置的指标或上游服务提供方日志。
如果请求失败,请先确认调用方 API Key 可以访问所选模型别名,且 api_base 指向包含 /v1 的 AISIX 代理 API 根路径。
LlamaIndex 也提供兼容 OpenAI 的聊天适配器,包括仍需要 Chat Completions 兼容性的应用可以使用的 OpenAILike。只有已有工作流或集成依赖 Chat Completions 路由时才使用这些适配器;新的 OpenAI 系列 LlamaIndex 集成优先使用 OpenAIResponses。
LlamaIndex 应用常将检索、聊天、工具调用和结构化响应解析组合使用。在依赖相应路径的网关策略或遥测数据前,请验证实际工作流。
后续步骤
- Responses API:查看面向网关的请求行为。
- 兼容 OpenAI 的 API:当已有 LlamaIndex 工作流需要 Chat Completions 时使用该路由。
- 向量嵌入:如果 LlamaIndex 工作流通过 AISIX 使用嵌入,请配置嵌入流量。
- 响应缓存:缓存符合条件的非流式聊天响应。