MMSP
GitHub123

模型与端点

MMSP 的客户端构成、各客户端支持的模型,以及如何调用任意兼容端点。

客户端由 client_type 指定。官方客户端直接对接厂商原生 API,识别该厂商的模型,并从环境变量读取厂商的 key。兼容客户端则使用统一的接口协议,可调用任何提供该协议的端点。

使用模型时需传入精确的模型 id。如果模型 id 以已知的系列名开头,系统会自动识别其对应的官方客户端,此时可省略 client_type;否则会报错并要求显式指定。

官方客户端

client_type 模型 协议 Key 与端点
openai-official gpt-6.1-sol、gpt-6-astra、gpt-5.6-sol、gpt-5.5;text-embedding-3-large、text-embedding-3-small OpenAI Responses;text-embedding-* 走 Embeddings OPENAI_API_KEY OPENAI_BASE_URL
anthropic-official claude-opus-5-5、claude-sonnet-5-5、claude-haiku-5-5、claude-fable-5-1、claude-opus-5、claude-sonnet-5 Anthropic Messages ANTHROPIC_API_KEY ANTHROPIC_BASE_URL
google-official gemini-4-argon、gemini-3.8-flash、gemini-3.7-flash、gemini-3.1-pro-preview;gemini-3.1-flash-image、gemini-3.8-flash-tts;gemini-embedding-2 Gemini Interactions GEMINI_API_KEY GEMINI_BASE_URL
zai-official glm-5.3、glm-5.3-flash、glm-5.2 Chat Completions ZAI_API_KEY ZAI_BASE_URL
moonshot-official kimi-k3.1-pro、kimi-k3.1-pro-highspeed、kimi-k3、kimi-k2.6 Chat Completions MOONSHOT_API_KEY MOONSHOT_BASE_URL
deepseek-official deepseek-flash、deepseek-v4-pro Responses DEEPSEEK_API_KEY DEEPSEEK_BASE_URL
minimax-official MiniMax-M3.1-Flash、MiniMax-M3 Responses MINIMAX_API_KEY MINIMAX_BASE_URL

每行列出了客户端读取的环境变量:先是 key,然后是端点。端点默认为厂商官方地址。官方客户端始终读取这些变量,因此也能用于对接镜像了厂商 API 的网关。例如,OpenRouter 上的 deepseek/deepseek-v4-pro 可通过 deepseek-official 调用,SiliconFlow 上的 Pro/moonshotai/Kimi-K2.6 可通过 moonshot-official 调用,只需传入网关的 base_url 和 api_key 即可。

Gemini 4 Argon(gemini-4-argon)支持 low、medium(默认)和 high 思考档位。MMSP 将 none 映射为 low,将 xhigh/max 映射为 high。其 1,048,576-token 上下文窗口由输入、思考和输出共享,同步流式输出最多 65,536 tokens。更长输出需要 Google 的存储式后台执行,不在 MMSP 的无状态流式接口范围内。缓存仅支持隐式缓存。

MiniMax-M3.1-Flash(MiniMax-M3.1-Flash)始终思考,支持 low 到 max 档位(默认 max)。MMSP 将 none 映射为 low,xhigh 和 max 原样传递。它没有 priority 档位,也会忽略 tool_choice: "none",因此 fast_mode 和 tool_choice: "none" 会抛出 UnsupportedParameterError。

按模型 id 路由

若不指定 client_type,系统会根据模型 id 开头的系列名自动路由:

id 前缀 client_type
gpt-、text-embedding- openai-official
claude- anthropic-official
gemini- google-official
glm- zai-official
kimi- moonshot-official
deepseek- deepseek-official
minimax- minimax-official

匹配不区分大小写,因此 MiniMax-M3 也能正确路由。网关的模型 id(如 moonshotai/kimi-k3)或 Amazon Bedrock 的 id(如 global.anthropic.claude-fable-5)不以已知系列开头,必须显式指定 client_type。环境变量 CLIENT_TYPE 可为代码中未指定的客户端设置默认值。

