Pure Javascript ChatGPT demo based on nginx with OpenAI API (gpt-3.5-turbo)
纯JS实现的ChatGPT项目,基于nginx和OpenAI gpt-3.5-turbo API.
参考项目: markdown-it, highlight.js, github-markdown-css, chatgpt-html, markdown-it-copy, markdown-it-texmath, awesome-chatgpt-prompts-zh
在线预览 (使用需配置自定义API key)
- 配合nginx反代使用, 示例配置如下
#开启openai接口的gzip压缩,大量重复文本的压缩率高,节省服务端流量
gzip on;
gzip_min_length 1k;
gzip_types text/event-stream;
location ^~ /v1 {
proxy_pass https://api.openai.com;
proxy_set_header Host api.openai.com;
#如需用户自定义API key,可注释掉下一行配置
proxy_set_header Authorization "Bearer 替换为API KEY";
proxy_pass_header Authorization;
#流式传输,不关闭buffering缓存会卡顿卡死,必须配置!!!
proxy_buffering off;
}
location / {
root /usr/share/nginx/html;
index index.html;
}
注意: 反代服务器需正常访问api.openai.com
如果无法正常访问, 可配合socat反代和http代理使用, 示例配置如下
location ^~ /v1 {
proxy_pass https://127.0.0.1:8443;
proxy_set_header Host api.openai.com;
#如需用户自定义API key,可注释掉下一行配置
proxy_set_header Authorization "Bearer 替换为API KEY";
proxy_pass_header Authorization;
#流式传输,不关闭buffering缓存会卡顿卡死,必须配置!!!
proxy_buffering off;
}
location / {
root /usr/share/nginx/html;
index index.html;
}
socat TCP4-LISTEN:8443,reuseaddr,fork PROXY:http代理地址:api.openai.com:443,proxyport=http代理端口
- 配合Caddy使用,可以自动生产HTTPS证书
yourdomain.example.com {
reverse_proxy /v1/* https://api.openai.com {
header_up Host api.openai.com
header_up Authorization "{http.request.header.Authorization}"
header_up Authorization "Bearer sk-your-token"
}
file_server / {
root /var/wwwroot/chatgpt-web
index index.html
}
}
-
可选API key,默认不设置,如需使用,建议Nginx一定要配置https,公网以http方式明文传输API key极易被中间人截获。
-
可选系统角色,默认不开启,有三个预设角色,并动态加载awesome-chatgpt-prompts-zh中的角色。
-
可选角色性格,默认灵活创新,对应接口文档的top_p参数。
-
可选回答质量,默认平衡,对应接口文档的temperature参数。
-
修改打字机速度,默认较快,值越大速度越快。
-
允许连续对话,默认开启,对话中包含上下文信息,会导致api费用增加。
-
允许长回复,默认关闭,开启后可能导致api费用增加,并丢失大部分上下文,对于一些要发送
继续
才完整的回复,不用发继续
了。 -
选择语音,使用Edge浏览器体验最佳,可分开设置提问语音和回答语音。
-
音量,默认最大。
-
语速,默认正常。
-
音调,默认正常。
-
允许连续朗读,默认开启,连续郎读到所有对话结束。
-
允许自动朗读,默认关闭,自动朗读新的回答。