diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..457f44d9b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "python.analysis.typeCheckingMode": "basic" +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 000000000..cb142ef65 --- /dev/null +++ b/README.md @@ -0,0 +1,19 @@ +# 基于OpenAI ChatGPT的QQ频道机器人 + +## 目前实现功能: +- 私信、@机器人都可以获得回复 +- 以变量的形式临时保存了Session,具体原理为:将某一个用户id作为字典的key,value为该用户历史的input和chatGPT对该用户的output + +## 待实现功能: +- 将Session持久化存储 +- ... + +## 使用方法: +首先你需要获得 +- OpenAI的key [OpenAI](https://beta.openai.com/) +- QQ开放平台下QQ频道机器人的token和appid [QQ开放平台](https://q.qq.com/) +- 一个QQ频道机器人(很容易创建~) + +然后在configs/config.yaml下进行配置 + +然后启动main.py就行! \ No newline at end of file diff --git a/botpy.log b/botpy.log new file mode 100644 index 000000000..0d4a39756 --- /dev/null +++ b/botpy.log @@ -0,0 +1,217 @@ +2022-12-08 14:29:09,486 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 14:29:10,173 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 14:29:10,174 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 14:29:10,175 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 14:29:10,175 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 14:29:10,335 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 14:29:10,460 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 14:29:10,461 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 16:17:18,117 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 16:17:18,355 [ERROR] (http.py:73)_handle_response [botpy] 接口请求异常,请求连接: https://api.sgroup.qq.com/users/@me, 错误代码: 401, 返回内容: {'message': 'wrong bot token', 'code': 11242}, trace_id:829d8c60d296a3edcfac3d776dbd8b47 +2022-12-08 16:18:59,759 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 16:19:00,266 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 16:19:00,267 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 16:19:00,268 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 16:19:00,268 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 16:19:00,412 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 16:19:00,522 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 16:19:00,522 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 16:20:14,446 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 16:20:15,035 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 16:20:15,036 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 16:20:15,037 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 16:20:15,037 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 16:20:15,232 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 16:20:15,320 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 16:20:15,321 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 16:42:06,957 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 16:42:07,468 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 16:42:07,469 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 16:42:07,469 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 16:42:07,470 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 16:42:07,672 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 16:42:07,862 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 16:42:07,863 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 16:45:44,758 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 16:45:45,439 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 16:45:45,440 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 16:45:45,441 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 16:45:45,441 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 16:45:45,751 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 16:45:45,858 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 16:45:45,859 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 16:47:16,567 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 16:47:17,008 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 16:47:17,009 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 16:47:17,009 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 16:47:17,010 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 16:47:17,187 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 16:47:17,284 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 16:47:17,285 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 16:48:39,358 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 16:48:45,366 [WARNING] (http.py:188)request 请求超时,请求连接: https://api.sgroup.qq.com/gateway/bot +2022-12-08 16:48:53,301 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 16:48:53,789 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 16:48:53,790 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 16:48:53,791 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 16:48:53,791 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 16:48:53,969 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 16:48:54,062 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 16:48:54,063 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 16:49:26,466 [ERROR] (http.py:73)_handle_response [botpy] 接口请求异常,请求连接: https://api.sgroup.qq.com/channels/7150805/messages, 错误代码: 403, 返回内容: {'code': 304003, 'message': 'url not allowed'}, trace_id:b201dd7b37649dcf47b82d54c58bc5dd +2022-12-08 16:51:59,155 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 16:51:59,728 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 16:51:59,729 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 16:51:59,730 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 16:51:59,730 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 16:51:59,887 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 16:52:00,022 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 16:52:00,023 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 16:52:28,760 [ERROR] (http.py:73)_handle_response [botpy] 接口请求异常,请求连接: https://api.sgroup.qq.com/channels/7150805/messages, 错误代码: 403, 返回内容: {'code': 304003, 'message': 'url not allowed'}, trace_id:e62b072c9f0184f6bf7dd03a00fc0ef3 +2022-12-08 16:53:53,370 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 16:53:53,890 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 16:53:53,891 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 16:53:53,892 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 16:53:53,892 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 16:53:54,101 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 16:53:54,194 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 16:53:54,195 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 16:54:26,287 [ERROR] (http.py:73)_handle_response [botpy] 接口请求异常,请求连接: https://api.sgroup.qq.com/channels/7150805/messages, 错误代码: 501, 返回内容: None, trace_id:None +2022-12-08 16:55:01,062 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 16:55:01,601 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 16:55:01,601 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 16:55:01,602 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 16:55:01,603 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 16:55:01,742 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 16:55:01,816 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 16:55:01,817 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 17:00:29,939 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 17:00:30,583 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 17:00:30,584 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 17:00:30,585 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 17:00:30,585 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 17:00:30,839 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 17:00:30,943 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 17:00:30,944 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 17:00:53,548 [ERROR] (http.py:73)_handle_response [botpy] 接口请求异常,请求连接: https://api.sgroup.qq.com/channels/7150658/messages, 错误代码: 403, 返回内容: {'code': 304003, 'message': 'url not allowed'}, trace_id:2ea547d78364cea60583ed450e589a17 +2022-12-08 17:10:31,405 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 17:10:32,081 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 17:10:32,082 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 17:10:32,083 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 17:10:32,083 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 17:10:32,342 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 17:10:32,449 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 17:10:32,450 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 17:13:47,495 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 17:13:47,993 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 17:13:47,994 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 17:13:47,995 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 17:13:47,995 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 17:13:48,198 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 17:13:48,300 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 17:13:48,302 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 17:16:31,326 [ERROR] (http.py:73)_handle_response [botpy] 接口请求异常,请求连接: https://api.sgroup.qq.com/channels/7150658/messages, 错误代码: 501, 返回内容: None, trace_id:None +2022-12-08 17:22:03,924 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 17:22:04,671 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 17:22:04,672 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 17:22:04,673 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 17:22:04,673 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 17:22:04,856 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 17:22:04,958 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 17:22:04,959 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 17:52:04,868 [INFO] (gateway.py:54)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out +2022-12-08 17:52:09,874 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 17:52:09,876 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 17:52:09,877 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 17:52:10,104 [INFO] (gateway.py:169)ws_resume [botpy] 重连启动... +2022-12-08 17:52:10,170 [INFO] (gateway.py:85)on_message [botpy] 机器人重连成功! +2022-12-08 17:52:10,171 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 18:00:00,757 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 18:00:01,443 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 18:00:01,443 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 18:00:01,444 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 18:00:01,445 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 18:00:01,602 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 18:00:01,823 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 18:00:01,824 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 18:03:13,211 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 18:03:14,082 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 18:03:14,084 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 18:03:14,084 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 18:03:14,085 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 18:03:14,289 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 18:03:14,498 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 18:03:14,499 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 18:16:29,246 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 18:16:30,054 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 18:16:30,055 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 18:16:30,056 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 18:16:30,056 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 18:16:30,293 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 18:16:30,424 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 18:16:30,424 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 18:16:41,898 [ERROR] (http.py:73)_handle_response [botpy] 接口请求异常,请求连接: https://api.sgroup.qq.com/channels/7150658/messages, 错误代码: 403, 返回内容: {'code': 304003, 'message': 'url not allowed'}, trace_id:3cc9fc95ac27cbbc1f1667f1aa11bf8d +2022-12-08 18:18:16,615 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 18:18:17,399 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 18:18:17,400 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 18:18:17,400 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 18:18:17,401 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 18:18:17,606 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 18:18:17,731 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 18:18:17,732 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 18:19:07,357 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 18:19:07,941 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 18:19:07,942 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 18:19:07,942 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 18:19:07,943 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 18:19:08,247 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 18:19:08,335 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 18:19:08,336 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 18:20:46,416 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 18:20:47,023 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 18:20:47,023 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 18:20:47,024 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 18:20:47,025 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 18:20:47,475 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 18:20:47,640 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 18:20:47,641 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 18:21:24,437 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 18:21:24,991 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 18:21:24,992 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 18:21:24,993 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 18:21:24,993 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 18:21:25,165 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 18:21:25,265 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 18:21:25,266 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 18:24:18,469 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 18:24:19,076 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 18:24:19,077 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 18:24:19,077 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 18:24:19,078 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 18:24:19,252 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 18:24:19,339 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 18:24:19,341 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 18:27:13,898 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 18:27:14,553 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 18:27:14,554 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 18:27:14,554 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 18:27:14,555 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 18:27:14,747 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 18:27:14,850 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 18:27:14,851 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 18:30:47,647 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 18:30:48,327 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 18:30:48,328 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 18:30:48,329 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 18:30:48,330 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 18:30:48,736 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 18:30:48,873 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 18:30:48,874 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... +2022-12-08 18:31:57,250 [INFO] (client.py:159)_bot_login [botpy] 登录机器人账号中... +2022-12-08 18:31:57,955 [INFO] (client.py:178)_bot_init [botpy] 程序启动... +2022-12-08 18:31:57,956 [INFO] (connection.py:59)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1 +2022-12-08 18:31:57,957 [INFO] (client.py:236)bot_connect [botpy] 会话启动中... +2022-12-08 18:31:57,957 [INFO] (gateway.py:110)ws_connect [botpy] 启动中... +2022-12-08 18:31:58,165 [INFO] (gateway.py:136)ws_identify [botpy] 鉴权中... +2022-12-08 18:31:58,269 [INFO] (gateway.py:80)on_message [botpy] 机器人「SoGPT-测试中」启动成功! +2022-12-08 18:31:58,270 [INFO] (gateway.py:217)_send_heart [botpy] 心跳维持启动... diff --git a/cores/openai/__pycache__/core.cpython-310.pyc b/cores/openai/__pycache__/core.cpython-310.pyc new file mode 100644 index 000000000..771a5380a Binary files /dev/null and b/cores/openai/__pycache__/core.cpython-310.pyc differ diff --git a/cores/openai/core.py b/cores/openai/core.py index 1f48c8416..b16a07849 100644 --- a/cores/openai/core.py +++ b/cores/openai/core.py @@ -20,9 +20,13 @@ class ChatGPT: async def chat(self, prompt): print("[ChatGPT] 接收到prompt: "+prompt) response = openai.Completion.create( - self.chatGPT_configs + prompt=prompt, + **self.chatGPT_configs ) return response["choices"][0]["text"] + + def newSession(self): + return openai.Session() def getInst() -> ChatGPT: global inst diff --git a/cores/qqbot/__pycache__/core.cpython-310.pyc b/cores/qqbot/__pycache__/core.cpython-310.pyc new file mode 100644 index 000000000..35da1e5f7 Binary files /dev/null and b/cores/qqbot/__pycache__/core.cpython-310.pyc differ diff --git a/cores/qqbot/core.py b/cores/qqbot/core.py index ae62384f2..534802998 100644 --- a/cores/qqbot/core.py +++ b/cores/qqbot/core.py @@ -7,17 +7,38 @@ import re chatgpt = "" -session_list = [] +session_dict = {} class botClient(botpy.Client): async def on_at_message_create(self, message: Message): + print(message.content) + qq_msg = "" # 过滤@头 pattern = r"<@!\d+>\s+(.+)" result = re.search(pattern, message.content) if result: - qq_msg = "[ChatGPT]"+result.group(1).strip() - chatgpt_res = await chatgpt.chat(qq_msg) - await message.reply(content=f"{chatgpt_res}") + qq_msg = result.group(1).strip() + print(qq_msg) + # 检测@头,返回对应session + pattern0 = r"<@!\d+>" + result0 = re.search(pattern0, message.content) + if result0: + session_id = result0.group(0) + if session_id in session_dict: + print("旧会话 "+session_id) + chatgpt_res =await chatgpt.chat(session_dict[session_id]+' '+qq_msg) + + chatgpt_res = chatgpt_res.strip() + session_dict[session_id] = session_dict[session_id] + ' ' + qq_msg + await message.reply(content=f"[ChatGPT]{chatgpt_res}") + else: + print("新会话 "+session_id) + # new_session = chatgpt.newSession() + session_dict[session_id] = qq_msg + + chatgpt_res = await chatgpt.chat(qq_msg) + chatgpt_res = chatgpt_res.strip() + await message.reply(content=f"[ChatGPT]{chatgpt_res}") def initBot(chatgpt_inst): global chatgpt @@ -25,7 +46,7 @@ def initBot(chatgpt_inst): with open("./configs/config.yaml", 'r', encoding='utf-8') as ymlfile: cfg = yaml.safe_load(ymlfile) if cfg['qqbot']['appid'] != '' or cfg['qqbot']['token'] != '': - print(cfg['qqbot']['appid']) + print("读取QQBot appid token 成功") intents = botpy.Intents(public_guild_messages=True) client = botClient(intents=intents) client.run(appid=cfg['qqbot']['appid'], token=cfg['qqbot']['token']) diff --git a/main.py b/main.py new file mode 100644 index 000000000..408d0bd70 --- /dev/null +++ b/main.py @@ -0,0 +1,20 @@ +import cores.qqbot.core as qqBot +from cores.openai.core import ChatGPT +import asyncio +import yaml + +def main(): + # 读取参数 + with open('configs/config.yaml', 'r', encoding='utf-8') as f: + cfg = yaml.safe_load(f) + chatGPT_configs = cfg['openai']['chatGPTConfigs'] + print(chatGPT_configs) + + + #实例化ChatGPT + chatgpt = ChatGPT(chatGPT_configs=chatGPT_configs) + #执行qqBot + qqBot.initBot(chatgpt) + +if __name__ == "__main__": + main() \ No newline at end of file