File size: 4,614 Bytes
6b9d2e8 e5f444f 6b9d2e8 e5f444f 6b9d2e8 e5f444f 6b9d2e8 e5f444f 6b9d2e8 e5f444f 6b9d2e8 e5f444f 6b9d2e8 e5f444f 6b9d2e8 e5f444f 6b9d2e8 e5f444f 6b9d2e8 cb47347 6b9d2e8 e5f444f cb47347 e5f444f 6b9d2e8 e5f444f 6b9d2e8 e5f444f 6b9d2e8 e5f444f 6b9d2e8 e5f444f 6b9d2e8 |
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 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
import gradio as gr
import requests
import skills
from skills.common import config, vehicle
from skills.routing import calculate_route
# Generate options for hours (00-23)
hour_options = [f"{i:02d}:00" for i in range(24)]
def set_time(time_picker):
vehicle.time = time_picker
return vehicle.model_dump_json()
def get_vehicle_status(state):
return state.value["vehicle"].model_dump_json()
# to be able to use the microphone on chrome, you will have to go to chrome://flags/#unsafely-treat-insecure-origin-as-secure and enter http://10.186.115.21:7860/
# in "Insecure origins treated as secure", enable it and relaunch chrome
# example question:
# what's the weather like outside?
# What's the closest restaurant from here?
model_answer = ""
general_context = ""
# Define the initial state with some initial context.
print(general_context)
initial_state = {"context": general_context}
initial_context = initial_state["context"]
# Create the Gradio interface.
with gr.Blocks(theme=gr.themes.Default()) as demo:
state = gr.State(
value={"context": initial_context, "query": "", "vehicle": vehicle, "route_points": []}
)
with gr.Row():
with gr.Column(scale=1, min_width=300):
time_picker = gr.Dropdown(
choices=hour_options, label="What time is it? (HH:MM)", value="08:00", interactive=True
)
history = gr.Radio(
["Yes", "No"], label="Maintain the conversation history?", value="No", interactive=True
)
voice_character = gr.Radio(
choices=[
"Morgan Freeman",
"Eddie Murphy",
"David Attenborough",
"Rick Sanches",
],
label="Choose a voice",
value="Morgan Freeman",
show_label=True,
interactive=True,
)
emotion = gr.Radio(
choices=["Cheerful", "Grumpy"],
label="Choose an emotion",
value="Cheerful",
show_label=True,
)
origin = gr.Textbox(
value="Luxembourg Gare, Luxembourg", label="Origin", interactive=True
)
destination = gr.Textbox(
value="Kirchberg Campus, Luxembourg",
label="Destination",
interactive=True,
)
with gr.Column(scale=2, min_width=600):
map_plot = gr.Plot()
# map_if = gr.Interface(fn=plot_map, inputs=year_input, outputs=map_plot)
with gr.Row():
with gr.Column():
recorder = gr.Audio(
type="filepath", label="Input audio", elem_id="recorder"
)
input_text = gr.Textbox(
value="How is the weather?", label="Input text", interactive=True
)
vehicle_status = gr.Textbox(
value=get_vehicle_status(state), label="Vehicle status", interactive=False
)
with gr.Column():
output_audio = gr.Audio(label="output audio")
output_text = gr.TextArea(
value="", label="Output text", interactive=False
)
# iface = gr.Interface(
# fn=transcript,
# inputs=[
# gr.Textbox(value=initial_context, visible=False),
# gr.Audio(type="filepath", label="input audio", elem_id="recorder"),
# voice_character,
# emotion,
# place,
# time_picker,
# history,
# gr.State(), # This will keep track of the context state across interactions.
# ],
# outputs=[gr.Audio(label="output audio"), gr.Textbox(visible=False), gr.State()],
# head=shortcut_js,
# )
# Update plot based on the origin and destination
# Sets the current location and destination
origin.submit(fn=calculate_route, inputs=[origin, destination], outputs=[map_plot, vehicle_status])
destination.submit(fn=calculate_route, inputs=[origin, destination], outputs=[map_plot, vehicle_status])
# Update time based on the time picker
time_picker.select(fn=set_time, inputs=[time_picker], outputs=[vehicle_status])
# close all interfaces open to make the port available
gr.close_all()
# Launch the interface.
if __name__ == "__main__":
demo.launch(
debug=True, server_name="0.0.0.0", server_port=7860, ssl_verify=False
)
# iface.launch(debug=True, share=False, server_name="0.0.0.0", server_port=7860, ssl_verify=False)
|