chatgpt-mirai-qq-bot icon indicating copy to clipboard operation
chatgpt-mirai-qq-bot copied to clipboard

[BUG] 启动报错,配置文件有误,请重新修改

Open magisk317 opened this issue 2 years ago • 2 comments

提交 issue 前,请先确认:

  • [x] 我已看过 FAQ,此问题不在列表中
  • [ ] 我已看过其他 issue,他们不能解决我的问题
  • [x] 我认为这不是 Mirai 或者 OpenAI 的 BUG

表现
运行报错,缺参数,但是session_token,access_token和email都填了

运行环境:

  • 操作系统:macOS 13.3
  • Docker version 20.10.22, build 3a2c30b
  • 项目版本:最新

复现步骤
配置文件,运行

预期行为
描述你认为正常情况下应该看见的情况

截图

错误log

2023-02-23 14:44:21 chatgpt-chatgpt-1     | 2023-02-23 06:44:21.316 | ERROR    | config:load_config:183 - 配置文件有误,请重新修改!
2023-02-23 14:45:22 chatgpt-chatgpt-1     | 2023-02-23 06:45:22.763 | ERROR    | config:load_config:182 - 4 validation errors for Config
2023-02-23 14:45:22 chatgpt-chatgpt-1     | openai -> email
2023-02-23 14:45:22 chatgpt-chatgpt-1     |   field required (type=value_error.missing)
2023-02-23 14:45:22 chatgpt-chatgpt-1     | openai -> password
2023-02-23 14:45:22 chatgpt-chatgpt-1     |   field required (type=value_error.missing)
2023-02-23 14:45:22 chatgpt-chatgpt-1     | openai -> session_token
2023-02-23 14:45:22 chatgpt-chatgpt-1     |   field required (type=value_error.missing)
2023-02-23 14:45:22 chatgpt-chatgpt-1     | openai -> api_key
2023-02-23 14:45:22 chatgpt-chatgpt-1     |   field required (type=value_error.missing)
2023-02-23 14:45:22 chatgpt-chatgpt-1     | Traceback (most recent call last):
2023-02-23 14:45:22 chatgpt-chatgpt-1     | 
2023-02-23 14:45:22 chatgpt-chatgpt-1     |   File "/app/bot.py", line 23, in <module>
2023-02-23 14:45:22 chatgpt-chatgpt-1     |     import chatbot
2023-02-23 14:45:22 chatgpt-chatgpt-1     | 
2023-02-23 14:45:22 chatgpt-chatgpt-1     |   File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
2023-02-23 14:45:22 chatgpt-chatgpt-1     |   File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
2023-02-23 14:45:22 chatgpt-chatgpt-1     |   File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
2023-02-23 14:45:22 chatgpt-chatgpt-1     |   File "<frozen importlib._bootstrap_external>", line 850, in exec_module
2023-02-23 14:45:22 chatgpt-chatgpt-1     |   File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
2023-02-23 14:45:22 chatgpt-chatgpt-1     | 
2023-02-23 14:45:22 chatgpt-chatgpt-1     |   File "/app/chatbot.py", line 14, in <module>
2023-02-23 14:45:22 chatgpt-chatgpt-1     |     config = Config.load_config()
2023-02-23 14:45:22 chatgpt-chatgpt-1     |              │      └ <staticmethod object at 0x7f007e36c850>
2023-02-23 14:45:22 chatgpt-chatgpt-1     |              └ <class 'config.Config'>
2023-02-23 14:45:22 chatgpt-chatgpt-1     | 
2023-02-23 14:45:22 chatgpt-chatgpt-1     | > File "/app/config.py", line 180, in load_config
2023-02-23 14:45:22 chatgpt-chatgpt-1     |     return Config.parse_obj(toml.loads(str(guessed_str)))
2023-02-23 14:45:22 chatgpt-chatgpt-1     |            │      │         │    │         └ <CharsetMatch 'utf_8' bytes(8dc9588f185717c7ac1db64efbb2f0ca53f293ff4625936e91bd4dc0de1566c8)>
2023-02-23 14:45:22 chatgpt-chatgpt-1     |            │      │         │    └ <function loads at 0x7f007ecc8160>
2023-02-23 14:45:22 chatgpt-chatgpt-1     |            │      │         └ <module 'toml' from '/usr/local/lib/python3.9/site-packages/toml/__init__.py'>
2023-02-23 14:45:22 chatgpt-chatgpt-1     |            │      └ <classmethod object at 0x7f0080e25100>
2023-02-23 14:45:22 chatgpt-chatgpt-1     |            └ <class 'config.Config'>
2023-02-23 14:45:22 chatgpt-chatgpt-1     | 
2023-02-23 14:45:22 chatgpt-chatgpt-1     |   File "pydantic/main.py", line 527, in pydantic.main.BaseModel.parse_obj
2023-02-23 14:45:22 chatgpt-chatgpt-1     |     return cls(**obj)
2023-02-23 14:45:22 chatgpt-chatgpt-1     | 
2023-02-23 14:45:22 chatgpt-chatgpt-1     |   File "pydantic/main.py", line 342, in pydantic.main.BaseModel.__init__
2023-02-23 14:45:22 chatgpt-chatgpt-1     |     raise validation_error
2023-02-23 14:45:22 chatgpt-chatgpt-1     | 
2023-02-23 14:45:22 chatgpt-chatgpt-1     | pydantic.error_wrappers.ValidationError: 4 validation errors for Config
2023-02-23 14:45:22 chatgpt-chatgpt-1     | openai -> email
2023-02-23 14:45:22 chatgpt-chatgpt-1     |   field required (type=value_error.missing)
2023-02-23 14:45:22 chatgpt-chatgpt-1     | openai -> password
2023-02-23 14:45:22 chatgpt-chatgpt-1     |   field required (type=value_error.missing)
2023-02-23 14:45:22 chatgpt-chatgpt-1     | openai -> session_token
2023-02-23 14:45:22 chatgpt-chatgpt-1     |   field required (type=value_error.missing)
2023-02-23 14:45:22 chatgpt-chatgpt-1     | openai -> api_key
2023-02-23 14:45:22 chatgpt-chatgpt-1     |   field required (type=value_error.missing)
2023-02-23 14:45:22 chatgpt-chatgpt-1     | 2023-02-23 06:45:22.771 | ERROR    | config:load_config:183 - 配置文件有误,请重新修改!

