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

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - .NET骚操作

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 的各种有趣玩法!