anupam_speech / app.py
gradioapp's picture
Update app.py
6d6a1d2
raw
history blame
No virus
2.03 kB
import openai
import gradio as gr
import os
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(input):
if input:
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
##inputs = gr.inputs.Textbox(lines=7, label="Chat with PepsiCo AI assitant")
inputs= gr.Audio(source="microphone", type="filepath")
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()