最近,我对我的开源项目 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,现在两个渠道均可使用。

其他更新与 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 的各种有趣玩法!

Sdcb Chats 1.6.6 发布,彻底移除 Azure.AI.OpenAI 专用包的更多相关文章

  1. Azure China (3) 使用Visual Studio 2013证书发布Cloud Service至Azure China

    <Windows Azure Platform 系列文章目录> 之前有很多网友询问我如何通过VS发布Cloud Service至Azure China,这里我专门写篇文章,给大家详细介绍下 ...

  2. Visual Studio 2013发布Cloud Service至Azure China

    Visual Studio 2013发布Cloud Service至Azure China <Windows Azure Platform 系列文章目录> 之前有很多网友询问我如何通过VS ...

  3. KubeEdge SIG AI发布首个分布式协同AI Benchmark调研

    摘要:AI Benchmark旨在衡量AI模型的性能和效能. 本文分享自华为云社区<KubeEdge SIG AI发布首个分布式协同AI Benchmark调研>,作者:KubeEdge ...

  4. 使用WebMatrix发布网站到Windows Azure

    1. 在本地机安装 WebMatrix, 安装Windows Azure SDK 2. 登录Windows Azure, 网站 > 创建一个新网站或选择已有网站 3. 在发布应用程序,选择下载发 ...

  5. 宣布发布全新的 Windows Azure 缓存预览版

    全新 Windows Azure 缓存的预览版现已发布.此托管服务可以提供闪电般的数据访问速度,以帮助您构建更具可伸缩性.响应更快的应用程序. 详情如下: ·    托管式缓存:这一全新的托管服务为需 ...

  6. 2017中国人工智能公司榜单发布,颠覆AT的AI独角兽全在这

    每年12月,创业邦研究中心评选并报道“中国创新成长企业100强”,这个榜单我们已经连续做了8年,是中国最有潜力的创业新贵榜,受到了业内广泛认可.从2015年开始我们发现,人工智能上榜企业明显增多,20 ...

  7. 华为nova3发布,将支持华为AI旅行助手

    ​​​华为nova3于7月18日18:00在深圳大运中心体育馆举行华为nova 3的发布会,从本次华为nova3选择的代言人-易烊千玺,不难看出新机依然延续nova系列的年轻属性,主打 “高颜值 爱自 ...

  8. Windows Azure® 由世纪互联运营发布MySQL Database on Azure正式商用版

    我们很高兴宣布MySQL Database on Azure于2015年9月1日在中国地区正式商用.回望过去,从2014年12月对少量用户开放的预览试用,到2015年4月30日对中国用户全面开放的公共 ...

  9. 使用FTP发布和更新Windows Azure网站

    在Windows Azure中,FTP的用户名和密码与管理门户的用户名和密码不一样,需要另外设置. →依次点击左侧的"网站",网站名称,右侧的"设置部署凭据", ...

  10. 为什么 C# 可能是最好的第一编程语言

    纵观神州大地,漫游中华互联网,我看到很多人关注为什么你应该开始学习JavaScript做前端,而对blazor这样的面向未来的框架有种莫名的瞧不起,或者为什么你应该学习Python作为你的第一门编程语 ...

随机推荐

  1. 分钟级搭建你的专属大数据平台 ——TDH 社区开发版免费来袭

    ​ 星环科技TDH社区开发版集"开箱即用.分钟级部署.便捷开发"于一体,真正实现零门槛大数据开发体验!无需繁琐配置,只需一台机器,即可拥有企业级大数据平台的核心能力.目前,众多开发 ...

  2. Spring Boot2.5 集成数据库连接池 HikariCP

    目录 §工程环境 §数据库连接池介绍 数据库连接池工作原理剖析 §Java常见数据库连接池性能比较 §数据库连接池选型 Druid vs HikariCP性能对比 §HikariCP为什么这么快 §数 ...

  3. 使用Spring Boot 优雅地发送邮件

    1.前言        在实际项目中,经常需要用到邮件通知功能.比如,用户通过邮件注册账号,通过邮件找回账号密码等:又比如通过邮件发送系统运行情况,通过邮件发送报表信息,给用户发送营销信息等等,实际应 ...

  4. Kubernetes控制器-Deployment

    Kubernetes控制器-Deployment 我们已经知道ReplicaSet控制器是用来维护集群中运行的Pod数量的,但是往往在实际操作时候,我们反而不去直接使用RS,而是使用更上层的控制器,比 ...

  5. FastAPI安全机制:从OAuth2到JWT的魔法通关秘籍

    title: FastAPI安全机制:从OAuth2到JWT的魔法通关秘籍 date: 2025/06/07 08:40:35 updated: 2025/06/07 08:40:35 author: ...

  6. k8s pod从私有仓库拉取镜像凭证配置

    方案一: 通过Docker配置文件创建secret # 配置.docker/config.json文件,包含了与 Docker Hub 或其他私有仓库进行身份验证所需的凭据信息. [root@mac- ...

  7. Easy-Dataset实现文档生成数据集

    一.概述 Easy Dataset是一个专门为大型语言模型(LLM)创建微调数据集而设计的应用程序.它提供了一个直观的界面,用于上传特定领域的文件.智能分割内容.生成问题以及为模型微调生成高质量的训练 ...

  8. From Small Not Perfect

    自己想实现一个共享文档,然后统计每个人每周做题的数量,然后还想到每个月的统计,每年的统计,哇,好复杂哈 所以我想先做一个Excel,然后开始使用,中间发现了问题,然后调整,修改. 当我做了这个Exce ...

  9. New ABAP Debugger Session does not close after Exit

    最近在PRD调试程序的时候,每次都是调试结束,但是调试的会话不会关闭,每次都要退出程序或者右键结束进程才行... 之前一直没想着找这个问题,今天单独看了一下...可能这就是公用账号的悲哀吧... 两个 ...

  10. EasyMR6.2 全面解读:四大功能深度优化,解锁全新大数据处理和计算体验

    在刚刚过去的2024春季发布会上,袋鼠云带来了数栈产品V6.2版本的全新发布.其中,EasyMR 作为数栈V6.2中的一项关键能力,代表了袋鼠云对大数据生态的深入理解和持续创新. EasyMR(后文统 ...