配置文件

# 第 1 个 OpenAI 账号的登录信息
[[openai.accounts]]
# 模式选择,详情见下方 README
mode = "browser"

# 你的 OpenAI 邮箱
email = "[email protected]" 
# 你的 OpenAI 密码
# password = "xxx"

# 对于通过 Google 登录或者微软登录的同学,可以使用 session_token 登录
# 此时的 password 可以直接删除 (email 必填)
# 提示:如果使用此模式,请删除下方 session_token 前面的 "#" 号,并给上方的 password 前面加上 "#"
session_token = "eyJhbxxxx"

# 你的 OpenAI access_token,登录后访问`https://chat.openai.com/api/auth/session`获取
# 提示:如果使用此模式,请删除下方 access_token 前面的 "#" 号,并给上方的 email、password 前面加上 "#"
access_token = "eyJhbGciOxxxx"

其他内容
此处填写其他内容,没有可跳过

magisk317 avatar Feb 23 '23 06:02 magisk317

检查一下配置文件中有没有多余的空格

hejun041 avatar Feb 23 '23 10:02 hejun041

你的配置文件格式有误,参考 config.example.cfg 来写吧

lss233 avatar Feb 23 '23 14:02 lss233

你的配置文件格式有误,参考 config.example.cfg 来写吧

我就是复制的readme里的config.example.cfg呀,然后填写了参数,注释了password

magisk317 avatar Feb 24 '23 06:02 magisk317

完整配置文件提供一下看看?账号密码之类的替换成随机字符就好了

lss233 avatar Feb 24 '23 06:02 lss233

