多模态AIAgent开发实践 邓立国、周驰岷、邓淇等 清华大学出版社【行情 报价 价格 评测】-京东

《多模态AI Agent开发实践》1~6章试读-CSDN博客

langchain-community 0.4.X版本提供了多模态模型的统一API调用接口,可对qwen-vl-plus、GPT-4V等模型的API调用进行封装,简化调用流程,同时适配.env文件API密钥管理,确保调用的规范性与可复用性。本节将重点讲解qwen-vl-plus的API调用封装,兼顾GPT-4V的封装方法,统一适配指定依赖。

7.1.1  qwen-vl-plus API封装

基于LangChain的LLM类与qwen-vl-plus封装,实现多模态输入的统一调用,封装后可直接集成到LangChain的Chain、Agent等组件中,代码示例:

# qwen-vl-plus API调用封装

from dotenv import load_dotenv; import os; load_dotenv()

from langchain_community.llms import QwenVLPlus

from langchain_core.prompts import ChatPromptTemplate

from langchain_core.output_parsers import StrOutputParser

# 1. 封装qwen-vl-plus多模态调用函数

def qwen_vl_plus_invoke(image_path, prompt_text):

    # 初始化模型

    llm = QwenVLPlus(

        api_key=os.getenv("QWen_API_KEY"),

        model="qwen-vl-plus",

        temperature=0.7,

        max_tokens=1000

    )

    # 加载图片

    from langchain.document_loaders import ImageLoader

    img_loader = ImageLoader(image_path)

    img_doc = img_loader.load()[0]

    # 构建多模态Prompt

    prompt = ChatPromptTemplate.from_template("""

    你是一个工业巡检多模态分析助手,基于提供的图片和指令完成分析:

    图片信息:{image_info}

    分析指令:{prompt_text}

    要求:分析结果清晰、准确,重点突出异常情况(若有),语言简洁专业。

    """)

    # 构建调用链

    chain = prompt | llm | StrOutputParser()

    # 执行调用

    result = chain.invoke({"image_info": img_doc.page_content, "prompt_text": prompt_text})

    return result

# 2. 测试封装函数

if __name__ == "__main__":

    image_path = "industrial_test.jpg"

    prompt_text = "分析图片中的管道是否存在泄漏,若存在,说明泄漏位置;若不存在,确认管道状态。"

    analysis_result = qwen_vl_plus_invoke(image_path, prompt_text)

    print("封装函数调用结果:")

    print(analysis_result)

7.1.2  GPT-4V API封装

GPT-4V的封装逻辑与qwen-vl-plus类似,需要安装openai依赖(命令为pip install openai),并通过LangChain的ChatOpenAI类封装,代码示例(适配指定依赖):

# GPT-4V API调用封装

from dotenv import load_dotenv; import os; load_dotenv()

from langchain_openai import ChatOpenAI

from langchain_core.prompts import ChatPromptTemplate

from langchain_core.output_parsers import StrOutputParser

def gpt4v_invoke(image_path, prompt_text):

    # 初始化GPT-4V模型(.env文件配置OPENAI_API_KEY=your_key

    llm = ChatOpenAI(

        model="gpt-4-vision-preview",

        api_key=os.getenv("OPENAI_API_KEY"),

        temperature=0.7,

        max_tokens=1000

    )

    # 构建多模态Prompt(图片路径需为网络可访问路径或Base64编码)

    prompt = ChatPromptTemplate.from_messages([

        ("user", [{"type": "image_url", "image_url": {"url": image_path}}, prompt_text])

    ])

    chain = prompt | llm | StrOutputParser()

    result = chain.invoke({})

    return result

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