狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

Sdcb Chats:一個全新的開源大語言模型前端

freeflydom
2024年12月16日 9:58 本文熱度 468

在當前大語言模型(LLM)蓬勃發展的時代,各類 LLM 前端層出不窮。那么,為什么我們還需要另一個 LLM 前端呢?

最初的原因在于質感的追求。市面上已有的開源或不開源的大語言模型前端在用戶體驗上都缺少了一些類似 ChatGPT 那樣的質感。因此,我們打造了 Sdcb Chats——一個基于 Apache 2.0 協議開源的項目,旨在為用戶提供更優質的交互體驗。

另一個原因是市場上幾乎沒有基于 .NET 實現的 LLM 前端,這讓我個人感到非常遺憾和不滿。Sdcb Chats 旨在填補這個空白,不僅為 .NET 社區帶來一個功能強大的大語言模型前端,同時也展示 .NET 在現代 AI 應用中的潛力和優勢。

消息內容即是一棵樹

在與大語言模型交互時,傳統的對話形式可能會導致用戶與模型“爭吵”。Sdcb Chats 引入了樹狀消息結構,即在同一位置,用戶消息可以有多個回復,LLM 的響應也可以有多個。

這種設計的優勢在于:

  • 當您認為 LLM 的回復不正確時,您可以修改提示詞(Prompt)或請求 LLM 重新回復,而不是繼續爭論。
  • 提供了更靈活的對話路徑,方便回溯和比較不同的回答。

動圖1:Sdcb Chats 的主界面展示

如圖,與其在聊完之后再與LLM爭吵,不如修改Prompt。

遺憾的是,在我開發Chats之前,并沒有一個開源的LLM前端支持這個功能,這也是促成我要重新再做一個的根本原因。


大語言模型功能篇

多語言支持

動圖2:通過修改瀏覽器語言,Chats 支持多語言顯示

Sdcb Chats 支持多語言界面。您只需修改瀏覽器的語言設置,Chats 就會自動適配您的語言偏好,為全球用戶提供便捷。

聊天性能統計

動圖3:詳細的聊天性能統計

每次與 LLM 的對話,Chats 都會進行詳盡的統計,包括:

  • Token 數量
  • 延遲時間
  • 返回次數
  • 客戶端 IP
  • 用戶代理(User Agent)
  • 用戶相關信息

這些數據有助于您日后進行分析和優化。

多種大語言模型支持

動圖4:支持多種模型提供商,內置超過 100 款模型

Sdcb Chats 內置了對 9 種模型提供商的支持,包括 OpenAI 兼容協議在內。此外,還預置了超過 100 款模型的信息,方便您快速使用。

支持配置新的大語言模型

動圖5:演示如何新增 DeepSeek 和零一萬物模型

如果預置的模型不能滿足您的需求,您可以自行添加新的模型配置。在上述動圖中,我們演示了如何添加 DeepSeek 和零一萬物模型。

視覺模型支持

動圖6:支持多模態視覺模型與圖床功能

為了增強用戶體驗,Chats 支持視覺模型。我們為 Chats 添加了一層圖床,方便上傳和管理圖片。支持的圖床形式包括:

  • 本地文件
  • AWS S3
  • Minio
  • Azure Blob Storage
  • 阿里云 OSS

API 網關功能

動圖7:強大的 API 網關功能

很多開源項目聲稱兼容 OpenAI API 協議的 API 網關功能,但可能僅僅是 HTTP 協議的轉發。Chats 的 API 網關不僅支持按用戶權限配置模型、限制模型量,還支持目的地為非 OpenAI 協議的模型提供商,進行透明代理

API 網關支持參數

動圖8:全面支持 OpenAI API 的參數和功能

Chats 的 API 網關全面支持 OpenAI API 的所有參數,包括最新的 max_response_tokens(適用于最新的 OpenAI o1 模型)和 response_format=json_schema 等功能。此外,響應的結束原因等信息也會忠實于源 API 的響應,確保兼容性和準確性。


部署與兼容性

簡單部署:Docker 支持

圖片9:復雜的 GitHub Actions CICD 流程

Sdcb Chats 提供了便捷的 Docker 部署方式。我們在 GitHub Actions 中編寫了復雜的 CICD 流程,會自動編譯包括 Windows、Linux 等 4 種不同操作系統的原生支持 Docker 鏡像。

動態選擇合適的 Docker 鏡像

圖片10:通過 manifest 部署的 Docker 標簽

通過使用 docker.io/sdcb/chats:latest 這樣的 Docker 標簽,Docker 會根據您的操作系統和平臺架構(如 amd64、arm64 等)動態選擇合適的 Docker 鏡像下載,這大大簡化了部署流程。Chats 提供了以下幾個鏡像:

