前言#
🤯
前段時間手裡囤了一些 API,用的不多,主要用於博客的 AI 摘要功能。我的榆木腦袋經常會忘記這些平台的帳號密碼,這讓我決定使用 OneAPI 進行統一管理。儘管 OneAPI 的作者提供了詳盡的教程,但一些用戶(包括我自己)在部署時仍碰到了一些小問題。因此,在成功部署後,我決定為基礎不好的小白寫下這篇詳細的部署指南,希望能幫助大家少走彎路。
項目介紹#
OneAPI 項目是一個開放的接口管理和分發系統,支持多種大型語言模型,例如 OpenAI 的 ChatGPT、Azure、Anthropic Claude、Google PaLM 2 & Gemini 等。它旨在進行密鑰管理和重新分配,可以通過單個可執行文件或Docker 部署,並提供一個簡單統一的 API 來訪問不同的大型語言模型。該系統開源,使用 **MIT 許可證**,提供了模型支持、令牌管理和用戶組管理等功能。具體的部署和配置說明,用戶應參考該項目的 GitHub 倉庫和文檔
項目搭建#
本項目提供了 Docker 鏡像,使部署過程簡化。我們可以更加輕鬆的進行部署。
默認情況下使用 SQLite 數據庫,在未設置環境變量 **SQL_DSN
** 的情況下,數據庫文件將存儲在 Docker 容器指定的路徑上。如果設置了 SQL_DSN
環境變量,應用則會連接到您指定的 MySQL 或 PostgreSQL 數據庫。這樣當我們重新部署或拉取鏡像時我們之前的更改才不會丟失。
準備#
- 支持 Docker 的免費容器平台,如 Render 或 Zeabur。
- MySQL 或 PostgreSQL 數據庫(可選,推薦以保證數據持久性)。
- 一個域名(可選)。
部署步驟#
選擇你想要使用的托管平台#
- Hugging Face: 快速但不支持綁定域名,國內訪問可能受限。
- Render: 支持綁定域名,註冊可能需綁定信用卡。
- Koyeb: 支持綁定域名,需升級計劃。
- Zeabur: 訪問速度快,支持中文,部署 Docker 鏡像需升級計劃。
部署流程#
Note
huggingface 部署
- 複製 Docker 鏡像
點擊按鈕一鍵複製鏡像,配置THEME
(界面主題,如default
或berry
)和SQL_DSN
(數據庫連接)。我會在下面詳細列出。
Note
不同主題的效果如下,按照自己喜好挑選。
::: grid {cols=2,gap=4}
默認主題
berry 主題
:::
- 數據庫配置
-
使用如 aiven 或~~Planetscale ~~ 的免費數據庫服務,或Render 和 Koyeb 自帶的免費數據庫;為項目配置環境變量
SQL_DSN
: -
MySQL 示例:
SQL_DSN=root:123456@tcp(localhost:3306)/oneapi
-
PostgreSQL 示例:
SQL_DSN=postgres://postgres:123456@localhost:5432/oneapi
2.1註冊登錄我們進入 aiven 平台,註冊或登錄帳號。
2.2填入信息選擇個人服務,填入基本信息。
2.3選擇數據庫選擇 MySQL 數據庫或 PostgreSQL 數據庫。
2.4數據庫配置選中免費計劃,選擇服務地區,最後點擊創建。
2.5最終配置記下圖中的信息,一路點跳過。不記住也沒關係,全跳過後我們也能看到它們。
3.填寫變量
根據圖中的數據庫信息我們得到了這個:
服務 URI:
mysql://CLICK_TO:[email protected]:10906/defaultdb?ssl-mode=必需
Host:
mysql-12a9c26-jonastech007-2d92.b.aivencloud.com
Port:
10906
用戶:
avnadmin
密碼:
AVNS_QV8niFI8YW48vKqxi3R
我們的鏈接地址應該是這樣寫:用戶名:密碼@tcp(Host:Port)/數據庫名稱
最終我們得到了avnadmin:AVNS_QV8niFI8YW48vKqxi3R@tcp(mysql-12a9c26-jonastech007-2d92.b.aivencloud.com:10906)/defaultdb
把這個鏈接填入到變量中去,最後點擊複製到空間 Duplicate Space
4.訪問
這時候我們就可以通過點擊右上角的設置找到Embed this Space, 通過下面的鏈接進行訪問我們的服務。
Note
Koyeb 部署
1. 點擊進入Koyeb官網,進行登錄註冊後,點擊創建網絡服務選擇 docker 鏡像。
2. 在輸入框內容輸入 justsong/one-api:latest
, 如果你不知道這個從何的來的,可以查看開源項目中的compose.yml。
https://github.com/songquanpeng/one-api/blob/main/docker-compose.yml
${REGISTRY:-docker.io}
是一個環境變量表達式,表示如果環境變量REGISTRY
沒有設置,就使用默認的 docker.io
(Docker Hub)。
justsong/one-api:latest
指定了鏡像的名稱和標籤,其中 justsong
是 Docker Hub 上的用戶或組織名,one-api
是鏡像名,latest 表示使用這個鏡像的最新版本。
3. 設置必要變量和地區信息後點擊部署按鈕。
4.⌛️等待部署完畢後,我們可以點擊這個地址訪問我們的 One API。
5. 管理員帳號默認是
- 用戶名
- 密碼:123456
登錄後應立即在用戶中更改,從而保證帳戶的安全
使用方法#
考慮到能看我這篇文章的,大多是新手,我簡單演示一下它的使用方法。以上篇博文中介紹的免費 API** 頭頂冒火** 舉例。
對此沒有印象的朋友可以自行了解,或觀看 ** 這篇博文**
OneAPI 配置#
1. 登錄 OneAPI 的管理員帳號後,找到渠道, 點擊新建渠道
2. 渠道名稱我們可以隨便命名,渠道 API 地址就是轉發地址,因為我以 ** 頭頂冒火** 舉例,所以我只需填入它的請求地址:https://burn.hair
; 然後選擇 支持的模型; 添加你的 API KEY,最後提交。
3. 最後我們點擊 未測試 , 測一下 API 的連通性。
4. 完成測試之後,我們就可以在令牌處新建令牌進行分發使用。如果你想 你也可以在添加眾多 API 之後分享出來你的网站,讓大家來使用。
我們只需在後台維護各個 API 的渠道就行,至於我們 OneAPI 的請求地址,默認是我們的域名,你也可以在設置中進行更改。
## 結語
其實很多號商用的也是 OneAPI 或 NewAPI,其實沒有那麼難操作,只是你覺得麻煩不想去了解而已。現在 azure 註冊依然是贈送 200 美金額度的,GitHub 上也有很多 FreeAPI 項目,**linux.do** 中就更多了。單是個人日常使用是完全用不完的。
得了,天兒也不早了,我吃個早飯準備上班拉磨了,又是通宵的一天🙂。
此文由 Mix Space 同步更新至 xLog
原始鏈接為 https://www.laogou666.com/posts/AGI/OneAPI