Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Gradio APP

Gradio 是一个用于快速构建网页应用的 Python 包。只需要很少的代码,就可以开发应用。

作者本人用 Gradio 开发了一个智能体应用,效果如下\(`Δ’)/

gradio-app

它支持联网搜索、绘制图表、执行代码、多步规划、长上下文自动压缩 ...

一、简单介绍

用过 Gradio 的朋友都知道,前端并不好调,调成这样需要很多功夫。虽然尚不完美,但已经是一个极简且堪用的壳儿了。后端没有新鲜事,主要使用 本指南 介绍过的技术,比如工具、MCP、中间件、多智能体、上下文工程等。唯一让我踩坑的地方是 Agent 的流式输出和增量渲染。为了理解 LangChain 对异步事件流的处理方式,我花了不少时间做单测。好在一切都是值得的。最开心的是让朋友们用上这个应用✧(>o<)ノ✧

二、功能展示

1)角色扮演

并行获取数十种人设的想法,启发式探索最佳回复策略。

问题女神说她闹肚子了,怎么安慰她
MCProle-play - 从不同人设的角度作出回复
role-play

2)代码执行

简直是 LeetCode 解题神器好吗?我算 3D 接雨水都一遍 AC 了!

问题3D 接雨水 ...
MCPcode-execution - 执行 Python 代码并获得执行结果
role-play

3)高德地图

从北邮到北师的第一步,难道不是考上北师吗?或者找一个北师的妹子。

问题从北京邮电大学走到北京师范大学一共需要几步
MCPamap-maps - 获取高德地图出行数据
role-play

想解锁更多有趣案例?部署这个 APP,亲自尝试更多问题。

三、如何获取

GitHub 链接 👉 dive-into-langgraph/app

1)配置环境变量

首先创建 .env 文件:

cp .env.example .env

然后注册 阿里云百炼 账号,获取 API_KEY 并配置到 .env 文件。

2)启动智能体应用

在开始之前,请确保你的 Python ≥ 3.10

本项目有三种启动方式,总有一款适合你。

💻 Python 启动
安装依赖包:

```bash
pip install -r requirements.txt -U -i https://mirrors.cloud.tencent.com/pypi/simple/
```

启动应用:

```bash
python app.py
```

> 注释:
> - `pip install -i` 为使用镜像源,全称 `--index-url`
> - `pip install -U` 为升级到最新包版本,全称 `--upgrade`
🚀 UV 启动
如果你想用 `pyproject.toml` 文件中锁定的包版本启动,可以使用 uv。

安装 uv:

```bash
pip install uv -U
```

使用 uv 同步虚拟环境:

```bash
uv sync
```

使用 uv 运行应用:

```bash
uv run app.py
```
📦 Docker Compose 启动
Docker 从系统层面锁定环境,是最不容易出错的运行方式。本项目在 Docker 中使用 uv 控制包版本,以避免环境不一致导致的运行错误。

使用以下命令启动 Docker 容器:

```bash
docker compose up -d
```

初始化完成后,可在浏览器访问应用:http://localhost:7860/

四、后日谈

在《阿里发布新版 Quick BI,聊聊 ChatBI 的底层架构、交互设计和云计算生态》一文中,我写了点关于智能体的思考,其中一段文字如下:

只要是基于 Agent 技术开发的产品,都难以跳出现阶段 Agent 科技的限制。

有哪些限制?我举几个例子:

  1. 长期记忆:精炼有用对话,遗忘无用对话,跨对话提升问答效果

  2. 验证能力:光有记忆没用,还要学会判断,也就是 Verification 的能力

  3. 知识体系:有验证能力之后,还要运用验证能力将记忆加工成知识

上面这些问题,都是当前工程上有解的东西。只不过是解到最后,能泛化到什么程度的问题。

心向往之,素履之往。与诸君共勉~