Agentic_flow / app.py
disLodge's picture
Human in the loop
a16f585
import gradio as gr
from indexer import answer_query
with gr.Blocks() as demo:
gr.Markdown("## Agentic RAG System")
user_input = gr.Textbox(label="User Query")
submit_btn = gr.Button("Submit")
output = gr.Textbox(label="LLM Response")
human_box = gr.Textbox(
label="Human Assistance Required",
visible=False
)
human_submit = gr.Button("Send Human Input", visible=False)
state = gr.State()
def handle_user_query(query):
result = answer_query(query)
if result["status"] == "HUMAN_NEEDED":
return (
gr.update(value="Waiting for human assistance..."),
gr.update(visible=True),
gr.update(visible=True),
result["query"]
)
return (
result["response"],
gr.update(visible=False),
gr.update(visible=False),
None
)
def handle_human_input(human_text):
result = answer_query(None, resume_data=human_text)
return (
result["response"],
gr.update(visible=False),
gr.update(visible=False)
)
submit_btn.click(
handle_user_query,
inputs=user_input,
outputs=[output, human_box, human_submit, state]
)
human_submit.click(
handle_human_input,
inputs=human_box,
outputs=[output, human_box, human_submit]
)
demo.launch()