NcatBot是一个开源的基于Napcat.QQ开发的PythonSDK,使用python调用QQ。
使用简单的代码,你就可以完成一个能够处理所有信息的QQ机器人。
你还可以使用别人编写的插件!!!
可以通过本命令安装ncatbot:
git clone https://github.com/liyihao1110/NcatBot.git
首先你需要填写config.yaml文件:
ws:
Protocol: ws
ip: 127.0.0.1
port: 3001
http:
Protocol: http
ip: 127.0.0.1
port: 3000
sync: true
plugin:
xunfei:
api_url:
api_key:
model: generalv3.5
personality: You are a helpful assistant.
然后运行以下代码:
# encoding: utf-8
import ncatpy
from ncatpy import logging
from ncatpy.message import GroupMessage,PrivateMessage
_log = logging.get_logger()
class MyClient(ncatpy.Client):
async def on_group_message(self, message: GroupMessage):
_log.info(f"收到群消息,ID: {message.message.text.text}")
_log.info(message.user_id)
if message.user_id == 2793415370:
# 当提问者的QQ号是2793415370时,调用XunfeiGPT插件回答他的问题
# t = await self._XunfeiGPT.ai_response(input=message.message.text.text, group_id=message.group_id) # 单轮ai聊天
t = await self._XunfeiGPT.ai_response_history(input=message.message.text.text, info= True, group_id=message.group_id)# 多轮ai聊天,可用参数:开发者模式:info=True,历史记录次数:history_num=5
_log.info(t)
if message.message.text.text == "你好":
# 通过http发送消息
t = await message.add_text("你好,o").reply()
_log.info(t)
async def on_private_message(self, message: PrivateMessage):
_log.info(f"收到私聊消息,ID: {message.message.text.text}")
if message.message.text.text == "你好":
t = await self._api.send_msg(user_id=message.user_id, text="你好,o")
_log.info(t)
if __name__ == "__main__":
# 1. 通过预设置的类型,设置需要监听的事件通道
# intents = ncatpy.Intents.public() # 可以订阅public,包括了私聊和群聊
# 2. 通过kwargs,设置需要监听的事件通道
intents = ncatpy.Intents(group_event=True)
client = MyClient(intents=intents, plugins=["XunfeiGPT"])# 如果没有插件,则不需要添加plugins=["XunfeiGPT"]
client.run()
插件是NcatBot的扩展,你可以使用别人编写的插件,也可以自己编写插件。
插件编写逻辑具体查看ncatpy/plugins/XunfeiGPT.py
编写好的插件进行pr,必须给出详细的示例和说明,目前不提供在线安装,自行安装只需要下载别人的插件,将其放入plugins文件夹即可。
此方案只是预览版!!!所有要求提在QQ群里面
时间有限,如果有不好的地方,欢迎提issue,或者加QQ群交流。
botpy - 一个基于 Python 的 QQ 机器人 SDK,参考了logging
Napcat - 现代化的基于 NTQQ 的 Bot 协议端实现