【人工智能agent】--dify实现文找图、图找文、图找图
这几天项目遇见需要使用多模态大模型,对图片进行解析、查找问答,但是仔细看看dify的知识库是不能支持图片的向量化存储,但是支持图片链接、本地连接的存储:
那可以设计一个简单的思路,就是通过提取图片的描述信息精心构造知识库,然后上传图片也可以通过描述信息找到一样的图片或这相似的图片。
然后本期主要分成三个部分:
- 文字描述找到图片
- 上传图片问答
- 图片找到相似图片
工作流设计:
目录
1.知识库构建
2.文找图
2.1.开始节点
2.2.条件分支
2.3.知识检索
2.4.大模型回答
2.5.直接回复
3.图找文、图找图
3.1.图片描述
3.2.知识检索
3.3.回答问题
3.4.测试效果
1.知识库构建
可以直接把图片和对应的文字描述放在word里面,直接使用dify自带的知识库构建
dify会把图片自动保存在本地地址里面:
2.文找图
这里工作流使用的是复杂只是多轮对话工作流:Chatflow
2.1.开始节点
需要添加参数image(图片),find(查找知识库内容)
2.2.条件分支
判断是否上传了图片,如果image存在,说明用户操作图片描述,不存在就是文字找图片
2.3.知识检索
检索用户的描述,一定是用户输入的find,而不是问题,否者会重投开始执行工作流,
2.4.大模型回答
由于要从知识库里面提取出图片,直接使用视觉大模型提取出来即可:
可以根据自己的需要改写:
请你根据用户问题和知识库检索到的内容,提取出用户想要的内容。1.如果用户只想要图片,就只需要提取出图片输出。
2.提取出知识库中用户想要的部分,不要输出过多内容
3.如果用户想要地质有关的描述或者信息,就只需要输出专家描述的地质解释用户问题:{{#sys.query#}}
知识库内容:{{#context#}}
2.5.直接回复
查看效果:
3.图找文、图找图
由于知识库不支持多模态的向量查询,那我们图找图就只能通过图片的文字信息描述实现:
3.1.图片描述
上传图片之后通过视觉大模型进行描述,
你是一名助手,请详细、客观地描述这张地质图片中的视觉元素。请重点关注(如果没有下列信息,直接标注:无):
1.线条的类型(直线/曲线)
2.形态(平行/相交)
3.趋(向上/向下)
4.颜色的分布与区域
5.符号的形状和位置
6.任何文字标注。
7.统计信息(井的数量,井的类型,井的编号(不用全部列举),井的位置(不用全部列举)等) 输出:总结成一段话不要进行任何地质解释,只描述你看到的东西。
可以上传一张图片测试一下:这个节点
3.2.知识检索
用图片的描述信息去检索知识库:
这样就可以找到知识库中对应的文字描述,或者相似的图+9描述
3.3.回答问题
可以根据需要精心修改,
请你根据知识库中检索到的信息,回答用户问题。要求:
1.如果是找相似的图片,就直接输出知识库中匹配图片即可,并作出相似性分析结果对比,主要比较地质信息的描述。2.如果用户只是询问地质描述,就只输出专家描述的地质解释即可,不需要给出视觉元素信息。3.根据用户问题,提取出知识库中内容知识库:{{#context#}}用户问题:{{#sys.query#}}