File size: 1,533 Bytes
6f1fa04
 
506b771
6f1fa04
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
506b771
 
6f1fa04
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
43
44
45
46
47
48
49
50
51


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)