代码中的支持模型列表始终保持最新,包含每个模型的 base URL、客户端类型、模态、上下文窗口和价格:

import { listSupportedModels } from "@prismshadow/mmsp";

const models = listSupportedModels("CNY"); // 默认 "USD"
from mmsp import list_supported_models

models = list_supported_models(currency="CNY")  # 默认 "USD"

兼容客户端

七个兼容客户端可调用任何提供对应协议的端点。使用时需用 client_type 指定协议,并同时提供端点和 key:可以传入 base_url 和 api_key 参数,或在环境变量中设置 OPENAI_BASE_URL 和 OPENAI_API_KEY(ant-messages 对应 ANTHROPIC_ 变量对,google-genai 对应 GEMINI_ 变量对,openai-chat-vllm-adapter 对应 VLLM_ 变量对,mmsp 对应 MMSP_ 变量对)。如果传入的 base_url 不是客户端的默认端点,又不提供 api_key,会报错:环境变量中的 key 不会自动用于代码指定的端点(规则)。openai-chat-vllm-adapter 和 mmsp 例外:它们的服务端可以不要 key,因此改为不带 key 调用;两者都不传时,分别发往 http://127.0.0.1:8000/v1 和 http://127.0.0.1:25752/v1。

client_type 协议 提供方
openai-responses OpenAI Responses OpenAI、OpenRouter、DeepSeek、Z.AI、MiniMax
openai-chat OpenAI Chat Completions。openai 是其别名。 大多数网关、SiliconFlow、vLLM
openai-chat-vllm-adapter vLLM 提供的 Chat Completions。将 thinking_level 映射到模板自有的开关。 vLLM
openai-embedding OpenAI Embeddings 任何向量端点
ant-messages Anthropic Messages Anthropic、OpenRouter、DeepSeek、Z.AI、MiniMax
google-genai Google generateContent,即 Google GenAI SDK 所用的协议 Vertex AI、Gemini API、代理此协议的网关
mmsp MMSP 本身 MMSP 服务端

如果网关支持多种协议,优先选择 openai-responses。OpenRouter 为其所有托管模型提供此协议;SiliconFlow 仅提供 Chat Completions。

const client = new AutoLLMClient({
  model: "qwen/qwen3.8-27b",
  clientType: "openai-responses",
  baseUrl: "https://openrouter.ai/api/v1",
  apiKey: process.env.OPENROUTER_API_KEY,
});
client = AutoLLMClient(
    model="qwen/qwen3.8-27b",
    client_type="openai-responses",
    base_url="https://openrouter.ai/api/v1",
    api_key=os.environ["OPENROUTER_API_KEY"],
)

常见网关的 base URL,以及示例读取 key 所用的环境变量:

网关 Base URL Key
OpenRouter https://openrouter.ai/api/v1 OPENROUTER_API_KEY
SiliconFlow https://api.siliconflow.cn/v1 SILICONFLOW_API_KEY
TokenDance(词元跳动) https://tokendance.space/gateway/v1,Anthropic Messages 使用 https://tokendance.space/gateway TOKENDANCE_API_KEY
Google Vertex AI https://aiplatform.googleapis.com VERTEX_API_KEY:服务账号 JSON
Amazon Bedrock bedrock://<region>,例如 bedrock://us-east-1 BEDROCK_API_KEY:ACCESS_KEY,SECRET_KEY
ModelVerse https://api.modelverse.cn/v1,Claude 模型使用 https://api.modelverse.cn/ MODELVERSE_API_KEY
OpenCode Go https://opencode.ai/inference/go/openai/v1,Anthropic Messages 使用 https://opencode.ai/inference/go/anthropic,Gemini 使用 https://opencode.ai/inference/go/google OPENCODE_API_KEY
Fireworks AI https://api.fireworks.ai/inference/v1 FIREWORKS_API_KEY
DashScope(阿里云百炼) https://dashscope.aliyuncs.com/compatible-mode/v1 DASHSCOPE_API_KEY
Qwen Token Plan https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1 QWEN_TOKEN_PLAN_API_KEY:Token Plan 的 key,只能用于这个端点
Atlas Cloud https://api.atlascloud.ai/v1 ATLASCLOUD_API_KEY
Penguin Go https://go.penguin.ooo/api/v1 PENGUIN_GO_API_KEY
ModelScope(魔搭) https://api-inference.modelscope.cn/v1 MODELSCOPE_API_KEY:账号的访问令牌
vLLM http://127.0.0.1:8000/v1/ VLLM_API_KEY,仅在服务端启动时设置了 key 才需要

