Skip to main content

本地开发与构建

这篇文档面向想从源码运行、修改或为 AutoGLM-GUI 贡献代码的开发者,覆盖从准备环境到本地开发、检查、测试和打包的完整流程。如果你只想部署运行,看用 Docker 部署即可。

后端是 Python 项目,统一用 uv 管理依赖和运行命令;前端是 React 项目,用 pnpm 管理。下面所有 Python 命令都用 uv run 执行,请不要直接调用裸 python

准备环境

开始前确认本机已经装好以下工具:

  • Python 3.11 或更高版本
  • Node.js 18+ 和 pnpm
  • uv(Python 包管理器),安装见官方文档
  • adb(Android Debug Bridge),且已加入系统 PATH

uv 的快速安装:

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

克隆仓库并安装依赖

先把仓库拉下来:

git clone https://github.com/suyiiyii/AutoGLM-GUI.git
cd AutoGLM-GUI

在项目根目录安装后端依赖:

uv sync

进入 frontend 安装前端依赖:

cd frontend
pnpm install

构建前端

后端通过静态资源提供前端页面。先构建一次前端并拷贝到后端静态目录:

uv run python scripts/build.py

这一步会编译前端产物并放到后端能直接 serve 的位置。日常只改后端时,这步做一次就够;下面的前端热重载方式则不需要它。

启动开发服务器

后端开发服务器支持热重载。在项目根目录运行:

uv run autoglm-gui --base-url http://localhost:8080/v1 --reload

--base-url 指向一个 OpenAI 兼容的 API 端点。测试时可以用智谱 BigModel 或自建服务,按需替换成你自己的地址。

前端开发同样支持热重载,单独开一个终端运行:

cd frontend
pnpm dev

前端开发服务器默认在 http://localhost:3000 启动,并自动把 API 请求代理到后端。改前端时用这个,改完即时生效,不必重新执行 scripts/build.py

代码检查与类型检查

提交前先跑 lint。在项目根目录一次性检查并自动修复后端和前端的格式:

uv run python scripts/lint.py

只检查不修改时加 --check-only;只针对某一端时加 --backend--frontend,可以组合使用。例如只检查后端、不做修改:

uv run python scripts/lint.py --backend --check-only

类型检查分两端。后端用 pyright:

uv run pyright AutoGLM_GUI/

前端用 pnpm:

cd frontend
pnpm type-check

运行测试

测试用 pytest,在项目根目录运行:

uv run pytest -v

打包

构建完整包(包含构建前端并打包成 wheel):

uv run python scripts/build.py --pack

不带 --pack 时只构建前端产物,带上 --pack 会在此基础上额外产出可分发的 wheel。

下一步

源码跑通后,如果要把它部署到服务器或容器里运行,参考用 Docker 部署