基于ChatGPT3.5 API实现的私有化Web程序
本项目可以一键部署属于自己定制化的 chatgpt web 程序(兼容gpt3.5), 只需下载release中对应平台的项目文件,修改配置后执行,打开 http://127.0.0.1:8080 ,便可以获得属于自己的chatgpt网站。
参考项目:codegen
项目当前默认为示例中AI聊天机器人参数,可以根据自己需求定制化。
注意,每个参数都可能影响你得到不一样的聊天效果,改变一个参数你就可能得到另一种回答,所以请自己尝试去调试,不要上来就抱怨人工智障。文档中有二十多中参数示例,如AI聊天机器人 ,产品名称生成,python代码修复器等等等...
详情参考官方详细参数示例
有openai账号,并且创建好api_key,注册事项可以参考此文章 。
第一种:直接下载二进制(适合对编程不了解的同学)
非技术人员请直接下载release中的压缩包 ,请根据自己系统以及架构选择合适的压缩包,下载之后直接解压运行。
下载之后,在本地解压,即可看到可执行程序,与配置文件:
# windows
1.下载压缩包解压
2.复制文件中config.dev.json更改为config.json
3.将config.json中的api_key替换为自己的
4.双击exe运行,启动服务
# linux
$ tar xf chatgpt-web-v0.0.2-darwin-arm64.tar.gz # 解压
$ cd chatgpt-web-v0.0.2-darwin-arm64
$ cp config.dev.json # 根据情况调整配置文件内容
$ ./chatgpt-web # 直接运行
# 如果要守护在后台运行
$ nohup ./chatgpt-web &> run.log &
$ tail -f run.log
第二种:基于源码运行(适合了解go语言编程的同学)
# 获取项目
$ git clone https://github.com/869413421/chatgpt-web.git
# 进入项目目录
$ cd chatgpt-web
# 复制配置文件
$ copy config.dev.json config.json
# 启动项目
$ go run main.go
你可以使用docker快速运行本项目。
第一种:基于环境变量运行
# 运行项目,环境变量参考下方配置说明
$ docker run -itd --name chatgpt-web --restart=always \
-e APIKEY=换成你的key \
-e APIURL= \
-e MODEL=gpt-3.5-turbo-0301 \
-e BOT_DESC=你是一个AI助手,我需要你模拟一名温柔贴心的女朋友来回答我的问题. \
-e MAX_TOKENS=512 \
-e TEMPREATURE=0.9 \
-e TOP_P=1 \
-e FREQ=0.0 \
-e PRES=0.6 \
-e PROXY=http://host.docker.internal:10809 \
-e AUTH_USER= \
-e AUTH_PASSWORD= \
-p 8080:8080 \
--add-host="host.docker.internal:host-gateway" \
qingshui869413421/chatgpt-web:latest
注意:host.docker.internal会指向容器所在宿主机的IP,因此只需要更改端口为你的代理端口即可。
运行命令中映射的配置文件参考下边的配置文件说明。
第二种:基于配置文件挂载运行
# 复制配置文件,根据自己实际情况,调整配置里的内容
$ cp config.dev.json config.json # 其中 config.dev.json 从项目的根目录获取
# 运行项目
$ docker run -itd --name chatgpt-web -v `pwd`/config.json:/app/config.json -p 8080:8080 qingshui869413421/chatgpt-web:latest
其中配置文件参考下边的配置文件说明。
docker compose up -d
{
"api_key": "your api key",
"api_url": "",
"port": 8080,
"listen": "",
"bot_desc": "你是一个AI助手,我需要你模拟一名温柔贴心的女朋友来回答我的问题。",
"proxy": "http://host.docker.internal:10809",
"model": "gpt-3.5-turbo-0301",
"max_tokens": 512,
"temperature": 0.9,
"top_p": 1,
"frequency_penalty": 0.0,
"presence_penalty": 0.6,
"auth_user": "",
"auth_password": ""
}
…
`
这里提供一份使用NGINX反向代理该软件的样例配置,方便集成于现有的站点,添加用户认证,套TLS等,该文件一般对应于/etc/nginx/sites-available/default文件,需要自行修改。
…
可以使用systemd配置chatgpt-web开机自启,假设可执行文件和相关资源文件放置在/var/www/chatgpt-web/目录下,chatgpt-web二进制文件需要其他用户可读可执行权限,其余资源文件需要其他用户可读权限,并且已经配置好config.json。
在目录/etc/systemd/system/下新建文件chatgpt-web.service,以下是文件样例。
[Unit]
Description=chatgpt-web
Documentation=https://github.com/869413421/chatgpt-web
# 在网络启动完成后运行
After=network.target nss-lookup.target
[Service]
# 使用随机用户执行该服务
DynamicUser=yes
# 指定工作目录
WorkingDirectory=/var/www/chatgpt-web/
# 执行程序
ExecStart=/var/www/chatgpt-web/chatgpt-web
[Install]
WantedBy=multi-user.target
保存后使用systemctl daemon-reload更新systemd配置文件,使用systemctl start/stop chatgpt-web启动/停止服务,使用systemctl enable/disable chatgpt-web启用/禁用服务开机自启。
可以使用journalctl --unit chatgpt-web.service查看程序日志。
The code is for demo and testing only. 代码仅用于演示和测试。
⚠⚠⚠请勿将本系统代码用于商业用途!
仿冒或冒用ChatGPT、OpenAI名义开展经营活动,可能构成《商标法》、《反不正当竞争法》下的一系列侵权行为; 以之牟利造成消费者损失的,可能产生《商标法》、《反不正当竞争法》、《消费者权益保护法》下的民事或行政责任,情节严重并造成重大损失的,还有可能构成刑事犯罪; 如果提供这种跨境经营服务存在私自搭建国际信道的情形,还有可能违反《网络安全法》、《刑法》的相关规定,承担行政责任或构成刑事犯罪。
暂无开放 Issues,或尚未同步最近议题。