当前位置: 首页 > news >正文

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

pip install --upgrade langchain
pip install transformers
pip install pillow
pip install torch torchvision torchaudio

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

实现代码 pic_talk.py

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 captiondef _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请创作合适的中文推广文案")  # 使用智能体处理图像并生成字幕

在这里插入图片描述

代码

  • https://github.com/zgpeace/pets-name-langchain/tree/feature/picTalk

参考

  • https://github.com/huangjia2019/langchain/blob/main/00_%E5%BC%80%E7%AF%87%E8%AF%8D_%E5%A5%87%E7%82%B9%E6%97%B6%E5%88%BB/02_%E7%9C%8B%E5%9B%BE%E8%AF%B4%E8%AF%9D.py
http://www.lryc.cn/news/238606.html

相关文章:

  • QFontDialog开发详解
  • 【C++进阶之路】第七篇:异常
  • shell 判断文件是否存在(csh bash)
  • 第六年到第十年是分水岭
  • 关于标准库中的string类 - c++
  • Chrome添加扩展程序
  • C++单调向量算法:132模式枚举1简洁版
  • 【ARFoundation学习笔记】2D图像检测跟踪
  • 计算机算法分析与设计(24)---分支限界章节复习
  • 二十三种设计模式-解密状态模式:优雅地管理对象状态
  • git常常用命令
  • C语言中的大端字节序和小端字节序是什么?如何进行字节序的转换?
  • Flutter dio Http请求之Cookie管理
  • 计算机网络的标准化工作及相关组织
  • 智能座舱架构与芯片- (11) 软件篇 上
  • 2021秋招-算法-递归
  • 【Django-02】 Model模型和模型描述对象Meta
  • 【华为OD题库-030】阿里巴巴找黄金宝箱(V)-java
  • centos7卸载mongodb数据重新安装时无法安装的问题
  • ES6 的 class 类和Typescript 的 class 类的区别
  • Android 12.0 默认授予应用权限
  • Google Earth Engine(GEE)——多源遥感变量筛选(PCA主成分分析),变量筛选/降维处理
  • 爬虫的http和https基础
  • 读像火箭科学家一样思考笔记05_思想实验
  • mac gitee新建工程遇到的一些问题
  • 某60区块链安全之Call函数簇滥用实战一学习记录
  • 最新AIGC创作系统ChatGPT系统源码,支持最新GPT-4-Turbo模型,支持DALL-E3文生图,图片对话理解功能
  • openssl+ SM2 + linux 签名开发实例(C++)
  • U4_1:图论之DFS/BFS/TS/Scc
  • STM32框架之按键扫描新思路