fix(aihr): label model config demo fallback

This commit is contained in:
2026-07-14 12:25:52 +08:00
parent 650543a05a
commit a4ee20c31f
3 changed files with 15 additions and 0 deletions
+1
View File
@@ -221,3 +221,4 @@
- 2026-07-14 最新线上只读复核:生产根站、`/h5/` 和租户接口均返回 `200`;线上管理端主资源 `index-CJZ3Ax3Z.js` SHA-256 为 `8b9278a26ccb760abce489b12a20b221748c64d4c4153613d2511777bb9677bc`,H5 主资源 `index-D4-NrEpb.js` SHA-256 为 `ab15bfd17cabe58e2f34b0ac61ee198a837128ed85dc6bb0ddf77bc3e22dcd9c`;当前本地构建为管理端 `index-Cin-vnjm.js` SHA-256 `ca210da50942693d52fb103fe34785be31e2bd263c7d11c0a60959c4dd90deaa`、H5 `index-Byx3WtY1.js` SHA-256 `1d2a9d8f947e8a198c31f15a5cf4b66ba4220b1f549c4376c72cc1da56b1d7eb`。本轮只读核对,未执行生产同步、重启或业务数据写入。
- 2026-07-14 BRD 6.3 案例回退语义复核:案例列表接口失败时原先只弹一次提示并静默展示内置案例记录,可能被误读为真实案例库数据;现增加持久的“当前显示演示记录,不代表真实案例库数据”提示,接口恢复后自动消失。该修复只校正演示回退语义,不增加案例数量或替代正式案例资产。
- 2026-07-14 BRD G3 异步资料队列租户复核:队列领取与卡死清扫按所有租户扫描,单条加工从队列条目携带的 `tenant_id` 进入 `TenantHelper.dynamic(tenantId, ...)`,状态回写继续带租户条件;定向 `AihrUploadQueueServiceTest` 通过。当前仍缺真实双租户上传/目录导入回归,不能仅凭源码契约测试宣称生产隔离已验收。
- 2026-07-14 BRD 6.3 模型配置回退语义复核:模型供应商/模型接口失败时原先会静默保留内置默认清单,仅通过一次性 toast 提示;现增加持久的“当前显示内置默认清单,不代表真实租户配置”提示,接口恢复后自动消失。该修复不改变模型配置、密钥或调用降级规则。
+13
View File
@@ -12,6 +12,15 @@
</div>
</section>
<el-alert
v-if="modelDataFallback"
class="demo-data-alert"
title="模型配置接口暂不可用,当前显示内置默认清单,不代表真实租户配置"
type="warning"
:closable="false"
show-icon
/>
<section class="model-layout">
<aside class="panel provider-panel">
<div class="panel-title">
@@ -509,6 +518,7 @@ const modelRows = ref<ModelConfig[]>(seedModels);
const selectedProviderCode = ref('deepseek');
const keyword = ref('');
const loading = ref(false);
const modelDataFallback = ref(false);
const testing = ref(false);
const saving = ref(false);
const promptLoading = ref(false);
@@ -619,15 +629,18 @@ const normalizeModels = (items: ModelConfig[]): ModelConfig[] => {
const loadData = async (preferredProviderCode = selectedProviderCode.value) => {
loading.value = true;
modelDataFallback.value = false;
try {
const [providerResult, configResult] = await Promise.all([getModelProviders(), getModelConfigs()]);
providers.value = normalizeProviders(providerResult.data ?? []);
modelRows.value = normalizeModels(configResult.data ?? []);
modelDataFallback.value = false;
selectedProviderCode.value =
providers.value.find((item) => item.providerCode === preferredProviderCode)?.providerCode ?? providers.value[0]?.providerCode ?? 'deepseek';
} catch {
providers.value = seedProviders;
modelRows.value = seedModels;
modelDataFallback.value = true;
selectedProviderCode.value = preferredProviderCode || 'deepseek';
ElMessage.warning('模型配置 API 不可用,已展示内置默认清单');
} finally {
+1
View File
@@ -401,6 +401,7 @@ contains frontend/src/views/knowledge/processing.vue "当前显示演示数据
contains frontend/src/views/knowledge/cases.vue "不代表真实案例库数据"
contains frontend/src/views/system/model/index.vue "调用优先级"
contains frontend/src/views/system/model/index.vue "提示词模板"
contains frontend/src/views/system/model/index.vue "不代表真实租户配置"
contains frontend/src/views/system/prompts.vue "保存并启用"
contains frontend/src/views/competency/growth.vue "当前运营口径(只读)"
contains frontend/src/views/competency/growth.vue "训练画像等级(参考)"