fix: 三端联调测试 2 P0 + 6 P1 + 2 P2 修复
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
P0-1: SaaS relay 模型别名解析 — "glm-4-flash" → "glm-4-flash-250414" (resolve_model)
P0-2: config.rs interpolate_env_vars UTF-8 修复 (chars 迭代器替代 bytes as char)
+ DB 启动编码检查 + docker-compose UTF-8 编码参数
P1-3: UI 模型选择器覆盖 Agent 默认模型 (model_override 全链路: TS→Tauri→Rust kernel)
P1-6: 知识搜索管道修复 — seed_knowledge 创建 chunks + 默认分类 (seed/uploaded/distillation)
P1-7: 用量限额从当前 Plan 读取 (非 stale usage 表)
P1-8: relay 双维度配额检查 (relay_requests + input_tokens)
P2-9: SSE 路径 token 计数修复 — 流结束检测替代固定 500ms sleep + billing increment
This commit is contained in:
@@ -248,6 +248,37 @@ impl AppCache {
|
||||
.map(|r| r.value().clone())
|
||||
}
|
||||
|
||||
/// 按别名查找模型 — 用于向后兼容旧模型 ID (如 "glm-4-flash" → "glm-4-flash-250414")
|
||||
/// 先按 alias 字段精确匹配,再按 model_id 前缀匹配(去掉日期后缀)
|
||||
pub fn resolve_model(&self, model_name: &str) -> Option<CachedModel> {
|
||||
// 1. 直接 model_id 查找
|
||||
if let Some(m) = self.get_model(model_name) {
|
||||
return Some(m);
|
||||
}
|
||||
// 2. 按 alias 精确匹配
|
||||
for entry in self.models.iter() {
|
||||
if entry.value().enabled && entry.value().alias == model_name {
|
||||
return Some(entry.value().clone());
|
||||
}
|
||||
}
|
||||
// 3. 前缀匹配: "glm-4-flash" 匹配 "glm-4-flash-250414" 等带后缀的模型
|
||||
for entry in self.models.iter() {
|
||||
let mid = &entry.value().model_id;
|
||||
if entry.value().enabled
|
||||
&& (mid.starts_with(&format!("{}-", model_name))
|
||||
|| mid.starts_with(&format!("{}v", model_name)))
|
||||
{
|
||||
tracing::info!(
|
||||
"Model alias resolved: {} → {}",
|
||||
model_name,
|
||||
mid
|
||||
);
|
||||
return Some(entry.value().clone());
|
||||
}
|
||||
}
|
||||
None
|
||||
}
|
||||
|
||||
/// 按 provider id 查找已启用的 Provider。O(1) DashMap 查找。
|
||||
pub fn get_provider(&self, provider_id: &str) -> Option<CachedProvider> {
|
||||
self.providers.get(provider_id)
|
||||
|
||||
Reference in New Issue
Block a user