56 lines
2.3 KiB
Markdown
56 lines
2.3 KiB
Markdown
基于知识库项目进行问答。
|
||
|
||
**输入**: `/lyxy-kb-ask` 后的参数为项目名称,可选附带问题。例如:
|
||
- `/lyxy-kb-ask my-project` — 进入问答模式
|
||
- `/lyxy-kb-ask my-project 这个系统用了什么技术栈?` — 直接提问
|
||
|
||
**前置条件**: 查找并阅读名为 **lyxy-kb** 的 skill,了解渐进式查询策略和来源引用格式。
|
||
|
||
**步骤**
|
||
|
||
1. **获取项目名称并验证结构**
|
||
|
||
从参数中获取项目名称。如果未提供参数,提示用户输入。
|
||
|
||
按照 lyxy-kb skill「结构完整性验证」规则检查项目目录,不完整则提示用户先 init。
|
||
|
||
2. **加载项目摘要**
|
||
|
||
读取 `<project-name>/project.md`,获取项目概述和文件索引。
|
||
|
||
按照 lyxy-kb skill「空知识库」规则,如果文件索引为空(尚无已入库文件),告知用户知识库为空,建议先使用 `/lyxy-kb-ingest <project-name>` 入库文档,终止操作。
|
||
|
||
3. **进入问答模式**
|
||
|
||
如果用户在参数中附带了问题,直接回答该问题。否则提示用户可以开始提问。
|
||
|
||
**对每个问题,按照 lyxy-kb skill「渐进式查询策略」执行**:
|
||
|
||
**a) 分析问题与文件索引的关联**
|
||
|
||
根据用户的问题内容,对照 project.md 文件索引表中各文件的摘要,判断需要查阅哪些 parsed 文件。
|
||
|
||
**b) 按需加载 parsed 文件**
|
||
|
||
读取相关的 `<project-name>/parsed/<文件名>.md` 文件。如果文件较大,可以先提取标题结构,再读取相关章节。
|
||
|
||
**c) 回答并标注来源**
|
||
|
||
基于获取的信息回答问题。按照 lyxy-kb skill「来源引用格式」标注来源:
|
||
|
||
```
|
||
根据《文件名》(parsed/文件名.md),...
|
||
```
|
||
|
||
如果回答综合了多个文件的信息,分别标注各信息点的来源。
|
||
|
||
**d) 无相关信息处理**
|
||
|
||
按照 lyxy-kb skill「无相关信息」规则,明确告知用户当前知识库中未找到相关信息,不编造答案。
|
||
|
||
4. **保持会话上下文**
|
||
|
||
回答完成后,保持当前的知识库上下文。用户可以继续提问,无需每次重新加载 project.md。已加载的 parsed 文件内容可在后续问答中复用。
|
||
|
||
会话的退出由用户自然决定(开启新话题或新会话),不主动终止问答模式。
|