fix(aihr): model test picks seed placeholder name and misses db config
前端测试对话发的是合并列表里 seed 占位行的模型名(gpt-4o-mini),后端 按该名查库落空即判未配置返回 seed fallback。后端:请求模型名不存在时 回退默认已启用 chat 配置,且运行参数就绪后以解析出的模型名调用供应商; 前端:优先选 enabled 且 configured 的库行作为当前 chat 模型。
This commit is contained in:
+8
-2
@@ -178,7 +178,8 @@ public class AihrModelSeedService {
|
|||||||
public ChatResponse chat(ChatRequest request) {
|
public ChatResponse chat(ChatRequest request) {
|
||||||
RuntimeConfig runtime = runtimeConfig(request == null ? null : request.model());
|
RuntimeConfig runtime = runtimeConfig(request == null ? null : request.model());
|
||||||
String prompt = request == null || isBlank(request.prompt()) ? "请给出物业管家处理漏水投诉的第一步。" : request.prompt();
|
String prompt = request == null || isBlank(request.prompt()) ? "请给出物业管家处理漏水投诉的第一步。" : request.prompt();
|
||||||
String modelName = request == null || isBlank(request.model()) ? runtime.modelName() : request.model();
|
// 运行参数已就绪时以解析出的模型名为准:请求可能带的是 seed 占位模型名(如 gpt-4o-mini),不能透传给供应商
|
||||||
|
String modelName = runtime.configured() || request == null || isBlank(request.model()) ? runtime.modelName() : request.model();
|
||||||
|
|
||||||
if (!runtime.configured()) {
|
if (!runtime.configured()) {
|
||||||
return new ChatResponse(
|
return new ChatResponse(
|
||||||
@@ -385,7 +386,12 @@ public class AihrModelSeedService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private RuntimeConfig runtimeConfig(String requestedModel) {
|
private RuntimeConfig runtimeConfig(String requestedModel) {
|
||||||
return dbRuntimeConfig(requestedModel)
|
Optional<RuntimeConfig> resolved = dbRuntimeConfig(requestedModel);
|
||||||
|
if (resolved.isEmpty() && !isBlank(requestedModel)) {
|
||||||
|
// 请求的模型名在库里不存在(如前端 seed 占位行),回退到默认已启用的 chat 配置
|
||||||
|
resolved = dbRuntimeConfig(null);
|
||||||
|
}
|
||||||
|
return resolved
|
||||||
.orElseGet(() -> new RuntimeConfig(DEFAULT_PROVIDER, fallback(requestedModel, DEFAULT_MODEL), null, null, false, "seed"));
|
.orElseGet(() -> new RuntimeConfig(DEFAULT_PROVIDER, fallback(requestedModel, DEFAULT_MODEL), null, null, false, "seed"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -471,7 +471,12 @@ const filteredProviders = computed(() => {
|
|||||||
const activeProvider = computed<ProviderView>(
|
const activeProvider = computed<ProviderView>(
|
||||||
() => providers.value.find((item) => item.providerCode === selectedProviderCode.value) ?? providers.value[0] ?? seedProviders[0]
|
() => providers.value.find((item) => item.providerCode === selectedProviderCode.value) ?? providers.value[0] ?? seedProviders[0]
|
||||||
);
|
);
|
||||||
const activeChatModel = computed(() => modelRows.value.find((item) => item.category === 'chat' && item.enabled) ?? modelRows.value[0]);
|
const activeChatModel = computed(
|
||||||
|
() =>
|
||||||
|
modelRows.value.find((item) => item.category === 'chat' && item.enabled && item.configured) ??
|
||||||
|
modelRows.value.find((item) => item.category === 'chat' && item.enabled) ??
|
||||||
|
modelRows.value[0]
|
||||||
|
);
|
||||||
const keyText = computed(() => {
|
const keyText = computed(() => {
|
||||||
if (!activeProvider.value.configured) return '未配置';
|
if (!activeProvider.value.configured) return '未配置';
|
||||||
return showKey.value ? '已配置,接口不回传密钥' : 'sk-************';
|
return showKey.value ? '已配置,接口不回传密钥' : 'sk-************';
|
||||||
|
|||||||
Reference in New Issue
Block a user