File size: 2,106 Bytes
e61a4ec
 
 
 
482bba4
 
ffcf1f4
 
 
d31eca2
482bba4
ffcf1f4
 
 
 
e61a4ec
482bba4
ffcf1f4
e61a4ec
 
482bba4
e61a4ec
 
 
 
 
 
 
 
 
d400b93
e61a4ec
 
 
 
ffcf1f4
e61a4ec
32f82e6
e61a4ec
 
 
 
 
 
 
 
 
 
 
 
 
f094adb
e61a4ec
 
 
 
f1fd01a
e61a4ec
 
 
 
 
fab5430
d31eca2
cbcd339
fab5430
4bcffae
704b409
4bcffae
e61a4ec
 
 
 
 
 
 
 
 
 
 
 
 
f81f0bf
d09dc8b
f81f0bf
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


import os
import time
import openai
import gradio as gr
from gtts import gTTS
from io import BytesIO
from IPython.display import Audio, display
from transformers import pipeline

# 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
async def chat(input_text, state):
    # 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.inputs.Audio(source="microphone", type="filepath"),
            
           ],
    outputs=["text",
             
            ],
    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() 

save_chat_history()  # save the chat history to a file