网页后台的接口
网页后台是一个 FastAPI 应用,八十多个接口,前端和别的程序用的是同一套。默认只监听本机;登录拿会话,给别的程序用的是带范围的访问密钥;实时的东西走 WebSocket。
登录
- 后台密码:从源码跑时是环境变量
WEBUI_TOKEN,没填的话第一次启动随机生成一个写在data/webui.token;桌面版自己管,不用你记。 POST /api/auth/login:用密码换一个会话(cookieaeria_session,默认 12 小时有效,环境变量WEBUI_SESSION_HOURS可改,最长 168 小时)。POST /api/auth/login-code:桌面版「打开完整控制台」用的一次性登录码,60 秒、只能用一次。- 访问密钥(给别的程序用):后台「访问密钥」里建,
/api/auth/api-keys;请求头X-Aeria-API-Key。每把钥匙有范围(读、写)、允许的路由、允许的来源网络;新建时只显示一次。 - 危险的写操作还要带
X-Aeria-Confirm;多人格时用X-Aeria-Persona指定人格。
接口分组
- 概览、状态:
/api/overview、/api/life、/api/decisions、/api/reply-outcomes、/api/nhcx/…(认知观测、回放)。 - 记忆和人:
/api/memories、/api/hmc/…、/api/people、/api/relationships/…、/api/expressions、/api/jargon、/api/knowledge/…。 - 配置:
/api/settings(整份读写,存之前校验、存之后回读)、/api/personas/…(人格、绑定、作息、免打扰、唤醒)、/api/model、/api/platforms、/api/setup、/api/bootstrap。 - 插件:
/api/plugins/…(市场、安装、启停、确认能力、设置、挂靠、卸载)。 - 运维:
/api/maintenance/…、/api/management(管理审计)。 - 实时:
/api/ws(先POST /api/auth/ws-ticket拿票)。
完整的一份只能读 src/aeria/webui.py:FastAPI 自带的接口文档页是关着的(docs_url=None)。
对应的代码
- 应用和路由:
src/aeria/webui.py的create_web_app。 - 登录、会话、访问密钥、确认头:
src/aeria/webui_auth.py(SESSION_COOKIE、API_KEY_HEADER、CONFIRM_HEADER、LOGIN_CODE_SECONDS)。 - 实时事件:
src/aeria/webui_events.py。 - 监听地址、端口:
Environment的webui_host、webui_port。
没做到的
- 接口没有版本号,改了结构前端要一起改;还没有给外部程序的稳定承诺。
- 没有一份写好的接口文档:自带的文档页关着,接口说明要读代码。