//! 模型列表获取命令 //! //! 提供 Tauri 命令,供前端在供应商表单中获取可用模型列表。 use crate::services::model_fetch::{self, FetchedModel}; /// 获取供应商的可用模型列表 /// /// 使用 OpenAI 兼容的 GET /v1/models 端点。优先使用 `models_url` 精确覆写; /// 否则对 baseURL 生成候选列表(含「剥离 Anthropic 兼容子路径」兜底),按序尝试。 #[tauri::command(rename_all = "camelCase")] pub async fn fetch_models_for_config( base_url: String, api_key: String, is_full_url: Option, models_url: Option, custom_user_agent: Option, ) -> Result, String> { // 与转发 / 检测路径共用 parse_custom_user_agent:非法 UA 静默忽略(不阻断取模型)。 let user_agent = crate::provider::parse_custom_user_agent(custom_user_agent.as_deref()) .ok() .flatten(); model_fetch::fetch_models( &base_url, &api_key, is_full_url.unwrap_or(false), models_url.as_deref(), user_agent, ) .await }