Skip to content

Diana v0.8.92

Choose a tag to compare

@github-actions github-actions released this 06 Sep 17:00
· 76 commits to main since this release
13eddd4

Diana v0.8.92

这是一次回复投递与可靠性修订:统一单条长度预算,尊重本轮分条选择,超长内容优先自然拆分、必要时语义压缩,并修复纯图片审核上下文与社交链接重复解析问题。

优化改进

  • 回复按语义段落和主要章节组织,标题尽量跟随正文,不再把连续标题或普通聊天机械拆成许多气泡;回复节奏改为尽量少发几条,不预设条数。
  • 用户本轮要求“不要分条 / 一次发完”时,模型将选择传递到发送层:不自然拆分,也不自动转为 QQ 合并转发;明确允许分条时按分段流程投递。该选择不修改群设置或后续对话偏好,意图识别仍依赖模型,不保证所有措辞均被正确识别。
  • 普通回复、Agent 回复和跟评的首轮生成提示均带有效的单条预算,减少超限后再调用模型。过长段先尝试按完整段落、句子或章节拆分,只压缩仍不合规的段,已达标的段不重写。
  • QQ / OneBot 合并转发只包装已有分段,不因此删减正文,失败仍可回退普通分条。Telegram 没有这项合并转发功能,不自动拼接多条、不调用 OneBot;界面只对 OneBot 展示合并阈值。

Bug 修复

  • 修复“用户要求单条,发送层仍继续分段”的问题:此前要求只停留在提示词中,现在内部投递选择参与发送决策;控制标记不进入正式消息、聊天历史或 Telegram 草稿。
  • 修复超长回复直接截断、不同回复入口处理不一致的问题。现在先拆分、再按需压缩;单条选择只压缩不拆分。整轮最多两次压缩调用(包含纠正),共用 30 秒超时;失败不发送半份回复、不回退超长原文、不硬截断。无法在保留代码等受保护内容的同时满足上限时仍会失败。
  • 修复纯图片消息审核被空文字误导的问题:复用本轮 OCR / 画面描述或已有图片描述缓存作为独立证据,不新增识图调用,也不拿候选回复冒充图片证据。内容质量审核聚焦可见准确性和完整性,不再用“是否需要接话”或风格偏好拦截;账号安全、循环判断和原有触发范围保持不变。
  • 修复同一社交链接第一次成功、第二次却因再次抓取触发风控而失败的问题。此前成功结果未进入普通网页缓存,现在复用带稳定资源键的成功解析结果;失败不缓存,本地视频已清理则缓存失效。继续使用原解析缓存时长,默认 10 分钟,设为 0 仍关闭缓存;链接解析插件修订号为 0.3.1。

行为说明

  • max_reply_chars 字段与默认值 3500 保留,但含义统一为“单条回复上限(字符)”,不再是整轮总字数限制。旧配置直接按新含义生效,群级覆盖和继承不变;多条合计较长但各条合规时不触发压缩,输出 token 预算与发送频率控制仍保留。
  • Telegram 另外校验渲染后的平台容量,保守按 4096 UTF-16 单元计算,并考虑昵称展开与格式。最终发送层拒绝仍超限的消息;无法安全拆分的代码块等仍可能发送失败。
  • 语义压缩可能省略次要细节,不是无损压缩。关闭自然分条时不推断新边界,显式分条标记仍有效。
  • 移除已无效的“最多分几条”“分段发送长度”设置;OneBot 合并转发阈值为空或为 0 时关闭对应触发条件。

破坏性变更

  • 自定义提示词中的旧分条标记 <dianabr> 需改成 [diana-br];旧标记不再作为分条边界,历史默认提示词的迁移识别仍保留。
  • 不再提供独立 groupmate 风格,旧配置 / 人设值仍可读取并回落到助手风格。

安装与下载

以下一键命令与发布基线 README 一致,安装器自动识别系统、校验 SHA-256 并启动服务。

Linux / macOS:

