操作 · AI 网页版桥接

操作 · AI 网页版桥接

一次配置

  1. 安装依赖(已装可跳过):D:\AI\Python312\python.exe -m pip install playwrightpython -m playwright install chromium
  2. 本机控制助手(开机自启一次即可):管理员运行 D:\ComfyUI\install_agent_autostart.bat

之后登录 Windows 会自动起助手(8199),助手会自动拉起网页桥(8201)

平时不必再分别开两个地方;后台「开启桥接」仅作备用开关。

  1. 若未装自启:双击 D:\ComfyUI\start_banyan_agent.bat 一次即可(会顺带起网页桥)
  2. 也可双击 D:\AI\webai_bridge\start_bridge.batWorker + 代理在后台运行,无控制黑窗;启动窗口可关掉。停止用同目录 stop_bridge.bat 或后台「关闭桥接」。
  3. 后台:/backstage/webai/(菜单名:AI网页版设置

- 启停本机桥(8201)——助手已常驻时点一下即可;助手未开时会提示先开助手

- 勾选「启用管理员账号登录」并保存(可选)

- 网页版深度思考:默认关闭;勾选并保存后各站才开思考。关闭时 Worker 会关掉深度思考/思考研究等开关

- 站点列表:编辑名称/地址/选择器;「前台显示」开关

- 「账号会话」:①「窗口登录新账号」或②旧窗口换号后「当前会话另存为新号」→「设为托管账号」

  1. 前台 PC:/ai/ → Tab 网页版设置 → 网页版

手机:/wap/ai/网页版

对话会不会每个站点弹一个浏览器?

对话窗口会最小化到任务栏(可点开查看),一般不会抢前台。只有后台「窗口登录」会最大化弹出(过人机验证)。若改代码后仍全屏弹出:后台关闭再开启桥接,或重跑 start_bridge.bat

豆包已回答但前台报「页面上没有新回复」

常见原因:豆包主对话区 class 含 history,旧逻辑误过滤;或取到推荐卡片/思考壳。Worker 已改为放宽过滤、主区兜底、优先末条有效回答,并自动点「新对话」。仍异常时看 D:\AI\webai_bridge\logs\bridge.logno reply dump

窗口已答完,前台仍「思考中」很久

Worker 以前要等 7 次轮询才收束(约 2.5s+,流式还会更久);前台轮询间隔 1.5s。现已改为:完整回答 2~3 次稳定即返回,轮询 200ms;前台 pending 约 0.7s 一次。改完后重启 start_bridge.batCtrl+F5 刷新 AI 页。

是不是每次都要操作两个地方?

不用。 正确状态是:

频率做什么
装机/换机一次管理员运行 install_agent_autostart.bat
平时开机自动:助手 + 网页桥都起来(后台无黑窗)
偶发离线后台只点「开启桥接」;或双击一次 start_bridge.bat / start_banyan_agent.bat

能不能关掉启动窗 / Worker 窗?

  • 可以关 start_bridge.bat 那个启动提示窗:桥已在后台跑。
  • 不要再去任务管理器结束 node.exe(node_worker)或 powershell(http_ipc_proxy),那才会停桥。
  • 对话用的 Chromium 会最小化在任务栏,一般可不管;关掉后下次提问会自动再起(需 Cookie 仍有效)。

后台点开启失败:「PHP 无法执行进程」

  1. 确认助手在线:浏览器打开 http://127.0.0.1:8199/ping 应返回 "ok": true
  2. 若打不开:运行 D:\ComfyUI\start_banyan_agent.bat(或 install_agent_autostart.bat
  3. 再回后台点「开启桥接」
  4. 助手会调用 D:\AI\webai_bridge\start_bridge_hidden.vbs 拉起 8201

窗口登录(处理豆包/通义人机验证)

  1. 后台 → AI网页版设置 → 账号会话
  2. 换号:选站点 + 填手机号 → 窗口登录新账号(不要只在旧窗口里换号)
  3. 登录成功后点 设为托管账号(自动开启管理员托管)
  4. 远程看不到窗口时,请到服务器本机操作

两种登录模式

A. 前台短信登录(默认)

  1. 选择平台 → 手机号 → 获取验证码 → 填验证码登录
  2. 状态行仅显示当前平台是否已登录

B. 管理员托管登录(后台开启后)

  1. 后台勾选「启用管理员账号登录」
  2. 各平台至少设一个「管理员账号」,并保证该账号已登录(短信/Cookie/Profile 有效)
  3. 前台用户无需短信;状态显示「托管就绪」;系统把管理员 Cookie 复制到用户目录 D:\AI\webai_bridge\profiles\{站点}_u{用户}/
  4. 关闭托管开关后,恢复前台短信登录

说明

  • 网页版走本机 Playwright,不扣官方 API 费;上下文按网页端额度。
  • 站点 PHP 禁用进程函数时:须本机 控制助手 8199 常驻,再由后台经 curl 启停网页桥 8201。
  • 账号/Cookie/选择器:by_web_site / by_web_site_account;全局开关在 by_setting.k=web_ai
  • 若平台弹出滑块/风控:桥会快速提示「人机/滑块验证」;请到后台「账号会话」用窗口登录完成滑块后重试。
  • 豆包发消息后偶发图片点选验证(弹窗「请选择所有符合…」);若图片一直「加载中」,在窗口里点刷新,或稍后再试。状态显示「已登录」但对话失败时,优先处理验证码而非重新短信登录。
  • 前台若只显示「HTTP 500」,多为网页桥忙/超时或豆包弹验证导致服务器等待被切断;请到后台「账号会话」点窗口登录完成验证,再等十几秒重试。
  • 对话进行中前台仍应显示桥在线(health 可并行);若仍见「服务未启动」,先刷新或重启 D:\AI\webai_bridge
  • 后台报 「IPC 目录不可写」:给 D:\AI\webai_bridge\ipc(含 inbox/outbox)授予 IIS_IUSRS / 应用程序池 / Users 修改权限;PHP 已改为写探针判定(不再只信 is_writable)。可执行:icacls D:\AI\webai_bridge\ipc /grant "IIS_IUSRS:(OI)(CI)(M)" /T

后台显示桥在线但对话一直超时 / pw_ready: false

  1. D:\AI\webai_bridge\ipc\status.json:须 "ok": true"pw_ready": true;或 curl http://127.0.0.1:8201/health"pw_ready":true(经 .NET 代理)。
  2. 本机 Proactor + asyncio 子进程会永久卡住;当前改为 Selector 事件循环 + pw_pipe_patch.py(同步 Popen 驱动 Playwright)。
  3. 仍不行:结束多余的 webai_bridge\agent.py / http_ipc_proxy.ps1,再双击 D:\AI\webai_bridge\start_bridge.bat(或后台「开启桥接」)。
  4. 日志应出现:asyncio Selector policy readyPipeTransport sync-Popen patch appliedplaywright ready on main thread
  5. PHP 可走 HTTP 代理 :8201 或文件 IPC;本机 Python 自监听端口常连不上,不要只测 Python 直绑端口。

HTTP 127.0.0.1:8201 和写文件 IPC 有何区别?

HTTP 直连 Python文件 IPCHTTP 代理(当前推荐)
路径PHP curl → Python :8201PHP 写 ipc/inboxPHP curl → .NET 代理 :8201 → 文件 IPC → Python
速度最快(若通)稍慢接近 HTTP,多一跳磁盘
本机现状Python LISTEN 但 CONNECT 常失败可用可用(已恢复给 PHP 的 HTTP)

是不是防火墙没开端口?

一般不是。本机 :80.NET TcpListener 回环都正常;坏的是 连到 Python/Node 监听端口。防火墙规则可加(fix_loopback_http.bat 管理员运行),但加完往往仍连不上 Python。真正修复回环需 netsh winsock reset重启(慎用)。

当前策略

  1. agent.py:只做 Playwright + 文件 IPC(默认不占 8201)
  2. http_ipc_proxy.ps1:.NET 监听 127.0.0.1:8201,转文件 IPC
  3. PHP:bridgeRawHttp 先短超时试 HTTP,失败再走文件 IPC

启动:D:\AI\webai_bridge\start_bridge.bat(后台无黑窗;启动窗可关)。停止:stop_bridge.bat

慢不慢主要看什么?

前台 health 显示 via: http_proxy = PHP 已走 HTTP。但每次对话仍要 Playwright 打开豆包网页填字等回复,这才是耗时(常十几秒~几十秒)。文件轮询已压到约 40~50ms,再抠通道几乎感觉不到。要更快:保持窗口登录不关浏览器、少整页刷新、不要每次点「新对话」(默认已关;需要时设环境变量 WEBAI_NEW_CHAT=1)。

风险

使用自有网页账号,可能违反对方用户协议,存在限流/封号可能;生产商流量仍建议官方 API 或本机 Ollama。