跳到主要内容

LlamaIndex

LlamaIndex 是用于构建 LLM 应用的框架,可将 LLM 调用与数据连接器、索引、检索和查询工作流结合。AISIX 位于模型请求边界,而 LlamaIndex 继续负责文档加载、索引、检索和响应组装。

LlamaIndex 的 OpenAI-like 集成提供 OpenAILike,这是一个可连接自定义兼容 OpenAI 端点的 LLM 适配器。当 LlamaIndex 应用需要通过 AISIX 发送模型请求时,请使用此适配器。

本指南使用带有 llama-index-llms-openai-like 的 LlamaIndex Python。你将使用 AISIX 代理 URL、调用方 API Key 和模型别名配置 OpenAILike

前置条件

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

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

配置 LlamaIndex

如果应用尚未包含 OpenAI-like LLM 集成,请先安装:

pip install llama-index-llms-openai-like

设置 LlamaIndex 应用要使用的值:

# 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 值创建 OpenAILike 客户端:

import os

from llama_index.core.llms import ChatMessage
from llama_index.llms.openai_like import OpenAILike

llm = OpenAILike(
model=os.environ["AISIX_MODEL"],
api_base=os.environ["AISIX_BASE_URL"],
api_key=os.environ["AISIX_API_KEY"],
is_chat_model=True,
is_function_calling_model=False,
)

response = llm.chat([
ChatMessage(role="user", content="Write one sentence about retrieval systems."),
])
print(response.message.content)

模型值应填写 AISIX 模型别名,而不是上游服务提供方模型 ID。AISIX 负责模型请求路径,而 LlamaIndex 应用继续负责数据加载、索引、检索和响应组装。仅当所选别名支持兼容 OpenAI 的工具调用时,才将 is_function_calling_model 设为 True

验证路由

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

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

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

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

处理兼容性问题

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

LlamaIndex 应用常将检索、聊天、工具调用和结构化响应解析组合使用。仅当所选别名支持兼容 OpenAI 的工具调用时,才将 is_function_calling_model 设为 True;在依赖相应路径的网关策略或遥测数据前,请验证实际工作流。

后续步骤