首页 > Python资料 博客日记

Napcat社区资源:NcatBot

2025-01-12 02:00:06Python资料围观58

Python资料网推荐Napcat社区资源:NcatBot这篇文章给大家,欢迎收藏Python资料网享受知识的乐趣

👋这是NcatBot的官方文档



NcatBot是一个使用Python语言编写的QQ框架项目,它是基于NapCat.QQ创建的,所以你需要知道,只有处于NapCat.QQ环境下,你才可以正常使用NcatBot哦~

如果你想创建一个自己的QQ机器人,可以尝试使用我们的项目。

NcatBot是一个开源的基于Napcat.QQ开发的PythonSDK,使用python调用QQ。
使用简单的代码,你就可以完成一个能够处理所有信息的QQ机器人。

你还可以使用别人编写的插件!!!

关注我们的项目: 基于Python的QQ框架

快速开始


在创建一个属于你的QQ机器人前,你需要完成以下前置任务:

  1. 安装了可以使用的 NapCat,打开正向WS端口(必选)和HTTP端口(可选)
  2. Github 或者 Gitee 中下载项目到本地
  3. 当你了解了这些之后,你可以进行一些简单的操作,例如监听消息并进行回复,当你学会了简单的操作,你可以尝试自己编写插件或者开始使用其他开发者们发布在插件市场的插件了,NcatBot的插件系统对比其他项目来说,对于开发者们和使用者们都是更加简单易懂的~

可以通过本命令安装ncatbot:git clone https://github.com/liyihao1110/NcatBot.git
TODO:后续将添加镜像或国内站点支持。

当然你也可以使用pip来进行下载:pip install ncatpy

NapCat配置


NapCat是整个项目的核心,只有配置了正确的配置,你的QQ机器人才可以正常运行,为了大家更加方便地使用ncatbot,我们特意准备了针对ncatbot的启动器。

  1. 你需要在QQ群:💬 NcatBot/ฅ•ﻌ•ฅ🎉里面获取专属启动器
  2. 打开启动器,进行配置
  3. 进行第一次QQ登入,登入后会载入
  4. 点击后会打开配置界面,因为目前ncatbot只支持正向ws和http,所以启动器只提供对应的配置,注:服务名称是保存的唯一标识,无法修改,配置好之后点击保存即可
  5. 开启监听

简单入门示例


首先你需要填写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群💬 NcatBot/ฅ•ﻌ•ฅ🎉里面

开发时间有限,如果有不好的地方,欢迎提issue,或者加QQ群交流。

联系我们


QQ群:💬 NcatBot/ฅ•ﻌ•ฅ🎉


版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