Skip to content

Commit 4b12648

Browse files
sdcbAlex-wuhuDeali-Axy
authored
1.11.0 (#131)
* chore(deps): update package references to latest versions * fix: respect total_tokens for Azure AI Foundry Grok usage Use total_tokens - prompt_tokens as the authoritative output token count when parsing OpenAI-compatible usage payloads, since Grok streaming chunks on Azure AI Foundry report completion_tokens without reasoning tokens. Add a regression test for the final SSE usage segment. * fix(chat): align file upload behavior with vision and agent capabilities Show the upload button only when the chat supports vision or has code execution enabled, allow mobile device uploads of any file when agent mode is enabled, keep camera uploads image-only for vision models, and filter remote files to match the same capability rules. * fix: Invalid 'max_output_tokens': integer below minimum value. Expected a value >= 16, but got 1 instead. * fix: ensure 'max_output_tokens' is set to minimum value of 16 if below threshold * delete patch_file & read_file tool since it's not friendly to LLM and easily replacable by run_command * build(code-interpreter): add python alias, python-docx support, and refresh playwright versions * fix: preserve Anthropic usage fields across partial stream deltas Keep previously reported input and cache token counts when message_delta only includes output_tokens. Add regression tests for DeepSeek Anthropic streaming usage inheritance. * fix: preserve tool response images across chat services Keep tool-role multimodal outputs attached to their corresponding tool responses during provider-specific request serialization. Split grouped tool responses when needed for OpenAI-compatible payloads, preserve multimodal tool outputs for Responses API, Anthropic, and Gemini, and add regression tests covering image artifacts returned from tool calls. * fix: preserve tool outputs and normalize provider-specific payloads Keep tool response images attached to their corresponding tool results across OpenAI, Responses API, Anthropic, and Google AI request serialization. Normalize empty tool-call arguments to {} for providers that expect JSON object payloads, and collapse DeepSeek tool message text arrays into a single string to satisfy its chat completion API requirements. Add regression tests covering multimodal tool outputs, empty tool arguments, and DeepSeek-specific tool serialization. * fix: normalize Gemini tool schemas and usage accounting convert OpenAI-style function parameter schemas into Gemini-compatible schemas, including nullable unions, nested properties, arrays, enums, and basic validation constraints expose GoogleAI usage parsing for tests, honor cachedContentTokenCount, and derive output tokens from candidate and thought usage fields send tool responses as structured result/success payloads and add regression coverage for nullable schemas and cached tokens skip empty and SVG images when extracting image info * Fix code interpreter workdir path resolution Anchor relative container paths to the configured work directory while leaving absolute paths unchanged. Reuse the same resolution logic in download_chat_files and add regression tests for relative and absolute write_file paths plus configured workdir downloads. * Add view_image tool and rewrite multimodal message filtering - add Code Interpreter view_image to fetch session images, validate them, and attach them as artifacts - only expose view_image for vision-capable models - rewrite vision preprocessing to operate on the full message list instead of single messages - only feed user images and view_image tool attachments back into vision models - drop links and non-view_image artifacts from model input while preserving tool response history - resolve view_image tool responses by toolCallId against prior assistant tool calls - rename FilterVision to RewriteVisionMessages to reflect message-list rewriting semantics - update image generation override and inject FileImageInfoService into executor tests - add unit tests for view_image behavior and vision message rewriting * fix(be): resolve vulnerable NuGet dependency and nullable build warning override Microsoft.Bcl.Memory to a patched version remove the CS8600 nullable warning in CodeInterpreterExecutor restore clean backend build without vulnerability warnings * fix mobile user message bubbles to shrink for short text and keep padding for wrapped content * fix(chat): make mobile user message bubbles shrink to content naturally * refactor: centralize and optimize client info id resolution - remove AsyncClientInfoManager and route callers through ClientInfoManager - cache ClientInfoId per request scope and resolve it from an isolated db scope - replace ClientInfo entity flow with ClientInfoId across controllers and rate limiting - optimize client info lookup for id-only access and update affected tests * big refactor(be): introduce ChatRunService and move retry/billing out of controllers add scoped ChatRunService orchestration for paid generation runs move 429 retry logic into service layer (preserve pre-first-yield retry semantics) centralize usage persistence, balance/usage updates, and transaction creation in ChatRunService simplify ChatRunRequest by deriving user and API context from UserModel/ChatRequest.Source switch WebChat + OpenAI/Anthropic/Image API controllers to consume ChatRunService link Step/UserApiUsage via UsageId instead of constructing usage in controllers remove obsolete InChatContext and shared multi-scope UserModelBalanceCalculator keep non-paid utility flows (count tokens/list models/validate model) outside the new run layer add minimal fallback in TurnDto model metadata resolution (Usage.Model -> ChatConfig.Model) to prevent navigation-missing errors * refactor(db): remove TransactionType lookup table and related EF mappings * refactor(db): remove db context TransactionType class * refactor: update transaction types to use descriptive enum values * refactor: persist usage source on UserModelUsage and align source filtering add and backfill UserModelUsage.SourceId in 1.10.3 migration write/copy SourceId on usage creation paths and filter/stat usages by SourceId align frontend UsageSource names with backend and expose Summary in source selectors * feat(db): add UserConfig table for user-specific string configurations * feat: add first-turn AI title summary with billing, settings, and admin config APIs - generate and stream chat titles in parallel with the first web chat turn - add title summary billing/config resolution services and user config endpoints - support admin and user title summary settings with backend-provided default template - default title summary mode to truncate and hide prompt template in truncate mode - split admin global config loading into per-key APIs and remove shared config state helper - add unit tests for title summary config resolution * perf(frontend): lazy-load markdown rendering, KaTeX assets, charts, and session UI to cut initial payloads - move chat markdown rendering onto light vs rich on-demand paths - lazy-load Mermaid, code highlighting, tool-call blocks, and thinking message rendering - remove global KaTeX CSS import and load KaTeX CSS/fonts on demand from static assets - lazy-load admin dashboard charts and sandbox session manager UI - switch production build to webpack after bundle comparison showed smaller output Measured results: - build output: - /: 811 KB gzip -> 233 KB gzip - /home: 811 KB gzip -> 233 KB gzip - /message/[id]: 736 KB gzip -> 183 KB gzip - /share/[id]: 735 KB gzip -> 184 KB gzip - /admin/dashboard: 306 KB gzip -> 128 KB gzip - browser DevTools experiments: - empty chat: 3339 KB -> 1478 KB - markdown chat: 3339 KB -> 2263 KB - mermaid chart: 3468 KB -> 2947 KB - katex formula: 3381 KB -> 1840 KB - all features combined: 3518 KB -> 3318 KB * perf(markdown): render code blocks as plain monospace text before syntax highlighter loads * chore: upgrade actions/checkout from v4 to v5 in build workflows to supress node20 expire * chore: upgrade actions/upload-artifact and actions/download-artifact to v7 and v8 respectively * chore: update package references to latest versions across multiple projects * feat(fe): add resizable desktop chat sidebar with persisted width sync * feat(db): update project version to 1.11.0 and rename migration script for database changes * Merge pull request #124 from Alex-wuhu/novita-integration Add Novita AI provider * Handle Notiva.ai null usage detail objects in OpenAI-compatible streaming responses - guard `completion_tokens_details` and `prompt_tokens` parsing by `JsonValueKind` - prevent Novita `usage-only` SSE chunks with `null` detail fields from crashing - add a regression test for Novita streaming usage parsing * feat(admin): unify paginated tables on request-trace style and upgrade users management table - introduce shared `UnifiedTable` shell under `components/table` and migrate paginated admin/usage pages to it - standardize table UX across target pages: filter card + refresh button placement, icon action area, column selector, compact row height, and fixed `pageSize=20` - keep mobile card layout while unifying desktop table behavior and URL state (`page`, `columns`, per-page filters) - refactor usage/security-logs/messages/request-trace pages to reuse the shared table stack and aligned pagination/query handling - migrate `/admin/users` into unified table: - add `User Id` column and split login method into standalone `Login Type` column - add structured filters (`id`, `username`, `phone`, `email`, `loginType`) with URL sync - default-hide `Account` and `Login Type` columns (toggleable via column selector) - keep add/edit/recharge/model-count interactions and icon action order (export -> add user -> columns) - extend users export/list API contracts on FE (`GetUsersParams`, `GetUsersExportParams`) and add dedicated permission-query type to avoid cross-usage conflicts - extend BE users endpoints: - replace single `query` with structured query DTO for list/export - implement exact `id` filter, fuzzy username/phone/email filters, and login-type filter (`password`/`phone`/`keycloak`) - support column-ordered Excel export including optional `Login Type` * feat(unitified-table): implement debounce to all tables text input criterias * feat(unified-table): refactor admin user-model also using same unified-table * fix(novita.svg): update fill color for dark mode to #23D57C * fix(fe): prevent collapsed chat sidebar content from leaking in mobile and desktop views * fix(frontend): prevent lazy-loaded markdown components from flickering during streaming caused by f0cec5f * 增加模型定价页面 (#126) * feat(model-prices): 添加模型定价页面 - 新增模型定价页面,展示各模型的价格信息 - 从后端获取可用模型,并按提供者分组 - 支持选择不同提供者以查看对应模型的价格 - 显示输入价格、缓存输入价格和输出价格 - 处理加载状态和无模型可用的情况 * feat(model-prices): 添加模型搜索功能和无模型提示 - 在模型定价页面中添加搜索框,允许用户根据模型名称进行搜索。 - 当没有找到匹配的模型时,显示“未找到匹配的模型”提示。 - 通过使用 useMemo 优化搜索逻辑,确保在输入搜索查询时性能良好。 - 允许用户选择“全部”按钮以查看所有模型,并重置搜索查询。 * feat(model-prices): 添加仅显示免费模型的过滤功能 - 新增状态管理以控制是否仅显示免费模型 - 在模型过滤逻辑中添加条件,当选择仅显示免费模型时,过滤出价格为零的模型 - 更新搜索框以支持新的过滤选项,提升用户体验 * refactor(i18n): replace legacy pricing translation keys with new model price labels * refactor(fe): migrate model prices page to shared UI components - replace custom buttons, input, cards, and table markup with built-in UI components - reuse shared provider icon rendering for the sidebar - keep existing filtering and pricing behavior unchanged * chore: remove pnpm lockfile and clean up build doc references * chore: update dependencies for Next.js, React, and TypeScript - upgraded Next.js from 16.1.6 to 16.2.2 - upgraded React and ReactDOM from 19.2.1 to 19.2.4 - upgraded eslint-config-next from 16.1.6 to 16.2.2 - upgraded TypeScript from 5.9.3 to 6.0.2 * Refine model prices page responsive UX, add API type filters, and clarify pricing/context display * Polish model prices page layout, filtering, and scroll behavior across desktop and mobile * refactor: replace 'custom-scrollbar' with 'scroller' for consistent styling across components * refactor: extract getCopyableMessageText function for support copy text/error, fix #127 * fix(docs): update WeChat group QR code in README files * feat: update README and model provider documentation for version 1.11.0, add Novita AI support and enhance pricing transparency --------- Co-authored-by: Alex <yanglongwei06@gmail.com> Co-authored-by: DealiAxy <deali@live.com>
2 parents cce6965 + e861386 commit 4b12648

199 files changed

Lines changed: 10895 additions & 17371 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build.yml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
msbuild_args: ${{ steps.get_version.outputs.msbuild_args }}
2727
steps:
2828
- name: Checkout code
29-
uses: actions/checkout@v4
29+
uses: actions/checkout@v5
3030

3131
- name: Get Version
3232
id: get_version
@@ -46,15 +46,15 @@ jobs:
4646
4747
- name: Cache FE build output
4848
id: fe_build_cache
49-
uses: actions/cache@v4
49+
uses: actions/cache@v5
5050
with:
5151
path: ./src/FE/out
5252
key: fe-build-${{ hashFiles('src/FE/**') }}
5353

5454
- name: Cache node_modules
5555
id: node_modules_cache
5656
if: steps.fe_build_cache.outputs.cache-hit != 'true'
57-
uses: actions/cache@v4
57+
uses: actions/cache@v5
5858
with:
5959
path: ./src/FE/node_modules
6060
key: fe-node_modules-${{ hashFiles('src/FE/package-lock.json') }}
@@ -75,13 +75,13 @@ jobs:
7575
cp -r ./src/FE/out/* ./src/BE/web/wwwroot
7676
7777
- name: Upload FE build artifacts
78-
uses: actions/upload-artifact@v4
78+
uses: actions/upload-artifact@v7
7979
with:
8080
name: chats-fe
8181
path: ./src/FE/out
8282

8383
- name: Upload BE src folder
84-
uses: actions/upload-artifact@v4
84+
uses: actions/upload-artifact@v7
8585
with:
8686
name: be-src
8787
path: |
@@ -122,7 +122,7 @@ jobs:
122122
run: echo ${{ secrets.DOCKER_PASSWORD }} | docker login -u ${{ vars.DOCKER_USERNAME }} ${{ vars.DOCKER_REGISTRY }} --password-stdin
123123

124124
- name: Download BE src folder
125-
uses: actions/download-artifact@v4
125+
uses: actions/download-artifact@v8
126126
with:
127127
name: be-src
128128
path: ./be-src
@@ -165,7 +165,7 @@ jobs:
165165
run: echo ${{ secrets.DOCKER_PASSWORD }} | docker login -u ${{ vars.DOCKER_USERNAME }} ${{ vars.DOCKER_REGISTRY }} --password-stdin
166166

167167
- name: Download BE src folder
168-
uses: actions/download-artifact@v4
168+
uses: actions/download-artifact@v8
169169
with:
170170
name: be-src
171171
path: ./be-src
@@ -252,15 +252,15 @@ jobs:
252252
runs-on: ubuntu-24.04
253253
steps:
254254
- name: Download BE src folder
255-
uses: actions/download-artifact@v4
255+
uses: actions/download-artifact@v8
256256
with:
257257
name: be-src
258258
path: ./be-src
259259
- name: build binary
260260
run: |
261261
dotnet publish ./be-src/web/Chats.BE.csproj -c Release -o ./Publish ${{ matrix.args }} ${{ needs.build-fe.outputs.msbuild_args }}
262262
- name: Upload artifacts
263-
uses: actions/upload-artifact@v4
263+
uses: actions/upload-artifact@v7
264264
with:
265265
name: ${{ matrix.id }}
266266
path: ./Publish
@@ -283,15 +283,15 @@ jobs:
283283
runs-on: ubuntu-24.04
284284
steps:
285285
- name: Download BE src folder
286-
uses: actions/download-artifact@v4
286+
uses: actions/download-artifact@v8
287287
with:
288288
name: be-src
289289
path: ./be-src
290290
- name: build binary
291291
run: |
292292
dotnet publish ./be-src/web/Chats.BE.csproj -c Release -o ./Publish ${{ matrix.args }} /p:DeleteExistingFiles=True ${{ needs.build-fe.outputs.msbuild_args }}
293293
- name: Upload artifacts
294-
uses: actions/upload-artifact@v4
294+
uses: actions/upload-artifact@v7
295295
with:
296296
name: ${{ matrix.id }}
297297
path: ./Publish
@@ -312,7 +312,7 @@ jobs:
312312
release_id: ${{ steps.create_release.outputs.release_id }}
313313
steps:
314314
- name: Checkout code
315-
uses: actions/checkout@v4
315+
uses: actions/checkout@v5
316316
with:
317317
fetch-depth: 0
318318

.github/workflows/code-interpreter.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ env:
1616
git
1717
ffmpeg
1818
python3
19+
python-is-python3
1920
python3-pip
2021
zip
2122
p7zip-full
@@ -53,11 +54,12 @@ env:
5354
markitdown[pptx]
5455
pdf2image
5556
pdfplumber
56-
playwright==1.57.0
57+
playwright==1.58.0
5758
pypdf
5859
pypdfium2
5960
pytesseract
6061
python-pptx
62+
python-docx
6163
reportlab
6264
six
6365
opencv-python
@@ -68,7 +70,7 @@ env:
6870
react-dom
6971
react-icons
7072
sharp
71-
playwright@1.57.0
73+
playwright@1.58.2
7274
NUGET_PRECACHE: >-
7375
ClosedXML
7476
SixLabors.ImageSharp
@@ -88,7 +90,7 @@ jobs:
8890
runs-on: ${{ matrix.runs-on }}
8991
steps:
9092
- name: Checkout
91-
uses: actions/checkout@v4
93+
uses: actions/checkout@v5
9294

9395
- name: Set up Docker Buildx
9496
uses: docker/setup-buildx-action@v3
@@ -126,7 +128,7 @@ jobs:
126128
runs-on: ubuntu-24.04
127129
steps:
128130
- name: Checkout
129-
uses: actions/checkout@v4
131+
uses: actions/checkout@v5
130132

131133
- name: Login to Docker Hub
132134
run: echo ${{ secrets.DOCKER_PASSWORD }} | docker login -u ${{ vars.DOCKER_USERNAME }} ${{ vars.DOCKER_REGISTRY }} --password-stdin
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
This environment (rv. #{runNumber}) is pre-configured with the following tools and libraries:
22
* utilities: git, LibreOffice, Pandoc, Poppler (`pdftotext`, `pdfinfo`), sqlite3, file, FFmpeg {ffmpegVersion}, git, imagemagick, playwright[chromium], playwright-node, ripgrep
33
* dotnet {dotnetVersion}, commands: `dotnet build`, `dotnet run single-file.cs`, `dotnet add package`, pre-cached NuGet packages in `/opt/nuget-local`
4-
* python {pythonVersion}, commands: `python3 - <<'PY' ...`, `pip install --break-system-packages package-name`, IMPORTANT: Many packages are pre-installed, Always check with `pip list` BEFORE installing to avoid unnecessary waits.
4+
* python {pythonVersion}, commands: `python - <<'PY' ...`, `pip install --break-system-packages package-name`, IMPORTANT: Many packages are pre-installed, Always check with `pip list` BEFORE installing to avoid unnecessary waits.
55
* C/C++ Toolchain (gcc {gccVersion}), tools: `gcc`, `g++`, `make`, `cmake`
66
* node.js {nodeVersion}, commands: `node`, `npm`, IMPORTANT: Many packages are pre-installed globally. Always check with `npm -g ls` BEFORE installing.

.github/workflows/code-interpreter/smoke-test.sh

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,15 @@ echo "=== FFmpeg Version ==="
2222
ffmpeg -version | head -n 1
2323

2424
echo "=== Python Version ==="
25+
python --version
2526
python3 --version
2627

28+
python_path="$(readlink -f "$(command -v python)")"
29+
python3_path="$(readlink -f "$(command -v python3)")"
30+
echo "python -> ${python_path}"
31+
echo "python3 -> ${python3_path}"
32+
test "${python_path}" = "${python3_path}"
33+
2734
echo "=== GCC Version ==="
2835
gcc --version | head -n 1
2936

@@ -37,7 +44,7 @@ echo "=== SQLite Version ==="
3744
sqlite3 --version
3845

3946
echo "=== Python Packages ==="
40-
python3 -c "import numpy, pandas, matplotlib, scipy, PIL, requests, openpyxl; print('All packages imported successfully')"
47+
python -c "import numpy, pandas, matplotlib, scipy, PIL, requests, openpyxl; print('All packages imported successfully')"
4148

4249
echo "=== NuGet Local Cache ==="
4350
ls /opt/nuget-local

AzureFileMigrator/AzureFileMigrator.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
</PropertyGroup>
1010

1111
<ItemGroup>
12-
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="10.0.3" />
12+
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="10.0.5" />
1313
</ItemGroup>
1414

1515
<ItemGroup>

README.md

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
[English](README_EN.md) | **简体中文**
44

5-
Sdcb Chats 是一个强大且灵活的大语言模型前端,支持 21+ 主流 AI 模型服务商。无论您是希望统一管理多种模型接口,还是需要一个简单易用的部署方案,Sdcb Chats 都能满足您的需求。
5+
Sdcb Chats 是一个强大且灵活的大语言模型前端,支持 22+ 主流 AI 模型服务商。无论您是希望统一管理多种模型接口,还是需要一个简单易用的部署方案,Sdcb Chats 都能满足您的需求。
66

77
## ✨ 为什么选择 Sdcb Chats
88

9-
- 🚀 **一站式**21+ 模型服务商,一个入口
9+
- 🚀 **一站式**22+ 模型服务商,一个入口
1010
- 🎯 **分钟级上手**:一条命令 Docker 部署,8 平台原生可执行
1111
- 🐳 **代码解释器**:Docker 沙箱,内置浏览器/代码执行/Excel 等工具
1212
- 🔌 **API 网关**:Chat Completions/Messages 兼容,支持 Claude Code
@@ -18,16 +18,17 @@ Sdcb Chats 是一个强大且灵活的大语言模型前端,支持 21+ 主流
1818

1919
<img alt="chats" src="https://github.com/user-attachments/assets/106ece3f-d94d-460e-9313-4a01f624a647" />
2020

21-
## 🆕 最新版本(1.10.2
21+
## 🆕 最新版本(1.11.0
2222

23-
- 📅 发布日期:2026-03-10
24-
- 🔍 Request Trace:新增入站/出站 HTTP 请求全链路追踪,记录关键时间点、状态码、异常和正文与原始数据
25-
- 🧑‍💼 管理后台:新增请求跟踪工作台,支持筛选、详情查看、原始下载、双记录对比、Excel 导出和按筛选删除
26-
- ⚙️ 采集治理:支持采样率、include/exclude 规则、URL 参数脱敏、保留周期和热刷新
27-
- ♻️ 生命周期管理:新增队列容量保护与定时自动清理,降低持续采集对业务链路的干扰
28-
- 🛠️ 其它改进:统计卡片按时间范围统计,长用户消息支持折叠,Anthropic 协议兼容性继续改进
23+
- 📅 发布日期:2026-04-07
24+
- 🧠 智能标题摘要:新增首轮 AI 自动命名,支持管理员全局配置、个人覆盖、指定模型与 Prompt Template,并将标题生成单独记为 `Summary` 来源
25+
- 💵 模型定价页:新增模型价格总览页,支持按提供商、API 类型、免费模型和关键字筛选,并展示上下文窗口与多种价格口径
26+
- 📊 用量来源细分:`UserModelUsage` 新增 `SourceId`,支持 `WebChat` / `Api` / `Summary` 分类筛选和后台来源统计
27+
- 🆕 新模型提供商:新增第 22 个模型提供商 Novita AI,支持思考信息回传
28+
- ↔️ 体验与性能:桌面聊天侧边栏支持拖拽调宽并持久化,Markdown/KaTeX/图表延迟加载,聊天页初始负载约从 3.5MB/3.6MB 降到 1.7MB
29+
- 🛠️ 升级重点:迁移脚本会删除 `TransactionType` 表、回填 `UserModelUsage.SourceId`,并新增 `UserConfig` 表承载用户级配置
2930

30-
👉 [查看 1.10.2 发布说明](./doc/zh-CN/release-notes/1.10.2.md) · [查看全部版本](./doc/zh-CN/release-notes/README.md)
31+
👉 [查看 1.11.0 发布说明](./doc/zh-CN/release-notes/1.11.0.md) · [查看全部版本](./doc/zh-CN/release-notes/README.md)
3132

3233
## 快速开始
3334

@@ -49,7 +50,7 @@ Chats 使用 `C#`/`TypeScript` 开发,以下是完整的文档资源:
4950

5051
- [🚀 快速开始](./doc/zh-CN/quick-start.md) - 部署指南、Docker 配置、数据库设置
5152
- [💾 下载地址](./doc/zh-CN/downloads.md) - Docker 镜像和可执行文件下载
52-
- [🤖 支持的模型提供商](./doc/zh-CN/model-providers.md) - 21+ 模型服务商列表及支持情况
53+
- [🤖 支持的模型提供商](./doc/zh-CN/model-providers.md) - 22+ 模型服务商列表及支持情况
5354
- [🛠️ 开发指南](./doc/zh-CN/build.md) - 如何编译和开发 Chats
5455
- [⚙️ 配置说明](./doc/zh-CN/configuration.md) - 详细配置参数说明
5556
- [📝 更新日志](./doc/zh-CN/release-notes/README.md) - 版本更新记录

README_EN.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
**English** | [简体中文](README.md)
44

5-
Sdcb Chats is a powerful and flexible frontend for large language models, supporting 21+ mainstream AI model providers. Whether you want to unify the management of multiple model interfaces or need a simple and easy-to-use deployment solution, Sdcb Chats can meet your needs.
5+
Sdcb Chats is a powerful and flexible frontend for large language models, supporting 22+ mainstream AI model providers. Whether you want to unify the management of multiple model interfaces or need a simple and easy-to-use deployment solution, Sdcb Chats can meet your needs.
66

77
## ✨ Why Choose Sdcb Chats
88

9-
- 🚀 **All-in-One**: One hub for 21+ AI model providers
9+
- 🚀 **All-in-One**: One hub for 22+ AI model providers
1010
- 🎯 **Ready in Minutes**: One-command Docker deploy, plus native executables for 8 platforms
1111
- 🐳 **Code Interpreter**: Docker sandbox with built-in tools (browser, code execution, Excel, and more)
1212
- 🔌 **API Gateway**: Chat Completions/Messages compatible, works with Claude Code
@@ -18,16 +18,16 @@ Sdcb Chats is a powerful and flexible frontend for large language models, suppor
1818

1919
<img alt="chats-en" src="https://github.com/user-attachments/assets/40d2376e-58a0-4309-a2f5-5ed8262a0c2e" />
2020

21-
## 🆕 Latest Release (1.10.2)
21+
## 🆕 Latest Release (1.11.0)
2222

23-
- 📅 Release Date: 2026-03-10
24-
- 🔍 Request Trace: adds end-to-end inbound and outbound HTTP tracing with timing points, status codes, errors, body capture, and raw payload storage
25-
- 🧑‍💼 Admin workspace: adds a dedicated request trace page with filtering, details, raw downloads, compare view, Excel export, and bulk delete by filters
26-
- ⚙️ Trace governance: adds sampling, include/exclude rules, URL parameter redaction, retention policies, and hot-refreshable configuration
27-
- ♻️ Lifecycle management: adds bounded queue protection and scheduled cleanup to reduce long-running trace pressure
28-
- 🛠️ Other improvements: dashboard summary cards now follow the selected time range, long user messages can collapse, and Anthropic compatibility is improved further
23+
- 📅 Release Date: 2026-04-07
24+
- 🧠 Smart title summary: adds first-turn AI-generated chat titles with admin defaults, per-user overrides, dedicated model modes, and separate `Summary` usage billing
25+
- 💵 Model pricing page: adds a searchable `/model-prices` overview with provider, API type, free-model filters, context windows, and multiple price dimensions
26+
- 📊 Usage source breakdown: adds `SourceId` on `UserModelUsage` to distinguish `WebChat`, `Api`, and `Summary` in both user exports and admin statistics
27+
- 🆕 New model provider: adds Novita AI as the 22nd provider, with reasoning information round-tripping support
28+
- ↔️ UX and performance: adds resizable desktop sidebar and lazy-loads Markdown, KaTeX, charts, and session UI, cutting initial chat payload to around 1.7MB
2929

30-
👉 [View 1.10.2 Release Notes](./doc/en-US/release-notes/1.10.2.md) · [View All Releases](./doc/en-US/release-notes/README.md)
30+
👉 [View 1.11.0 Release Notes](./doc/en-US/release-notes/1.11.0.md) · [View All Releases](./doc/en-US/release-notes/README.md)
3131

3232
## Quick Start
3333

@@ -49,7 +49,7 @@ Chats is developed using `C#`/`TypeScript`. Here are the complete documentation
4949

5050
- [🚀 Quick Start](./doc/en-US/quick-start.md) - Deployment guide, Docker configuration, database setup
5151
- [💾 Downloads](./doc/en-US/downloads.md) - Docker images and executable file downloads
52-
- [🤖 Supported Model Providers](./doc/en-US/model-providers.md) - 21+ model providers list and support status
52+
- [🤖 Supported Model Providers](./doc/en-US/model-providers.md) - 22+ model providers list and support status
5353
- [🛠️ Development Guide](./doc/en-US/build.md) - How to compile and develop Chats
5454
- [⚙️ Configuration Guide](./doc/en-US/configuration.md) - Detailed configuration parameters
5555
- [📝 Release Notes](./doc/en-US/release-notes/README.md) - Version update history

doc/en-US/build.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -174,9 +174,6 @@ echo "API_URL=http://localhost:5146" > .env.local
174174
# Install dependencies
175175
npm install
176176

177-
# Or use pnpm (recommended, faster)
178-
# pnpm install
179-
180177
# Start development server
181178
npm run dev
182179
```

doc/en-US/model-providers.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
**English** | [简体中文](../zh-CN/model-providers.md)
44

5-
Sdcb Chats supports 21+ mainstream AI model providers. Here is the complete list:
5+
Sdcb Chats supports 22+ mainstream AI model providers. Here is the complete list:
66

77
| Id | Name | Added | Interleaved Thinking |
88
| --- | ---------------- | ----------------------------------------------------------- | -------------------- |
@@ -28,6 +28,7 @@ Sdcb Chats supports 21+ mainstream AI model providers. Here is the complete list
2828
| 19 | Token Pony | [2025-11-07](https://github.com/sdcb/chats/commit/32e4a0d5) ||
2929
| 20 | Anthropic | [2025-11-24](https://github.com/sdcb/chats/commit/22ebef98) ||
3030
| 21 | Xiaomi Mimo | [2025-12-17](https://github.com/sdcb/chats/commit/026f1a4e) ||
31+
| 22 | Novita AI | [2026-03-13](https://github.com/sdcb/chats/commit/cecfc66d) ||
3132

3233
## Notes
3334

0 commit comments

Comments
 (0)