Skip to Content
开发指南自动上下文切换模型

自动上下文切换模型

为了方便开发者的日常开发和使用,我们提供了自动切换模型 step-1-auto 和 step-1v-auto,该模型提供了基于上下文的自动切换能力。开发者可以直接使用 step-1-auto、step-1v-auto来调用开放平台 API,开放平台将会根据用户输入的 Token 和输出 token 之和,来选择对应的模型。

自动切换模型说明

自动切换模型支持切换同一个模型簇中不同上下文的模型,不同模型簇之间不支持自动切换。

自动切换模型名切换条件可切换模型
step-1-autoinput_token + max_tokens < 8192step-1-8k
step-1-auto8192 < input_token+max_tokens < 32000step-1-32k
step-1-auto32000 < input_token+max_tokensstep-1-256k
step-1v-autoinput_token + max_tokens < 8192step-1v-8k
step-1v-auto8192 < input_token+max_tokensstep-1v-32k

实现原理

自动切换模型并未提供一个全新的模型,而是一个 Virtual Model,底层实际上是通过调用 Count API,计算当前输入的 Prompt ,并进行进一步分流,调用真实的模型。

// 基于开放的 token count api ,计算输入的 message 的 token 数量 // https://platform.stepfun.com/docs/api-reference/token-count function count_token(messages){ } // 接受用户传入的 messages 和 maxTokens,返回一个模型名称 function selectModel(messages, maxTokens) { // 1. 计算输入的 message 的 token 数量 const inputToken = count(messages); // 2. 计算出 input_token + maxTokens d的总 token 数量 const totalTokens = inputToken + maxTokens; // 根据总 token 数量,返回对应的模型名称 if (totalTokens <= 8 * 1024) { return "step-1-8k"; } else if (totalTokens <= 32 * 1000) { return "step-1-32k"; } else { return "step-1-256k"; } }

根据业务逻辑实现自定义的模型切换

在真实业务场景中,除了基于模型上下文进行切换,我们还推荐你根据模型的输入信息选择合适的模型。比如在对话过程中,根据用户的输入信息当中是否包含图片,选择使用 step-1v 模型簇或 step-1 模型簇。

// 接受用户输入的消息,判断是否有图片 function is_has_image(messages){ } // 接受用户传入的信息,根据信息判断使用哪个模型 function selectModel(messages) { // 判断是否有图片 if (is_has_image(messages)) { return "step-1-auto" }else{ return "step-1v-auto" } }

注意事项

  • 模型 Token 数量计算时会存在一定的误差概率,出现误差时,可能会出现选择更长上下文的模型。
  • 官方的 Tool (如 Web Search、知识库 Retrieval)等因为会带来额外的上下文,所以在计算 Token 数量时,会自动扩大 Token,选择更大上下文的模型。
Last updated on