diff --git a/server-rs/crates/api-server/src/llm/mod.rs b/server-rs/crates/api-server/src/llm/mod.rs index f25a64ab5..af6fea24c 100644 --- a/server-rs/crates/api-server/src/llm/mod.rs +++ b/server-rs/crates/api-server/src/llm/mod.rs @@ -345,13 +345,20 @@ async fn load_llm_catalog( } /// 全局目录 + 账号权限档;所有对外 LLM 路由都经它解析模型。 +/// +/// 两者相互独立,热路径上用 `join!` 并发发往 SpacetimeDB,避免串行叠加两次往返延迟。 async fn load_owner_llm_catalog( state: &AppState, owner: &str, ) -> Result { - let catalog = load_llm_catalog(state, owner).await?; - let access = resolve_owner_agc_model_access(state, owner).await; - Ok(OwnerAgcModelCatalog { catalog, access }) + let (catalog, access) = tokio::join!( + load_llm_catalog(state, owner), + resolve_owner_agc_model_access(state, owner), + ); + Ok(OwnerAgcModelCatalog { + catalog: catalog?, + access, + }) } /// 模型解析错误的统一映射:档位不够是 403 + 专用错误码,目录外 / 停用仍是 422。