你的配置文件格式有误,参考 config.example.cfg 来写吧

我就是复制的readme里的config.example.cfg呀,然后填写了参数,注释了password

我昨天也是,里面有的结尾有空格,建议你搜一下空格,看看有没有地方有多余的空格

hejun041 avatar Feb 24 '23 06:02 hejun041

你的配置文件格式有误,参考 config.example.cfg 来写吧

我就是复制的readme里的config.example.cfg呀,然后填写了参数,注释了password

配置文件那,‘mode = "browser"’的话走了浏览器登录,但是下面注了“password”并且放开了“session_token”,配置文件矛盾了 如果打算用session_token登录OpenAI的话,就设置’mode = ”browserless“‘,维持“password”和“email”的注释状态,例如:

[[openai.accounts]]
mode = 'browserless'
...
# email = "xxxx" 
# password = "xxx"
...
session_token = "eyJh..."

xxsoul avatar Feb 24 '23 10:02 xxsoul

我今天又遇到了一次 我是直接rm 之后重新上传就可以了

hejun041 avatar Feb 24 '23 10:02 hejun041

你的配置文件格式有误,参考 config.example.cfg 来写吧

我就是复制的readme里的config.example.cfg呀,然后填写了参数,注释了password

配置文件那,‘mode = "browser"’的话走了浏览器登录,但是下面注了“password”并且放开了“session_token”,配置文件矛盾了 如果打算用session_token登录OpenAI的话,就设置’mode = ”browserless“‘,维持“password”和“email”的注释状态,例如:

[[openai.accounts]]
mode = 'browserless'
...
# email = "xxxx" 
# password = "xxx"
...
session_token = "eyJh..."

看下来,你这个是正解,readme里,和文件里的配置都不太一样,有的地方还前后矛盾,对于会的很容易排查,对于不会的,只能排列组合多来几次。。。哭死

magisk317 avatar Feb 24 '23 10:02 magisk317

不过现在又遇到Websocket问题了。。。我得翻翻前边的文档了

