Spaces:
Sleeping
Sleeping
gerasdf commited on
Commit ·
0d7424f
1
Parent(s): fc4109c
Revert "paying with audio"
Browse filesThis reverts commit fc4109c31bdc08f552f70d25fade1d80bcf72f52.
- app.py +2 -74
- requirements.txt +1 -1
app.py
CHANGED
|
@@ -3,9 +3,6 @@ from time import sleep
|
|
| 3 |
from json import loads as json_loads
|
| 4 |
import gradio as gr
|
| 5 |
from openai import OpenAI
|
| 6 |
-
# import assemblyai
|
| 7 |
-
# import queue
|
| 8 |
-
|
| 9 |
client = OpenAI()
|
| 10 |
|
| 11 |
assistant_id = os_getenv("OPENAI_ASSISTANT_ID")
|
|
@@ -100,8 +97,6 @@ def new_state():
|
|
| 100 |
return gr.State({
|
| 101 |
"user": None,
|
| 102 |
"thread": None,
|
| 103 |
-
"text_queue": None,
|
| 104 |
-
"transcriber": None,
|
| 105 |
})
|
| 106 |
|
| 107 |
def auth(token, state):
|
|
@@ -122,74 +117,12 @@ AUTH_JS = """function auth_js(token, state) {
|
|
| 122 |
}
|
| 123 |
"""
|
| 124 |
|
| 125 |
-
def audio_on_load(state):
|
| 126 |
-
q = state["text_queue"] = queue.Queue()
|
| 127 |
-
|
| 128 |
-
transcriber = assemblyai.RealtimeTranscriber(
|
| 129 |
-
on_data=q.put,
|
| 130 |
-
on_error=q.put,
|
| 131 |
-
sample_rate=48000,
|
| 132 |
-
)
|
| 133 |
-
transcriber.connect()
|
| 134 |
-
|
| 135 |
-
state["transcriber"] = transcriber
|
| 136 |
-
return state, gr.update(interactive=True)
|
| 137 |
-
|
| 138 |
-
def audio_start(state, chati, audio):
|
| 139 |
-
if audio:
|
| 140 |
-
state["transcriber"].stream(audio[1].tobytes())
|
| 141 |
-
print(audio[0], len(audio[1]))
|
| 142 |
-
|
| 143 |
-
chati += [("", None)]
|
| 144 |
-
return state, chati
|
| 145 |
-
|
| 146 |
-
def audio_msg(msg, chati):
|
| 147 |
-
if msg is None:
|
| 148 |
-
return False
|
| 149 |
-
if isinstance(msg, assemblyai.RealtimeFinalTranscript):
|
| 150 |
-
chati[-1][0] = msg.text
|
| 151 |
-
chati += [("", None)]
|
| 152 |
-
return True
|
| 153 |
-
elif isinstance(msg, assemblyai.RealtimePartialTranscript):
|
| 154 |
-
chati[-1][0] = msg.text
|
| 155 |
-
elif isinstance(msg, assemblyai.RealtimeError):
|
| 156 |
-
print(f"-- {msg}")
|
| 157 |
-
gr.Info(str(msg))
|
| 158 |
-
else:
|
| 159 |
-
print(f"-- {msg}")
|
| 160 |
-
|
| 161 |
-
return False
|
| 162 |
-
|
| 163 |
-
def audio_stop(state, chati, audio):
|
| 164 |
-
for i in range(20):
|
| 165 |
-
try:
|
| 166 |
-
msg = state["text_queue"].get(timeout=1)
|
| 167 |
-
if audio_msg(msg, chati):
|
| 168 |
-
break
|
| 169 |
-
except queue.Empty:
|
| 170 |
-
pass
|
| 171 |
-
|
| 172 |
-
return state, chati
|
| 173 |
-
|
| 174 |
-
def audio_chunk(state, chati, audio):
|
| 175 |
-
state["transcriber"].stream(audio[1].tobytes())
|
| 176 |
-
print(audio[0], len(audio[1]))
|
| 177 |
-
try:
|
| 178 |
-
msg = state["text_queue"].get_nowait()
|
| 179 |
-
audio_msg(msg, chati)
|
| 180 |
-
except queue.Empty:
|
| 181 |
-
pass
|
| 182 |
-
|
| 183 |
-
return state, chati
|
| 184 |
-
|
| 185 |
|
| 186 |
with gr.Blocks(
|
| 187 |
title="Je suis Le Petit Nicolas",
|
| 188 |
fill_height=True,
|
| 189 |
theme=gr.themes.Base()) as demo:
|
| 190 |
state = new_state()
|
| 191 |
-
# mic = gr.Microphone(streaming=True, interactive=False, render=False)
|
| 192 |
-
# demo.load(audio_on_load, inputs=state, outputs=[state, mic])
|
| 193 |
|
| 194 |
gr.HTML("""
|
| 195 |
<h1>Je suis Le Petit Nicolas</h1>
|
|
@@ -205,7 +138,7 @@ with gr.Blocks(
|
|
| 205 |
label = "Tout au long de la réponse",
|
| 206 |
scale=3)
|
| 207 |
|
| 208 |
-
|
| 209 |
chat,
|
| 210 |
additional_inputs=[state, long_or_short],
|
| 211 |
examples=[
|
|
@@ -214,11 +147,6 @@ with gr.Blocks(
|
|
| 214 |
],
|
| 215 |
)
|
| 216 |
|
| 217 |
-
# mic.render()
|
| 218 |
-
# mic.start_recording(audio_start, inputs=[state, chati.chatbot, mic], outputs=[state, chati.chatbot])
|
| 219 |
-
# mic.stop_recording(audio_stop, inputs=[state, chati.chatbot, mic], outputs=[state, chati.chatbot])
|
| 220 |
-
# mic.stream(audio_chunk, inputs=[state, chati.chatbot, mic], outputs=[state, chati.chatbot])
|
| 221 |
-
|
| 222 |
token = gr.Textbox(visible=False)
|
| 223 |
demo.load(auth,
|
| 224 |
[token,state],
|
|
@@ -227,4 +155,4 @@ with gr.Blocks(
|
|
| 227 |
|
| 228 |
demo.launch(
|
| 229 |
height=700,
|
| 230 |
-
|
|
|
|
| 3 |
from json import loads as json_loads
|
| 4 |
import gradio as gr
|
| 5 |
from openai import OpenAI
|
|
|
|
|
|
|
|
|
|
| 6 |
client = OpenAI()
|
| 7 |
|
| 8 |
assistant_id = os_getenv("OPENAI_ASSISTANT_ID")
|
|
|
|
| 97 |
return gr.State({
|
| 98 |
"user": None,
|
| 99 |
"thread": None,
|
|
|
|
|
|
|
| 100 |
})
|
| 101 |
|
| 102 |
def auth(token, state):
|
|
|
|
| 117 |
}
|
| 118 |
"""
|
| 119 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 120 |
|
| 121 |
with gr.Blocks(
|
| 122 |
title="Je suis Le Petit Nicolas",
|
| 123 |
fill_height=True,
|
| 124 |
theme=gr.themes.Base()) as demo:
|
| 125 |
state = new_state()
|
|
|
|
|
|
|
| 126 |
|
| 127 |
gr.HTML("""
|
| 128 |
<h1>Je suis Le Petit Nicolas</h1>
|
|
|
|
| 138 |
label = "Tout au long de la réponse",
|
| 139 |
scale=3)
|
| 140 |
|
| 141 |
+
gr.ChatInterface(
|
| 142 |
chat,
|
| 143 |
additional_inputs=[state, long_or_short],
|
| 144 |
examples=[
|
|
|
|
| 147 |
],
|
| 148 |
)
|
| 149 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 150 |
token = gr.Textbox(visible=False)
|
| 151 |
demo.load(auth,
|
| 152 |
[token,state],
|
|
|
|
| 155 |
|
| 156 |
demo.launch(
|
| 157 |
height=700,
|
| 158 |
+
allowed_paths=["."])
|
requirements.txt
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
gradio
|
| 2 |
openai
|
| 3 |
-
|
|
|
|
| 1 |
gradio
|
| 2 |
openai
|
| 3 |
+
yagmail
|