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

推荐订阅源

酷 壳 – 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吗?我做了一个实验 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 模型等 Sdcb Chats 1.6.6 发布,彻底移除 Azure.AI.OpenAI 专用包 那些被推迟的 C# 14 特性及其背后的故事 我最喜欢的 C# 14 新特性 更复杂的代码,为何跑得快了10倍?一次Draw Call优化引发的思考 一个被BCL遗忘的高性能集合:C# CircularBuffer<T>深度解析 当物理定律与高精度计算相遇:我的新开源项目 N-Body
两天烧掉200美元!我AI大模型网关终于支持了Claude模型
.NET骚操作 · 2026-01-21 · via 博客园 - .NET骚操作

这是一个关于“真金白银”的开发故事。

Chats 1.9.0 发布于 2025 年 11 月 27 日,距离上一个版本发布仅过去了不到一个月。但对 Chats 来说,这却是一个里程碑式的版本:我们不仅全面支持了 Anthropic(Claude)模型,还顺带把 .NET 10 给升了,甚至还搞出了一套能在 Chats 里“借壳”跑 Claude Code 的 API 兼容层。

而在这一切的背后,是一张让我“肉痛”的 Azure 账单。

一切源于“微软与 Anthropic 联手”

事情要从 2025 年 11 月 19 日说起。那天,微软与 Anthropic 达成合作,宣布将在 Azure 平台上提供 Anthropic 的 Claude 大模型服务。这意味着开发者和企业用户可以通过 Azure 云服务访问 Claude 模型。

作为一名微软 MVP,我本以为 Claude 模型对 MVP 额度来说是可以使用的,因为根据以往的经验,如果没有资格使用某项服务,通常会直接在控制台里提示“无权限”或“无法启用”,而不是直接允许使用然后产生高额费用,但我大意了。

因此我第一时间就想到了将 Claude 模型集成到我自己的项目中——Sdcb Chats

当时为了确保 Anthropic Messages API 工作正常且稳定,我做了大量的测试。为了验证兼容性,我甚至还“站起来蹬”,直接接入了 Anthropic 官方的命令行工具 Claude Code 来跑 Opus 模型。

结果……短短 2 天时间,我在 Azure 上跑 Claude 模型的 API 调用费用就高达 192.95 美元

当时看到账单整个人都是蒙的。不过好在“氪金”没有白费,最终我成功将 Claude 模型完美集成到了 Sdcb Chats 中。现在,大家可以在 Chats 中愉快地使用 Claude 模型了!

1.9.0 的核心:Anthropic 全面落地

在 1.9.0 之前,Chats 对 Claude 的支持只能说是“能用”,因为并没有原生支持 Anthropic Messages API,需要通过 OpenAI 兼容接口转译——而 OpenAI Chat Completions 兼容接口并不支持 Extended Thinking。但这一次,我是原生支持

原生 HttpClient 实现与 Thinking 支持

为了追求极致的性能和可控性,我重写了 Chats 的底层调用逻辑。

原本 Anthropic 提供了Anthropic C# API Library,我一开始使用了这个 SDK,但发现里面的验证逻辑有点太过分了,连模型名称都要验证(报错说:AnthropicInvalidDataException: Data did not match any variant of RawMessageStreamEvent)。在我开发的时候,Opus 模型还没发布 4.5 版本,我使用这个 SDK 连自家的 Claude 4.5 Opus 都报错,笑死!更不要提用这个 SDK 连接国产的 MiniMax/GLM/DeepSeek v3.2 了,这种操作非常“Anthropic”(这个问题直到 2026-01-14 发布的 12.2.0 版本中才解决!)。

image

因此我的 Git 提交记录里可以看到,我一开始是准备走 SDK 做 Anthropic 支持的,但最终又放弃了,转而在代码中用原生 HttpClient 手撸了一个近 1000 行的 AnthropicChatService

