Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

更新23日代码库后扫码登陆无应答 #187

Open
sd3420625 opened this issue Jun 24, 2024 · 30 comments
Open

更新23日代码库后扫码登陆无应答 #187

sd3420625 opened this issue Jun 24, 2024 · 30 comments

Comments

@sd3420625
Copy link

早晨更新了代码库,重新填写了env文件,包括个人、群聊白名单,apikey,删除了代理api服务器,默认选择ChatGPT;更改了openai设置,模型选择gpt-4o,调整了gpt角色信息。

正常docker打包部署后,可以正常扫码登陆,但没有任何应答,log里也没有任何登陆后的报错信息显示,包括接受到的聊天信息也没有

请问问题出在哪

@sd3420625
Copy link
Author

ps:服务器不需要代理,能直接访问官方接口

@wangrongding
Copy link
Owner

好的,我晚上排查下

@sd3420625
Copy link
Author

补充,模型换回3.5问题依旧,另外白名单输入加''也一样,是不是wechaty接入逻辑有问题

@lengsukq
Copy link
Contributor

可以看一下env文件怎么填的吗

@lengsukq
Copy link
Contributor

我部署docker的时候,也碰到过类似的问题,需要重建docker才会更新env里面的数据,后面我是按作者的docker代码重新部署了下的

@lengsukq
Copy link
Contributor

初步怀疑是.env文件未正确加载,建议填一下默认服务选择,这样启动服务的时候就知道是否正确加载env文件了

@lengsukq
Copy link
Contributor

lengsukq commented Jun 24, 2024

这是我上传的docker镜像,基于最新代码构建的
docker pull queensu/wechat-bot:latest
env文件中填写一下默认服务,如果env文件正常加载则不会让你选择,会直接让你扫码,如有问题,需要排查一下引入env文件的方式是否正确,或者在构建时手动添加环境变量
默认服务 ChatGPT、Kimi、Xunfei、deepseek-free 四选一,不填则键盘交互
SERVICE_TYPE=ChatGPT

@lengsukq
Copy link
Contributor

lengsukq commented Jun 24, 2024

早晨更新了代码库,重新填写了env文件,包括个人、群聊白名单,apikey,删除了代理api服务器,默认选择ChatGPT;更改了openai设置,模型选择gpt-4o,调整了gpt角色信息。

正常docker打包部署后,可以正常扫码登陆,但没有任何应答,log里也没有任何登陆后的报错信息显示,包括接受到的聊天信息也没有

请问问题出在哪

附图,正常加载env文件并且正确填写SERVICE_TYPE的docker启动日志图
image

@sd3420625
Copy link
Author

可以看一下env文件怎么填的吗

.env

OpenAi 的api key, 去 https://beta.openai.com/account/api-keys 中生成一个即可

OPENAI_API_KEY='sk-x****Q'
OPENAI_PROXY_URL=''

Kimi 的api key, 去 https://platform.moonshot.cn/console/api-keys

KIMI_API_KEY=''

科大讯飞, 去 https://console.xfyun.cn/services

XUNFEI_APP_ID=''
XUNFEI_API_KEY=''
XUNFEI_API_SECRET=''

deepseek-free, model必须为deepseek_chat或deepseek-coder,去 https://platform.deepseek.com/usage或者https://github.com/LLM-Red-Team/deepseek-free-api

DEEPSEEK_FREE_URL=https://api.deepseek.com/chat/completions,
DEEPSEEK_FREE_TOKEN=''
DEEPSEEK_FREE_MODEL=deepseek_chat

白名单配置

#定义机器人的名称,这里是为了防止群聊消息太多,所以只有艾特机器人才会回复,
#这里不要把@去掉,在@后面加上你启动机器人账号的微信名称
BOT_NAME=@Rock
#联系人白名单
ALIAS_WHITELIST=Kris,臭臭,陈旺
#群聊白名单
ROOM_WHITELIST=饮食爷们,红蛤蟆越野俱乐部

