Spaces:
Sleeping
Sleeping
File size: 3,045 Bytes
6cc5a1c 14a2888 a7c04b3 a9d1942 14a2888 50a66b5 5782555 5a93e47 50a66b5 4a2eb2b da44e90 5782555 e7e342c 6d6a1d2 e7e342c 14a2888 e7e342c 14a2888 da44e90 b097329 14a2888 6d6a1d2 e7e342c 14a2888 e7e342c 14a2888 da44e90 4a2eb2b 14a2888 da44e90 14a2888 da44e90 14a2888 4a2eb2b 14a2888 e7e342c 4a2eb2b 6d6a1d2 14a2888 |
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 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
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 text_to_speech(text):
myobj = gTTS(text=text, lang='en', slow=False)
myobj.save("test.wav")
return 'test.wav'
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 text_to_speech(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= 'audio',
title="PepsiCo-chatbot",
description="Give your order",
theme="compact").launch()
# gr.Interface(
# fn=transcribe,
# inputs= inputs,
# outputs="text"
# ).launch()
|