from langchain.tools import AIPluginTool from langchain.utilities import WikipediaAPIWrapper from langchain.schema import ( AIMessage, HumanMessage, SystemMessage ) from langchain.tools import MoveFileTool, format_tool_to_openai_function from langchain.tools import BaseTool, StructuredTool, Tool, tool from langchain.chat_models import ChatOpenAI from langchain.agents import AgentType, initialize_agent, load_tools from langchain import LLMMathChain, SerpAPIWrapper import gradio as gr import os import openai import gradio as gr from gradio import ChatInterface import time # Get the value of the openai_api_key from environment variable openai.api_key = os.getenv("OPENAI_API_KEY") # Import things that are needed generically from langchain def predict(inputs, chatbot): #print(inputs,chatbot,system_message) messages = [] #messages.append({"role": "system", "content": system_message}) messages.append({"role": "system", "content": "You are a discord bot called 'QuteAI', make your response like human chatting, humans do not response using lists while explaining things and don't say long sentences. Use markdown in response."}) for conv in chatbot: user = conv[0] messages.append({"role": "user", "content": user}) assistant = conv[1] messages.append({"role": "assistant", "content": assistant}) messages.append({"role": "user", "content": inputs}) print(messages) # a ChatCompletion request client = openai.OpenAI(base_url="https://api.chatanywhere.tech/v1") completion = client.chat.completions.create( model="gpt-3.5-turbo", # this field is currently unused messages=messages, temperature=0.7, stream=True, ) new_message = {"role": "assistant", "content": ""} for chunk in completion: if chunk.choices[0].delta.content: print(chunk.choices[0].delta.content, end="", flush=True) new_message["content"] += chunk.choices[0].delta.content yield new_message["content"] messages.append(new_message) print(messages) interface = gr.ChatInterface(predict) with gr.Blocks() as demo: gr.Markdown(""" # GPT 3.5 Discord Bot powered by gradio! To use this space as a discord bot, first install the gradio_client ```bash pip install gradio_client ``` Then run the following command ```python client = grc.Client.duplicate("gradio-discord-bots/gpt-35-turbo", private=False, secrets={"OPENAI_API_KEY": ""}, sleep_timeout=2880) client.deploy_discord(api_names=["chat"]) """) with gr.Row(visible=False): interface.render() demo.queue().launch()