惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
Webroot Blog
Webroot Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
T
Threat Research - Cisco Blogs
V2EX - 技术
V2EX - 技术
L
LINUX DO - 热门话题
Google DeepMind News
Google DeepMind News
Recorded Future
Recorded Future
S
Schneier on Security
I
InfoQ
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
The GitHub Blog
The GitHub Blog
S
Security @ Cisco Blogs
O
OpenAI News
W
WeLiveSecurity
Vercel News
Vercel News
阮一峰的网络日志
阮一峰的网络日志
Simon Willison's Weblog
Simon Willison's Weblog
人人都是产品经理
人人都是产品经理
Cloudbric
Cloudbric
The Last Watchdog
The Last Watchdog
The Hacker News
The Hacker News
Google Online Security Blog
Google Online Security Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
GbyAI
GbyAI
NISL@THU
NISL@THU
T
Tailwind CSS Blog
V
Visual Studio Blog
PCI Perspectives
PCI Perspectives
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
D
DataBreaches.Net
B
Blog RSS Feed
N
News and Events Feed by Topic
N
News and Events Feed by Topic
H
Heimdal Security Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
腾讯CDC
Latest news
Latest news
V
Vulnerabilities – Threatpost
Hacker News: Ask HN
Hacker News: Ask HN
WordPress大学
WordPress大学
V
V2EX
aimingoo的专栏
aimingoo的专栏
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
D
Darknet – Hacking Tools, Hacker News & Cyber Security
The Register - Security
The Register - Security
Help Net Security
Help Net Security

博客园 - .NET骚操作

.NET 10 的正则性能现在什么水平?我拿它和 Go、Python、C++、PCRE2 测了一轮 C++ vs .NET 数组原地反转实测:小数组 C++ 碾压,大数组 .NET 反杀? Sdcb Chats 1.10 私有化代码执行器部署教程 复刻 ChatGPT 高级数据分析!Sdcb Chats 1.10 重磅发布:能分析Excel、做PPT .NET 10了,HttpClient还是不能用using吗?我做了一个实验 两天烧掉200美元!我AI大模型网关终于支持了Claude模型 Sdcb Chats 1.8:又一次底层重构,彻底将模型提供商解耦 没有前端后,我把 MCP 做进了 Chats 1.7.0 AI 网关 不服跑个分?.NET 10 大整数计算对阵 Java,结果令人意外 从 OpenAI 兼容到 Anthropic 崛起:大模型“交错思考”协议的演进与变局 当加密ID需要变成Guid:为什么我选择了AES-CBC而非GCM? AES 加密模式演进:从 ECB、CBC 到 GCM 的 C# 深度实践 美丽而脆弱的天体运动:当C#遇见宇宙混沌 我是不是很有钱? Chats 1.6.8 发布:全面支持最新的 gpt-5 模型等 那些被推迟的 C# 14 特性及其背后的故事 我最喜欢的 C# 14 新特性 更复杂的代码,为何跑得快了10倍?一次Draw Call优化引发的思考 一个被BCL遗忘的高性能集合:C# CircularBuffer<T>深度解析 当物理定律与高精度计算相遇:我的新开源项目 N-Body
Sdcb Chats 1.6.6 发布,彻底移除 Azure.AI.OpenAI 专用包
.NET骚操作 · 2025-08-08 · via 博客园 - .NET骚操作

最近,我对我的开源项目 Sdcb Chats 进行了一次更新,发布了 1.6.6 版本。这次更新的核心,是解决了一个我个人一直很在意的技术债:彻底移除了对 Azure.AI.OpenAI 这个专用包的依赖。

在介绍具体改动前,先为新朋友简单介绍一下 Sdcb Chats。这是一个旨在帮助开发者和用户轻松接入、管理和使用各类主流大语言模型的开源项目。

核心特性包括:

  • 🔍 广泛的模型支持:兼容超过 18 种主流 LLM,包括 OpenAI、Azure OpenAI,以及在本地部署的 Ollama 等。
  • 🗄️ 灵活的数据库选项:支持 SQLite、SQL Server 和 PostgreSQL,可以根据部署规模灵活选择。
  • 🚢 多样的部署方式:提供 Docker 镜像和原生二进制文件,旨在实现快速、便捷的部署。
  • ⚙️ 完善的管理功能:内置多用户管理、Token 消耗统计与成本控制模块,为实际运营提供支持。