TokenDance 用一个 key 提供多种协议。它的模型列表写明了每个模型支持的协议;选择支持其中一种协议的客户端,例如 deepseek-v4.1-flash 用 openai-chat;TokenDance 支持厂商自有 API 时选用厂商的官方客户端:kimi-k3 用 moonshot-official,glm-5.3 用 zai-official。

OpenCode Go 也用一个 key 提供多种协议,每种协议各有自己的 base URL,它的文档写明了每个模型用哪种协议:gpt-6-luna、gpt-5.6-luna、grok-4.7 和 Muse Spark 系列用 openai-responses;claude-haiku-5-5、minimax-m3 和 Qwen 系列在 Anthropic 地址上用 ant-messages;gemini-4-argon 在 Google 地址上用 google-genai;其余模型用 openai-chat。Fireworks AI、DashScope、Qwen Token Plan 和 Atlas Cloud 上的所有模型都用 openai-chat,ModelScope 上的用 openai-responses。Penguin Go 是一个 MMSP 服务端,它的模型用 mmsp;vLLM 服务端的模型用 openai-chat-vllm-adapter。

Vertex AI 上的 Gemini

指定 google-genai,并将服务账号的 JSON key 作为 API key 传入。Vertex AI 的 Interactions 端点不提供这些模型,所以使用 Interactions 的 google-official 会拒绝此类 key。无论是否传入 base_url,客户端都调用全球端点 https://aiplatform.googleapis.com。

const client = new AutoLLMClient({
  model: "gemini-3.8-flash",
  clientType: "google-genai",
  apiKey: fs.readFileSync("service-account.json", "utf8"),
});
client = AutoLLMClient(
    model="gemini-3.8-flash",
    client_type="google-genai",
    api_key=open("service-account.json").read(),
)

思考签名仅在签发它的端点上有效。详见 Fidelity。

Amazon Bedrock 上的 Claude

指定 anthropic-official,将 bedrock://<region> 作为 base URL,并将 AWS 的 access key 与 secret key 用逗号连接后作为 API key 传入。模型 id 是 Bedrock 的推理配置文件,例如 global.anthropic.claude-opus-5-5;global. 配置文件按 Anthropic 的标价计费,地域配置文件(us.、eu.、jp.、au.)贵 10%。

const client = new AutoLLMClient({
  model: "global.anthropic.claude-opus-5-5",
  clientType: "anthropic-official",
  baseUrl: "bedrock://us-east-1",
  apiKey: process.env.BEDROCK_API_KEY, // "ACCESS_KEY,SECRET_KEY"
});
client = AutoLLMClient(
    model="global.anthropic.claude-opus-5-5",
    client_type="anthropic-official",
    base_url="bedrock://us-east-1",
    api_key=os.environ["BEDROCK_API_KEY"],  # "ACCESS_KEY,SECRET_KEY"
)

接口协议

每个客户端在底层只使用一种协议,无论通过哪个 client_type 调用。

client_type 接口协议
google-official、google-genai google-genai
anthropic-official、ant-messages ant-messages
openai-official、deepseek-official、minimax-official、openai-responses openai-responses
zai-official、moonshot-official、openai-chat、openai-chat-vllm-adapter openai-chat
openai-embedding,以及 text-embedding-* 下的 openai-official openai-embedding
mmsp mmsp

在 GitHub 上编辑本页以 Markdown 打开