默认服务 ChatGPT、Kimi、Xunfei、deepseek-free 四选一,不填则键盘交互

SERVICE_TYPE='ChatGPT'

@sd3420625
Copy link
Author

我每次变更内容后都docker重建,应该不是重建刷新的问题

@lengsukq
Copy link
Contributor

我每次变更内容后都docker重建,应该不是重建刷新的问题

可以看一下启动时的docker log吗

@sd3420625
Copy link
Author

> [email protected] dev
> node ./cli.js

🌸🌸🌸 / type: ChatGPT
Start to log in wechat...
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
█ ▄▄▄▄▄ █▄▀ ▀ ▄ █▀▀█▄▄█ ▄▄▄▄▄ █
█ █ █ █ █▀▄ ▀ ▄▀█ █ █ █
█ █▄▄▄█ █▄█▀ ▄█▀▄█▀▀ ██ █▄▄▄█ █
█▄▄▄▄▄▄▄█▄█ █ █▄▀ ▀▄▀▄█▄▄▄▄▄▄▄█
█ ▀▀▄▀▄█ ▄ █▄ ▄ ▀█ ▀▀ ▄▄█ █
██▄▄ ▄ ▄ ▄ ▄▄ ▀█▀█▀█ ▄▄█▀█▄▄▀█
██▄ ▄█▀▄ █ ▄▀ ▄▄█ ▄█ █▄▀██▄ ▀▀█
█▄ ▄ ▀█▄▄██▀ ██ █▄▄▄▄▄ ▀ █▄ ▄█
█▄▄ █▀▄▄▀▀ ▀█▄▄ █▀▄▄ █ ▄ ▀ ██
█▄█▄▄▀ ▄ ▄█▄▀██▄▄▀▀▀█▀▀▀▄▀█ ███
██▄█▄▄█▄▄ ▀██▀▀█ ▀▀ ▄▄▄ ▀▀█
█ ▄▄▄▄▄ ██▀█▀▀▀▀███ ▄ █▄█ █▄██
█ █ █ █▀▄ █▀▀ ▄▄█▀ ▄ ▀▄▄ █
█ █▄▄▄█ █ ▄█ ▀▄█▀█ ▄ ██▄▀▀▄▀▄█
█▄▄▄▄▄▄▄█▄█▄▄███▄███▄▄▄██▄██▄██

onScan: https://api.qrserver.com/v1/create-qr-code/?data=https%3A%2F%2Flogin.weixin.qq.com%2Fl%2F4djXO39Wgw%3D%3D Waiting 2
00:15:18 INFO onScan: 3(undefined) Scanned
Contact<Rock> has logged in
Current time:Tue Jun 25 2024 00:15:31 GMT+0000 (Coordinated Universal Time)
Automatic robot chat mode has been activated

@sd3420625
Copy link
Author

我每次变更内容后都docker重建,应该不是重建刷新的问题

可以看一下启动时的docker log吗

楼上发出来了

@sd3420625
Copy link
Author

然后就一直这状态,白名单用户发发信息也没有任何反馈和响应,也没有报错

@lengsukq
Copy link
Contributor

方便本地代码运行一下 yarn test吗 检测一下openai是否能正常调用

@sd3420625
Copy link
Author

方便本地代码运行一下 yarn test吗 检测一下openai是否能正常调用

要怎么操作?进docker容器测试连接?还是不用docker,而用本地部署?我23日前的代码同样是docker部署可以成功连openai,应该不是key的事

@sd3420625
Copy link
Author

我用curl命令在主机上测试了官方api连通性,结果如下:

