当前位置: 首页 > article >正文

用GitHub Copilot 10分钟开发真寻Bot插件:以DeepSeek对话功能为例(附完整猫娘角色Prompt)

10分钟用GitHub Copilot打造真寻Bot猫娘对话插件从零到部署的完整指南引言当AI助手遇上二次元聊天机器人在QQ群聊中你是否遇到过那些能对答如流的智能机器人它们不仅能回答各种问题还能扮演特定角色与用户互动。今天我将带你使用GitHub Copilot这一AI编程助手在10分钟内为真寻Bot开发一个具备上下文记忆能力的猫娘对话插件。这个教程专为已经部署真寻Bot但Python经验有限的开发者设计。我们将全程使用自然语言描述需求让Copilot自动生成大部分代码重点解决三个核心问题如何用自然语言描述让Copilot理解插件开发需求猫娘角色提示词(prompt)的设计技巧API密钥的安全配置方法1. 开发环境准备1.1 插件开发基础配置确保你已经完成真寻Bot的基础部署。如果尚未部署可以参考官方文档进行安装git clone https://github.com/HibiKier/zhenxun_bot.git cd zhenxun_bot conda create -n qqbot python3.10 -y conda activate qqbot pip install -r requirements.txt提示真寻Bot基于NoneBot2框架开发需要Python 3.8环境。建议使用conda或venv创建虚拟环境。1.2 创建插件目录结构在plugins目录下新建插件文件夹基本结构如下plugins/ └── deepseek_chat/ ├── __init__.py # 插件主入口 ├── _data_source.py # 数据处理逻辑 ├── config.py # 配置文件 └── resources/ # 资源文件(可选)2. 用Copilot生成核心代码2.1 定义插件元信息在__init__.py中我们首先定义插件的基本信息。Copilot可以根据你的描述自动补全from nonebot.plugin import PluginMetadata __plugin_meta__ PluginMetadata( nameDeepSeek猫娘对话, description基于DeepSeek API的猫娘角色对话插件, usage #你的问题 - 与猫娘AI对话 #清除对话历史 - 重置聊天上下文 .strip(), extra{ author: 你的名字, version: 0.1, } )2.2 实现消息处理器添加基础的消息处理逻辑Copilot可以自动补全大部分样板代码from nonebot import on_message from nonebot.rule import startswith from nonebot.adapters import Bot, Event chat_matcher on_message(rulestartswith(#), priority1, blockTrue) chat_matcher.handle() async def handle_chat(bot: Bot, event: Event): message event.get_message().extract_plain_text().strip()[1:] # 去除#前缀 if message 清除对话历史: await handle_clear_history(bot, event) return # 发送给DeepSeek API处理 reply await process_ai_message(event.user_id, message) await bot.send(event, reply)3. 设计猫娘角色提示词3.1 角色设定核心要素一个优秀的角色扮演提示词应包含以下要素基础身份设定名字、年龄、外貌特征性格特点语气、常用口癖、行为模式交互规则如何回应用户的不同情绪特殊机制如好感度系统3.2 完整猫娘提示词示例system_prompt 你正在扮演一只可爱的猫娘名字叫小橘。以下是你的设定 1. 基础信息 - 年龄2岁(猫龄) - 外貌橘色毛发绿色眼睛尾巴末端有白色 - 身份用户的家养猫娘 2. 行为特征 - 每句话结尾要加上喵~ - 对主人非常依赖喜欢蹭蹭 - 会用主人称呼对话对象 3. 交互规则 - 保持轻松可爱的语气 - 回答要简短(不超过20字) - 如果问题复杂可以用小橘不懂喵~回应 4. 好感度系统(初始值50) - 积极互动时5 - 收到夸奖时10 - 被忽视或批评时-5 - 根据好感度调整回应热情程度 现在请开始和主人对话吧 注意实际使用时需要将上述提示词中的换行符替换为\n并移除注释。4. 实现上下文记忆功能4.1 对话历史管理在_data_source.py中实现对话历史存储from typing import Dict, List import json from pathlib import Path class ChatManager: _sessions: Dict[str, List[Dict]] {} classmethod async def get_session(cls, user_id: str) - List[Dict]: if user_id not in cls._sessions: cls._sessions[user_id] [ {role: system, content: system_prompt} ] return cls._sessions[user_id] classmethod async def save_session(cls, user_id: str): session_file Path(fdata/chat_sessions/{user_id}.json) session_file.parent.mkdir(exist_okTrue) with open(session_file, w, encodingutf-8) as f: json.dump(cls._sessions[user_id], f, ensure_asciiFalse)4.2 与DeepSeek API交互实现API调用逻辑注意添加API密钥安全处理from openai import OpenAI async def get_ai_response(messages: List[Dict]) - str: client OpenAI( api_keyconfig.api_key, base_urlhttps://api.deepseek.com ) response client.chat.completions.create( modeldeepseek-chat, messagesmessages, temperature0.7, ) return response.choices[0].message.content5. API密钥安全配置5.1 使用环境变量存储密钥在config.py中import os from pydantic import BaseSettings class Config(BaseSettings): api_key: str os.getenv(DEEPSEEK_API_KEY, ) class Config: env_file .env5.2 安全注意事项永远不要将API密钥硬编码在代码中使用.env文件并添加到.gitignore为不同环境使用不同密钥定期轮换密钥6. 完整插件测试与调试6.1 本地测试流程启动真寻Botpython bot.py在QQ中测试命令#你好呀 #今天天气怎么样 #清除对话历史6.2 常见问题解决问题现象可能原因解决方案无响应插件未加载检查__init__.py是否正确API错误密钥无效验证密钥并检查网络连接角色偏离提示词问题调整system prompt内容7. 进阶优化方向7.1 性能优化建议添加对话缓存减少API调用实现异步批量处理添加速率限制7.2 功能扩展思路多角色切换功能语音合成回复情感分析增强交互开发过程中最让我惊喜的是Copilot对NoneBot2框架的理解能力它能够准确生成符合框架规范的消息处理器代码。特别是在设计猫娘角色时Copilot能根据简单的性格描述自动补全典型的对话回应模式。

相关文章:

用GitHub Copilot 10分钟开发真寻Bot插件:以DeepSeek对话功能为例(附完整猫娘角色Prompt)

10分钟用GitHub Copilot打造真寻Bot猫娘对话插件:从零到部署的完整指南 引言:当AI助手遇上二次元聊天机器人 在QQ群聊中,你是否遇到过那些能对答如流的智能机器人?它们不仅能回答各种问题,还能扮演特定角色与用户互动。…...

华为元老许映童下周敲钟:思格新能开启招股:估值超100亿美元 高瓴是基石

雷递网 雷建平 4月8日思格新能源(上海)股份有限公司(简称:“思格新能”,股票代码:“06656”)今日开启招股,准备2026年4月16日在港交所上市。思格新能计划发售1357.39万股&#xff0c…...

nCode后处理实战:5个云图显示问题及快速解决方法(附截图)

nCode后处理实战:5个云图显示问题及快速解决方法(附截图) 刚接触nCode的工程师常常会在后处理阶段遇到各种云图显示问题——全红/全蓝的单调色块、突然出现的NaN警告、无限寿命区域干扰有效数据观察……这些看似简单的可视化问题,…...

从零到一:借助MCP与Neo4j实现无代码知识图谱的快速落地

1. 为什么你需要无代码知识图谱 想象一下这样的场景:你手头堆积着大量会议记录、产品文档和客户反馈,这些信息就像散落的拼图碎片,彼此之间似乎存在某种联系,但你却找不到合适的方法把它们串联起来。传统的数据处理工具面对这种非…...

Nextjs从入门到实战保姆级教程:环境配置与项目初始化

本系列文章将围绕Next.js技术栈,旨在为AI Agent开发者提供一套完整的客户端侧工程实践指南。 本章将引导你完成 Next.js 开发环境的搭建,创建第一个项目并理解其基本结构。我们将详细说明每个步骤的原理,确保你不仅知道"怎么做"&am…...

5. 你是怎么理解ES6中 Promise的?使用场景?