描述Docker 鏡像
Latestdocker.io/sdcb/chats:latest
rdocker.io/sdcb/chats:r
Linux x64docker.io/sdcb/chats:r{version}-linux-x64
Linux ARM64docker.io/sdcb/chats:r{version}-linux-arm64
Windows Nano Server 1809docker.io/sdcb/chats:r{version}-nanoserver-1809
Windows Nano Server LTSC 2022docker.io/sdcb/chats:r{version}-nanoserver-ltsc2022

說明:

  • Latest 和 r{version} 鏡像中已經包含了以下四個操作系統版本的支持:
    • Linux x64
    • Linux ARM64
    • Windows Nano Server 1809(適用于 Windows Server 2019)
    • Windows Nano Server LTSC 2022(適用于 Windows Server 2022)

因此,用戶在使用 docker pull 時,無需指定具體的操作系統版本,Docker 的 manifest 功能會自動選擇適合您系統的正確版本。這確保了用戶能夠輕松獲取與其環境兼容的鏡像,避免了選擇錯誤鏡像的風險。

請注意,r{version} 中的 {version} 表示具體的版本號,例如 r141(在編寫文檔時的最新版本號)。通過這種方式,您可以始終獲取到最新或指定版本的最優匹配版本,確保部署的快速和可靠。

簡單部署——Linux 容器演示

動圖11:在 Linux 上部署 Chats,雖然圖片是在Windows pwsh中演示,但我Docker Desktop啟用的是Linux容器

在 Linux 上,您可以按照以下步驟輕松部署 Chats:

  1. 創建 AppData 文件夾并設置權限:

    mkdir ./AppData && chmod 777 ./AppData
    
  2. 運行 Docker 命令:

    docker run --restart unless-stopped --name sdcb-chats -v ./AppData:/app/AppData -p 8080:8080 sdcb/chats:latest
    

創建之后,默認的用戶名為 chats,默認密碼為:RESET!!!,請注意,為了您的安全,請登錄之后立即修改您的默認密碼。

簡單部署——Windows 容器演示

動圖12:在 Windows 上部署 Chats

許多朋友可能不知道,Windows 也有原生的 Docker。Chats 支持在 Windows 上以進程隔離的方式部署 Docker,這與 Linux 的部署方式類似,但映射的目錄變為了 C:\app\AppData

簡單部署——可運行文件安裝

圖片13:GitHub Actions 的 Summary 頁面

對于不方便使用 Docker 的用戶,Sdcb Chats 提供了可直接運行的二進制文件。我們通過 GitHub Actions 的 Matrix strategy,自動編譯了 8 種不同操作系統或平臺的 Native AOT 編譯版本。對于不便使用 Docker 部署的環境,Chats 提供了 8 種操作系統或架構的直接部署選項,您可以從以下鏈接獲取相應的編譯包:

圖片14:上傳到 GitHub Release 和個人 Minio 服務器的編譯文件

考慮到國內用戶訪問 GitHub 速度較慢,我們將編譯文件同時上傳到了個人的 Minio 服務器,方便快速下載。

動圖15:演示如何下載和部署 Windows 版 Chats

直接下載適合您操作系統的壓縮包,解壓后雙擊 Chats.BE.exe 即可運行(對于 Linux 也同樣,直接運行里面的 Chats.BE 即可),無需安裝 .NET SDK 或 Runtime。

版本和下載說明

  1. 指定版本下載地址
    • 若需下載特定版本的 Chats,將鏈接中的release/latest/download替換為releases/download/r-{version}。例如,版本 141 的 Linux ARM64 文件鏈接為:
      https://github.com/sdcb/chats/releases/download/r-141/chats-linux-arm64.zip
      

執行文件目錄結構和運行說明

解壓AOT可執行文件后的目錄結構如下:

