【干货】-国内如何畅通访问OpenAI ChatGPT

对于OpenAI 这个公司的ChatGPT产品大家估计已经很是熟悉了,它的作用如下:

ChatGPT是一种基于深度学习的语言模型,具有广泛的应用。以下是对ChatGPT能够实现的一些功能的详细介绍:

  1. 文本生成:ChatGPT可以根据给定的提示或问题生成连贯、富有创造力的文章。它可以用于写作、创意生成、故事讲述等方面。

  2. 语言翻译:ChatGPT具备将一种语言翻译成另一种语言的能力。你可以提供一个句子或一个段落,ChatGPT将为你提供相应的翻译。

  3. 问题回答:ChatGPT可以回答关于各种主题的问题。不论是历史、地理、科学还是其他领域的知识,只需提供相关问题,ChatGPT会尽力给出准确的答案。

  4. 编程帮助:如果你在编程过程中遇到问题,ChatGPT可以为你提供帮助和建议。你可以询问任何与编程语言、库函数、错误调试等相关的问题,ChatGPT将尽力为你解答。

  5. 学术研究:ChatGPT可以用作学术研究的工具,帮助进行文献搜索、问题探索和思路拓展。研究者可以将ChatGPT作为一个有益的合作伙伴,来生成创新的研究想法。

  6. 创意推荐:如果你需要一些创意或灵感,ChatGPT可以根据指定的主题或要求提供相关的建议。无论是写诗、设计、音乐还是其他艺术形式,ChatGPT都可以为你提供一些建议。

  7. 情感分析:ChatGPT具备情感分析的能力,可以识别文本的情绪和情感倾向。这对于社交媒体分析、市场调研等领域非常有用。

  8. 对话系统:ChatGPT可以与用户进行自然对话,回答用户的问题、提供信息和建议,并模拟真实的人类对话。这使得ChatGPT成为一个交流和娱乐工具。

当然还有很多很多其他,如写简历,写论文,只有你想不到的,没有它做不到的。

但是它有的时候也会胡编乱造,可以将创造性温度temperature调的低一些。

关于OpenAI ChatGPT 的作用介绍,请移步哔哩哔哩视频:

www.bilibili.com/video/BV15N...

好,废话不多说,下面进入正题,国内环境如何畅通的访问OpenAI ChatGPT呢?

国内畅通访问OpenAI ChatGPT

反向代理大家已经很熟悉了,这里就是利用了Nginx的反向代理功能。其实网络上有很多提供了代理的域名,但是你不保准它们是不是会收集信息,以及怕OpenAI的key泄露。

所以这里采用手动方式来自己搭建。

方式一

这里是针对OpenAI的SDK,或者OpenAI的HTTP方式的,如果对于LangChain请移步方式二

前提依赖:

  • OpenAI Key
  • 外网主机
  • 域名地址

配置安装Nginx

首选登录外网主机(你懂的),然后创建所需目录和Nginx配置文件:

sh 复制代码
mkdir ~/nginx/{html,conf.d} -pv
cd ~/nginx
vim nginx.conf