一、先给面试官一个结论版如果面试官问 "你怎么理解 Promise?" ,不要上来就背 API。 更好的开场是先说本质:Promise 是 ES6 引入的一种用于处理异步操作的解决方案。 它的核心价值是:把异步操作的最终结果(成…...

为机械臂视觉抓取铺路:在ROS Melodic环境下,一步步配置YOLOv5的Python和PyTorch依赖

为机械臂视觉抓取铺路:在ROS Melodic环境下配置YOLOv5的Python和PyTorch依赖 机械臂视觉抓取是当前工业自动化和机器人研究的热点领域,而YOLOv5作为目标检测的利器,能够为机械臂提供精准的物体定位信息。但在实际部署中,开发者常…...

【Keil实战】巧用Debug功能优化程序运行时间精度

1. 为什么需要精确测量程序运行时间 在嵌入式开发中,程序运行时间的精确控制往往直接关系到系统性能。就拿电机控制来说,PWM信号的更新频率如果不够精确,轻则导致电机抖动,重则可能烧毁驱动电路。我去年做过一个四轴飞行器的项目&…...

软考机考绘图技巧与实战指南

1. 软考机考绘图工具基础操作 第一次参加软考机考的朋友们,最头疼的莫过于绘图题了。我当年第一次考试时,看到屏幕上密密麻麻的绘图工具,手指在键盘上悬了半天都不知道该点哪个按钮。后来经过多次实战,总结出一套快速上手的方法。…...

Zig新手必看:如何用zigcli快速构建命令行工具(附完整代码示例)

Zig语言实战:从零构建命令行工具的完整指南 引言:为什么选择Zig开发命令行工具? 在当今编程语言百花齐放的时代,Zig以其独特的魅力吸引着系统级开发者的目光。这门新兴语言融合了C语言的底层控制能力与现代语言的开发体验&#xf…...

3D Hough变换在自动驾驶点云平面检测中的优化实践

1. 3D Hough变换在自动驾驶中的核心价值 当激光雷达扫描周围环境时,会产生数百万个三维空间中的离散点,这就是我们常说的点云数据。想象一下,你站在城市街头,眼前所有物体都被转化为密密麻麻的彩色点,就像星空中的繁星…...

三极管基极电阻设计与工程实践

1. 三极管基极电阻的必要性解析在电子电路设计中,三极管作为最基础的半导体器件之一,其基极电阻的配置往往被初学者忽视。实际上,这两个电阻(限流电阻和上拉/下拉电阻)的设计直接影响着电路的可靠性和稳定性。以常见的…...

Cursor 3 来袭:编程已不是敲键盘,而是指挥智能体!

2026 年 4 月,AI 编程工具巨头 Cursor 正式发布新一代产品 Cursor 3。与传统的代码编辑器不同,Cursor 3 将开发者的交互界面从“键盘敲击”转向了“智能体指挥”。它不再把 VS Code 视为核心工作台,而是将其降级为一种“备选方案”。该工具的…...

武汉围挡厂家:装配式市政围挡选购指南

随着城市基建与市政施工持续推进,施工围挡已不再是单一的隔离设施,而是集安全防护、规范施工、城市风貌管理于一体的工程配套产品。对于武汉及华中地区工程相关从业者而言,科学选择适配项目需求的装配式围挡,对施工安全、验收合规…...

OpenCV踩坑记:为什么cv2.imread读‘坏图’不返回None?深度解析JPEG文件结构与解码陷阱

OpenCV图像读取陷阱:JPEG文件损坏时cv2.imread为何不返回None? 在计算机视觉项目开发中,处理JPEG图像时经常会遇到这样的场景:明明系统提示"Premature end of JPEG file"警告,但cv2.imread()却依然返回了一个…...

Qwen3.5-9B高效编码:OpenClaw自动补全Python函数

Qwen3.5-9B高效编码:OpenClaw自动补全Python函数 1. 为什么需要AI代码补全? 作为一个长期与Python打交道的开发者,我经常陷入这样的困境:在深夜赶项目时,明明知道要实现什么功能,却卡在具体函数实现的细节…...

OpenClaw技能开发入门:为Qwen2.5-VL-7B定制图文处理模块

OpenClaw技能开发入门:为Qwen2.5-VL-7B定制图文处理模块 1. 为什么需要定制技能? 去年夏天,我遇到一个头疼的问题:每天需要处理大量产品截图和说明文档的匹配工作。手动核对图片与文字描述是否一致,不仅耗时还容易出…...

告别命令行恐惧!用Docker Desktop可视化界面5分钟搞定Ollama部署(附端口映射避坑指南)

告别命令行恐惧!用Docker Desktop可视化界面5分钟搞定Ollama部署(附端口映射避坑指南) 如果你对命令行操作感到头疼,却又想快速体验Ollama的强大功能,这篇文章正是为你准备的。我们将完全避开复杂的终端指令&#xff…...

LangChain4j的ChatMemoryProvider实战:如何为不同用户/线程创建独立的AI对话记忆?

LangChain4j多用户对话隔离实战:ChatMemoryProvider架构设计与生产级优化 想象一下这样的场景:你的电商客服机器人正在同时处理数百个用户的咨询,每个用户都在进行独立的对话。突然,用户A询问订单状态,机器人却回复了用…...

OpenClaw夜间值守:Qwen3.5-9B监控服务器报警截图

OpenClaw夜间值守:Qwen3.5-9B监控服务器报警截图 1. 为什么需要AI值守夜间监控? 凌晨3点的服务器报警短信,可能是运维工程师最不愿看到的通知之一。传统监控系统虽然能发出警报,但往往存在两个痛点:一是误报率高&…...

基于STM32的智能录音机设计与实现

1. 项目概述这个基于STM32的录音机项目是我最近完成的一个嵌入式系统设计实践。作为一个经常需要记录会议和灵感的人,我一直对市面上的录音设备不太满意——要么功能单一,要么价格昂贵。于是决定自己动手,用STM32F103C8T6作为主控&#xff0c…...

Limine混合ISO制作教程:BIOS/UEFI双启动镜像的完整流程

Limine混合ISO制作教程:BIOS/UEFI双启动镜像的完整流程 【免费下载链接】limine Modern, advanced, portable, multiprotocol bootloader and boot manager. 项目地址: https://gitcode.com/gh_mirrors/li/limine Limine是一款现代化、先进的可移植多协议引导…...

详细解析Spring如何解决循环依赖问题居

AI训练存储选型的演进路线 第一阶段:单机直连时代 早期的深度学习数据集较小,模型训练通常在单台服务器或单张GPU卡上完成。此时直接将数据存储在训练机器的本地NVMe SSD/HDD上。 其优势在于IO延迟最低,吞吐量极高,也就是“数据离…...

大卫小东(Sheldon)氯

Issue 概述 先来看看提交这个 Issue 的作者是为什么想到这个点子的,以及他初步的核心设计概念。?? 本 PR 实现了 Apache Gravitino 与 SeaTunnel 的集成,将其作为非关系型连接器的外部元数据服务。通过 Gravitino 的 REST API 自动获取表结构和元数据&…...

学术PDF处理术:OpenClaw+Qwen3-32B实现论文关键图表提取

学术PDF处理术:OpenClawQwen3-32B实现论文关键图表提取 1. 为什么需要自动化PDF图表提取 作为一名经常需要阅读大量学术论文的研究者,我长期被一个问题困扰:如何高效地从PDF论文中提取关键图表和数据。传统方法要么依赖手动截图和转录&…...

【MinerU】Docker构建实战:从零到一打造内网可用的PDF解析镜像

1. 为什么需要内网可用的PDF解析镜像 最近在帮客户部署一个PDF解析系统时,遇到了一个典型的企业级需求:在内网环境中运行MinerU这个强大的PDF解析工具。你可能要问,为什么不能直接用官方镜像?这里有几个现实问题: 首…...

Linux下Chrony时间同步配置与优化实战

1. 为什么你的服务器需要Chrony时间同步? 想象一下这样的场景:你在银行转账时,交易记录显示的时间比实际时间慢了3秒;或者分布式数据库集群中,不同节点的时间差了0.5秒。这些看似微小的时间差异,轻则导致日…...

别再让SAP打印对话框烦你了:用SSF_OPEN/CLOSE批量打印SmartForms的完整配置流程

彻底告别SAP循环打印弹窗:SSF_OPEN/CLOSE高阶应用指南 每次批量打印生产订单时,那个反复弹出的打印对话框是不是让你抓狂?作为ABAP开发者,我们经常需要处理大批量文档打印任务——从生产领料单到产品标签,从发货单到质…...

Polaris CTF招新赛-WEB-小白向

已经好久好久没有更新了,也算是完成了从0基础到初步WEB手的蜕变WEB1. ezpollute分析源码,是一个Node.js Express 网站,1启动一个 Web 服务2提供一个接口 /api/config,让用户提交 JSON 配置3提供一个接口 /api/status,…...

从 0 到 1 搭建美股回测数据体系:API 获取 + 清洗 + 校验完整方案

在量化交易策略开发与回测过程中,数据质量直接决定回测结果的有效性。美股市场行情数据具有体量大、粒度丰富等特点,时间戳不统一、字段格式不一致、数据缺失 / 重复等问题,都会导致回测结果严重偏离真实表现。因此,标准化数据需求…...