C:\Users\ZhouJie\Downloads\chats-win-x64>dir
 2024/12/06  16:35    <DIR>          .
 2024/12/06  16:35    <DIR>          ..
 2024/12/06  16:35               119 appsettings.Development.json
 2024/12/06  16:35               417 appsettings.json
 2024/12/06  16:35           367,144 aspnetcorev2_inprocess.dll
 2024/12/06  16:35        84,012,075 Chats.BE.exe
 2024/12/06  16:35           200,296 Chats.BE.pdb
 2024/12/06  16:35         1,759,232 e_sqlite3.dll
 2024/12/06  16:35           504,872 Microsoft.Data.SqlClient.SNI.dll
 2024/12/06  16:35               465 web.config
 2024/12/06  16:35    <DIR>          wwwroot
  • 啟動應用:運行 Chats.BE.exe 即可啟動 Chats 應用,該文件名雖指“后端”,但實際同時包含前端和后端組件。
  • 數據庫配置:默認情況下,應用將在當前目錄創建名為 AppData 的目錄,并以 SQLite 作為數據庫。命令行參數可用于指定不同的數據庫類型:
    .\Chats.BE.exe --DBType=mssql --ConnectionStrings:ChatsDB="Data Source=(localdb)\mssqllocaldb; Initial Catalog=ChatsDB; Integrated Security=True"
    
    • 參數 DBType:可選 sqlitemssql 或 pgsql
    • 參數 --ConnectionStrings:ChatsDB:用于指定數據庫的ADO.NET連接字符串。

特殊說明

  • 對于下載的 chats.zip,將需要.NET SDK支持。安裝 .NET 運行時后,使用 dotnet Chats.BE.dll 啟動程序。

多數據庫支持(感謝 EF Core)

圖片16:支持多種數據庫類型

Chats 的后端使用 Entity Framework Core 訪問數據庫,支持:

  • SQLite:DBType=sqlite
  • SQL Server:DBType=mssql
  • PostgreSQL:DBType=pgsql

在程序首次運行且數據庫不存在時,Chats 會嘗試自動創建數據庫、相關表并插入基礎數據。

多文件服務支持

圖片17:支持多種圖床形式

Chats 支持本地文件、Minio/AWS S3、阿里云 OSS 和 Azure Blob Storage 五種圖床形式,您可以根據需要進行配置。

我們創新性地使用了云服務廠商提供的 Presigned URL 或 SAS URL,這樣可以節省 Chats 服務器的帶寬,并提高圖片的訪問速度,增強用戶體驗,比如:

此外,我們引入了 PartialBufferedStream,在讀取用戶上傳圖片的元信息(如寬高)時,不需要完全讀入整個文件,節省內存。實際運行中,Chats 的內存占用僅約 200MB,具體代碼可以從這個鏈接中參考:https://github.com/sdcb/chats/blob/main/src/BE/Services/ImageInfo/PartialBufferedStream.cs


用戶管理與安全

完善的用戶管理功能

圖片19:管理員的用戶管理界面

作為一款面向企業應用的軟件,Sdcb Chats 提供了強大的用戶管理功能。管理員可以:

  • 限制用戶能使用的模型
  • 限制 token 數量
  • 限制聊天次數
  • 設置模型過期時間

用戶有余額概念,模型的價格可配置。余額通過記賬表實現,每一筆開銷或收入都會記錄,賬戶余額通過記賬表統計,確保并發請求下余額計算的準確性。

支持 Keycloak SSO 登錄

動圖20:使用 Keycloak SSO 登錄

企業通常有自己的身份認證系統,如 Keycloak SSO。Chats 支持集成這些系統,登錄時如果用戶不存在,會自動創建。只需配置相應的 well-known URLclient ID 和 client secret

手機號碼驗證碼登錄

圖片21:手機驗證碼登錄界面

為方便國內用戶,Chats 支持手機號碼驗證碼登錄,提升用戶體驗和安全性。

邀請碼與注冊

圖片22:邀請碼配置界面

如果您不想開放注冊,可以使用邀請碼機制。邀請碼可以限制邀請次數,初始贈送金額,以及模型、token 數、使用次數和過期時間等。

圖片23:通過邀請碼注冊的新用戶初始權限設置

當 token 數和聊天次數都為 0 時,將使用余額,按照模型配置的價格扣費。


Sdcb Chats 現已開源!

項目地址:https://github.com/sdcb/chats

  • 項目最初由我的好朋友文旺發起
  • 歷經超過 1000 次簽入打磨
  • 我們公司同事已經內部使用(dog food)一年

Sdcb 的含義

Sdcb:Serving dotNet, Constructing Brilliance(服務 .NET,構建卓越)

我們致力于為 .NET 社區和廣大開發者提供高質量的開源項目。

開源協議

Apache 2.0 開源協議(可免費商用)

您可以自由地使用、修改和分發 Sdcb Chats,無需商用授權。

歡迎 Star ?

如果您覺得這個項目對您有幫助,請在 GitHub 上給我們一個 Star!您的支持是我們前進的最大動力。


感謝您的閱讀和支持!讓我們一起用 Sdcb Chats 探索大語言模型的無限可能!

轉自https://www.cnblogs.com/sdcb/p/18597030/sdcb-chats-intro


該文章在 2024/12/16 9:58:07 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved