支持n个账号切换

This commit is contained in:
linghaihui 2023-03-29 15:24:08 +08:00
parent d25215a7be
commit 1913445b95
3 changed files with 25 additions and 14 deletions

View File

@ -1,6 +1,6 @@
## New Bing 接口
包括http和websocket两种协议的接口可根据实际情况选用
包括 http websocket 两种协议的接口,可根据实际情况选用
## 部署
@ -9,7 +9,7 @@
```
1.git clone https://github.com/bujnlc8/gptbing
2.cd gptbing/new-bing
3.mkdir cookies && mv cookie.json cookies # 支持3个cookie可分别命名为cookie.json,cookie1.json,cookie2.json
3.mkdir cookies && mv cookie.json cookies # 通过COOKIE_FILES环境变量可以支持n个账号的自动切换目前微软对每个账号每天的聊天限制是200条
4.cp env.example env # 根据实际情况修改
5.bash start.sh 0.0.3
6.curl -X POST 'http://127.0.0.1:8000/chat' -H 'content-type: application/json' --data '{"q":"你是谁?","t":1,"sid":"1"}' # 验证是否成功
@ -19,5 +19,4 @@
`EdgeGPT.py`文件 fork 至[https://github.com/acheong08/EdgeGPT](https://github.com/acheong08/EdgeGPT),并做了些许修改,在此表示感谢!
**⚠️ 目前中国大陆的IP会返回404自备代理** 见[https://github.com/acheong08/EdgeGPT/issues/178](https://github.com/acheong08/EdgeGPT/issues/178)
**⚠️ 目前中国大陆的 IP 会返回 404自备代理** 见[https://github.com/acheong08/EdgeGPT/issues/178](https://github.com/acheong08/EdgeGPT/issues/178)

View File

@ -16,10 +16,18 @@ from EdgeGPT import Chatbot, ConversationStyle
APPID = os.environ.get('WXAPPID')
APPSECRET = os.environ.get('WXAPPSECRET')
WX_URL = 'https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code'
COOKIE = os.environ.get('COOKIE_FILE', '')
# 备用cookie
BAK_COOKIE = os.environ.get('COOKIE_FILE1', '')
BAK_COOKIE1 = os.environ.get('COOKIE_FILE2', '')
# cookie列表, 如果有此环境变量,优先使用
COOKIE_FILES = raw_json.loads(os.environ.get('COOKIE_FILES', '[]'))
if COOKIE_FILES:
os.environ['COOKIE_FILE'] = COOKIE_FILES[0]
else:
COOKIE = os.environ.get('COOKIE_FILE', '')
if not COOKIE:
raise ValueError('COOKIE_FILE环境变量为空')
BAK_COOKIE = os.environ.get('COOKIE_FILE1', COOKIE)
BAK_COOKIE1 = os.environ.get('COOKIE_FILE2', COOKIE)
BAK_COOKIE2 = os.environ.get('COOKIE_FILE3', COOKIE)
LOCK = threading.Lock()
BOT_LOCK = threading.Lock()
@ -36,14 +44,17 @@ def reset_cookie():
if not LOCK.acquire(blocking=False):
return
cookie = os.environ.get('COOKIE_FILE')
if cookie == COOKIE:
if BAK_COOKIE:
if COOKIE_FILES:
os.environ['COOKIE_FILE'] = COOKIE_FILES[(COOKIE_FILES.index(cookie) + 1) % len(COOKIE_FILES)]
else:
if cookie == COOKIE:
os.environ['COOKIE_FILE'] = BAK_COOKIE
elif cookie == BAK_COOKIE:
if BAK_COOKIE1:
elif cookie == BAK_COOKIE:
os.environ['COOKIE_FILE'] = BAK_COOKIE1
elif cookie == BAK_COOKIE1:
os.environ['COOKIE_FILE'] = COOKIE
elif cookie == BAK_COOKIE1:
os.environ['COOKIE_FILE'] = BAK_COOKIE2
elif cookie == BAK_COOKIE2:
os.environ['COOKIE_FILE'] = COOKIE
LOCK.release()

View File

@ -3,4 +3,5 @@ WXAPPSECRET=用不到小程序可以不填
COOKIE_FILE=/sanic/cookies/cookie.json
COOKIE_FILE1=/sanic/cookies/cookie1.json # 备用cookie1, 没有可以删掉
COOKIE_FILE2=/sanic/cookies/cookie2.json # 备用cookie2, 没有可以删掉
COOKIE_FILES=["/sanic/cookies/cookie.json", "/sanic/cookies/cookie1.json", "/sanic/cookies/cookie2.json"] #cookie列表配置了此环境变量会优先使用此变量直接忽略上面的3个环境变量
https_proxy=http://127.0.0.1:1080 # 目前中国大陆的IP会返回404所以最好能加个代理