项目基于 Apache 2.0 协议开源,所有代码都托管在 GitHub,欢迎大家关注和贡献:https://github.com/sdcb/chats

接下来,我们详细聊聊 1.6.6 版本(包含 1.6.5 的累积更新)带来的变化。

API 的统一:移除 Azure.AI.OpenAI 依赖

在之前的版本中,为了同时兼容标准 OpenAI API 和 Azure OpenAI,我需要同时维护对 OpenAIAzure.AI.OpenAI 两个包的依赖。后者虽然是微软官方出品,但在实践中存在一些与主包不完全一致的 API 行为和配置,这给代码的统一性和维护性带来了一些不必要的麻烦,算是一个不大不小的“痛点”。

好消息是,微软最近终于将 Azure OpenAI 的预览版 API 更新为与官方 OpenAI API 完全兼容。

官方的参考文档也明确了这一点:Azure OpenAI Service preview API reference

这一变化意义重大。现在,我可以直接移除 Azure.AI.OpenAI 包,只保留 OpenAI 包,就能同时服务于两个平台。代码逻辑得到了极大的简化,不再需要那些条件编译或分支判断来处理不同平台的差异。对于追求代码简洁的我来说,这是一个非常受欢迎的改进。

得益于 API 的统一,之前的一些模型使用限制也自然解除了:

  • o3/o4-mini 这类需要 Response API 的模型,之前只能通过 Azure 部署,现在同样支持标准的 OpenAI 渠道。
  • 图片生成模型 gpt-image-1 也一样,不再受限于必须使用 Azure OpenAI,现在两个渠道均可使用。

Gemini_Generated_Image_agbiz3agbiz3agbi

其他更新与 Bug 修复

当然,除了这个核心变化,还有一些其他的调整。

首先,作为常规维护的一部分,我将项目依赖的一系列 NuGet 包更新到了最新版本,具体清单如下:

AWSSDK.S3 updated to 4.0.6.3
Microsoft.EntityFrameworkCore.* updated to 9.0.8
Mscc.GenerativeAI updated to 2.6.8
OpenAI updated to 2.3.0
System.IdentityModel.Tokens.Jwt updated to 8.13.0
System.Runtime.Caching updated to 9.0.8

其次,也修复了一个迭代开发中出现的典型问题。在 1.6.5 版本中,我修复了 o3/o4-mini 等模型在使用 JSON Schema 时会导致 API 调用失败的 Bug。然而,这个修复却意外导致了 gpt-image-1 图片生成模型的调用出错。修复一个 Bug 引入另一个,这大概是软件开发的常态了。在 1.6.6 版本中,这个问题已经得到修正,保证了功能的稳定性。

如何快速上手?

如果你想体验 Sdcb Chats,可以通过以下两种方式部署。

对于习惯使用 Docker 的用户,可以使用以下命令:

docker run --restart unless-stopped --name sdcb-chats -v ./AppData:/app/AppData -p 8080:8080 sdcb/chats:latest

如果你偏好直接运行二进制文件,可以访问项目的 GitHub Release 页面:
https://github.com/sdcb/chats/releases

以 Windows 为例,下载 chats-win-x64.zip,解压后运行 Chats.BE.exe 即可启动服务。

需要说明的是,项目默认使用 SQLite 数据库,并会自动创建,无需额外配置。如果你的业务需要更专业的数据库,它也支持 SQL Server 和 PostgreSQL,具体配置方法请参考项目首页的文档。

关于下载地址

我之前提供过一个位于 io.starworks.cc:88 的国内下载镜像,主要是为了解决 GitHub Release 在国内访问慢的问题。但这个镜像的稳定性并不理想,后续我可能不再投入精力维护。因此,建议大家还是优先通过官方的 GitHub Release 页面进行下载,以确保获取到最稳定和最新的版本。

总的来说,这次更新让 Sdcb Chats 的底层实现更加干净和统一,也体现了上游技术生态(这里指 Azure)向开放标准靠拢的积极趋势。这对于开发者无疑是件好事。


感谢阅读到这里,如果感觉本文对您有帮助,请不吝评论点赞,这也是我持续创作的动力!

也欢迎加入我的 Sdcb Chats QQ群:498452653,一起交流 .NET 和 AI 的各种有趣玩法!