Commit
•
2bf90a8
1
Parent(s):
f5f1842
Just a quick MVP to get things going.
Browse filesOn branch main
Your branch is up to date with 'origin/main'.
Changes to be committed:
modified: .gitignore
modified: app.py
new file: last_audio.mp3
modified: supplier.py
- .gitignore +2 -1
- app.py +4 -14
- last_audio.mp3 +0 -0
- supplier.py +21 -5
.gitignore
CHANGED
@@ -5,4 +5,5 @@ __pycache__
|
|
5 |
|
6 |
# files local to the server os
|
7 |
server.py
|
8 |
-
*.pem
|
|
|
|
5 |
|
6 |
# files local to the server os
|
7 |
server.py
|
8 |
+
*.pem
|
9 |
+
*.ipynb
|
app.py
CHANGED
@@ -1,11 +1,7 @@
|
|
1 |
import gradio as gr
|
2 |
from supplier import *
|
3 |
|
4 |
-
|
5 |
-
"This is a friendly chatbot with humour.", # casual setting
|
6 |
-
"This is a friendly chatbot which respond to user in Chinese.", # romantic setting
|
7 |
-
"We are at the mideval castle, I am talking to my chatbot donkey.", # fantasy setting
|
8 |
-
]
|
9 |
|
10 |
# create a system setting for llm
|
11 |
with gr.Blocks() as settings:
|
@@ -22,13 +18,8 @@ with gr.Blocks() as settings:
|
|
22 |
clear = gr.Button("Clear")
|
23 |
submit = gr.Button("Submit")
|
24 |
|
25 |
-
gr.Examples(background_examples,background_edit,label="Examples")
|
26 |
clear.click(lambda:None,None,background_edit,queue=False)
|
27 |
submit.click(update_sys,background_edit,background,queue=False)
|
28 |
-
# with gr.Row():
|
29 |
-
# voices_list = gr.Dropdown([v["Name"] for v in get_voices()],label="Voices")
|
30 |
-
|
31 |
-
# voices_list.change(lambda voice:App_state.update({"voice":voice}),voices_list,queue=False)
|
32 |
|
33 |
with gr.Blocks() as chat_window:
|
34 |
with gr.Row():
|
@@ -37,16 +28,15 @@ with gr.Blocks() as chat_window:
|
|
37 |
chatbot_speech = gr.Audio()
|
38 |
with gr.Column():
|
39 |
chat_clear = gr.Button("Clear")
|
40 |
-
|
41 |
chat_clear.click(lambda:None,None,chatbot,queue=False)
|
42 |
-
|
43 |
|
44 |
with gr.Column():
|
45 |
msg = gr.Textbox()
|
46 |
submit = gr.Button("Submit")
|
47 |
-
gr.Examples(
|
48 |
audio = gr.Audio(sources="microphone",type="filepath")
|
49 |
-
# gr.Interface(translate,inputs=gr.Audio(source="microphone",type="filepath"),outputs = "text")
|
50 |
|
51 |
audio.change(translate,audio,msg,queue=False)
|
52 |
msg.submit(send_chat,[msg,chatbot],[msg,chatbot])
|
|
|
1 |
import gradio as gr
|
2 |
from supplier import *
|
3 |
|
4 |
+
BASE_SAMPLES = ["What can you help me with?","What materials do we have?","What projects do we have today?"]
|
|
|
|
|
|
|
|
|
5 |
|
6 |
# create a system setting for llm
|
7 |
with gr.Blocks() as settings:
|
|
|
18 |
clear = gr.Button("Clear")
|
19 |
submit = gr.Button("Submit")
|
20 |
|
|
|
21 |
clear.click(lambda:None,None,background_edit,queue=False)
|
22 |
submit.click(update_sys,background_edit,background,queue=False)
|
|
|
|
|
|
|
|
|
23 |
|
24 |
with gr.Blocks() as chat_window:
|
25 |
with gr.Row():
|
|
|
28 |
chatbot_speech = gr.Audio()
|
29 |
with gr.Column():
|
30 |
chat_clear = gr.Button("Clear")
|
31 |
+
play_speech = gr.Button("Play")
|
32 |
chat_clear.click(lambda:None,None,chatbot,queue=False)
|
33 |
+
play_speech.click(text_to_audio,chatbot,chatbot_speech,queue=False)
|
34 |
|
35 |
with gr.Column():
|
36 |
msg = gr.Textbox()
|
37 |
submit = gr.Button("Submit")
|
38 |
+
gr.Examples(BASE_SAMPLES,msg,label="Examples")
|
39 |
audio = gr.Audio(sources="microphone",type="filepath")
|
|
|
40 |
|
41 |
audio.change(translate,audio,msg,queue=False)
|
42 |
msg.submit(send_chat,[msg,chatbot],[msg,chatbot])
|
last_audio.mp3
ADDED
Binary file (382 kB). View file
|
|
supplier.py
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
-
import
|
|
|
2 |
# import boto3
|
3 |
import os
|
4 |
|
@@ -6,7 +7,7 @@ import pydub
|
|
6 |
import numpy as np
|
7 |
|
8 |
# setup the api keys
|
9 |
-
|
10 |
# aws_access_key_id = os.environ.get("AWS_ACCESS_KEY_ID")
|
11 |
# aws_secret_access_key = os.environ.get("AWS_SECRET_ACCESS_KEY")
|
12 |
|
@@ -81,7 +82,7 @@ def send_chat(text,messages=[]):
|
|
81 |
}
|
82 |
])
|
83 |
|
84 |
-
res =
|
85 |
model="gpt-4-turbo",
|
86 |
messages=openai_messages
|
87 |
)
|
@@ -96,9 +97,24 @@ def send_chat(text,messages=[]):
|
|
96 |
def translate(file_path):
|
97 |
if file_path:
|
98 |
f = open(file_path,"rb")
|
99 |
-
res =
|
100 |
file=f,
|
101 |
model="whisper-1")
|
102 |
return res.text
|
103 |
else:
|
104 |
-
return ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from tkinter.filedialog import Open
|
2 |
+
from openai import OpenAI
|
3 |
# import boto3
|
4 |
import os
|
5 |
|
|
|
7 |
import numpy as np
|
8 |
|
9 |
# setup the api keys
|
10 |
+
OPENAI_CLIENT = OpenAI()
|
11 |
# aws_access_key_id = os.environ.get("AWS_ACCESS_KEY_ID")
|
12 |
# aws_secret_access_key = os.environ.get("AWS_SECRET_ACCESS_KEY")
|
13 |
|
|
|
82 |
}
|
83 |
])
|
84 |
|
85 |
+
res = OPENAI_CLIENT.chat.completions.create(
|
86 |
model="gpt-4-turbo",
|
87 |
messages=openai_messages
|
88 |
)
|
|
|
97 |
def translate(file_path):
|
98 |
if file_path:
|
99 |
f = open(file_path,"rb")
|
100 |
+
res = OPENAI_CLIENT.audio.translations.create(
|
101 |
file=f,
|
102 |
model="whisper-1")
|
103 |
return res.text
|
104 |
else:
|
105 |
+
return ""
|
106 |
+
|
107 |
+
def text_to_audio(chat_messages):
|
108 |
+
text = chat_messages[0][-1]
|
109 |
+
print("content:",text)
|
110 |
+
print("type:",type(text))
|
111 |
+
response = OPENAI_CLIENT.audio.speech.create(
|
112 |
+
model="tts-1",
|
113 |
+
voice="nova",
|
114 |
+
input=text,
|
115 |
+
|
116 |
+
)
|
117 |
+
|
118 |
+
response.stream_to_file("last_audio.mp3")
|
119 |
+
print(response)
|
120 |
+
# return response.
|