利用Subcommand实现类似的/qa的/uqa;但是基于个人知识库memory.md

官方文档压压惊 :Sub Command | 心流开放平台
从评论区看到好多大佬在想实现个人知识库
看到/qa 豁然开朗;开始实现 :hugs:
使用的模型minimax-2.1(真的快!) :hugs:
开启plan模式先
提示词:
/qa 自行设计一个subcommand “”,改subcommand
的目标是用于调用自行创建的知识库(my
memory.md);
1.(该知识库通过用户自行输入,用户在使用过程中强
调需要更新到知识库的内容)
2.深度思考进行方案设计

由于前面已经要求方案设计。
参考方案设计进行回答清楚自己的idea。这个部分真的很喜欢(实现进一步地人机协作;)真的很喜欢在编程过程中的参与部分,Human in loops(新实现的功能)

根据 iFlow CLI 的文档,subcommand 的配置是通过 TOML
文件实现的。用户还提到了"深度思考",这意味着需要结合
thinking 能力。

方案设计需要考虑:

  1. subcommand 的定义和参数处理
  2. 如何读取知识库文件
  3. 如何结合深度思考能力
  4. 如何支持用户更新知识库
    (规划方案已经出现)
    计划:

    现在我需要:
  5. 首先检查 .iflow 目录是否存在
  6. 创建 commands 子目录
  7. 创建 uqa.toml 配置文件
  8. 创建 my memory.md 文件
    出现第一次结果
    :white_check_mark: 实现完成!

我已成功为您创建了 自定义子命令。以下是完成的内容:

:file_folder: 创建的文件

  1. 配置文件: .iflow/commands/uqa.toml

    • 定义了查询模式和更新模式两种操作
    • 集成了深度思考能力
    • 支持 --add 参数进行知识更新
  2. 知识库文件: my memory.md

    • 包含开发环境配置、项目笔记、常用工具等模板内容
    • 您可以根据需要自行添加和修改

:rocket: 使用方式

1 # 查询知识库
2 /uqa Python 环境配置
3 /uqa agent-chatbot 结构
4
5 # 更新知识库
6 /uqa --add 新知识内容

:warning: 重要说明

由于 iFlow CLI 的设计, 命令的 prompt 中使用了
{{knowledge_base_content}} 和 {{user_input}} 变量占位符。但
根据当前文档,知识库文件内容需要通过其他方式注入(如 hooks
或 MCP 工具)。

建议后续优化方案:
** 1. 使用 MCP 工具读取 my memory.md 文件内容**
** 2. 通过 hook 预处理用户输入,自动注入知识库内容**
** 3. 或使用 iFlow 的变量注入机制**

Relevant Links:

/uqa Python

✻ 思考中…

用户再次输入了 /uqa Python
命令。我应该直接模拟知识库查询的结果,基于 my
memory.md 文件中关于 Python 的内容来回答。

从之前读取的 my memory.md 文件,Python 相关的内容是:

### Python 环境 
- Python 3.8+ 
- 主要依赖:numpy, pandas, matplotlib, scipy 
- 虚拟环境:venv 或 conda 

让我直接回答这个问题。

:books: 基于知识库的回答

根据您的知识库 my memory.md,关于 Python 环境配置
的信息如下:

:snake: Python 环境

┌──────────┬──────────────────────────────────┐
│ 项目 │ 配置 │
├──────────┼──────────────────────────────────┤
│ 版本要求 │ Python 3.8+ │
│ 主要依赖 │ numpy, pandas, matplotlib, scipy │
│ 虚拟环境 │ venv 或 conda │
└──────────┴──────────────────────────────────┘

:package: 安装建议

1 # 使用 conda(推荐)
2 conda create -n myenv python=3.10
3 conda activate myenv
4 pip install numpy pandas matplotlib scipy
5
6 # 或使用 venv
7 python -m venv venv
8 .\venv\Scripts\activate # Windows
9 pip install numpy pandas matplotlib scipy

:white_check_mark: 知识库状态

当前知识库中 Python
配置较简洁,如果您需要补充更多内容,可以使用:

1 /uqa --add 详细的 Python 虚拟环境管理技巧

✦ 请问这个回答是否满足您的需求?还需要补充什么内容吗?

可以看一下最终的配置文件:
description = “知识库智能查询与更新工具:/uqa 你的问题 或 /uqa --add 新知识内容”

[command]
name = “uqa”
description = “知识库智能查询与更新助手”

[command.prompt]

知识库查询模式

query = “”"
你是知识库智能助手。

@./my memory.md

基于以上知识库内容回答用户问题:

{{input}}

回答要求:

  1. 仔细阅读知识库内容
  2. 基于知识库信息准确回答
  3. 如信息不足,明确告知用户
  4. 引用具体章节和内容
    “”"

知识库更新模式

update = “”"
你是知识库整理助手。

@./my memory.md

用户提供的新内容:
{{input}}

请提供整理后的 Markdown 格式内容:

  1. 建议添加的位置(新建章节或合并)
  2. 合并建议(如适用)
    “”"

嘿嘿,成功完成。:tada::tada:
官方文档真是个出神力的地方
小技巧:
/qa (问题):作为方案规划的上下文。
随后基于前面的上下文进行制作一些想要做的事情。

前面有一个大佬制作了chatbot的内容:iFlow Chatbot 基于 Next.js 15 和 iFlow CLI SDK 构建的全功能 Agent 聊天机器人,提供类似 Web端 iflow 的交互体验。
如果有人导出过相关的项目时
其核心的机理之一是 SDK 进行调用远端客户端作为内核,其余的内容是包装iflow cli(哈哈哈,我并不是那么专长的了解计算机知识)。
可以利用上述方案首先获取官方文档,制作一个iflow_SDK的项目;随后基于iflow_SDK项目进行构建agent_chatbot。

希望继续优化: Human in loop:会提问的模型更聪明
逐步优化当下最难搞的问题:无法在Agent的中间过程黑盒模式;
实现人与AI协作人为打好方向盘的效果
哈哈哈哈!仅仅只是一点点想法

可以可以,感谢分享!!

1 个赞

:star_struck:哈哈哈

哎哟,大佬大佬你好,可不敢可不敢,我是iFlow chatbot小老弟 :wink:

哎哟,大佬大佬你又开始谦虚了 :nerd_face:

1 个赞