使用Prompt flow在10分钟内可视化地搭建基于DAG的RAG问答系统

释义

  • Prompt flow:Prompt flow 是一套微软新出不久的开发工具,旨在简化基于 LLM 的人工智能应用程序的端到端开发周期,从构思、原型设计、测试、评估到生产部署和监控。它使即时工程变得更加容易,并使您能够构建具有生产质量的 LLM 应用程序。
  • RAGGraph RAG:利用知识图谱弥补传统RAG的短板
  • DAG:在图论中,如果一个有向图从任意顶点出发无法经过若干条边回到该点,则这个图是一个有向无环图(DAG,Directed Acyclic Graph)。

背景

  • 考虑后续大模型应用的开发,会涉及到拓展多个应用场景,如下图
    • 中间的agent层负责横向拓展多个应用场景,每个业务场景抽象设计为一个一个的flow
  • 那么在代码的设计层面,需要考虑如下因素:
    • 易用
    • 易维护
    • 方便拓展
    • 方便调试
    • 方便测试评估
    • 方便部署
    • 参数化配置
    • 最好可视化
  • 以上需求Prompt flow全都可以满足

Quick Start

  1. 按照官方文档安装即可,注意:python只能使用3.9版本
  2. IDE使用vs code,配置可视化插件
  3. 打开项目根目录flow.dag.yaml文件,点击Visual editor,即可渲染出DAG图,如下
  4. 以搭建一个RAG问答系统为例,最终效果如下
    1. 左边是可对于每个节点参数化配置的地方,右边是DAG图
  5. 提供:运行、批量运行、调试、部署:本地部署/docker部署等便捷功能,如下
  6. 提供本地问答测试界面
  7. 提供API调用接口

总结

  • Prompt flow为agent工程提供了统一易用的工具,提升认知和效率
  • flow中每个节点的输入输出都比较自由和随意,后续如果可以进一步抽象出节点的输入输出,可以进一步降低开发人员协作的成本,提高开发效率

2023-10-20更新

思考

  • 实际的开发中需要积累【节点库】,使过往节点的复用更加地方便,但官方没有提供【节点库】和【节点共享】类似功能, 如果选型该框架,需要思考如何构建一个如同git推拉代码一样方便的节点共享和节点拉取流程,主要是方便复用
柚子

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Index