大型语言模型 (LLMs) 非常令人印象深刻,但如果我们能赋予它们完成专业任务的技能,它们会变得更加强大。
gradio_tools 库可以将任何 Gradio 应用程序转变为代理可以使用的工具来完成其任务。例如,一个LLM可以使用 Gradio 工具来转录它在线找到的语音记录,然后为您总结。或者它可以使用不同的 Gradio 工具对您 Google Drive 上的文档应用 OCR,然后回答关于它的问题。
本指南将展示您如何使用 gradio_tools
授权您的LLM代理访问世界上托管的尖端 Gradio 应用程序。尽管 gradio_tools
与多个代理框架兼容,但我们将在本指南中重点介绍 Langchain 代理。
一些背景
什么是代理?
LangChain 代理是一个大型语言模型(LLM),它接受用户输入并根据使用其多种工具之一报告输出。
什么是 Gradio?
Gradio 是构建机器学习 Web 应用程序并与世界分享的事实标准框架 - 全部只用 python!🐍
gradio_tools - 一个端到端的例子
要开始使用 gradio_tools
,你所需要做的就是导入并初始化你的工具,然后将它们传递给 langchain 代理!
在以下示例中,我们导入 StableDiffusionPromptGeneratorTool
来为稳定扩散创建一个好的提示,导入 StableDiffusionTool
来用我们改进的提示创建一个图像,导入 ImageCaptioningTool
来为生成的图像添加标题,以及导入 TextToVideoTool
来从提示创建视频。
然后我们告诉我们的代理创建一张狗在滑板上的图片,但请提前改进我们的提示。我们还要求它为生成的图像添加标题并为其创建视频。代理可以决定使用哪个工具,而无需我们明确告知。
import os
# 检查环境变量中是否设置了OPENAI_API_KEY,如果没有设置则抛出错误
if not os.getenv("OPENAI_API_KEY"):
raise ValueError("OPENAI_API_KEY must be set")
from langchain.agents import initialize_agent
from langchain.llms import OpenAI
# 导入Gradio Tools中包含的工具
from gradio_tools import (StableDiffusionTool, ImageCaptioningTool, StableDiffusionPromptGeneratorTool,
TextToVideoTool)
from langchain.memory import ConversationBufferMemory
# 初始化OpenAI LLM(大型语言模型)实例,温度参数设置为0
llm = OpenAI(temperature=0)
# 初始化会话缓冲记忆体,用于存储聊天历史
memory = ConversationBufferMemory(memory_key="chat_history")
# 初始化各种Gradio工具,并将它们转换为langchain格式
tools = [StableDiffusionTool().langchain, ImageCaptioningTool().langchain,
StableDiffusionPromptGeneratorTool().langchain, TextToVideoTool().langchain]
# 使用提供的工具、LLM实例和记忆体初始化代理,并设置代理的模式为"conversational-react-description"
# 同时开启详细输出(verbose=True)
agent = initialize_a