curl -fsSL https://raw.githubusercontent.com/SuInk/Diana/main/scripts/install.sh | sudo sh

推荐使用 sudo 安装到 /opt/diana 并创建 /usr/local/bin/diana。没有 sudo 权限时去掉 sudo,安装器会询问是否只为当前用户安装;也可显式传入 DIANA_INSTALL_SCOPE=user

Windows PowerShell:

irm https://raw.githubusercontent.com/SuInk/Diana/main/scripts/install.ps1 | iex

Docker(预构建镜像,无需克隆仓库):

docker run -d --name diana --restart unless-stopped \
  -p 18080:18080 \
  -v "$PWD/data:/app/data" \
  -v "$PWD/logs:/app/logs" \
  ghcr.io/suink/diana:latest

控制台地址为 http://127.0.0.1:18080,初始管理员凭据见安装终端输出;Docker 可运行 docker logs diana 查看。系统级配置文件需要 sudo 编辑。服务器开放远程访问需按 README 配置 DIANA_HOST,并使用 HTTPS 反向代理和防火墙,不直接暴露管理控制台。

手动下载仅提供五个平台完整包:Linux amd64 / arm64、macOS amd64 / arm64、Windows amd64,以及 SHA256SUMS 和自更新清单 latest.json,共 7 项资产。下载对应 .tar.gz / .zip 并对照 SHA256SUMS 校验后,解压运行 run.sh / run.bat。包内包含后端、编译好的 frontend-next/dist 和启动脚本,无需单独部署 WebUI 或安装 Node.js;不提供独立裸二进制,自定义部署可从完整包提取。

升级指南

  • 一键安装 / 完整 Release 包:先备份配置和数据。一键安装用户重跑上方对应系统的安装命令;支持新包名的控制台也可使用自更新。手动部署下载对应完整包、校验 SHA-256、停止旧进程后替换程序和前端,保留原配置与数据,再运行 run.sh / run.bat
  • 首次包名迁移边界:当前包名为 diana-<系统>-<架构>.tar.gz(Windows 为 .zip),macOS 使用 macos,例如 diana-macos-arm64.tar.gz。只识别 diana-webui-… 的旧控制台不能直接自更新到新包名版本,首次必须重跑上方一键安装或手动安装完整包。新版安装器和自更新器仍兼容历史包名,包内 diana-webui / diana-webui.exe 与旧文件名兼容副本保留,不修改历史 Release 资产。
  • Docker:拉取新镜像并按原参数重建容器,保留数据 / 日志挂载及自定义配置;例如先运行 docker pull ghcr.io/suink/diana:v0.8.92,停止并删除旧容器后,使用上方 docker run 参数,将最后的镜像改为 ghcr.io/suink/diana:v0.8.92。不要删除挂载的数据目录;版本标签和 latest 均提供。
  • 源码部署:需要 Go 1.26+、Node.js 22。备份数据并处理好本地修改后,拉取仓库并切换 v0.8.92,在 frontend-next 执行 npm cinpm run build,回到仓库根目录执行 go build -o dist/diana-webui ./cmd/webui,再按原服务配置重启。源码 model/version/VERSION 已同步,未注入构建参数时也会显示正确版本。

测试覆盖

  • 发布基线通过 gofmt -l .git diff --checkgo test ./...,前端 npm ci 与生产构建通过,包含 16 项前端测试,依赖安装审计 0 漏洞。
  • 发布 PR 与标签 CI 验证 Go、Vue、Linux amd64 / arm64、Darwin amd64 / arm64、Windows amd64 和 Docker;标签产物为五个完整包及两项元数据。
  • 回归覆盖单条选择、自然拆分、只压缩超长段、整轮压缩预算、失败不发送、QQ 合并与回退、TG 不合并及平台长度边界、图片描述审核上下文、社交缓存过期和媒体失效。
  • 本次发布验证不额外调用付费模型或真实 Telegram API;此前模型样本与离线回放不代表所有自然语言措辞和外部平台场景都已验证。

相关链接

完整版本对比:v0.8.91...v0.8.92