Sdcb Chats 1.6.6 發布,徹底移除 Azure.AI.OpenAI 專用包
最近,我對我的開源項目 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,我需要同時維護對 OpenAI 和 Azure.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 的各種有趣玩法!

浙公網安備 33010602011771號