(保姆级教程)通过官方API搭建一个自己的QQ群聊机器人

(保姆级教程)通过官方API搭建一个自己的QQ群聊机器人

简介

用官方api做了一个qq群聊机器人的demo,有获取天气、简单编辑待办、从本地发送图片等功能。

建了个群,欢迎来交流(

QQ群号:710101225

重新写了个基于nonebot框架的教程,个人认为比官方sdk更容易开发:https://blog.ZEEKLOG.net/Clovertaa/article/details/145452834

获取

机器人demo

GitHub仓库:GitHub - ClovertaTheTrilobita/SanYeCao-bot: 一个基于官方API的QQ群聊机器人

官方SDK

GitHub仓库:GitHub - tencent-connect/botpy: QQ频道机器人PythonSDK

教程

前置需求

本项目使用conda环境和git操作。如果未安装这两个工具请首先移步

史上最全最详细的Anaconda安装教程-ZEEKLOG博客

Git 详细安装教程(详解 Git 安装过程的每一个步骤)_git安装-ZEEKLOG博客

(这俩教程我粗略看了下感觉挺好的,如果不适合你那烦请自行百度了qwq)

一、配置QQ开放平台

网址:QQ 开放平台

1.机器人设置

完成注册之后,登陆,进入主页,点击创建机器人

简单填写好资料之后,进入机器人控制面板,找到“沙箱配置”。

点击进入,选择你想在哪个群里测试你的qq机器人。

注意,你必须是该群的群主或者管理员。

在你选择的群聊中,打开群聊设置>群机器人,选择其它,可以看到你创建的机器人。将它邀请进群。

下一步,在导航栏中找到“发布设置”。

点击功能配置。

之后点击右上角的重新配置,设置机器人被at后输入栏上方会弹出的指令。需要根据代码来配置。

以下是我配置的。

最后,在导航栏中找到“开发设置”。

查看你的机器人的AppleID和AppleSecret。由于AppleSecret不会明文保存在网页上,刚创建的机器人需要点击“生成”,并将生成的密钥记录下来,我们在之后的步骤中要用。

注意:生成密钥后退出页面将无法再次查看密钥,所以请妥善记录并保管好。

二、拉取项目

进入GitHub,点击绿色的<>code

之后复制项目仓库链接

之后在自己的文件夹空白处右键,选择open git bash  here

输入

git clone https://github.com/ClovertaTheTrilobita/SanYeCao-bot.git

将项目拉取至本地。

三、启动机器人

很好!现在我们拿到了机器人的源代码,只需要启动它就行了。

请详细阅读项目的README.md根据指引配置API和其它一些东西。

1.配置机器人账号密码

找到./botpy/examples/config.yaml

appid: "Your_Bot_Id" secret: "Enter_Your_Secret_Here"

还记得第一步中我们保存的机器人ID和密钥么?

将你在QQ开放平台上的AppleID和AppleSecret分别填入Your_Id和Enter_Your_Secret_Here的位置。

2.配置图床API

首先打开图床:Image Upload - SM.MS - Simple Free Image Hosting

注册/登陆之后,在右上角找到User

单击,点击DashBoard

在左侧导航栏中找到API Token,如果是第一次使用需要点击Gennerate Secret Token生成令牌。

复制你的令牌,进入项目。

在./botpy/examples/plugins/img_upload.py中,找到

headers = {'Authorization': 'Your_Token'} # 此处填写你的API Token

将上述代码中的Your_Token改为你刚刚复制的令牌。

这样我们就完成了机器人API的配置。

3.配置conda环境(推荐)

接下来,我们回到项目根目录,打开终端,输入

conda create -n chatbot

创建一个名为chatbot的环境,如果你想起别的名字就请把chatbot换为你喜欢的名字。

之后在终端输入

conda activate chatbot

 启动我们刚刚创建的环境。

刚刚创建的conda环境貌似是没有pip安装器的,所以我们要

conda install pip 

安装pip

最后一步,在项目根目录输入

pip install -r requirements.txt

安装所需要的软件包。

requirements.txt内的包可能看起来很多,实际上大部分都是conda环境自带的,我直接把所有的贴上去了,因为懒()

4.启动机器人

非常棒!现在我们已经完成了所有所需要的配置!

我们只需要进入./botpy/examples目录,找到client.py。在终端中输入

python client.py

启动机器人。

现在你就可以在群聊中at它啦。

 

Read more

AI绘画神器Z-Image-Turbo:输入文字秒出图,艺术创作从未如此简单

AI绘画神器Z-Image-Turbo:输入文字秒出图,艺术创作从未如此简单 你有没有过这样的时刻:脑子里已经浮现出一张绝美的画面——晨雾中的山寺飞檐、赛博朋克街角的霓虹猫、水墨晕染的敦煌飞天——可当你打开绘图软件,却卡在第一步:怎么把脑海里的东西,变成屏幕上真实可感的图像? 不是不会画,是没时间学;不是不想试,是怕折腾半天只出一张糊图。更别提那些动辄要配3090显卡、等五分钟才出一张图的工具,还没开始创作,热情就被加载条浇灭了。 今天我要分享的,不是又一个“理论上很厉害”的模型,而是一个真正能让你合上笔记本、拿起手机、输入一句话、三秒后就看到高清大图的工具——Z-Image-Turbo 极速云端创作室。 它不教你怎么调参数,不让你研究CFG值和采样器区别,甚至不需要你记住任何英文术语。它只有一个按钮:“ 极速生成”。点下去,结果就来了。 这不是未来科技,是今天就能用上的现实。我用它给朋友做生日贺图,12秒生成一张带名字的星空手绘风插画;用它帮设计师同事赶海报初稿,输入“极简风咖啡馆LOGO,暖棕+米白,有手冲壶剪影”,第一张就通过了;甚至用它给孩子讲古诗,输入“

Faster-Whisper-GUI日语语音识别终极指南:三步解决长音频识别难题

Faster-Whisper-GUI日语语音识别终极指南:三步解决长音频识别难题 【免费下载链接】faster-whisper-GUIfaster_whisper GUI with PySide6 项目地址: https://gitcode.com/gh_mirrors/fa/faster-whisper-GUI 作为一名技术爱好者,你是否曾经在使用语音识别工具处理日语长音频时遇到这样的困扰:识别到后半部分,系统就开始重复输出"感谢收听 ご視聴ありがとうございました"这样的固定短语,而不是实际的对话内容?这其实是日语语音识别中一个常见的技术挑战。今天,让我们来探索如何通过Faster-Whisper-GUI完美解决这个问题。 🎯 日语长音频识别实战案例 想象一下这样的场景:你需要将一段30分钟的日语访谈节目转换为文字稿。当你使用传统的语音识别方法时,往往会在处理到15分钟后开始出现识别偏差。这就是日语语音识别中的"注意力衰减"现象。 快速解决方案: 1. 使用音频分割工具将长音频剪辑为5-10分钟的片段 2. 分别对每个片段进行识别处理 3. 使用文本合并工具整合

从论文到实践:Stable Diffusion模型一键生成高质量AI绘画

从论文到实践:Stable Diffusion模型一键生成高质量AI绘画

🏡作者主页:点击!  🤖编程探索专栏:点击! ⏰️创作时间:2024年12月24日10点02分 神秘男子影,   秘而不宣藏。 泣意深不见, 男子自持重,    子夜独自沉。  AI绘画一键生成美图-变成画家 本地部署SD模型,一键即可生成自己想要绘制的图画,本文包括论文原理讲解和代码复现 论文讲解 论文题目:High-Resolution Image Synthesis with Latent Diffusion Models(基于潜在扩散模型的高分辨率图像合成) 论文被计算机视觉顶会CVPR 2022收录 Stable diffusion是一个基于Latent Diffusion Models(潜在扩散模型,LDMs)的文图生成(text-to-image)模型。它建立在自注意力机制和扩散过程的基础上。它的设计灵感来自于扩散过程模型(Diffusion Models),这些模型在自然图像建模领域取得了巨大成功。 Stable Diffusion通过一系列的扩散步骤来生成图像。在每一步中,模型逐渐“扩散”图像,从含有较少信息的噪声开始,到包含更多细节的图像。

Copilot代理与网络配置全攻略(突破访问限制的终极方法)

第一章:Copilot代理与网络配置全攻略(突破访问限制的终极方法) 在使用 GitHub Copilot 的过程中,开发者常因网络策略或区域限制无法正常激活服务。通过合理配置代理与网络环境,可有效绕过此类问题,确保代码补全功能稳定运行。 配置本地代理服务器 为确保 Copilot 能够连接至远程 API,建议在本地部署 HTTP 代理服务。以下是一个基于 Node.js 的简易代理示例: // proxy-server.js const http = require('http'); const net = require('net'); // 创建 HTTP 代理服务器 const server = http.createServer((req, res) => { // 允许跨域请求 res.setHeader(