传统的RAG流程只处理文本,会忽略PDF、Word等文档中的图片,导致信息丢失。PAI-RAG的多模态功能集成了多模态大语言模型(LLM),能够同时理解图文内容,提供更完整的回答。本文将介绍如何在RAG服务中启用多模态推理。
前提条件
已部署RAG服务,其中关键配置说明如下,具体操作,请参见大模型RAG对话系统。
版本选择:选择LLM分离式部署。
RAG版本:选择pai-rag:0.3.4。
专有网络:选择支持公网访问的专有网络,以便访问公网图片地址。详情请参见配置公网连接。
配置多模态LLM
通过配置多模态LLM,基于图像内容和文本生成回答。
准备多模态LLM服务。
(推荐)使用部署在EAS上的兼容OpenAI协议的多模态模型服务,例如开源的Qwen2.5-VL系列中的Qwen2.5-VL-72B-Instruct-AWQ和Qwen2.5-VL-72B-Instruct。如何在EAS上部署多模态模型服务,请参见LLM大语言模型部署。
使用DashScope多模态模型,详情请参见首次调用通义千问API。
获取多模态LLM服务的访问地址和Token。
服务类型
获取方法
EAS 多模态模型服务
在模型在线服务(EAS)页面,单击多模态模型服务名称,然后在基本信息区域,单击查看调用信息,获取服务访问地址和Token。
说明使用公网调用地址:RAG服务需绑定具有公网访问能力的专有网络。
使用VPC调用地址:RAG服务与多模态模型服务必须在同一个专有网络内。
DashScope多模态模型
访问地址:
https://dashscope.aliyuncs.com/compatible-mode/v1
服务Token:即API Key。如何获取,请参见首次调用通义千问API。
在RAG服务的WebUI页面,配置多模态LLM服务请求参数。
在模型在线服务(EAS)页面,单击目标RAG服务名称,然后在页面右上方单击查看Web应用。
在系统设置页签的模型及存储配置TAB页,配置以下参数,然后单击保存模型配置。
URL:配置为服务访问地址。
密钥:配置为服务Token。
模型名称:配置为多模态LLM模型名称。
是否支持多模态:选中复选框。
配置阿里云OSS存储
通过添加数据源OSS存储,来存储图片⽂件信息。后续在输出推理结果时,系统可以通过图片链接的方式在回复中展示图片。
在模型在线服务(EAS)页面,单击目标RAG服务名称,然后在页面右上角单击查看Web应用。
在系统设置页签的模型及存储配置TAB页,选中使用图片OSS存储,并配置以下参数。
参数
描述
示例值
OSS存储空间
examplebucket
OSS访问域名
请填写与对象存储OSS地域相匹配的外网Endpoint地址。地域和Endpoint对照表请参见OSS地域和访问域名。
说明因EAS默认不通公网,使用外网Endpoint地址时(例如
oss-cn-hangzhou.aliyuncs.com
),需为RAG服务配置具有公网访问能力的专有网络,详情请参见配置公网连接。oss-<Region ID>.aliyuncs.com
AccessKey ID
阿里云账号的AccessKey ID。
yourAccessKeyID
AccessKey Secret
阿里云账号的AccessKey Secret。
yourAccessKeySecret
参数配置完成后,单击保存OSS配置。
上传多模态文件
以下内容介绍如何在RAG服务的WebUI页面上传多模态文件。您也可以通过API方式完成多模态文件的上传,详情请参见Knowledgebase API(知识库管理接口)。
上传知识库文件
支持多种多模态文件格式,包括PDF、Markdown、Word、PPT、PNG以及JPG等。在上传⽂件时,如果已经配置多模态LLM和阿里云OSS存储,系统会自动处理文件中的图片并生成图片Caption。
在RAG服务WebUI页面的知识库页签,切换到文件管理Tab页。单击My files,然后进入default/docs
目录。拖拽本地文件或单击右上角的,上传知识库文件。
查看上传状态
切换到上传历史Tab页,然后单击刷新按钮,当文件上传状态为done时,表明上传成功。
问答效果展示
WebUI调用
在RAG服务的WebUI页面中,切换至对话页签进行服务推理。
WebUI调用多模态LLM知识库问答
按照下图操作指引,从知识库中获取结果,并调用多模态LLM进行推理。以某汽车说明书为例,展示效果如下:
您也可以在知识库的知识库问答提示词模板配置Tab页,修改知识库问答的Prompt,提示模型如果参考了知识库中的图片,在回答中展示该图片。
例如在任务描述中添加如果答案中提到了材料中的图片内容,您应该在答案中用Markdown格式给出相应的图片链接。
。
修改Prompt后,问题中可以没有展示图片的提示,回答中也会展示图片。
WebUI调用多模态LLM问答
按照下图操作指引,调用多模态LLM进行推理。
API调用
获取RAG服务访问地址和Token。
在模型在线服务(EAS)页面,单击目标RAG服务名称。
在概览页签的基本信息区域,单击查看调用信息,获取服务访问地址和Token。
说明使用公网调用地址:调用客户端需支持访问公网。
使用VPC调用地址:调用客户端必须与RAG服务位于同一个专有网络内。
在终端中,执行以下代码进行推理。
调用多模态LLM问答
curl -X 'POST' <EAS_SERVICE_URL>/v1/chat/completions \ -H "Content-Type: application/json" \ -H 'Authorization: <EAS_TOKEN>' \ -d '{ "model": "qwen-vl-max", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "图⽚⾥是什么?" }, { "type": "image_url", "image_url": { "url": "https://pai-rag.oss-cn-hangzhou.aliyuncs.com/data/demo/shirts/10.jpg" } } ] } ], "stream": true }'
其中关键配置说明如下:
<EAS_SERVICE_URL>:替换为RAG服务访问地址,需将末尾的
/
删除。<EAS_TOKEN>:替换为RAG服务Token。
model:配置为多模态LLM模型名称。
url:配置为图片URL地址。
调用多模态LLM知识库问答
curl -X 'POST' <EAS_SERVICE_URL>/v1/chat/completions \ -H "Content-Type: application/json" \ -H 'Authorization: <EAS_TOKEN>' \ -d '{ "model": "qwen-vl-max", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "图⽚⾥是什么?" }, { "type": "image_url", "image_url": { "url": "https://pai-rag.oss-cn-hangzhou.aliyuncs.com/data/demo/shirts/10.jpg" } } ] } ], "stream": true, "chat_knowledgebase": true, "index_name": "default" }'
其中关键配置说明如下:
<EAS_SERVICE_URL>:替换为RAG服务访问地址,需将末尾的
/
删除。<EAS_TOKEN>:替换为RAG服务Token。
model:配置为多模态LLM模型名称。
url:配置为图片URL地址。
chat_knowledgebase:配置为true,表示查询本地知识库。使用该功能时,需提前上传知识库文件,详情请参见上传多模态文件或Knowledgebase API(知识库管理接口)。
index_name:填写上传文档的知识库名称,如何查看,请参见查询知识库列表。