5 分钟代理第一个大语言模型请求
本指南将带你通过 API7 网关代理第一个大语言模型请求。你将创建一个把聊天补全请求转发到 OpenAI 的路由,由网关负责身份认证和流量管理。
前置条件
-
安装 Docker。
-
安装 cURL,用于发送请求并验证服务。
-
拥有一个正在运行的 API7 网关实例。
-
从控制台获取令牌,并将其保存到环境变量:
export API_KEY=your-dashboard-token # 请替换为你的控制台令牌 -
将
{gateway_group_id}替换为网关组 ID。如果正在按照快速入门操作,请使用default。
获取 OpenAI API Key(API 密钥)
创建 OpenAI 账户并生成 API Key,然后将 API Key 保存到环境变量:
export OPENAI_API_KEY=sk-proj-xxxxxxxxxxxxxxxxxxxxxxxx # 请替换为你的 OpenAI API Key
创建或复用服务
如果要使用本指南及其他 AI 网关指南中的 Admin API 示例,你需要一个 service_id。
- Admin API
- ADC
curl -k "https://localhost:7443/apisix/admin/services/ai-gateway-service?gateway_group_id={gateway_group_id}" -X PUT \
-H "X-API-KEY: ${API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"name": "ai-gateway-service"
}'
此请求会创建一个 ID 为 ai-gateway-service 的占位服务。后续 Admin API 示例中可以复用该服务:
export SERVICE_ID=ai-gateway-service
services:
- name: AI Gateway Service
将配置同步到 API7 网关:
adc sync -f adc.yaml
如果已经有要附加 AI 网关路由的服务,请在 Admin API 示例中改用该服务的 ID。
创建启用 AI 代理的路由
创建一个启用 ai-proxy 插件的路由,将请求转发到 OpenAI:
- Admin API
- ADC
curl -k "https://localhost:7443/apisix/admin/routes?gateway_group_id={gateway_group_id}" -X PUT \
-H "X-API-KEY: ${API_KEY}" \
-d '{
"id": "ai-gateway-quickstart",
"service_id": "'"$SERVICE_ID"'",
"paths": ["/ai"],
"plugins": {
"ai-proxy": {
"provider": "openai",
"auth": {
"header": {
"Authorization": "Bearer '"$OPENAI_API_KEY"'"
}
},
"options": {
"model": "gpt-4o"
}
}
}
}'
❶ 将服务提供方设置为 openai。
❷ 在 Authorization 请求头中附加 OpenAI API Key。网关会在每个请求中注入此请求头,客户端无需自行管理 API Key。
❸ 将默认模型设置为 gpt-4o。客户端可以在请求体中包含 model 字段来覆盖此设置。
services:
- name: AI Gateway Service
routes:
- uris:
- /ai
name: ai-gateway-quickstart
plugins:
ai-proxy:
provider: openai
auth:
header:
Authorization: "Bearer ${OPENAI_API_KEY}"
options:
model: gpt-4o
❶ 将服务提供方设置为 openai。
❷ 在 Authorization 请求头中附加 OpenAI API Key。网关会在每个请求中注入此请求头,客户端无需自行管理 API Key。
❸ 将默认模型设置为 gpt-4o。客户端可以在请求体中包含 model 字段来覆盖此设置。
将配置同步到 API7 网关:
adc sync -f adc.yaml
发送聊天补全请求
向该路由发送请求:
curl "http://127.0.0.1:9080/ai" -X POST \
-H "Content-Type: application/json" \
-d '{
"messages": [
{ "role": "system", "content": "You are a helpful assistant." },
{ "role": "user", "content": "What is an API gateway in one sentence?" }
]
}'
你应收到类似以下内容的响应:
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"model": "gpt-4o-2024-08-06",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "An API gateway is a server that acts as a single entry point for API requests, handling routing, authentication, rate limiting, and other cross-cutting concerns."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 25,
"completion_tokens": 32,
"total_tokens": 57
}
}
网关会拦截请求、注入 OpenAI API Key、把请求转发到 OpenAI,并将响应返回给客户端。你的应用无需直接处理模型服务提供方凭证。
后续步骤
代理第一个大语言模型请求后,可以继续探索 API7 AI 网关的完整功能:
- 接入其他服务提供方 — 将流量路由到 Azure OpenAI、Anthropic、DeepSeek 等服务提供方。
- 多模型路由和故障转移 — 在多个模型和服务提供方之间进行负载均衡,并支持自动故障转移。
- 提示词工程 — 注入系统提示词并使用可复用模板。
- 内容安全 — 防范提示词注入并拦截有害内容。
- Token 限流 — 使用基于 Token 的预算控制成本。