2023-02-24 18:32:39 chatgpt-chatgpt-1     | 2023-02-24 10:32:39.508 | INFO     | __main__:start_background:167 - OpenAI 服务器登录成功
2023-02-24 18:32:39 chatgpt-chatgpt-1     | 2023-02-24 10:32:39.508 | INFO     | __main__:start_background:168 - 尝试从 Mirai 服务中读取机器人 QQ 的 session key……
2023-02-24 18:32:39 chatgpt-chatgpt-1     | 2023-02-24 10:32:39.509 | SUCCESS  | launart.manager:launch:384 - Layer #3:[elizabeth.service] preparation completed.
2023-02-24 18:32:39 chatgpt-chatgpt-1     | 2023-02-24 10:32:39.509 | INFO     | launart.manager:launch:389 - All components prepared, start blocking phase.
2023-02-24 18:32:39 chatgpt-chatgpt-1     | 2023-02-24 10:32:39.635 | ERROR    | graia.amnesia.builtins.aiohttp:connection_manage:231 - 404, message='Invalid response status', url=URL('http://mirai:8080/all?qq=2246752013&verifyKey=INITKEYFA3I0etW')
2023-02-24 18:32:39 chatgpt-chatgpt-1     | Traceback (most recent call last):
2023-02-24 18:32:39 chatgpt-chatgpt-1     | 
2023-02-24 18:32:39 chatgpt-chatgpt-1     |   File "/app/bot.py", line 171, in <module>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     app.launch_blocking()
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     │   └ <classmethod object at 0x7fabc6ac0520>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     └ <graia.ariadne.app.Ariadne object at 0x7fabc88015e0>
2023-02-24 18:32:39 chatgpt-chatgpt-1     | 
2023-02-24 18:32:39 chatgpt-chatgpt-1     |   File "/usr/local/lib/python3.9/site-packages/graia/ariadne/app.py", line 312, in launch_blocking
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     cls.launch_manager.launch_blocking(loop=cls.service.loop, stop_signal=stop_signals)
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     │   │              │                    │   │       │                 └ (<Signals.SIGINT: 2>,)
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     │   │              │                    │   │       └ <property object at 0x7fabc6ac3d10>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     │   │              │                    │   └ <graia.ariadne.service.ElizabethService object at 0x7fabc4174e50>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     │   │              │                    └ <class 'graia.ariadne.app.Ariadne'>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     │   │              └ <function Launart.launch_blocking at 0x7fabc7c4baf0>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     │   └ <launart.manager.Launart object at 0x7fab8b727280>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     └ <class 'graia.ariadne.app.Ariadne'>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |   File "/usr/local/lib/python3.9/site-packages/launart/manager.py", line 494, in launch_blocking
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     loop.run_until_complete(launch_task)
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     │    │                  └ <Task pending name='amnesia-launch' coro=<Launart.launch() running at /usr/local/lib/python3.9/site-packages/launart/manager....
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     │    └ <function BaseEventLoop.run_until_complete at 0x7fabc7e76e50>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     └ <_UnixSelectorEventLoop running=True closed=False debug=False>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |   File "/usr/local/lib/python3.9/asyncio/base_events.py", line 634, in run_until_complete
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     self.run_forever()
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     │    └ <function BaseEventLoop.run_forever at 0x7fabc7e76dc0>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     └ <_UnixSelectorEventLoop running=True closed=False debug=False>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |   File "/usr/local/lib/python3.9/asyncio/base_events.py", line 601, in run_forever
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     self._run_once()
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     │    └ <function BaseEventLoop._run_once at 0x7fabc7e78940>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     └ <_UnixSelectorEventLoop running=True closed=False debug=False>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |   File "/usr/local/lib/python3.9/asyncio/base_events.py", line 1905, in _run_once
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     handle._run()
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     │      └ <function Handle._run at 0x7fabc7f3e3a0>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     └ <Handle <TaskWakeupMethWrapper object at 0x7fab8b6dc9a0>(<Future finished result=None>)>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |   File "/usr/local/lib/python3.9/asyncio/events.py", line 80, in _run
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     self._context.run(self._callback, *self._args)
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     │    │            │    │           │    └ <member '_args' of 'Handle' objects>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     │    │            │    │           └ <Handle <TaskWakeupMethWrapper object at 0x7fab8b6dc9a0>(<Future finished result=None>)>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     │    │            │    └ <member '_callback' of 'Handle' objects>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     │    │            └ <Handle <TaskWakeupMethWrapper object at 0x7fab8b6dc9a0>(<Future finished result=None>)>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     │    └ <member '_context' of 'Handle' objects>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     └ <Handle <TaskWakeupMethWrapper object at 0x7fab8b6dc9a0>(<Future finished result=None>)>
2023-02-24 18:32:39 chatgpt-chatgpt-1     | > File "/usr/local/lib/python3.9/site-packages/graia/amnesia/builtins/aiohttp.py", line 217, in connection_manage
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     await self._start_conn()
2023-02-24 18:32:39 chatgpt-chatgpt-1     |           │    └ <function AiohttpClientConnectionRider._start_conn at 0x7fabc6c01820>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |           └ <graia.amnesia.builtins.aiohttp.AiohttpClientConnectionRider object at 0x7fab8b6c0b20>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |   File "/usr/local/lib/python3.9/site-packages/graia/amnesia/builtins/aiohttp.py", line 180, in _start_conn
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     self.response = await self.conn_func(**self.call_param)
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     │    │                │    │           │    └ {'url': 'http://mirai:8080/all?qq=2246752013&verifyKey=INITKEYFA3I0etW', 'heartbeat': 30.0}
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     │    │                │    │           └ <graia.amnesia.builtins.aiohttp.AiohttpClientConnectionRider object at 0x7fab8b6c0b20>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     │    │                │    └ <bound method ClientSession.ws_connect of <aiohttp.client.ClientSession object at 0x7fab8b6c0610>>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     │    │                └ <graia.amnesia.builtins.aiohttp.AiohttpClientConnectionRider object at 0x7fab8b6c0b20>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     │    └ None
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     └ <graia.amnesia.builtins.aiohttp.AiohttpClientConnectionRider object at 0x7fab8b6c0b20>
2023-02-24 18:32:39 chatgpt-chatgpt-1     |   File "/usr/local/lib/python3.9/site-packages/aiohttp/client.py", line 795, in _ws_connect
2023-02-24 18:32:39 chatgpt-chatgpt-1     |     raise WSServerHandshakeError(
2023-02-24 18:32:39 chatgpt-chatgpt-1     |           └ <class 'aiohttp.client_exceptions.WSServerHandshakeError'>
2023-02-24 18:32:39 chatgpt-chatgpt-1     | 
2023-02-24 18:32:39 chatgpt-chatgpt-1     | aiohttp.client_exceptions.WSServerHandshakeError: 404, message='Invalid response status', url=URL('http://mirai:8080/all?qq=*******&verifyKey=*******')
2023-02-24 18:32:39 chatgpt-chatgpt-1     | 2023-02-24 10:32:39.642 | WARNING  | graia.ariadne.connection.ws:_:76 - Websocket reconnecting in 5s...
2023-02-24 18:32:44 chatgpt-chatgpt-1     | 2023-02-24 10:32:44.643 | WARNING  | graia.ariadne.connection.ws:_:78 - Websocket reconnecting...

magisk317 avatar Feb 24 '23 10:02 magisk317

@magisk317 你是怎么部署的呢?是docker单独起镜像?还是docker-compose起的?还是单独运行的脚本或py项目? 看到错误信息【2023-02-24 18:32:39 chatgpt-chatgpt-1 | aiohttp.client_exceptions.WSServerHandshakeError: 404, message='Invalid response status', url=URL('http://mirai:8080/all?qq=&verifyKey=')】,似乎使用docker-compose启动的项目?

xxsoul avatar Feb 24 '23 15:02 xxsoul

@magisk317 你是怎么部署的呢?是docker单独起镜像?还是docker-compose起的?还是单独运行的脚本或py项目? 看到错误信息【2023-02-24 18:32:39 chatgpt-chatgpt-1 | aiohttp.client_exceptions.WSServerHandshakeError: 404, message='Invalid response status', url=URL('http://mirai:8080/all?qq=&verifyKey=')】,似乎使用docker-compose启动的项目?%E3%80%91%EF%BC%8C%E4%BC%BC%E4%B9%8E%E4%BD%BF%E7%94%A8docker-compose%E5%90%AF%E5%8A%A8%E7%9A%84%E9%A1%B9%E7%9B%AE%EF%BC%9F)

