File size: 1,797 Bytes
f5d0f7b bbd1871 f5d0f7b ff89469 91abd8e 254147b 91abd8e f5d0f7b b815d0a c177f92 bb4d971 c177f92 b815d0a bb4d971 0665780 1c60fad b815d0a 91abd8e df8811b 009d1f2 f5d0f7b 91abd8e f5d0f7b ff89469 f5d0f7b 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 |
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)
tools = load_tools(["requests_all"] )
tools += [tool]
agent_chain = initialize_agent( tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
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.
</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() |