为 My LangGraph AI Agent 构建 Streamlit UI

为有状态的 LangGraph 代理构建生产就绪的 Web 界面为我的 LangGraph AI 代理构建 Streamlit UI 帖子首先出现在 Towards Data Science 上。

来源:走向数据科学

在上一篇文章中,我介绍了如何构建基于 LangGraph 的 AI 代理来自动执行 15 分钟的客户服务预订会话。

代理像真正的客户服务代表一样处理整个预订流程。它是一个基于 LangGraph 的代理,可以协调以下操作:

  • 回应客户的询问并了解他们的需求。
  • 计算服务价格并通知客户。
  • 处理客户的接受或拒绝。
  • 建议优化的时间段。
  • 确认并记录约会。
  • 在代理的第一个版本中,我并没有过多关注 UI/UX 部分。我刚刚构建了一个 Python CLI 来测试代理的功能。

    客户服务代理完全在终端中运行。 CLI 的测试效果很好,但它并不是展示面向客户的预订体验的最佳方式。

    该项目的完整源代码可在 GitHub 上的 customer-service-agent 上获取。请随意克隆该存储库并自行测试。

    在本文中,我们将在现有 LangGraph 代理之上构建一个干净的交互式 Streamlit UI。

    关于术语的快速说明:在本文中,我交替使用代理和图。在 LangGraph 中,代理架构被定义并作为编译的状态图对象执行,因此它们在本文中本质上意味着相同的事情。

    代理的用户界面

    在实现方面,Streamlit 与 Python CLI 没有太大区别。两者都充当 LangGraph 代理的包装器。当然,Streamlit 更加用户友好并且看起来更有吸引力。

    CLI 界面收集输入、调用图形并打印响应。 Streamlit 页面将执行相同的操作,但它还会呈现从图形状态中提取的结构化信息,例如当前预订详细信息、报价和接受按钮。

    架构仍然位于同一个应用程序中。 Streamlit 仅向用户呈现状态并将用户操作发送回代理。

    Streamlit 页面

    诗歌添加流线型