ubuntu@instance-20230710-1434:~/wxbot/wechat-bot$ curl -I https://api.openai.com/v1/chat/completions
HTTP/2 404
date: Tue, 25 Jun 2024 00:35:09 GMT
content-type: application/json; charset=utf-8
content-length: 172
vary: Origin
x-request-id: 09df7c2fcfb4384447255bd604da3af8
strict-transport-security: max-age=31536000; includeSubDomains
cf-cache-status: DYNAMIC
set-cookie: __cf_bm=kLTA.6Moodp60LfBtSNEwVHm1SpaKBX0vSzgUoycFFY-1719275709-1.0.1.1-gHpFyDlwVBQ8NM46Jj8oxlpiK6t8n1OCK.v1PM2BykmAE.YRZ_vCc37iJtl4ZSN9qWiD5WmwqfZYG97xStIj1A; path=/; expires=Tue, 25-Jun-24 01:05:09 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
set-cookie: _cfuvid=nclWs5TRWVs_N_xTUHpFBRNVzBqhUM4ANTqFzb8Yko0-1719275709849-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
server: cloudflare
cf-ray: 8990e03fae3db55a-KIX
alt-svc: h3=":443"; ma=86400

@lengsukq
Copy link
Contributor

方便本地代码运行一下 yarn test吗 检测一下openai是否能正常调用

要怎么操作?进docker容器测试连接?还是不用docker,而用本地部署?我23日前的代码同样是docker部署可以成功连openai,应该不是key的事

现在用的是哪个模型

@sd3420625
Copy link
Author

现在改回gpt3.5了,4o和3.5都没反应

@lengsukq
Copy link
Contributor

很抱歉影响你使用,我刚刚淘宝买了好几个key全都失效
烦请先用我的仓库代码,地址 https://github.com/lengsukq/wechat-bot
我恢复了openai老版本的代码,今天拿到新的key我会抓紧时间排查问题。

@sd3420625
Copy link
Author

太客气了,好的我先去看看

@lengsukq
Copy link
Contributor

lengsukq commented Jun 25, 2024

太客气了,好的我先去看看

应该算是踩坑了,环境变量在docker上要用非常规方法引入,我仓库地址已经更新 https://github.com/lengsukq/wechat-bot
其实更新openai相关的代码也是为了其他在国内不能直连api的小伙伴准备的,现在的这个版本可以在env文件填写model了

OPENAI_MODEL=gpt-4o

image

@sd3420625
Copy link
Author

十分感谢,用最新代码已经能对话了🙏。
有个小问题,之前openai的配置里有gpt角色设置内容,可以自定义修改,现在代码里貌似删除了,或者是在哪个地方能修改?

@lengsukq
Copy link
Contributor

十分感谢,用最新代码已经能对话了🙏。 有个小问题,之前openai的配置里有gpt角色设置内容,可以自定义修改,现在代码里貌似删除了,或者是在哪个地方能修改?

用的新版本的npm包,我在最新的npm包官方示例中并没有看到相关代码,我去查一下openai的官方文档看看

@sd3420625
Copy link
Author

const response = await openai.chat.completions.create({
model: chosen_model,
messages: [
{ role: 'system', content: 'You are a personal assistant.' },
{ role: 'user', content: prompt },
],
})

就这段,不过能用就行了,角色配置不着急,有空再说

@sd3420625
Copy link
Author

我感觉是不是单独把{ role: 'system', content: 'You are a personal assistant.' },这句加到messages里就行?我本地试试看

@lengsukq
Copy link
Contributor

lengsukq commented Jun 25, 2024

我感觉是不是单独把{ role: 'system', content: 'You are a personal assistant.' },这句加到messages里就行?我本地试试看

理论上是这样,可以试试,文件就在openai/index.js

@sd3420625
Copy link
Author

确认了,管用,直接加到message里就行,下一句加逗号

@sd3420625
Copy link
Author

再次感谢🙏

@lengsukq
Copy link
Contributor

    messages: [
      { role: 'system', content: env.OPENAI_SYSTEM_MESSAGE },
      { role: 'user', content: prompt },
    ],

我添加了一个环境变量,以后更新代码,就直接git pull一下就行不会发生冲突,有需求直接在env文件中修改就行了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants