Spaces:
Sleeping
Sleeping
import openai | |
import gradio as gr | |
import os | |
from gtts import gTTS | |
from pdfminer.high_level import extract_text | |
openai.api_key = os.getenv("OPENAI_API_KEY") | |
from transformers import pipeline | |
p = pipeline("automatic-speech-recognition",model="openai/whisper-tiny") | |
def transcribe(audio): | |
text = p(audio)["text"] | |
return text | |
def sentiment(text): | |
response = openai.Completion.create( | |
model="text-davinci-003", | |
prompt=f"calssify the text into below sentiment category\n\ntext : {text}\"\n\n['positive','negative','neutral']\n", | |
temperature=1, | |
max_tokens=256, | |
top_p=1, | |
frequency_penalty=0, | |
presence_penalty=0) | |
return response.choices[0].text.strip() | |
messages = [ | |
{"role": "system", | |
"content": "you name is Rebecca and you are a Pepsico call center assistant and your job is to take the order from the customer and also analysis the sentiment of the customer"} | |
] | |
def chatbot(input1,input2): | |
if input1: | |
input =input1 | |
input = transcribe(input) | |
messages.append({"role": "user", "content": input}) | |
if sentiment(input) == 'negative': | |
reply = "Sorry for any inconvinience. We are tranfering your call." | |
else: | |
chat = openai.ChatCompletion.create( | |
model="gpt-3.5-turbo", | |
messages=messages, | |
temperature=0.2, | |
max_tokens=320, | |
top_p=1, | |
frequency_penalty=0, | |
presence_penalty=0) | |
reply = chat.choices[0].message.content | |
messages.append({"role": "assistant", "content": reply}) | |
return reply | |
elif input2: | |
input =input2 | |
messages.append({"role": "user", "content": input}) | |
if sentiment(input) == 'negative': | |
reply = "Sorry for any inconvinience. We are tranfering your call." | |
else: | |
chat = openai.ChatCompletion.create( | |
model="gpt-3.5-turbo", | |
messages=messages, | |
temperature=0.2, | |
max_tokens=320, | |
top_p=1, | |
frequency_penalty=0, | |
presence_penalty=0) | |
reply = chat.choices[0].message.content | |
messages.append({"role": "assistant", "content": reply}) | |
return reply | |
##inputs = gr.inputs.Textbox(lines=7, label="Chat with PepsiCo AI assitant") | |
#inputs= gr.Audio(source="microphone", type="filepath") | |
inputs= [ gr.Audio(source="microphone", type="filepath"), | |
gr.inputs.Textbox(lines=7)] | |
outputs = gr.outputs.Textbox(label="Reply") | |
gr.Interface(fn= chatbot, | |
inputs= inputs, | |
outputs= outputs, | |
title="PepsiCo-chatbot", | |
description="Give your order", | |
theme="compact").launch() | |
# gr.Interface( | |
# fn=transcribe, | |
# inputs= inputs, | |
# outputs="text" | |
# ).launch() | |