LangChain 6根据图片生成推广文案HuggingFace中的image-caption模型

根据图片生成推广文案, 用的HuggingFace中的image-caption模型

  1. LangChain 实现给动物取名字
  2. LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字
  3. LangChain 3使用Agent访问Wikipedia和llm-math计算狗的平均年龄
  4. LangChain 4用向量数据库Faiss存储,读取YouTube的视频文本搜索Indexes for information retrieve
  5. LangChain 5易速鲜花内部问答系统

生成效果

先安装相关的lib

shell 复制代码
pip install --upgrade langchain
pip install transformers
pip install pillow
pip install torch torchvision torchaudio

根据以下图片生成的文案

这段代码展示了如何使用深度学习模型来生成图像的字幕,并结合LangChain智能体框架进行自动化处理.(代码为黄佳老师的课程Demo,如需要知道代码细节请读原文):

实现代码 pic_talk.py

python 复制代码
import os  # 导入os库,用于操作系统级别的接口,比如环境变量
import requests  # 导入requests库,用于执行HTTP请求
from PIL import Image  # 导入PIL库的Image模块,用于图像处理
from transformers import BlipProcessor, BlipForConditionalGeneration  # 导入transformers库中的Blip模块,用于图像字幕生成
from langchain.tools import BaseTool  # 导入langchain的BaseTool类,用于创建新的工具
from langchain import OpenAI  # 导入langchain中的OpenAI模块,用于与OpenAI API交互
from langchain.agents import initialize_agent, AgentType  # 导入langchain的agent初始化和类型定义
from dotenv import load_dotenv  # 导入dotenv库,用于加载环境变量

load_dotenv()  # 加载.env文件中的环境变量

# 初始化图像字幕生成模型
hf_model = "Salesforce/blip-image-captioning-large"  # 指定使用HuggingFace中的模型

processor = BlipProcessor.from_pretrained(hf_model)  # 初始化处理器,用于图像的预处理
model = BlipForConditionalGeneration.from_pretrained(hf_model)  # 初始化模型,用于生成字幕

# 定义图像字幕生成工具类
class ImageCapTool(BaseTool):
    name = "Image captioner"
    description = "为图片创作说明文案."

    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)  # 解码字幕
        return caption
    
    def _arun(self, query: str):
        raise NotImplementedError("This tool does not support async")  # 异步函数未实现

# 初始化并运行LangChain智能体
llm = OpenAI(temperature=0.2)  # 使用OpenAI模型

tools = [ImageCapTool()]  # 创建工具实例
agent = initialize_agent(
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    tools=tools,
    llm=llm,
    verbose=True,
)
img_url = 'https://mir-s3-cdn-cf.behance.net/project_modules/hd/eec79e20058499.563190744f903.jpg'  # 定义图像URL
agent.run(input=f"{img_url}\n请创作合适的中文推广文案")  # 使用智能体处理图像并生成字幕

代码

参考

相关推荐
SpikeKing12 分钟前
LLM - 使用 LLaMA-Factory 微调大模型 环境配置与训练推理 教程 (1)
人工智能·llm·大语言模型·llama·环境配置·llamafactory·训练框架
黄焖鸡能干四碗41 分钟前
信息化运维方案,实施方案,开发方案,信息中心安全运维资料(软件资料word)
大数据·人工智能·软件需求·设计规范·规格说明书
41 分钟前
开源竞争-数据驱动成长-11/05-大专生的思考
人工智能·笔记·学习·算法·机器学习
ctrey_1 小时前
2024-11-4 学习人工智能的Day21 openCV(3)
人工智能·opencv·学习
攻城狮_Dream1 小时前
“探索未来医疗:生成式人工智能在医疗领域的革命性应用“
人工智能·设计·医疗·毕业
学习前端的小z1 小时前
【AIGC】如何通过ChatGPT轻松制作个性化GPTs应用
人工智能·chatgpt·aigc
埃菲尔铁塔_CV算法2 小时前
人工智能图像算法:开启视觉新时代的钥匙
人工智能·算法
EasyCVR2 小时前
EHOME视频平台EasyCVR视频融合平台使用OBS进行RTMP推流,WebRTC播放出现抖动、卡顿如何解决?
人工智能·算法·ffmpeg·音视频·webrtc·监控视频接入
打羽毛球吗️2 小时前
机器学习中的两种主要思路:数据驱动与模型驱动
人工智能·机器学习
好喜欢吃红柚子2 小时前
万字长文解读空间、通道注意力机制机制和超详细代码逐行分析(SE,CBAM,SGE,CA,ECA,TA)
人工智能·pytorch·python·计算机视觉·cnn