|
|
import gradio as gr |
|
|
|
|
|
from src.agent.stream import respond |
|
|
|
|
|
def sidebar_ui(state, width=700, visible=True): |
|
|
with gr.Sidebar(width=width, visible=visible): |
|
|
gr.Markdown("# Ask Agent") |
|
|
gr.Markdown( |
|
|
""" |
|
|
Ask questions about production quality, efficiency, or issues. |
|
|
The chatbot will provide insights and assistance based on the current production data. |
|
|
""" |
|
|
) |
|
|
gr.Markdown( |
|
|
""" |
|
|
1. **Play** - Start the production simulation and generate synthetic data. |
|
|
2. **Ask Agent** - Interact with the chatbot to get insights on production process, any issues and more. |
|
|
|
|
|
Note: you can click on `Pause` or `Reset` to control the production simulation. |
|
|
""" |
|
|
) |
|
|
|
|
|
with gr.Blocks(): |
|
|
with gr.Row(height=800): |
|
|
with gr.Tabs(): |
|
|
with gr.TabItem("Agent"): |
|
|
chatbot = gr.ChatInterface( |
|
|
fn=respond, |
|
|
type="messages", |
|
|
multimodal=False, |
|
|
chatbot=gr.Chatbot( |
|
|
placeholder="⚡️ How can I help you today ?", |
|
|
type="messages", |
|
|
height=600, |
|
|
show_copy_button=True, |
|
|
), |
|
|
show_progress='full', |
|
|
stop_btn=True, |
|
|
save_history=True, |
|
|
examples=[ |
|
|
|
|
|
["How is the production health now?"], |
|
|
["What is the most critical issue in the production right now?"], |
|
|
["What are the common downtimes faced in production?"], |
|
|
["Can you explain me Cp & Cpk KPIs ?"], |
|
|
["Which tool have the worst quality rate ?"], |
|
|
["On what metrics should I focus to improve global efficiency?"], |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
], |
|
|
additional_inputs=[state], |
|
|
cache_examples=False |
|
|
) |
|
|
sessions_state = gr.JSON( |
|
|
label="Sessions State", |
|
|
visible=False, |
|
|
value=state.value, |
|
|
) |
|
|
state.change( |
|
|
fn=lambda x: x, |
|
|
inputs=state, |
|
|
outputs=sessions_state, |
|
|
) |