跳到正文

LiteLLM

用 LiteLLM Python SDK 呼叫 HopBase,或在 LiteLLM Proxy 的 config.yaml 裡把請求路由到 HopBase。

LiteLLM 為多家模型供應商提供統一介面,既可以作為 Python SDK(litellm.completion)使用,也可以作為自架的代理伺服器使用。HopBase 以 OpenAI 相容 provider 的身分接入兩者:模型 ID 前加 openai/,再設定 api_base。

設定項值
modelopenai/<HopBase 模型 ID>,例如 openai/deepseek-v4.1-flash-1017
api_basehttps://api.hop-base.com/v1
api_key控制台建立的金鑰

已在生產環境用 LiteLLM 1.106 實測:litellm.completion 一般呼叫與 stream=True 串流呼叫,以及 LiteLLM Proxy 的一般請求與串流請求均正常。

建立金鑰時選含該模型的分組:

HopBase 的金鑰只能呼叫它所含分組裡的模型。在控制台建立金鑰時,選中提供目標模型的分組——例如 deepseek-v4.1-flash-1017 選DeepSeek,deepseek-v4.1-flash-1017-sg 選DeepSeek 新加坡機房,gemini-3.8-flash 選Gemini 全系(含生圖)。金鑰不含該模型所在分組時會回傳 404 model_not_found。

openai/ 前綴只告訴 LiteLLM 用哪種協議,發送請求前會被去掉,HopBase 收到的是原樣模型 ID。

Python SDK

pip install litellm
export HOPBASE_API_KEY=sk-your-key
import os
import litellm

response = litellm.completion(
    model="openai/deepseek-v4.1-flash-1017",
    api_base="https://api.hop-base.com/v1",
    api_key=os.environ["HOPBASE_API_KEY"],
    messages=[{"role": "user", "content": "Reply with one word: hello."}],
)
print(response.choices[0].message.content)

串流呼叫參數相同,再加 stream=True:

stream = litellm.completion(
    model="openai/deepseek-v4.1-flash-1017",
    api_base="https://api.hop-base.com/v1",
    api_key=os.environ["HOPBASE_API_KEY"],
    messages=[{"role": "user", "content": "Count from 1 to 5."}],
    stream=True,
)
for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="")

LiteLLM Proxy

在 config.yaml 裡把用戶端要呼叫的每個名稱對應到一個 HopBase 模型:

model_list:
  - model_name: deepseek-v4.1-flash-1017
    litellm_params:
      model: openai/deepseek-v4.1-flash-1017
      api_base: https://api.hop-base.com/v1
      api_key: os.environ/HOPBASE_API_KEY

general_settings:
  master_key: os.environ/LITELLM_MASTER_KEY

os.environ/HOPBASE_API_KEY 讓代理從環境變數讀取 HopBase 金鑰。新版 LiteLLM 沒有 master_key 時拒絕啟動;它是你自己的用戶端呼叫代理時使用的金鑰,與 HopBase 金鑰無關。

pip install 'litellm[proxy]'
export HOPBASE_API_KEY=sk-your-key
export LITELLM_MASTER_KEY=sk-your-proxy-key
litellm --config config.yaml --port 4000

然後像呼叫任何 OpenAI 相容入口一樣呼叫代理:

curl http://localhost:4000/v1/chat/completions \
  -H "Authorization: Bearer $LITELLM_MASTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "deepseek-v4.1-flash-1017", "messages": [{"role": "user", "content": "Reply with one word: hello."}]}'

要開放更多模型,每個模型 ID 在 model_list 裡加一條,例如 openai/deepseek-v4.1-flash-1017-sg 或 openai/gemini-3.8-flash,並確保金鑰包含提供它的分組。

各模型價格見價格頁。

常見問題

現象原因
AuthenticationError / 401執行 LiteLLM 的環境裡沒有設定 HopBase 金鑰,或金鑰已停用
404 model_not_found金鑰不含該模型所在分組,或 openai/ 後面的 ID 寫簡了。重新查看 GET /v1/models
LLM Provider NOT provided模型 ID 缺少 openai/ 前綴
代理啟動時退出並提示 no master key is set新增 general_settings.master_key 或設定 LITELLM_MASTER_KEY

下一步