File size: 1,932 Bytes
f5d0f7b adce109 f5d0f7b bbd1871 f5d0f7b ff89469 91abd8e 5c191fe 0d0655a 254147b adce109 91abd8e f5d0f7b b815d0a c177f92 bb4d971 af3e906 bb4d971 c177f92 b815d0a bb4d971 0665780 1c60fad b815d0a 91abd8e df8811b 009d1f2 f5d0f7b 91abd8e f5d0f7b ff89469 f5d0f7b 693d0d6 bb4d971 |
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 |
import os
import gradio as gr
from langchain.chat_models import ChatOpenAI
from langchain.agents import load_tools, initialize_agent
from langchain.agents import AgentType
from langchain.tools import AIPluginTool
def run(prompt, plugin_json, openai_api_key):
os.environ["OPENAI_API_KEY"] = openai_api_key
tool = AIPluginTool.from_plugin_url(plugin_json)
llm = ChatOpenAI(temperature=0, max_tokens=1000)
tools = load_tools(["requests_all"])
tools += [tool]
agent_chain = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=False, max_tokens_limit=4097)
return agent_chain.run(prompt)
title="""
<div style="text-align:center;">
<h1>LangChain + ChatGPT Plugins playground</h1>
<p>
This is a demo for the <a href="https://python.langchain.com/en/latest/modules/agents/tools/examples/chatgpt_plugins.html" target="_blank">ChatGPT Plugins LangChain</a> usecase<br />
Be aware that it currently only works with plugins that do not require auth.<br />
Find more plugins <a href="https://www.getit.ai/gpt-plugins" target="_blank">here</a>
</p>
</div>
"""
with gr.Blocks(css="style.css") as demo:
with gr.Column(elem_id="col-container"):
gr.HTML(title)
prompt = gr.Textbox(label="Prompt", value="what t shirts are available in klarna?")
plugin = gr.Textbox(label="Plugin json", info="You need the .json plugin manifest file of the plugin you want to use. Be aware that it currently only works with plugins that do not require auth.", value="https://www.klarna.com/.well-known/ai-plugin.json")
openai_api_key = gr.Textbox(label="OpenAI API Key", info="*required", type="password")
run_btn = gr.Button("Run")
response = gr.Textbox(label="Response")
run_btn.click(fn=run,
inputs=[prompt, plugin, openai_api_key],
outputs=[response]
)
demo.queue().launch() |