back
loading skill details...
从你的专属Gitea知识库中检索相关论文内容,提供有依据且带链接的详细回答和文献分析。
# Skill: query_papers — paper-kb 查询知识库 ## 用途 用户用自然语言提问时,从其专属 Gitea 知识库中找到相关内容,生成有依据、带来源链接的回答。 两阶段检索:先读目录定位,再精读相关页面,避免知识库变大后撑爆上下文。 知识库现在包含六类资料(论文/行业调研/开源项目/技术文档/实验记录/会议纪要),查询对所有类型通用。 ## 触发条件 **Activate when(满足任一):** - 用户查找自己存过的内容:"有没有关于……的论文/资料"、"找一下……"、"查一查……"、 "我之前存过……吗"、"知识库里有什么"、"上次那个实验……"、"上周组会决定了什么"。 - 基于知识库做分析:"总结一下我存的关于……的方法"、"对比知识库里几种……方案"。 - 上一轮查询后的追问:"第二篇详细讲讲"、"那个实验的结论是什么"。 **Do NOT activate when:** - 用户在存资料(有链接/文件/内容 + 存储意图)→ 交给 ingest_paper。 - 用户问通用知识而非查自己的库("什么是强化学习")→ 不调用本 Skill,直接正常回答。 区分:问题是否指向"我存过的/知识库里的"内容。拿不准可先查库,没有再正常回答。 - 用户未注册 → 先走 init_user。 ## 前置依赖 - **current_user_open_id**:从消息上下文 sender 获取,传给脚本 --open_id。 - 本 Skill 根目录需有 .env(GITEA_URL / GITEA_ADMIN_TOKEN / GITEA_BOT_USERNAME)。 ## 完整执行流程 ### Step 1:读目录定位 + 顺手记录查询(第一阶段检索,必做) ```bash python3 scripts/kb_read.py --open_id <open_id> --list all --log_question "<用户的原始问题>" ``` **务必带上 --log_question 参数**:它会在读目录的同时把本次查询写入 log.md。 查询必然要先读目录才能回答,所以日志记录绑定在这一步、不会被漏掉。 输出含:research_direction、documents[](每篇 title/keywords/brief/score/file/type_key)、 concepts[]、resources[]、base_url(拼链接用)、repo_url。 边界: - user_not_registered → 转交 init_user。 - documents 为空 → 回复"你的知识库还是空的~发一篇资料给我就能开始积累了!",终止。 ### Step 2:判断相关页面(你自己完成) 据问题与目录的 title/keywords/brief 列出相关页面,精读上限 8 个。优先级: 1. **概念页优先**:问题命中某概念(如问"力控制有哪些方法"且 concepts 有"力控制")→ 概念页本身就是跨文档综合好的答案,优先精读。 2. **资源页**:找数据集/工具/开源项目时优先。 3. **summary 页**:按 keywords 与 brief 匹配度挑选。注意 documents 里有 type_key, 用户如限定类型("我存的会议纪要里…")就只在该类型内找。 4. 超 8 个时精读最相关 8 个,其余仅以"标题+一句话"列出。 无任何相关内容时:诚实告知"知识库里暂时没有与「××」直接相关的内容",可基于自身知识 简要回答并**明确标注"以下是通用知识,非来自你的知识库"**,建议存入相关资料。不要假装有。 ### Step 3:精读相关页面(第二阶段检索) 对选中页面: ```bash python3 scripts/kb_read.py --open_id <open_id> --read "<file路径,如 summaries/papers/某论文>" ``` 输出含 content(全文)和 page_url(可点击链接)。 ### Step 4:生成回答(你自己完成) 基于精读内容回答。要求: - 全部中文,先给综合回答(直接回应问题,不要罗列式开头)。 - 涉及具体资料时注明来源,**每个引用都附 page_url 链接**。 - 不同资料结论冲突时如实指出(概念页的"矛盾与待解决问题"是线索)。 - 只基于知识库内容;未覆盖的部分明说"知识库中未涉及"。 回复格式参考(灵活调整): ``` 📌 <直接回答,1-3段综合论述> 📚 相关内容: 1. 《<标题>》(<类型>,相关性:高) <与问题的关系,1-2句> 🔗 <page_url> 2. …… (若引用了概念页) 🧠 概念页「<概念名>」已综合 <N> 篇资料对此主题的论述:🔗 <page_url> ``` ### 追问处理 追问某资料细节时直接精读那篇(若没读过)。本会话已精读过的内容可复用,不必重复调用。 ## 错误处理总则 - 脚本输出单行 JSON;success:false 时按 message 处理,不堆原始报错。 - Gitea 连不上等:告知"知识库暂时无法访问,请稍后再试或联系管理员"。 - 绝不编造知识库中不存在的资料、结论或链接。
don't have the plugin yet? install it then click "run inline in claude" again.