码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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
    
    • 1
    • 2
    • 3
    • 4

    根据以下图片生成的文案
    在这里插入图片描述
    这段代码展示了如何使用深度学习模型来生成图像的字幕,并结合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 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请创作合适的中文推广文案")  # 使用智能体处理图像并生成字幕
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46

    在这里插入图片描述

    代码

    • 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
  • 相关阅读:
    时序分解 | MATLAB实现北方苍鹰优化算法NGO优化VMD信号分量可视化
    SpringBoot集成Spring Data JPA项目实操
    自动生成电子印章
    C++之AVL树
    【浅学Java】深入理解TCP的10种机制
    【蓝桥杯选拔赛真题15】C++三个数排序 第十二届青少年组蓝桥杯C++选拔赛真题解析
    汇编语言全梳理(精简版)
    vue路径中“@/“代表什么
    Kamiya丨Kamiya艾美捷抗冷休克结构域蛋白E1说明书
    中国石油大学(北京)-《油藏工程》第一阶段在线作业
  • 原文地址:https://blog.csdn.net/zgpeace/article/details/134544306
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号