| 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() | |
| submit = gr.Button("Submit") | |
| clear = gr.Button("Clear") | |
| submit.click(user, [msg, chatbot], [msg, chatbot]).then(bot, chatbot, chatbot) | |
| clear.click(clear_history, None, chatbot, queue=False) | |
| demo.launch(share=False) |