为NapCatQQ插件添加RAG功能
背景正在开发的作业批改系统需要支持 QQ 群聊答疑功能。学生通过 QQ 向机器人提问时,希望机器人能够基于上传的教学文档(知识库)进行回答,而不是仅依赖模型自身的知识。 架构设计最终架构1学生QQ提问 → NapCat(WS) → OpenClaw OneBot插件 → RAG增强 → 贾维斯Agent → OpenClaw → 回复学生 关键点: 在 OneBot 插件层拦截消息,调用后端 RAG 接口增强 prompt 增强后的消息再发给 Agent 处理 复用现有的向量检索和文档存储系统 实现过程1. 后端接口开发创建 OnebotRagController.java,提供 RAG 增强接口: 123456789101112131415161718192021222324@PostMapping("/rag")public ResponseEntity<RagResponse> rag(@RequestBody RagRequest request) { // 1. RAG 检索 List<String>...
OpenClaw 接入 OneBot 实现 QQ 消息收发
前言最近在做作业批改系统,需要实现老师通过机器人向学生发送成绩和通知的功能。本文记录如何将 OpenClaw 与 OneBot 协议对接,实现 QQ 私聊和群消息的自动发送。 背景为什么选择 OneBot?OpenClaw 原生支持 QQ 频道机器人,但频道机器人无法进入普通 QQ 群。为了覆盖更多使用场景,选择通过 OneBot 协议作为中转: 1OpenClaw → OneBot 插件 → OneBot 实现(LLOneBot)→ QQ 群/好友 技术栈 OpenClaw: AI 网关,负责消息路由和 Agent 管理 OneBot 插件: @kirigaya/openclaw-onebot OneBot 后端: LLOneBot(基于 NTQQ 的 OneBot 11 实现) 安装与配置1. 安装 OneBot 插件1openclaw plugin install @kirigaya/openclaw-onebot --allow-dangerous 注意:该插件包含 child_process 调用,需要 --allow-dangerous 参数。 2. 配...
PostgreSQL AVG() 返回 BigDecimal 导致 ClassCastException 排查
问题现象教学数据仪表盘中的「知识点掌握度热力图」区域空白,不显示任何数据。浏览器控制台显示接口返回 500 错误。 排查过程第一步:确认数据链路首先检查后端的 HomeworkKnowledgeMapper,发现 SQL 查询逻辑是正确的: 从 homework_knowledge 表查询知识点掌握记录 JOIN homework_evaluation 表按班级筛选 按知识点分组计算平均掌握度 数据流设计没有问题,直接查询批改结果表,避免了知识点名称映射的混乱。 第二步:定位后端异常查看后端日志,发现具体的错误信息: 1java.lang.ClassCastException: class java.math.BigDecimal cannot be cast to class java.lang.Double 错误发生在 DashboardServiceImpl.java 第 121 行。 第三步:分析根因问题出在类型转换上: 12// 原代码Double avgMastery = (Double) stat.get("avg_mastery")...
计算机网络 — 可靠传输与滑动窗口(考研笔记)
可靠传输滑动窗口机制类似算法中的滑动窗口,分为发送窗口和接收窗口。窗口仅向后滑动,绝不向前后退;窗口滑动完全由接收方返回的确认帧 ACK 控制,接收方通过确认机制限制发送方窗口滑动速度,以此实现流量控制。 考研核心考点 帧序号采用 n 位二进制编号,总序号空间个数:$2^n$ 不同可靠传输协议,发送窗口、接收窗口大小限制各不相同 只有收到确认帧,发送窗口才会向后滑动 停止-等待协议基本概念 数据帧:发送方传输数据的基本单元,帧首部携带帧序号。 确认帧(ACK):接收方正确接收数据帧后,返回给发送方的应答帧,帧内携带对应帧序号,用于告知发送方该帧接收无误,可以发送下一帧。 帧序号:用于区分新旧帧、重复帧,本协议仅需 0、1 两个序号循环即可。 超时重传为解决数据帧丢失问题:发送方每发一帧就启动超时计时器,若长时间未收到对应 ACK,判定帧丢失,超时重传该帧,并重置计时器。 确认帧丢失:发送方依旧超时重传该帧;接收方通过帧序号识别出重复帧,直接丢弃重复帧,并重新发送对应 ACK。 数据帧出错:接收方检测出差错后,直接丢弃出错帧,不发送任何 ACK,触发发送方超时重传。 窗口...
智能作业批改系统
从零构建智能作业批改系统:Spring Boot + Vue3 + RAG 实战 一个基于 AI 的全栈作业批改平台开发实录 项目概述这是一个面向教育场景的智能作业批改系统,支持多格式文档上传、AI 智能批改、流式对话交互,以及基于 RAG(检索增强生成)的知识库问答功能。 技术栈: 后端: Spring Boot 4.x + MyBatis-Plus + PostgreSQL + JWT 前端: Vue 3 + Element Plus + Pinia AI 层: OpenClaw 网关 + 自研 RAG 引擎 文档解析: Apache Tika 一、系统架构设计1.1 整体架构12345678910111213141516171819202122232425262728293031323334┌─────────────────────────────────────────────────────────────────┐│ 前端层 (Vue 3) ││ ┌───...
计算机网络学习笔记(物理层+数据链路层)
计算机网络学习笔记 超清晰整理 | 适合复习背诵 一、网络分层结构1. OSI 七层模型(理论) 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 2. TCP/IP 四层模型(实际使用) 网络接口层 网络层 传输层 应用层 二、通信基础概念 信源:信息的发送方 信宿:信息的接收方 信道:信号传输的物理通道 信号 数字信号:离散、不连续 模拟信号:连续变化 码元、波特率、比特率 码元:一个固定时长的信号波形,代表一个离散数值 波特率:每秒传输的码元数(码元速率) 比特率:每秒传输的比特数(信息速率) 关系:比特率 = 波特率 × log₂(一个码元携带的比特数) 三、信道的极限容量1. 噪声传输过程中混入的干扰信号,会影响数据准确性。 2. 奈奎斯特定理(无噪声)极限码元传输速率:C = 2W log₂(N) W:信道带宽 N:码元的离散电平数 3. 香农定理(有噪声)极限信息传输速率:C = W log₂(1 + S/N) S/N:信噪比 信噪比(dB)= 10 log₁₀(S/N) 例:S&...







