路由

每种 Provider 类型都有独立的 路由。Router 不通过 ID 选择;先取得 LLM、Embedding 或 Parser 的 ModelProviderHandle,再由该 Handle 访问对应 Router。

llm_router = workspace.llm_provider().router()
embedding_router = workspace.embedding_provider().router()
parser_router = workspace.parser_provider().router()
llmRouter := workspace.LLMProvider().Router()
embeddingRouter := workspace.EmbeddingProvider().Router()
parserRouter := workspace.ParserProvider().Router()

修改 LLM Router 不会修改 Embedding 或 Parser Router。

读取当前配置

info() / Info() 返回 ProviderRouterConfig

字段

类型

说明

strategy

string

当前路由策略

health_check_interval

integer

健康检查间隔;单位和有效范围以服务端契约为准

max_retries

integer

最大重试配置

session_affinity

boolean

是否启用会话亲和

current = llm_router.info()
print(
    current.strategy,
    current.health_check_interval,
    current.max_retries,
    current.session_affinity,
)
current, err := llmRouter.Info(ctx)
if err != nil {
    return err
}
fmt.Println(
    current.GetStrategy(),
    current.GetHealthCheckInterval(),
    current.GetMaxRetries(),
    current.GetSessionAffinity(),
)

公开类型给出了字段,但没有定义 strategy 的枚举、健康检查间隔的单位或各数值的合法范围。应先读取环境现有配置,并从当前产品界面或服务端 API 契约取得允许值。

更新 Router

更新采用可选参数;只传明确要修改的字段:

updated = llm_router.update(
    sdk.with_router_strategy(router_strategy),
    sdk.with_router_max_retries(max_retries),
)
updated, err := llmRouter.Update(
    ctx,
    sdk.WithRouterStrategy(routerStrategy),
    sdk.WithRouterMaxRetries(maxRetries),
)
if err != nil {
    return err
}

其他公开选项为:

updated = llm_router.update(
    sdk.with_router_health_check_interval(health_check_interval),
    sdk.with_router_session_affinity(session_affinity),
)
updated, err := llmRouter.Update(
    ctx,
    sdk.WithRouterHealthCheckInterval(healthCheckInterval),
    sdk.WithRouterSessionAffinity(sessionAffinity),
)

返回值是服务端保存后的完整 ProviderRouterConfig。为了避免并发更新覆盖彼此,修改前读取最新配置,同一 Provider 类型的 Router 更新应串行执行;修改后再调用 info() / Info() 验证。

配置时的边界

  • Router 是 Provider 类型级配置,不是单个 Backend 或 Endpoint 的属性。

  • SDK 不提供“创建 Router”或“删除 Router”的方法,只提供读取和更新。

  • max_retries 可能放大外部调用次数、延迟和费用。不要在不了解服务端重试语义时提高它。

  • 健康检查会访问已配置的模型服务。检查间隔应使用部署方认可的值,避免产生不必要的外部流量。

  • 会话亲和的具体键、持续时间和故障转移行为没有在公开 SDK 类型中定义,不能据字段名推导。

  • 更新 Router 前,应先确保对应 Provider 下已有可用 Backend 和 Endpoint;SDK 不会在客户端验证整个拓扑。

Provider 的选择和 Backend 创建见 提供方,资源和地址管理见 后端