LangChain —— 多模态大模型的 prompt template
文章目录
- 一、如何直接将多模态数据传输给模型
- 二、如何使用 mutimodal prompts
一、如何直接将多模态数据传输给模型
在这里,我们演示了如何将多模式输入直接传递给模型。对于其他的支持多模态输入的模型提供者,langchain 在类中提供了内在逻辑来转化为期待的格式。
(图片来源网络,侵删)传入图像最常用的方法是将其作为字节字符串传入。这应该适用于大多数模型集成。
import base64 import httpx image_url = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg" image_data = base64.b64encode(httpx.get(image_url).content).decode("utf-8") message = HumanMessage( content=[ {"type": "text", "text": "describe the weather in this image"}, { "type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{image_data}"}, }, ], ) response = model.invoke([message]) print(response.content)我们可以直接在“image_URL”类型的内容块中提供图像URL。但是注意,只有一些模型提供程序支持此功能。
message = HumanMessage( content=[ {"type": "text", "text": "describe the weather in this image"}, {"type": "image_url", "image_url": {"url": image_url}}, ], ) response = model.invoke([message]) print(response.content)我们也可以传多个图片。
message = HumanMessage( content=[ {"type": "text", "text": "are these two images the same?"}, {"type": "image_url", "image_url": {"url": image_url}}, {"type": "image_url", "image_url": {"url": image_url}}, ], ) response = model.invoke([message]) print(response.content)二、如何使用 mutimodal prompts
在这里,我们将描述一下怎么使用 prompt templates 来为模型格式化 multimodal imputs。
import base64 import httpx image_url = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg" image_data = base64.b64encode(httpx.get(image_url).content).decode("utf-8") prompt = ChatPromptTemplate.from_messages( [ ("system", "Describe the image provided"), ( "user", [ { "type": "image_url", "image_url": {"url": "data:image/jpeg;base64,{image_data}"}, } ], ), ] )我们也可以给模型传入多个图片。
prompt = ChatPromptTemplate.from_messages( [ ("system", "compare the two pictures provided"), ( "user", [ { "type": "image_url", "image_url": {"url": "data:image/jpeg;base64,{image_data1}"}, }, { "type": "image_url", "image_url": {"url": "data:image/jpeg;base64,{image_data2}"}, }, ], ), ] ) chain = prompt | model response = chain.invoke({"image_data1": image_data, "image_data2": image_data}) print(response.content)
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
