Spaces:
Runtime error
Runtime error
import os | |
import time | |
import openai | |
import gradio as gr | |
from gtts import gTTS | |
from io import BytesIO | |
from IPython.display import Audio, display | |
# Set OpenAI API key | |
openai.api_key = os.environ.get("OPENAI_API_KEY") | |
# Set OpenAI GPT-3 model | |
MODEL = "text-davinci-002" | |
# Initialize chat history as an empty list | |
chat_history = [] | |
# Define function to generate speech from text using Google Text-to-Speech (gTTS) | |
def text_to_speech(text): | |
tts = gTTS(text=text) | |
mp3 = BytesIO() | |
tts.write_to_fp(mp3) | |
mp3.seek(0) | |
display(Audio(mp3, autoplay=True)) | |
# Define function to get chatbot response | |
def chat(text): | |
# Append user input to chat history | |
chat_history.append(f"User: {text}") | |
# Use OpenAI's GPT-3.5 model to generate chatbot response | |
response = openai.Completion.create( | |
model=MODEL, | |
prompt = r"Conversation with user:\n" + "\n".join(chat_history) + r"\nChatbot:", | |
temperature=0.5, | |
max_tokens=1024, | |
n=1, | |
stop=None, | |
frequency_penalty=0, | |
presence_penalty=0 | |
).choices[0].text.strip() | |
# Append chatbot response to chat history | |
chat_history.append(f"Chatbot: {response}") | |
# Generate speech from chatbot response | |
text_to_speech(response) | |
return response | |
# Define function to clear chat history | |
def clear_chat(): | |
global chat_history | |
chat_history = [] | |
# Define interface | |
interface = gr.Interface( | |
chat, | |
inputs=["text", | |
gr.Audio(source="microphone", type="numpy"), | |
], | |
outputs=["text", gr.outputs.Voice()], | |
title="Chatbot with OpenAI's GPT-3.5 Model", | |
description="An interactive chatbot using OpenAI's GPT-3.5 model with chat persistence and voice inputs/outputs.", | |
theme="default", | |
layout="vertical", | |
allow_flagging=False, | |
allow_screenshot=False, | |
allow_download=False, | |
show_input=True, | |
show_output=True | |
) | |
# Run interface | |
interface.launch() | |