Spaces:
Runtime error
Runtime error
from pyChatGPT import ChatGPT | |
import gradio as gr | |
import os, json | |
from loguru import logger | |
import random | |
from transformers import pipeline | |
import torch | |
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") | |
whisper = gr.Interface.load(name="spaces/sanchit-gandhi/whisper-large-v2") | |
openai_chatgpt = gr.Interface.load(name="spaces/anzorq/chatgpt-demo") | |
#input_message.submit([input_message, history], [input_message, chatbot, history]) | |
def translate_or_transcribe(audio, task): | |
text_result = whisper(audio, None, task, fn_index=0) | |
return text_result | |
def get_response_from_chatbot(text, chat_history): | |
r = openai_chatgpt(message, chat_history) | |
response = "Sorry, the chatGPT queue is full. Please try again in some time" | |
return response | |
def chat(message, chat_history): | |
out_chat = [] | |
if chat_history != '': | |
out_chat = json.loads(chat_history) | |
response = get_response_from_chatbot(message, chat_history) | |
out_chat.append((message, response)) | |
chat_history = json.dumps(out_chat) | |
logger.info(f"out_chat_: {len(out_chat)}") | |
return out_chat, chat_history | |
with gr.Blocks(title='Talk to chatGPT') as demo: | |
gr.Markdown("## Talk to chatGPT with your voice in your native language ! ##") | |
with gr.Group(elem_id="page_2") as page_2: | |
with gr.Row(elem_id="chat_row"): | |
chatbot = gr.Chatbot(elem_id="chat_bot", visible=False).style(color_map=("green", "blue")) | |
chatbot1 = gr.Chatbot(elem_id="chat_bot1").style(color_map=("green", "blue")) | |
with gr.Row(): | |
prompt_input_audio = gr.Audio( | |
source="microphone", | |
type="filepath", | |
label="Record Audio Input", | |
) | |
translate_btn = gr.Button("Check Whisper first ? 👍") | |
whisper_task = gr.Radio(["translate", "transcribe"], value="transcribe", show_label=False) | |
with gr.Row(elem_id="prompt_row"): | |
prompt_input = gr.Textbox(lines=2, label="Input text",show_label=True) | |
chat_history = gr.Textbox(lines=4, label="prompt", visible=False) | |
submit_btn = gr.Button(value = "Send to chatGPT",elem_id="submit-btn").style( | |
margin=True, | |
rounded=(True, True, True, True), | |
width=100 | |
) | |
translate_btn.click(fn=translate_or_transcribe, | |
inputs=[prompt_input_audio,whisper_task], | |
outputs=prompt_input | |
) | |
submit_btn.click(fn=chat, | |
inputs=[prompt_input, chat_history], | |
outputs=[chatbot, chat_history], | |
) | |
gr.HTML(''' | |
<p>Note: Please be aware that audio records from iOS devices will not be decoded as expected by Gradio. For the best experience, record your voice from a computer instead of your smartphone ;)</p> | |
<div class="footer"> | |
<p>Whisper Model by <a href="https://github.com/openai/whisper" style="text-decoration: underline;" target="_blank">OpenAI</a> - | |
<a href="https://chat.openai.com/chat" target="_blank">chatGPT</a> by <a href="https://openai.com/" style="text-decoration: underline;" target="_blank">OpenAI</a> | |
</p> | |
</div> | |
''') | |
gr.Markdown("") | |
demo.launch(debug = True) |