
多模态AIAgent开发实践 邓立国、周驰岷、邓淇等 清华大学出版社【行情 报价 价格 评测】-京东《多模态AI Agent开发实践》1~6章试读-CSDN博客LangChain与通义千问Qwen-VL-Plus的集成方法是通过ChatOpenAI类配合阿里云DashScope兼容接口compatible-mode/v1实现API调用分别使用LangChain的ChatPromptTemplate构建多模态消息、PydanticOutputParser实现结构化输出解析完成端到端的多模态推理任务。本节将以“工业巡检图片异常检测”为实战场景演示完整集成流程。1本地图片预处理通过Base64编码将图片转换为data:image/jpeg;base64,...内联格式避免HTTP多部分传输兼容性问题显著降低请求超时概率。2结构化输出约束基于Pydantic模型定义检测字段异常类型、位置、处理建议结合 OutputParser 自动解析JSON响应确保结果可直接对接业务系统。3兼容模式配置正确设置base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1 与DASHSCOPE_API_KEY复用LangChain原生OpenAI接口规范降低迁移成本。4鲁棒性增强配置request_timeout180适配多模态推理耗时结合temperature0.3控制输出稳定性满足工业场景对确定性的要求。通过上述设计开发者可以快速构建“图片输入→多模态理解→结构化结果输出”的自动化巡检流水线同时为后续扩展如批量处理、异步调用、领域微调预留标准化接口。【示例7.1】本示例通过LangChain集成Qwen-VL-Plus加载工业巡检图片检测设备异常输出结构化分析结果异常类型、异常位置、处理建议。1. 创建.env配置文件#通义千问qwen-vl-plus配置DASHSCOPE_API_KEYsk-xxxxxxxxxxxxxxxxxxxxxxxxDASHSCOPE_BASE_URLhttps://dashscope.aliyuncs.com/compatible-mode/v1QWEN_VL_MODELqwen-vl-plus# GPT-4V备用配置可选OPENAI_API_KEYsk-xxxxxxxxxxxxxxxxOPENAI_BASE_URLhttps://api.openai.com/v12. 代码实现# Practical_Integration_Case_of_LangChain_and_qwen-vl-plus.py# -*- coding: utf-8 -*-# LangChain集成qwen-vl-plus终极版适配固定依赖·本地图片·不超时from dotenv import load_dotenvimport osimport base64from langchain_community.chat_models import ChatOpenAIfrom langchain_core.prompts import ChatPromptTemplatefrom langchain_core.output_parsers import PydanticOutputParserfrom pydantic import BaseModel, Field#加载环境变量load_dotenv()# 本地图片转Base64必须解决超时核心def encode_image(image_path):with open(image_path, rb) as f:return base64.b64encode(f.read()).decode(utf-8)#你的本地图片直接放在同级目录image_path industrial_test.jpgbase64_image encode_image(image_path)image_url fdata:image/jpeg;base64,{base64_image}# 结构化输出低版本兼容class IndustrialResult(BaseModel):scene_description: str Field(description场景描述)abnormal_type: str Field(description异常类型)abnormal_position: str Field(description异常位置)processing_suggestion: str Field(description处理建议)parser PydanticOutputParser(pydantic_objectIndustrialResult)format_instructions parser.get_format_instructions()escaped_format format_instructions.replace({, {{).replace(}, }})# qwen-vl-plus官方兼容配置最稳不超时llm ChatOpenAI(modelqwen-vl-plus,api_keyos.getenv(DASHSCOPE_API_KEY),base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1,temperature0.3,max_tokens1500,request_timeout180, #超长时间)# 多模态Prompt prompt ChatPromptTemplate.from_messages([(user, [{type: image_url, image_url: {url: image_url}},f你是专业工业巡检分析师。严格按以下格式返回{escaped_format}])])# 运行chain prompt | llm | parserif __name__ __main__:print(✅本地图片工业巡检启动...\n)try:result chain.invoke({})print(*60)print(检测结果)print(*60)print(f场景描述{result.scene_description})print(f异常类型{result.abnormal_type})print(f异常位置{result.abnormal_position})print(f处理建议{result.processing_suggestion})except Exception as e:print(f错误{str(e)})运行输出✅本地图片工业巡检启动...检测结果场景描述两名穿着蓝色工作服和安全帽的工人在工业设施内进行巡检周围布满了管道、阀门和电机等设备。异常类型无明显异常异常位置未发现异常位置处理建议继续按照标准巡检流程进行检查确保所有设备运行正常。3. 代码解析本代码实现了基于LangChain框架调用阿里云Qwen-VL-Plus多模态模型完成工业巡检图片的结构化异常检测。以下从6个核心维度进行技术拆解1整体架构设计Chain流水线[本地图片] → [Base64编码] → [多模态Prompt] → [ChatOpenAI(qwen-vl-plus)] → [Pydantic解析] → [结构化结果]。2本地图片处理机制def encode_image(image_path):with open(image_path, rb) as f:return base64.b64encode(f.read()).decode(utf-8)image_url fdata:image/jpeg;base64,{base64_image}技术要点Base64内联传输将图片编码为data:image/jpeg;base64,...格式避免HTTP多部分传输的兼容性问题。本地预编码提前在客户端完成编码减少模型端解码压力降低请求超时概率。格式兼容Qwen-VL-Plus的OpenAI兼容接口原生支持该格式无须额外转换。3结构化输出解析PydanticOutputParserclass IndustrialResult(BaseModel):scene_description: str Field(description场景描述)abnormal_type: str Field(description异常类型)# ...parser PydanticOutputParser(pydantic_objectIndustrialResult)format_instructions parser.get_format_instructions()escaped_format format_instructions.replace({, {{).replace(}, }})技术要点Pydantic模型定义用类型注解与Field描述约束输出字段实现“代码即文档”。OutputParser自动解析将模型返回的JSON字符串自动转换为Python对象避免手动 json.loads。转义处理{{}}转义防止Prompt模板引擎误解析JSON Schema中的{}保障格式指令完整传递。4Qwen-VL-Plus兼容配置DashScope适配llm ChatOpenAI(modelqwen-vl-plus,api_keyos.getenv(DASHSCOPE_API_KEY),base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1, #关键temperature0.3,max_tokens1500,request_timeout180, #多模态需长超时)技术要点base_url指向阿里云OpenAI兼容接口必须使用compatible-mode/v1路径。api_key鉴权凭证从DASHSCOPE_API_KEY环境变量读取。request_timeout180防止图片解析超时多模态推理耗时较长建议≥120s。temperature0.3控制输出随机性工业场景需稳定性建议0.1~0.3。max_tokens1500限制输出长度预留足够空间容纳结构化JSON。5多模态Prompt工程prompt ChatPromptTemplate.from_messages([(user, [{type: image_url, image_url: {url: image_url}}, #图片输入f你是专业工业巡检分析师。严格按以下格式返回{escaped_format} #文本指令])])技术要点多模态消息列表LangChain支持image_url类型消息自动识别并传递给支持多模态的模型。角色设定“专业工业巡检分析师”激活模型领域知识提升检测准确性。格式强约束将JSON Schema指令嵌入Prompt引导模型输出合规结构。指令前置格式要求放在图片之后符合Qwen-VL的“图文交错”理解偏好。6链式执行与错误处理chain prompt | llm | parser #构建执行链try:result chain.invoke({}) #同步调用#输出结果...except Exception as e:print(f❌错误{str(e)})技术要点invoke({})统一入口执行支持后续扩展异步/批处理。异常捕获捕获网络超时、JSON解析失败、API限流等常见错误。集成说明本实战案例实现了通义千问Qwen-VL-Plus与LangChain的高效集成通过 ChatOpenAI兼容接口与PydanticOutputParser结构化解析方案将多模态推理结果工业巡检图片转换为标准化的结构化数据异常类型、位置、处理建议可直接对接智能体决策引擎或业务工单系统。与GPT-4V集成方案相比Qwen-VL-Plus在中文工业术语理解、本地化部署合规性、调用成本方面具备显著优势更适合国内制造业场景而GPT-4V在复杂场景泛化能力与跨语言推理上略有领先适合对全球多语言支持或极端长尾缺陷识别要求极高的场景。