是的,docker-compose,三个镜像一起起的

magisk317 avatar Feb 24 '23 15:02 magisk317

大哥解决了没有

chaosl1996 avatar Feb 24 '23 16:02 chaosl1996

是的,docker-compose,三个镜像一起起的

错误信息看上去像是Mirai没有启动对应的服务或端口?建议跟着wiki里的文档配置下 https://github.com/lss233/chatgpt-mirai-qq-bot/wiki/%E4%BD%BF%E7%94%A8-Docker-Compose-%E9%83%A8%E7%BD%B2%EF%BC%88%E5%90%8C%E6%97%B6%E4%BD%BF%E7%94%A8-Mirai-%E5%92%8C-%E6%9C%AC%E9%A1%B9%E7%9B%AE%EF%BC%89#5-%E9%85%8D%E7%BD%AE-mirai-http-api 跟着wiki走一遍之后基本就能启动了

xxsoul avatar Feb 25 '23 03:02 xxsoul

大哥解决了没有

咋说呢,算是解决了?因为现在也算是能用了,不过切到了Windows平台

我上边用的是Mac,而且是docker,本来是想用一体化环境,配置更简单,现在回头来看,恰恰相反,docker很容易出问题,而且很难调试,新手还是建议直接跑,特别是不熟悉docker的 image

magisk317 avatar Feb 25 '23 05:02 magisk317