跳到正文

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

下一步