最近,我对我的开源项目 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. select * 和 select 字段的区别

    摘要:介绍 select * 和 select 字段的区别,建议各位不要使用 select * .   在千万级表中查询数据的时候,需要千方百计提升查询效率,为用户带来最爽的体验:业界各位大佬都提到 ...

  2. Java 记录操作日志|对象修改细节

    背景描述   由于业务涉及收入敏感信息,需记录数据变更前的内容和变更后的内容,但是不能为完成任务而硬编码,要适用于不同bean.针对这种情况,本文使用泛型.反射和基于AOP的自定义注解技术来完成,对对 ...

  3. 数栈技术分享:解读MySQL执行计划的type列和extra列

    一.解读type 执行计划的type表示访问数据类型,有很多种访问类型. 1.system表示这一步只返回一行数据,如果这一步的执行对象是一个驱动表或者主表,那么被驱动表或者子查询只是被访问一次. 2 ...

  4. .Net Web API 001 新建Net Web API工程

    1.新建工程 打开VS2022,点击新建项目,弹出创建新项目对话框,然后在项目模板处,选择C#.所有平台以及WebAPI,如下图所示. 选择了下面的唯一模板,点击下一步,设置项目的名称.保存路径等.如 ...

  5. python扩展中的调试器不再支持小于3.8的python版本(debugpy)

    报错原因 python版本过低,vscode的插件不再支持低版本的python调试. 尝试方法 如果搜这个报错,常见的方法就是降低插件版本,但是可能带来新的问题:vscode Cannot read ...

  6. Windows系列操作系统,跳过开机密码直接登录

    要让 **Windows 11** 在启动时 **自动登录**,跳过开机输入密码,通常不推荐直接修改注册表来实现,但如果你希望使用注册表实现这个效果,可以按如下方式操作: --- ## 方法:修改注册 ...

  7. Win10更新为Win11失败,可尝试用Win11 安装助手升级。

    Win10更新为Win11总是失败的,可以试一下Windows 11 安装助手. ​而且,系统自动更新后只能是Win11的23H2版本,后面还需要继续更新.而安装助手直接升级到24H2的最新版本. W ...

  8. 前端 Git Commit & branchs 规范

    前端 Git Commit & branchs 规范 1.分支 master 分支为主分支(保护分支)不能直接在master分支上进行修改代码和提交:且master分支为线上版本分支,代码只能 ...

  9. qt 居中

    简介 RT code QHBoxLayout* hb = new QHBoxLayout; QWidget* qw = new QWidget(); hb->addWidget(nPbTurn) ...

  10. Hugging Face 开源 HopeJR 机器臂!今日直播带你深入技术核心

    我们的 LeRobot 项目又有了新动作 - HopeJR 正式开源! HopeJR 是一款拥有 23 自由度的开源仿生机械臂系统,支持遥操作控制,具备完成复杂任务的能力,适用于科研与开发场景.整个机 ...