File size: 976 Bytes
b27c48d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
from agent import graph

THREAD_CONFIG = {"configurable": {"thread_id": "default-thread"}}


def chat(user_message: str, history: list):
    events = graph.stream(
        {"messages": [{"role": "user", "content": user_message}]},
        config=THREAD_CONFIG,
        stream_mode="values",
    )

    last_ai_text = ""

    for event in events:
        if "__interrupt__" in event:
            interrupt_val = event["__interrupt__"][0].value
            if interrupt_val.get("type") == "auth_required":
                return f"{interrupt_val['message']}\n\n{interrupt_val['auth_url']}"

        msgs = event.get("messages", [])
        for msg in reversed(msgs):
            if hasattr(msg, "content") and msg.type == "ai":
                last_ai_text = msg.content
                break

    return last_ai_text


with gr.Blocks() as demo:
    gr.Markdown("## 🤖 AI Agent")
    gr.ChatInterface(fn=chat)


if __name__ == "__main__":
    demo.launch()