import gradio as gr import openai import os api_key = os.getenv('OPEN_API_KEY') openai.api_key = api_key global_history = [{"role": "assistant", "content": "Hi, I am a chatbot. I can converse in English. I can answer your questions about farming in India. Ask me anything!"}] def user(user_message, history): global global_history history = history + [[user_message, None]] global_history = global_history+[{"role": "user", "content": user_message}] print(history) print(global_history) return "", history def get_chatgpt_response(history): output = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages=history) history.append({"role": "assistant", "content": output.choices[0].message.content}) return output.choices[0].message.content, history def bot(history): global global_history response, global_history = get_chatgpt_response(global_history) history[-1][1] = response return history def clear_history(lang = "English"): global global_history global_history = [{"role": "assistant", "content": "Hi, I am a chatbot. I can converse in {}. I can answer your questions about farming in India. Ask me anything!".format(lang)}] return None with gr.Blocks(title="Ag GPT Demo") as demo: chatbot = gr.Chatbot() msg = gr.Textbox() clear = gr.Button("Clear") msg.submit(user, [msg, chatbot], [msg, chatbot], queue=False).then(bot, chatbot, chatbot) clear.click(clear_history, None, chatbot, queue=False) demo.launch(share=True)