多模态AIAgent开发实践 邓立国、周驰岷、邓淇等 清华大学出版社【行情 报价 价格 评测】-京东《多模态AI Agent开发实践》1~6章试读-CSDN博客多模态数据加载是数据处理的第一步核心是将不同格式、不同来源的多模态数据本地文件、网络资源统一转换为LangChain可识别的格式为后续分割、特征提取及存储奠定基础。本节将基于LangChain 0.3.x版本详解图片、音频、视频、文本四种核心多模态数据的加载方法结合qwen-vl-plus大模型的多模态理解能力实现标准化加载所有案例均适配指定依赖与.env配置。5.1.1 依赖确认与环境准备本章延续前文指定依赖配置无须额外安装新依赖若未完成安装则执行以下命令与第4章一致pip install langchain0.3.25 langgraph1.0.5 langchain-core1.2.7 langchain-community0.4.1 python-dotenv大模型API调用仍采用.env文件配置确保qwen-vl-plus正常调用基础配置代码本章案例均需提前执行from dotenv import load_dotenv; import os; load_dotenv() #加载.env文件QWen_API_KEYyour_keyfrom langchain_community.llms import QwenVLPlusllm QwenVLPlus(api_keyos.getenv(QWen_API_KEY), modelqwen-vl-plus, temperature0.7)补充依赖说明视频加载需要依赖opencv-python第2章已配置、音频加载依赖whisper第3章已配置无须重复安装。5.1.2 四大类多模态数据加载实操结合langchain-community 0.4.1版本的Document Loader组件针对四种核心多模态数据提供标准化加载方法每个案例均包含代码实现与效果说明可直接运行。5.1.2.1 图片数据加载JPG/PNG/GIF采用LangChain内置的ImageLoader与OpenCVLoader支持本地图片加载可直接适配qwen-vl-plus的图像分析需求代码示例#图片数据加载本地文件from langchain.document_loaders import ImageLoader, OpenCVLoader#方法1ImageLoader基础加载转换为LangChain Document格式img_loader1 ImageLoader(industrial_test.jpg)img_doc1 img_loader1.load()print(ImageLoader加载结果Document格式, img_doc1[0].page_content) #输出图像基础信息#方法2OpenCVLoader结合OpenCV支持初步预处理img_loader2 OpenCVLoader(industrial_test.jpg)img_doc2 img_loader2.load()#补充图像尺寸调整预处理import cv2img cv2.imread(industrial_test.jpg)img_resized cv2.resize(img, (640, 480)) #适配qwen-vl-plus图像分析尺寸cv2.imwrite(industrial_resized.jpg, img_resized)print(OpenCVLoader加载并预处理完成图像尺寸, img_resized.shape)说明加载后的图片数据将转换为LangChain Document格式可直接传入qwen-vl-plus进行图像分析也可结合后续特征提取步骤处理。5.1.2.2 音频数据加载MP3/WAV采用WhisperLoader结合whisper模型实现音频加载与转写将音频数据转换为文本格式适配qwen-vl-plus的文本推理需求代码示例#音频数据加载与转写from langchain.document_loaders import WhisperLoader#加载音频文件支持MP3/WAV格式转写为文本audio_loader WhisperLoader(industrial_voice.mp3, modelbase, languagezh)audio_doc audio_loader.load()#输出转写文本可直接传入qwen-vl-plus进行推理audio_text audio_doc[0].page_contentprint(音频转写文本, audio_text)#补充将转写文本存入临时变量用于后续处理with open(audio_transcript.txt, w, encodingutf-8) as f:f.write(audio_text)说明WhisperLoader可自动完成音频加载与转写支持多语言转写后的文本可直接用于Agent决策、Prompt构建适配多模态交互场景。5.1.2.3 视频数据加载MP4/AVI视频数据加载需结合OpenCV与LangChain自定义加载逻辑将视频拆分为帧图像图片再进行后续处理代码示例#视频数据加载拆分为帧图像import cv2from langchain.document_loaders import ImageLoaderfrom langchain_core.documents import Document#自定义视频加载函数拆分为帧图像def video_loader(video_path, frame_interval10):cap cv2.VideoCapture(video_path)frames []frame_count 0while cap.isOpened():ret, frame cap.read()if not ret:break#每隔frame_interval帧保存一幅图像if frame_count % frame_interval 0:frame_path fvideo_frame_{frame_count}.jpgcv2.imwrite(frame_path, frame)#加载帧图像转换为Document格式img_loader ImageLoader(frame_path)img_doc img_loader.load()[0]frames.append(Document(page_contentimg_doc.page_content, metadata{frame_num: frame_count, frame_path: frame_path}))frame_count 1cap.release()return frames#调用自定义视频加载函数video_docs video_loader(industrial_video.mp4, frame_interval10)print(f视频加载完成共提取{len(video_docs)}帧图像)print(第一帧图像信息, video_docs[0].metadata)说明视频数据通过拆分为帧图像转换为LangChain Document格式可适配qwen-vl-plus的图像分析能力用于视频异常检测、场景识别等多模态任务。5.1.2.4 文本数据加载TXT/PDF/Markdown采用LangChain内置的TextLoader、PyPDFLoader、UnstructuredMarkdownLoader加载不同格式文本数据统一转换为Document格式代码示例#文本数据加载多格式适配from langchain.document_loaders import TextLoader, PyPDFLoader, UnstructuredMarkdownLoader# 1. TXT文件加载txt_loader TextLoader(industrial_report.txt, encodingutf-8)txt_doc txt_loader.load()print(TXT文件加载内容, txt_doc[0].page_content[:100] ...)# 2. PDF文件加载提取文本pdf_loader PyPDFLoader(industrial_manual.pdf)pdf_docs pdf_loader.load() #按页码拆分每一页为一个Documentprint(fPDF文件加载完成共{len(pdf_docs)}页)# 3. Markdown文件加载md_loader UnstructuredMarkdownLoader(industrial_guide.md)md_doc md_loader.load()print(Markdown文件加载内容, md_doc[0].page_content[:100] ...)说明文本数据是多模态智能体的核心指令与辅助信息来源加载后可直接用于Prompt构建、Memory存储适配qwen-vl-plus的文本推理需求。5.1.3 多模态数据加载注意事项1. 格式适配确保加载的多模态文件格式与Loader匹配如ImageLoader仅支持图片格式避免加载失败。2. 路径规范所有本地文件路径需使用绝对路径或相对路径确保代码可访问避免路径错误导致加载失败。3. 性能优化视频、大型PDF等数据加载时可通过设置间隔如视频帧间隔、分页加载如PDF减少资源占用。4. 数据备份加载过程中避免修改原始文件可将预处理后的文件如resize后的图片、转写后的文本保存到指定目录便于后续复用。