chatgpt-mirai-qq-bot
chatgpt-mirai-qq-bot copied to clipboard
[BUG] 启动报错,配置文件有误,请重新修改
提交 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"
其他内容
此处填写其他内容,没有可跳过
检查一下配置文件中有没有多余的空格
你的配置文件格式有误,参考 config.example.cfg
来写吧
你的配置文件格式有误,参考
config.example.cfg
来写吧
我就是复制的readme里的config.example.cfg呀,然后填写了参数,注释了password
完整配置文件提供一下看看?账号密码之类的替换成随机字符就好了
你的配置文件格式有误,参考
config.example.cfg
来写吧我就是复制的readme里的config.example.cfg呀,然后填写了参数,注释了password
我昨天也是,里面有的结尾有空格,建议你搜一下空格,看看有没有地方有多余的空格
你的配置文件格式有误,参考
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..."
我今天又遇到了一次 我是直接rm 之后重新上传就可以了
你的配置文件格式有误,参考
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里,和文件里的配置都不太一样,有的地方还前后矛盾,对于会的很容易排查,对于不会的,只能排列组合多来几次。。。哭死
不过现在又遇到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 你是怎么部署的呢?是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启动的项目?
@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,三个镜像一起起的
大哥解决了没有
是的,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走一遍之后基本就能启动了
大哥解决了没有
咋说呢,算是解决了?因为现在也算是能用了,不过切到了Windows平台
我上边用的是Mac,而且是docker,本来是想用一体化环境,配置更简单,现在回头来看,恰恰相反,docker很容易出问题,而且很难调试,新手还是建议直接跑,特别是不熟悉docker的