将如下内容放到``nginx.conf`文件中:

注意: 请将域名替换成你自己的,我这里使用:web.lansejingyu.com 来做示例。

nginx 复制代码
user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;

events {
    worker_connections  65535;
    accept_mutex off;
    use epoll;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    server_tokens off;
    server_names_hash_bucket_size 64;
    server_names_hash_max_size 1024;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    tcp_nopush     on;

    keepalive_timeout  65;

    gzip  on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 6;
    gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
    gzip_vary on;

    include /etc/nginx/conf.d/*.conf;
    
    proxy_headers_hash_max_size 51200;
    proxy_headers_hash_bucket_size 6400;
    proxy_buffers 16 64k;
    proxy_buffer_size 512k;
    proxy_busy_buffers_size 512k;
    proxy_intercept_errors on;
    proxy_connect_timeout 3000;
    proxy_send_timeout 300;
    proxy_read_timeout 300;
    large_client_header_buffers 4 512k;
    client_max_body_size 500m;
    client_body_buffer_size 3m;
	
    # 核心
	server {
	    listen 80;
	    listen [::]:80;
	    server_name  web.lansejingyu.com; # 换成你自己的域名
	    charset utf-8;
	    location / {
	        proxy_pass https://api.openai.com;
	        proxy_ssl_server_name on;
	        proxy_set_header Host api.openai.com;
	    }
	}
}

上面是http的方式,如果你有证书,可以使用https的方式,核心配置如下:

nginx 复制代码
server {
       listen       443 ssl http2;
       server_name  web.lansejingyu.com; # 换成你自己的域名
       charset utf-8;
       ssl_certificate   cert/fullchain.pem;
       ssl_certificate_key  cert/privkey.pem;
       ssl_session_timeout 1d;
       ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECD
HE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:D
HE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:A
ES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4";

       ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
       ssl_session_cache   shared:SSL:10m;
       ssl_prefer_server_ciphers on;
       location / {
           proxy_pass https://api.openai.com;
           proxy_ssl_server_name on;
           proxy_set_header Host api.openai.com;
       }
}

然后启动nginx服务,这里通过Docker启动:

sh 复制代码
cd ~/nginx
sudo docker run -d --name ngx --restart=always -p 80:80 \
        -v `pwd`/html:/usr/share/nginx/html \
        -v `pwd`/conf.d:/etc/nginx/conf.d \
        -v `pwd`/nginx.conf:/etc/nginx/nginx.conf \
        nginx:1.25.2

最后,将域名: web.lansejingyu.com 解析到外网主机的公网IP上。然后你就可以通过域名: web.lansejingyu.com 来代理访问OpenAI了。

下面给出示例,分别用于:

  • Openai SDK
  • HTTP方式
  • LangChain SDK

OpenAI SDK 方式

这里以Python为例,Nodejs也差不多。

安装SDK:

sh 复制代码
pip install -U openai

编写代码:main.py

python 复制代码
import openai

# 设置OpenAI key
penai.api_key = "<API-KEY>"

# 设置openai 代理地址, 需要添加 /v1
openai.api_base = "http://web.lansejingyu.com/v1"

def chat(prompt: str) -> dict:
    """
    生成,根据提示,来生成补全
    :param prompt: 提示
    :return: 返回response map
    """
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[
            {"role": "user", "content": prompt}
        ]
    )

    return response

if __name__ == '__main__':
    print(chat("Hi who are you?"))

然后执行python 即可:

sh 复制代码
python3 main.py

响应位于:response.choices[0].message.content

json 复制代码
{
  "id": "chatcmpl-7qujNVvN5651pcLcg2jAfNNu3nucz",
  "object": "chat.completion",
  "created": 1692845485,
  "model": "gpt-3.5-turbo-0613",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! I am Xiao Ming, your personal assistant. I am an AI language model designed to assist with various tasks and provide information. How can I help you today?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 41,
    "completion_tokens": 34,
    "total_tokens": 75
  }
}

HTTP方式

这里使用curl命令行来访问:

sh 复制代码
# 替换 $OPENAI_API_KEY 为你的key
curl http://web.lansejingyu.com/v1/chat/completions 
 -H "Content-Type: application/json" 
 -H "Authorization: Bearer $OPENAI_API_KEY" 
 -d '{
 "model": "gpt-3.5-turbo",
 "messages": [{"role": "user", "content": "Hi who are you?"}],
 "temperature": 0.7
 }'

也可以通过获取上面的response.

LangChain SDK

这里介绍更加重量级的选手:LangChain ,使用它可以创造非常牛逼的应用,其可以对接多种大模型,包括OpenAI。

首选按照方式一,配置好nginx的代理域名。

然后安装SDK:

sh 复制代码
# 因为我们要使用openai,所以也需要安装openai的sdk
pip install -U langchian openai

编写main.py:

python 复制代码
from langchain.llms import OpenAI
import os

os.environ["OPENAI_API_BASE"] = "http://web.lansejingyu.com/v1"
os.environ["OPENAI_API_KEY"] = "sk-xxxxxxxxx"

llm = OpenAI(temperature=0.9)

print(llm("Hi who are you?))

然后你会直接得到content内容。

方式二 【推荐】

针对前面的方式,门槛还是很高的。所以这里给大家推荐我一直在用的稳定快速的服务,下面的依赖统统不需要

  • OpenAI Key
  • 外网主机
  • 域名地址

直接拿来使用就可以,支持手机端和PC端。

下面是示例:

默认自带历史记录,使AI能够理解之前的对话,也可以关闭历史会话功能。

左下角3.5位置,可以切换成``Openai 4.0`版本,来使用最强的模型。

同时支持让机器人扮演某种角色:

所以你还在犹豫什么,赶紧访问: web.lansejingyu.com 来使用吧,还有更强大的在于AI 智脑:你的云端第二大脑,可以与任何文件聊天,支持word,text,markdown,pdf,csv 等等。

相关推荐
sp_fyf_20246 小时前
【大语言模型】ACL2024论文-36 利用NLI和ChatGPT及编码簿知识进行零样本政治关系分类
深度学习·神经网络·机器学习·语言模型·chatgpt·分类·数据挖掘
测试者家园1 天前
ChatGPT生成接口文档实践案例(二)
软件测试·chatgpt·llm·测试用例·测试图书·质量效能·用chatgpt做测试
测试者家园1 天前
ChatGPT与Postman协作完成接口测试(一)
软件测试·chatgpt·接口测试·postman·用chatgpt做软件测试·测试图书·质量效能
智慧化智能化数字化方案2 天前
120页PPT讲解ChatGPT如何与财务数字化转型的业财融合
人工智能·chatgpt
s_yellowfish2 天前
Linux服务器pm2 运行chatgpt-on-wechat,搭建微信群ai机器人
linux·服务器·chatgpt
that's boy3 天前
突围边缘:OpenAI开源实时嵌入式API,AI触角延伸至微观世界
人工智能·gpt·chatgpt·开源·openai·midjourney
AIGC大时代3 天前
如何使用ChatGPT辅助文献综述,以及如何进行优化?一篇说清楚
人工智能·深度学习·chatgpt·prompt·aigc
hunteritself4 天前
AI Weekly『12月16-22日』:OpenAI公布o3,谷歌发布首个推理模型,GitHub Copilot免费版上线!
人工智能·gpt·chatgpt·github·openai·copilot
测试者家园4 天前
ChatGPT生成接口文档的方法与实践
软件测试·chatgpt·测试用例·接口测试·接口文档·ai赋能·用chatgpt做软件测试
小虚竹4 天前
如何利用ChatGPT生成不同类型的文章大纲
chatgpt