这意味着什么?

  1. 完整支持 Thinking(思维链):Claude 模型的 Thinking 可以像在官方网页版那样展示,支持流式输出,“思考”与“回答”分离。为此我在数据库中专门新增了 StepContentThink 表,用于独立存储思维内容。

  2. Signature(签名)验证:Chats 现在能正确处理和存储 Claude 的思维签名(Signature),确保证据链完整。

  3. Vision Link 优化:默认使用 URL 而非 Base64 传图,大幅节省带宽和 Token。

同时,我还引入了 MaxThinkingBudget(模型级)和 ThinkingBudget(会话级)配置,防止你的 Token 再像我一样“不知不觉”地烧完。

“借壳上位”:Anthropic Messages API 兼容

这一条可能比原生支持更硬核。

Chats 1.9.0 反向实现了 Anthropic 的官方 API 协议(/v1/messages)。我在 src/BE/web/Controllers/Api/AnthropicCompatible/AnthropicMessagesController.cs 中完整复刻了 Anthropic 的接口规范。这意味着 Chats 不仅是一个客户端,它本身也变成了一个标准的 Anthropic API 服务端

为什么要这么做?

因为现在有很多优秀的工具(比如 Cursor、Claude Code、各种 AI 插件)只支持 Anthropic 原生协议。为了支持官方的 claude-code 命令行工具(如动图,后台可以实时追踪 Claude Code 的使用信息):

我甚至专门修复了 System Prompt 的解析逻辑,同时,我还引入了 MaxThinkingBudget(模型级)和 ThinkingBudget(会话级)配置,以及 Prompt Cache Token 的计费支持(Commit 85a1c2a6),防止你的 Token 再像我一样“不知不觉”地烧完。

既然 Chats 已经变成了一个强大的 API 网关,那么配套的开发者体验必须跟上。

1.9.0 新增了 Build 模块,包含三个核心页面:

  • API Keys:更安全的密钥管理,支持过期时间、备注,还能看到密钥掩码。
  • Docs:一站式文档,列出了所有兼容 OpenAI 和 Anthropic 的 API 端点(支持一键复制)。
  • Usage:按 API Key 维度的用量统计,谁用了多少 Token,一目了然。

视觉生产力:OpenAI 图像 API 与 .NET 10

除了大语言模型,1.9.0 还补齐了视觉能力:

  • 实现了标准的 OpenAI 图像生成(/v1/images/generations)和编辑(/v1/images/edits)API。
  • 配合前端的 ChatInput 动画优化,现在的图片生成体验更加流畅。

最后,作为一个 .NET 信仰粉,Chats 1.9.0 已经全线升级到了 .NET 10。虽然用户感知不强,但这带来了更好的性能和更现代的底层设施,为未来的长远发展打下了基础。

结语:为了更自由的 AI 网关

从 1.7 的 MCP 落地,到 1.9 的 Anthropic 原生支持与 API 兼容,Chats 正在一步步从一个“聊天网页”进化成一个真正通用的 AI 基础设施

那个 200 美元的账单虽然让人心痛,但它换来了 Chats 对 Claude 的完美支持,以及那段“为了测试而疯狂调用”的激情时光,我觉得——值了!

另外相信我,我做了一切努力尝试联系微软和 Anthropic,争取把那 200 美元的费用给要回来,但他们互相推诿,也没说是用户自己的行为或者平台责任,只是互相说这是对方(微软/Anthropic)的责任,所以最后也就不了了之了。

感谢阅读!喜欢的朋友请给我的 GitHub 项目一个 star:https://github.com/sdcb/chats

这是完整的更新日志:https://github.com/sdcb/chats/blob/main/doc/zh-CN/release-notes/README.md

有什么想法也欢迎在评论区留言交流,也欢迎加入我的新创建的微信群:

如果你更习惯用 QQ 的话,也可以加入 Chats QQ 群:498452653,我们一起探索更多 AI 技术硬核玩法。