如何使用 Nginx 设置 OpenAI 反向代理

OpenAI-Reverse-proxy-with-Nginx-750x422-1

OpenAI 是 AI 研究领域的知名领导者,它提供了一个 API,使开发人员能够利用其强大的语言模型。本文将提供有关在具有子域和 Let’s Encrypt 免费 SSL 的 Ubuntu 22.04 计算机上使用 Nginx 设置 OpenAI 反向代理的分步指南。此设置允许您将 AI 功能高效地集成到您的应用程序中,例如 Janitor AIVenus AI 等。

OpenAI 反向代理的好处

OpenAI 反向代理结合 Nginx 具有以下优势:

  • 性能:通过配置反向代理,您可以缓存 OpenAI API 响应,从而减少延迟并提高用户的整体性能。
  • 可扩展性:反向代理充当应用程序和 OpenAI API 之间的中介,使您能够无缝扩展 AI 集成。
  • 安全性:反向代理可以通过屏蔽敏感的 API 密钥并保护您的后端基础设施免受直接外部访问来增加额外的安全层。

让我们开始使用 Nginx 配置 OpenAI 反向代理。

先决条件

  1. 一台具有 Linux 发行版且具有外部 IP 的计算机,以便我们可以配置子域并安装 SSL。
  2. sudo具有特权或访问权限的用户root

初始设置

首先将软件包更新到可用的最新版本。

sudo apt update
sudo apt upgrade -y

为 OpenAI 反向代理安装 Nginx

您可以通过单个命令轻松安装 Nginx。

sudo apt install nginx

使用以下命令验证 nginx 安装。

sudo service nginx status

您将看到 Nginx 状态的输出(活动或失败)。

使用 Nginx 配置 OpenAI 反向代理

现在您需要删除 Nginx 安装附带的默认 Nginx 配置。

sudo rm -rf /etc/nginx/sites-enabled/default
sudo rm -rf /etc/nginx/sites-available/default

为 OpenAI 反向代理创建新配置。

在 Nginxsites-available目录中创建一个新文件。

sudo nano /etc/nginx/sites-available/reverse-proxy.conf

将下面列出的整个配置复制到编辑器。

确保更换下面列出的那些。

  • OPENAI_API_KEY为您从OpenAI 平台获取的 OPENAI_API_KEY 。
  • YOUR_DOMAIN_NAME与您的域名。
/etc/nginx/sites-available/reverse-proxy.conf
proxy_ssl_server_name on;

server {
    listen 80;
    server_name YOUR_DOMAIN_NAME;

    proxy_set_header Host api.openai.com;
    proxy_http_version 1.1;
    proxy_set_header Host $host;

    proxy_busy_buffers_size   512k;
    proxy_buffers   4 512k;
    proxy_buffer_size   256k;

    location ~* ^\/v1\/((engines\/.+\/)?(?:chat\/completions|completions|edits|moderations|answers|embeddings))$ {
        proxy_pass https://api.openai.com;
        proxy_set_header Authorization "Bearer OPENAI_API_KEY";
        proxy_set_header Content-Type "application/json";
        proxy_set_header Connection '';
        client_body_buffer_size 4m;
    }
}

点击CTRL + XENTER保存并退出编辑器。

启用新创建的 Nginx 配置。

配置代理缓存(可选)

如果需要,您还可以配置缓存以提高性能。您只需将我们添加的上面的代码替换为下面的代码即可。

/etc/nginx/sites-available/reverse-proxy.conf
proxy_ssl_server_name on;

proxy_cache_path /server_cache levels=1:2 keys_zone=openai_cache:10m max_size=1g inactive=4d use_temp_path=off;

log_format cache_log '$remote_addr - $remote_user [$time_local] '
                    '"$request" $status $body_bytes_sent '
                    '"$http_referer" "$http_user_agent" '
                    'Cache: $upstream_cache_status';
                    
server {
    listen 80;
    server_name YOUR_DOMAIN_NAME;

    proxy_set_header Host api.openai.com;
    proxy_http_version 1.1;
    proxy_set_header Host $host;

    proxy_busy_buffers_size   512k;
    proxy_buffers   4 512k;
    proxy_buffer_size   256k;

    location ~* ^\/v1\/((engines\/.+\/)?(?:chat\/completions|completions|edits|moderations|answers|embeddings))$ {
        proxy_pass https://api.openai.com;
        proxy_set_header Authorization "Bearer OPENAI_API_KEY";
        proxy_set_header Content-Type "application/json";
        proxy_set_header Connection '';
        proxy_cache openai_cache;
        proxy_cache_methods POST;
        proxy_cache_key "$request_method|$request_uri|$request_body";
        proxy_cache_valid 200 4d;
        proxy_cache_valid 404 1m;
        proxy_read_timeout 8m;
        proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
        proxy_cache_background_update on;
        proxy_cache_lock on;
        access_log /dev/stdout cache_log;
        proxy_ignore_headers Cache-Control;
        add_header X-Cache-Status $upstream_cache_status;
        client_body_buffer_size 4m; 
    }
}

为 OpenAI 反向代理启用 Nginx 配置

sudo ln -s /etc/nginx/sites-available/reverse-proxy.conf /etc/nginx/sites-enabled/reverse-proxy.conf

测试 Nginx 配置。

sudo nginx -t

重新启动 Nginx 以使更改生效。

另请阅读:如何通过 OpenAI 反向代理设置和使用 Janitor AI API

另请阅读:如何在 Hugging Face 中使用 Docker 设置 OpenAI 反向代理

使用免费 SSL 保护设置

现在我们将安装 Let’s Encrypt 免费 SSL 并保护您的请求。

使用以下命令安装 Certbot。

sudo apt install python3-certbot-nginx

现在您可以使用命令安装 SSL certbot

请务必将您的电子邮件域名替换为真实的。

重要提示:您的域名应指向您服务器的 IP 地址,否则 SSL 安装将失败。

sudo certbot --nginx --redirect --no-eff-email --agree-to-tos -m yourmail@mail.com -d yourdomain.com

现在您将安装 SSL。

使用 Nginx 验证 OpenAI 反向代理

现在您已将 Nginx 服务器配置为与 OpenAI API 配合使用。要测试这是否有效,您可以使用 构成 url v1/chat/completions

这些是下面列出的一些端点。

  • 邮政/v1/chat/completions
  • 邮政/v1/completions
  • 邮政/v1/edits
  • 邮政/v1/embeddings
  • 邮政/v1/moderations
  • 邮政/v1/answers

如果您向所需端点发出请求,您将收到请求的响应。

结论

就是这样!您已在 Ubuntu 22.04 上使用 Nginx 成功设置了 OpenAI API 反向代理。您还安装并配置了 SSL 来处理保护您的 API 密钥和请求的安全措施。

原创文章,作者:主机说,如若转载,请注明出处:https://www.hostingtalk.cn/how-to-setup-openai-reverse-proxy-with-nginx/

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

error: 内容保护