织梦CMS - 轻松建站从此开始!

欧博ABG官网-欧博官方网址-会员登入

Nginx反向代理Open欧博注册AI API

时间:2024-09-12 04:57来源: 作者:admin 点击: 9 次
在本教程中,欧博注册我们将介绍如何使用Nginx反向代理访问OpenAI API,并提供相应的测试方法。主要目标是保证Server-sent events (SSE)类型响应的流畅输出,从而提供良好的用户体验。 步骤1:安装最新版Nginx 首先,欧博代理我们需要安装最新版的Nginx。在Ubunt

在本教程中,欧博注册我们将介绍如何使用Nginx反向代理访问OpenAI API,并提供相应的测试方法。主要目标是保证Server-sent events (SSE)类型响应的流畅输出,从而提供良好的用户体验。

步骤1:安装最新版Nginx

首先,欧博代理我们需要安装最新版的Nginx。在Ubuntu上,可以使用以下命令安装:

echo "deb `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list curl -o /tmp/nginx_signing.key https://nginx.org/keys/nginx_signing.key sudo mv /tmp/nginx_signing.key /etc/apt/trusted.gpg.d/nginx_signing.asc sudo apt update sudo apt install nginx

对于使用的Debian系统,请按照以下步骤操作:

使用文本编辑器打开 /etc/apt/sources.list 并在底部添加以下内容:

deb stretch nginx

导入软件源的签名密钥,欧博官网并将其添加到apt:

sudo wget sudo apt-key add nginx_signing.key

安装Nginx:

sudo apt update sudo apt install nginx

在安装完成后,可以使用以下命令启动并设置Nginx服务为开机自启:

sudo systemctl enable nginx --now 步骤2:配置Nginx

接下来,我们配置Nginx来反向代理OpenAI API。在Nginx的配置文件(/etc/nginx/conf.d/openai.conf)中添加以下内容:

server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name example.com; ssl_certificate /home/azureuser/.acme.sh/example.com_ecc/fullchain.cer; ssl_certificate_key /home/azureuser/.acme.sh/example.com_ecc/example.com.key; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; add_header Strict-Transport-Security "max-age=31536000"; charset utf-8; location / { proxy_pass https://api.openai.com; proxy_ssl_name api.openai.com; proxy_ssl_server_name on; proxy_set_header Host api.openai.com; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; chunked_transfer_encoding off; proxy_set_header X-Real-IP [your_us_server_ip]; proxy_read_timeout 3600; proxy_buffering off; proxy_cache off; proxy_redirect off; proxy_hide_header Cache-Control; } location /v2 { return 404; } }

listen 443 ssl http2; 和 listen [::]:443 ssl http2;:监听IPv4和IPv6的443端口,欧博娱乐启用SSL和HTTP/2。

server_name example.com;:指定服务器名称,将其更改为您的实际域名。

ssl_certificate 和 ssl_certificate_key:分别指定SSL证书和私钥的路径。

ssl_ciphers 和 ssl_protocols:定义支持的加密套件和SSL/TLS协议。

ssl_prefer_server_ciphers on;:表示服务器优先选择的加密套件。

ssl_session_cache 和 ssl_session_timeout:配置SSL会话缓存和超时时间。

add_header Strict-Transport-Security "max-age=31536000";:添加HSTS头,要求浏览器在给定的时间内(这里是1年)只使用HTTPS访问服务器。

charset utf-8;:设置字符集为UTF-8。

location / {...}:定义一个location块,欧博allbet用于处理根路径的请求。

proxy_pass https://api.openai.com;:将请求代理到OpenAI API。

proxy_ssl_name 和 proxy_ssl_server_name on;:设置与后端服务器建立SSL连接的相关参数。

proxy_set_header:设置传递给后端服务器的请求头。

chunked_transfer_encoding off;:禁用分块传输编码,以确保SSE消息不会被切割。

proxy_set_header X-Real-IP [your_us_server_ip];:设置实际客户端IP地址,将[your_us_server_ip]替换为您的美国服务器IP地址。

proxy_buffering off; 和 proxy_cache off;:禁用缓冲和缓存,以确保实时消息能够及时传递给客户端。

proxy_redirect off;:禁用代理重定向,确保服务器响应不会因重定向而更改。

location /v2 {...}:定义另一个location块,用于处理以/v2开头的请求。

return 404;:针对这些请求,直接返回404状态码表示未找到资源。

在本Nginx配置中,重点是确保对OpenAI API的请求能够流畅地通过反向代理。这包括正确地转发请求,处理响应以及针对SSE的特殊处理(使用stream参数请求API时流程稳定的打字机效果,相关博文:《对接ChatGPT3.5/4的API实现打字机效果》)。

请将配置中的example.com替换为您实际使用的域名,并将[your_us_server_ip]替换为您的美国服务器IP地址。如果使用Azure OpenAI接口,只需要替换api.openai.com为你的Azure OpenAI Endpoint的Host。

在nginx.conf中,添加以下配置:

client_max_body_size 1000M; client_body_buffer_size 1024M; keepalive_timeout 3600;

解释:

client_max_body_size 设置允许客户端请求的最大单个文件体积。

client_body_buffer_size 设置客户端请求体缓冲区大小。

keepalive_timeout 设置长连接超时时间。

步骤3:测试反向代理

接下来,您可以使用以下方法测试反向代理:

首先设置环境变量:

export OPENAI_API_KEY=sk-xxxxx export OPENAI_API_ORG=org-xxxx

测试模型列表:

curl https://example.com/v1/models \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "OpenAI-Organization: $OPENAI_API_ORG"

测试ChatGPT生成文本:

curl https://example.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "gpt-4", "messages": [{"role": "user", "content": "Hello!"}] }'

通过以上方法,您可以测试和验证Nginx反向代理配置是否正确。本教程向您展示了如何使用Nginx反向代理访问OpenAI API,并提供了相应的测试方法。主要目标是保证Server-sent events (SSE)类型响应的流畅输出,从而提供良好的用户体验。

(责任编辑:)
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:
发布者资料
查看详细资料 发送留言 加为好友 用户等级: 注册时间:2024-11-14 12:11 最后登录:2024-11-14 12:11
栏目列表
推荐内容