使用Gin搭建ChatGPT服务,使用ChatGPT Web作为前端
[✓] 用户认证、管理
[✓] Token使用量计费、充值
[✓] 对话交互帮助
[✓] 管理员后台
[✓] OPENAI接口代理服务器
docker run --restart unless-stopped -d --log-opt max-size=50m -p 7080:7080 \
-e OPENAI_KEY=openai-key \
-e BASIC_AUTH_USER=user1,user2 \
-e BASIC_AUTH_PASSWORD=passwd1,passwd2 \
arvintian/chatgpt-web
- SERVER_PORT 服务端口,默认7080
- SERVER_HOST 服务监听地址,默认0.0.0.0
- SOCKS_PROXY socks代理URL,例如socks5://user:password@127.0.0.1:1080
- CHAT_SESSION_TTL 会话上下文保持时间,默认30分钟
- CHAT_MIN_RESPONSE_TOKENS 预留给会话响应的token数,可能导致截断最久的上下文,默认600
- OPENAI_KEY openai api key,参考OpenAI文档
- OPENAI_BASE_URL openai api base url,默认https://api.openai.com/v1
- OPENAI_MODEL 调用模型,默认gpt-3.5-turbo
- OPENAI_MAX_TOKENS 模型max_tokens参数,参考OpenAI文档
- OPENAI_TEMPERATURE 模型temperature参数,参考OpenAI文档
- OPENAI_PRESENCE_PENALTY 模型presence_penalty参数,参考OpenAI文档
- OPENAI_FREQUENCY_PENALTY 模型frequency_penalty参数,参考OpenAI文档
模型float32参数使用(整型/100)设置,例如: temperature设置0.8,需要设置为80
- BASIC_AUTH_USER 认证用户,多用户英文逗号分隔
- BASIC_AUTH_PASSWORD 认证用户密码,多用户英文逗号分隔
设置静态用户,静态用户不计token使用量,方便不共享搭建
- OPS_KEY 管理接口认证key
- OPS_LINK 当用户认证失败、token余额不足提示自助链接,默认跳转/admin管理后台
系统管理配置项,方便集成其他系统
- DB 数据库连接
系统默认内置使用SQLite,数据路径/data/chatgpt.db,支持MySQL,正确设置数据库连接即可,参考GORM
- OPENAI_PROXY 开启OpenAI接口的代理服务器
在OPENAI_BASE_URL的基础上再开正向代理,方便用作OpenAI接口的代理服务器
系统管理后台路径为/admin,用户名为admin,密码为OPS_KEY值
调用api需要管理认证
Header opskey:OPS_KEY
POST /accounts
添加用户
{
"action":"register",
"i_username":"arvin",
"i_password":"test",
"count":2000 # 初始token数
}
补充token数
{
"action":"recharge",
"i_username":"arvin",
"count":1000
}
查询用户
{
"action":"check",
"i_username":"arvin"
}