Skip to content

Latest commit

 

History

History
62 lines (40 loc) · 5.9 KB

File metadata and controls

62 lines (40 loc) · 5.9 KB

📋 所有版本 English | 简体中文

Chats 1.10.0 发布说明

发布日期:2026-01-14(相对 main 以来 111 次提交)

1.10.0 是一次围绕 内置 Code Interpreter(Docker 沙箱) 的重大能力升级:新增 sdcb/code-interpreter 默认镜像与配套 CI,后端引入会话管理与安全资源限制,前端对工具调用展示、文件上传/预览、生成信息与管理页面做了系统性优化。同时,继续扩展多模型提供商在工具调用场景下的 交错思考(Interleaved Thinking)回传能力,并让 Chat Completions API 兼容 DeepSeek v3.2 风格的 reasoning_content

🎯 核心功能

1) 内置 Docker Code Interpreter(沙箱执行环境)

  • 🐳 内置工具集:新增一组基于 Docker 的内置工具,支持在会话内执行代码与文件操作(create_docker_session / run_command / read_file / write_file / patch_file / download_chat_files / destroy_session)。
  • 📦 默认镜像 sdcb/code-interpreter:作为开箱即用的 Code Interpreter 环境,在镜像中预置常用依赖与工具链(dotnet/python/node/gcc/sqlite3、LibreOffice/Pandoc/Poppler、FFmpeg、Playwright Chromium、常用字体、ImageMagick 等),并集成 anthropics/skills/app/skills/app/skills.md)。
  • 🔐 安全与资源限制:支持会话级资源限制(内存/CPU/进程数)、超时、闲置回收;并提供网络模式白名单控制(DefaultNetworkMode / MaxAllowedNetworkMode)。
  • 🧾 会话可追踪:引入 ChatDockerSession 持久化记录(容器 ID / 镜像 / shell 前缀 / IP / 资源 / 到期时间等),并通过后台服务自动清理过期容器(ChatDockerSessionCleanupService)。
  • 📁 云文件注入 + 一键下载:仅将“本轮上下文”相关云文件注入到提示词前缀,并支持 download_chat_files 将历史文件按通配符下载到容器 /app,配合 artifacts 目录让用户直接下载输出结果。

2) 交错思考(Interleaved Thinking)能力扩展

  • 🧠 更多提供商支持工具调用思考回传:在 Chat Completions API 下,Moonshot(Kimi)等提供商新增/完善了在工具调用之间回传 reasoning_content 的能力(与 DeepSeek/MiMo 的做法保持一致)。
  • 🔁 Chat Completions API 兼容 DeepSeek v3.2 风格:解析与保存 assistant message 上的 reasoning_content,并与 tool_calls 组合形成稳定的“思考—工具—继续思考”交错链路(NeutralConversions / ChatCompletionService)。
  • 🧩 Response API(OpenAI / Azure AI Foundry)交错思考增强:当启用 reasoning 时,请求中自动加入 include: ["reasoning.encrypted_content"],并在流式响应中提取 response.output_item.doneencrypted_content 存入 ThinkChatSegment.Signature;下一次请求会将该签名以 {"type":"reasoning","encrypted_content":...} 回传,从而支持多步工具调用的“思考—工具—思考”交错链路(ResponseApiService / AzureResponseApiService,单元测试:src/BE/tests/Chats.BE.UnitTest/ChatServices/Response/AzureResponseApiServiceTests.cs)。 同时,通过 prompt_cache_key(以 end-user 为 key)提升缓存命中率。

3) 前端体验优化(工具调用 / 上传 / 信息密度)

  • 🧰 ToolCallBlock 全面优化:为 Code Interpreter 各工具提供更清晰的展示(命令摘要、sessionId/timeout 元信息、progress 流式输出、复制按钮、自动折叠策略、长输出展示优化等)(src/FE/components/Markdown/ToolCallBlock.tsx)。
  • 📎 ChatInput 上传增强:支持拖拽上传与 Ctrl+V 粘贴上传;对 Code Interpreter 场景可放开“任意文件类型”上传;粘贴图片自动生成更合理的文件名(DragUpload / PasteUpload / ChatInput)。
  • 🖼️ 文件预览与分享体验改进:文件名不再被截断、移动端预览更友好;分享对话框支持复制分享链接等 UI 优化(FilePreview / SharedMessageModal)。
  • 📊 生成信息更直观:Turn 信息气泡支持 step 数、平均耗时/平均 TTFB;当 step 仅 1 个时自动隐藏 step 计数(TurnInfoBubble)。
  • 🗓️ 管理后台优化:仪表盘日期选择器新增 today 高亮与快捷按钮(今天/昨天/本周/本月),使用量页面增加刷新按钮等。

🏗️ 架构与工程

1) Code Interpreter 镜像构建与发布流水线

  • 新增 GitHub Actions 工作流 code-interpreter.yml:构建并发布多架构镜像(linux/amd64 + linux/arm64),并执行 smoke test(.github/workflows/code-interpreter.yml)。
  • 镜像构建上下文与模板:Dockerfile、NuGet 本地预缓存、skills 渲染脚本等(.github/workflows/code-interpreter/*)。

2) 数据库迁移(1.10.0)

  • 新增 ChatDockerSession 表与索引/外键,用于记录与回收 Docker 会话(src/scripts/db-migration/1.10/1.10.0.sql)。
  • 将支持工具调用的模型默认开启 AllowCodeExecution(同上迁移脚本 Step 2)。

🐛 修复与稳定性改进(节选)

  • 修复会话追踪与 EF 跟踪相关的异常问题,避免出现“Balance/Step.Id 被错误修改”的边缘情况。
  • 优化 create_docker_session 失败提示与 EnsureSession 行为(由抛异常改为 Result<T> 返回)。
  • 改进 run_command/读写文件等工具输出的展示策略:长输出与非结构化结果信息更紧凑,读写统计按“行数”反馈更贴近模型理解。

⬆️ 升级提示

  • 运行数据库迁移:src/scripts/db-migration/1.10/1.10.0.sql
  • 确保部署环境具备 Docker 能力,并按需在 src/BE/web/appsettings.json 配置 CodeInterpreter(默认镜像、网络模式、资源限制、上传大小限制等)