Integrations

本地模型服务

将 Ollama、vLLM、LM Studio 或 llama.cpp 接入 BitRouter —— 免费、本地、OpenAI 兼容。

本地模型服务

在自己的机器上运行模型,并让它走 BitRouter。Ollama、vLLM、LM Studio 与 llama.cpp 都暴露 OpenAI 兼容 API,因此每一个都是在 bitrouter.yaml 中加一个块的事。一切都留在 localhost —— 无需云账户,无按 token 计费。

1. 生成配置

生成一份起始 bitrouter.yaml(默认为 ./bitrouter.yaml):

bitrouter init

这会写出一份带注释、skip_auth: true 的配置,供你添加 provider。用 -c <path> 写到别处。

2. 添加你的本地服务

选择你的运行时。每个标签页展示要放进 bitrouter.yaml 的 provider 块、启动服务的命令,以及如何路由到该模型。providers 是一个以你自选 id 为键的映射;api_base 是服务的 OpenAI 兼容基础 URL;api_protocol 是上游线格式(任何 OpenAI 兼容服务都用 chat_completions —— 这也是推断的默认值,因此该块可省略);models 下每一项是该服务提供的模型 id。

# bitrouter.yaml
providers:
  ollama:
    api_base: http://localhost:11434/v1
    api_protocol:
      - "*": chat_completions
    models:
      - id: llama3.1
# 启动 Ollama 并拉取模型(默认端口 11434)
ollama serve &
ollama pull llama3.1

用 provider 限定 id(provider:model)或裸模型名路由:

bitrouter route ollama:llama3.1
# bitrouter.yaml
providers:
  vllm:
    api_base: http://localhost:8000/v1
    api_protocol:
      - "*": chat_completions
    models:
      - id: meta-llama/Llama-3.1-8B-Instruct
# 启动 vLLM 的 OpenAI 兼容服务(默认端口 8000)
vllm serve meta-llama/Llama-3.1-8B-Instruct
bitrouter route vllm:meta-llama/Llama-3.1-8B-Instruct
# bitrouter.yaml
providers:
  lmstudio:
    api_base: http://localhost:1234/v1
    api_protocol:
      - "*": chat_completions
    models:
      - id: llama-3.1-8b-instruct
# 启动 LM Studio 的本地服务(默认端口 1234)
lms server start
lms load llama-3.1-8b-instruct
bitrouter route lmstudio:llama-3.1-8b-instruct
# bitrouter.yaml
providers:
  llamacpp:
    api_base: http://localhost:8080/v1
    api_protocol:
      - "*": chat_completions
    models:
      - id: llama-3.1-8b-instruct
# 启动 llama.cpp 的 OpenAI 兼容服务(默认端口 8080)
llama-server -m ./models/llama-3.1-8b-instruct.gguf
bitrouter route llamacpp:llama-3.1-8b-instruct

无需 API 密钥。 本地服务默认在回环地址上接受匿名请求,因此 provider 块不含 api_key。仅当你在服务前置了鉴权时才添加 api_key: ${MY_LOCAL_KEY} —— 它会在加载时从环境变量解析。

3. 启动 BitRouter 并发送请求

启动代理 —— 默认监听 127.0.0.1:4356

bitrouter

然后用配置中的模型 id 访问 OpenAI 兼容端点(按需替换为你的 provider id / 模型):

curl http://localhost:4356/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ollama:llama3.1",
    "messages": [{"role": "user", "content": "Hello from a local model"}]
  }'

裸模型名(llama3.1)同样有效 —— BitRouter 会将其自动级联到声明了该模型的活跃 provider。provider 限定的 ollama:llama3.1 形式则把请求固定到该确切 provider。

混用本地与托管。 声明一个虚拟模型,其 endpoints 先列你的本地 provider、再列一个托管 provider:请求在本地硬件上免费运行,并在出错或过载时回退到托管模型 —— 单一模型名,自动故障转移。

要了解背后的概念 —— 为何前置本地服务,以及注册表检测这一替代方式 —— 见本地与私有模型

How is this guide?

On this page