Spaces:
Running
Running
File size: 2,461 Bytes
27ac102 1e10170 b2920f0 39874b2 1e10170 cc992a1 6d71514 1e10170 c213287 69dc507 c213287 69dc507 d4b3e89 94b332e c213287 1bbdf9c a894004 1bbdf9c 1e10170 2cfc355 c213287 0ba7a96 69dc507 0ba7a96 1e10170 2cfc355 1e10170 f56fb57 036e9e5 1e10170 |
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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
import os
import gradio as gr
import openai
openai.api_key = os.environ['OPENAI_API_KEY']
user_db = {os.environ['username']: os.environ['password']}
messages = [{"role": "system", "content": 'You are a helpful technology assistant.'}]
def audioGPT(audio):
global messages
audio_file = open(audio, "rb")
transcript = openai.Audio.transcribe("whisper-1", audio_file)
messages.append({"role": "user", "content": transcript["text"]})
response = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages=messages)
system_message = response["choices"][0]["message"]
messages.append(system_message)
chats = ""
for msg in messages:
if msg['role'] != 'system':
chats += msg['role'] + ": " + msg['content'] + "\n\n"
return chats
def textGPT(text):
global messages
messages.append({"role": "user", "content": text})
response = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages=messages)
system_message = response["choices"][0]["message"]
messages.append(system_message)
chats = ""
for msg in messages:
if msg['role'] != 'system':
chats += msg['role'] + ": " + msg['content'] + "\n\n"
return chats
def textGPT2(chat_history, text):
global messages
messages.append({"role": "user", "content": text})
#response = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages=messages)
#system_message = response["choices"][0]["message"]
system_message = text.type() + "121234123"
#system_message = text + "121234123"
messages.append(system_message)
return chat_history + [[text, system_message]]
def clear():
global messages
messages = [{"role": "system", "content": 'You are a helpful technology assistant.'}]
return
with gr.Blocks() as test:
chatbot = gr.Chatbot()
msg = gr.Textbox()
clear_btn = gr.Button("Clear")
msg.submit(textGPT2, [chatbot, msg], chatbot)
clear_btn.click(fn=clear, inputs=None, outputs=chatbot, queue=False)
text = gr.Interface(fn=textGPT, inputs="text", outputs="text")
audio = gr.Interface(fn=audioGPT, inputs=gr.Audio(source="microphone", type="filepath"), outputs="text")
demo = gr.TabbedInterface([text, audio, test], [ "chatGPT", "audioGPT", "test"])
if __name__ == "__main__":
demo.launch(enable_queue=False, auth=lambda u, p: user_db.get(u) == p,
auth_message="Welcome to Yichuan GPT!")
#demo.launch()
|