跳到主要内容

代理 OpenAI 请求

OpenAI 提供了对最先进 AI 模型(如 GPT-3)的访问,适用于各种应用,包括自然语言处理、文本生成等。将 OpenAI 的 API 集成到你的应用程序中可以解锁强大的文本分析、内容生成和其他 AI 驱动的任务功能。

APISIX 提供了密钥管理、响应流、限流限速等功能,使其成为代理来自 OpenAI API 端点的请求的绝佳选择。

本指南将向你展示如何配置 APISIX 以与 OpenAI API 集成,使用 ai-proxy 插件代理用户请求和模型响应。

前置条件

  • 安装 Docker
  • 安装 cURL 以向服务发送请求进行验证。
  • 按照 快速入门教程 在 Docker 或 Kubernetes 中启动一个新的 APISIX 实例。

获取 OpenAI API 密钥

在继续之前,请创建一个 OpenAI 帐户 和一个 API 密钥。你可以选择将密钥保存到环境变量,如下所示:

export OPENAI_API_KEY=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   # 替换为你的 API 密钥

创建到 OpenAI API 的路由

创建一个带有 ai-proxy 插件的路由,如下所示:

curl "http://127.0.0.1:9180/apisix/admin/routes" -X PUT -d '{
"id": "openai-chat",
"uri": "/anything",
"plugins": {
"ai-proxy": {
// Annotate 1
"provider": "openai",
"auth": {
"header": {
// Annotate 2
"Authorization": "Bearer '"$OPENAI_API_KEY"'"
}
},
// Annotate 3
"options": {
"model": "gpt-3.5-turbo"
}
}
}
}'

❶ 将提供商设置为 openai,这将代理请求到 OpenAI 端点。

❷ 将 OpenAI API 密钥附加到 Authorization 请求头。

❸ 将模型设置为 gpt-3.5-turbo

验证

向路由发送带有以下提示的请求:

curl "http://127.0.0.1:9080/anything" -X POST \
-H "Content-Type: application/json" \
-d '{
"messages": [
{
"role": "system",
"content": "You are a computer scientist."
},
{
"role": "user",
"content": "Explain in one sentence what a Turing machine is."
}
]
}'

你应该收到类似以下的响应:

{
...,
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "A Turing machine is an abstract mathematical model that manipulates symbols on an infinite tape according to a set of rules, representing the concept of a general-purpose computer."
},
"logprobs": null,
"finish_reason": "stop"
}
],
...
}

有关如何编写请求的更多信息,请参阅 OpenAI 的 API 规范

下一步

你现在已经学会了如何将 APISIX 与 OpenAI 集成。请参阅 OpenAI 的 API 参考 以了解有关 OpenAI 功能的更多信息。

如果你想与 OpenAI 的 流式 API 集成,你可以使用 proxy-buffering 插件来禁用 NGINX 的 proxy_buffering 指令,以避免缓冲服务器发送事件 (SSE)。

此外,你还可以集成 APISIX 提供的更多功能,例如 限流限速缓存,以提高系统可用性和用户体验。