主页 > 人工智能  > 

15.LangChain实战项目2——易速鲜花海报文案生成

15.LangChain实战项目2——易速鲜花海报文案生成

你已经制作好了一批鲜花的推广海报,想为每一个海报的内容,写一两句话,然后 post 到社交平台上,以期图文并茂。

下载 Salesforce/blip-image-captioning-large 图生文模型

通过以下几个命令下载该模型

pip install -U huggingface_hub export HF_ENDPOINT= hf-mirror huggingface-cli download Salesforce/blip-image-captioning-large

安装依赖包

Transformers 库——开源大模型工具Pillow——Python 图像处理工具包PyTorch——深度学习框架 pip install transformers pip install pillow pip install torch torchvision torchaudio

 初始化

import os from dotenv import load_dotenv from langchain_openai import ChatOpenAI load_dotenv() ai_model = os.getenv("OPENAI_MODEL") # ---- Part 0 导入所需要的类 import requests from PIL import Image from transformers import BlipProcessor, BlipForConditionalGeneration from langchain import PromptTemplate from langchain.tools import BaseTool from langchain.agents import initialize_agent, AgentType 加载图生文模型 # ---- Part I 初始化图像字幕生成模型 # 指定要使用的工具模型(HuggingFace中的image-caption模型) hf_model = "Salesforce/blip-image-captioning-large" processor = BlipProcessor.from_pretrained(hf_model) model = BlipForConditionalGeneration.from_pretrained(hf_model) 定义图像字幕生成工具类 # ---- Part II 定义图像字幕生成工具类 class ImageCapTool(BaseTool): name:str = "Image captioner" description:str = "为图片创作说明文案." def _run(self, url: str): # 下载图像并将其转换为PIL对象 image = Image.open(requests.get(url, stream=True).raw).convert('RGB') # 预处理图像 inputs = processor(image, return_tensors="pt") # 生成字幕 out = model.generate(**inputs, max_new_tokens=20) # 获取字幕 caption = processor.decode(out[0], skip_special_tokens=True) print(caption) return caption def _arun(self, query: str): raise NotImplementedError("This tool does not support async") 创建LangChain的agent llm = ChatOpenAI(model=ai_model, temperature=0.2) # 使用工具初始化智能代理并运行它 tools = [ImageCapTool()] agent = initialize_agent( agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, tools=tools, llm=llm, verbose=True, )

通过agent生成图片对应的宣传文案

img_url = ' mir-s3-cdn-cf.behance.net/project_modules/hd/eec79e20058499.563190744f903.jpg' question = f"{img_url}\n请创作合适的中文推广文案" prompt = PromptTemplate.from_template(question) result = agent.run(prompt) print(result)

 运行效果如下:

标签:

15.LangChain实战项目2——易速鲜花海报文案生成由讯客互联人工智能栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“15.LangChain实战项目2——易速鲜花海报文案生成