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

构建LangChain应用程序的示例代码:48、如何使用非文本生成工具创建多模态代理

多模态输出:图像和文本

这个示例展示了如何使用非文本生成工具来创建多模态代理。

本例仅限于文本和图像输出,并使用UUID在工具和代理之间传输内容。

本例使用Steamship生成和存储生成的图像。生成的内容默认受到身份验证保护。

您可以在这里获取Steamship API密钥:https://steamship.com/account/api

import refrom IPython.display import Image, display
from steamship import Block, Steamship# 导入所需的库
# re用于正则表达式
# Image和display用于显示图像
# Block和Steamship是Steamship库的组件
from langchain.agents import AgentType, initialize_agent
from langchain.tools import SteamshipImageGenerationTool
from langchain_openai import OpenAI# 导入LangChain相关的库
# AgentType和initialize_agent用于初始化代理
# SteamshipImageGenerationTool是用于图像生成的工具
# OpenAI是LangChain的OpenAI接口
llm = OpenAI(temperature=0)# 初始化OpenAI语言模型,temperature设为0表示输出最可能的结果

DALL-E

tools = [SteamshipImageGenerationTool(model_name="dall-e")]# 创建一个使用DALL-E模型的图像生成工具列表
mrkl = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True
)# 初始化代理,使用之前定义的工具和语言模型
# 代理类型为ZERO_SHOT_REACT_DESCRIPTION,verbose=True表示输出详细信息
output = mrkl.run("How would you visualize a parot playing soccer?")# 运行代理,生成一个鹦鹉踢足球的图像
def show_output(output):"""Display the multi-modal output from the agent."""UUID_PATTERN = re.compile(r"([0-9A-Za-z]{8}-[0-9A-Za-z]{4}-[0-9A-Za-z]{4}-[0-9A-Za-z]{4}-[0-9A-Za-z]{12})")outputs = UUID_PATTERN.split(output)outputs = [re.sub(r"^\W+", "", el) for el in outputs]  # Clean trailing and leading non-word charactersfor output in outputs:maybe_block_id = UUID_PATTERN.search(output)if maybe_block_id:display(Image(Block.get(Steamship(), _id=maybe_block_id.group()).raw()))else:print(output, end="\n\n")# 定义一个函数来显示代理的多模态输出
# 使用正则表达式匹配UUID
# 如果找到UUID,则显示对应的图像
# 否则打印文本输出

Stable Diffusion

tools = [SteamshipImageGenerationTool(model_name="stable-diffusion")]# 创建一个使用Stable Diffusion模型的图像生成工具列表
mrkl = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True
)# 使用Stable Diffusion工具重新初始化代理
output = mrkl.run("How would you visualize a parot playing soccer?")# 再次运行代理,使用Stable Diffusion生成鹦鹉踢足球的图像

总结

本文介绍了如何使用非文本生成工具创建多模态代理。示例限于文本和图像输出,并使用UUID在工具和代理之间传输内容。文章使用Steamship来生成和存储图像,并展示了如何使用DALL-E和Stable Diffusion模型生成图像。

扩展知识

  1. 多模态AI:这种AI系统能够处理和生成多种类型的数据,如文本、图像、音频等。它们在更复杂的任务中表现出色,因为可以综合利用不同类型的信息。

  2. DALL-E:这是OpenAI开发的一个AI模型,能够根据文本描述生成图像。它以其创造性和多样性而闻名。

  3. Stable Diffusion:这是另一个流行的图像生成AI模型,由Stability AI开发。它以其快速的生成速度和高质量的输出而著称。

  4. LangChain:这是一个用于开发以语言模型为中心的应用程序的框架。它提供了许多工具和抽象,使得构建复杂的AI应用变得更加简单。

  5. Steamship:这是一个AI开发平台,提供了多种AI服务,包括图像生成和存储。在本例中,它被用来生成和管理图像。

  6. UUID(通用唯一识别符):这是一种标准化的标识符,用于在分布式系统中唯一标识信息。在此示例中,它被用来标识和检索生成的图像。

http://www.lryc.cn/news/388381.html

相关文章:

  • 【笔记】记录一次全新的Java项目部署过程
  • 达梦数据库系列—14. 表空间的备份和还原
  • 奔驰G350升级原厂自适应悬挂系统有哪些作用
  • 一个启动脚本例子
  • grpc学习golang版( 六、服务器流式传输 )
  • ubuntu语音库ALSA报错具体原因
  • Java高级重点知识点-17-异常
  • DM达梦数据库函数分析(与mysql对应函数区别及用法分析)
  • ROS2用c++开发参数节点通信
  • docker 部署jitsi meet
  • 【Pytest自动化测试详解】
  • 6-14题连接 - 高频 SQL 50 题基础版
  • 深度挖掘数据资产,洞察业务先机:利用先进的数据分析技术,精准把握市场趋势,洞悉客户需求,为业务决策提供有力支持,实现持续增长与创新
  • 亚马逊广告如何设置关键词竞价获取最优广告投入产出比 (ACOS)
  • vision mamba-yolov8:结合Vmamba的yolov8目标检测改进实现
  • 2025秋招NLP算法面试真题(十一)-Transformer的并行化
  • 如何在本地一键配置最强国产大模型
  • 代码随想录算法训练营第九天|151.翻转字符串里的单词、右旋字符串、28. 实现 strStr()、459.重复的子字符串
  • 第6天:文件操作和异常处理
  • 关于freesql 频繁报“【主库】状态不可用,等待后台检查程序恢复方可使用”异常的解决。
  • Spring Boot中如何使用Flyway进行数据库版本控制
  • 心理学|人格心理学——人格心理学单科作业(中科院)
  • 第三方服务提供商的五大风险
  • 海康视频播放,包含h5和web插件
  • 数据库-python SQLite3
  • FFMpeg rtmp 推送本地yuv文件
  • websocket使用,spring boot + vite + vue3
  • 基础位运算
  • 性价比高真无线蓝牙耳机有哪些?性价比真无线蓝牙耳机推荐
  • Big Data Tools插件