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) {
|
||||
RuntimeConfig runtime = runtimeConfig(request == null ? null : request.model());
|
||||
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()) {
|
||||
return new ChatResponse(
|
||||
@@ -385,7 +386,12 @@ public class AihrModelSeedService {
|
||||
}
|
||||
|
||||
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"));
|
||||
}
|
||||
|
||||
|
||||
@@ -471,7 +471,12 @@ const filteredProviders = computed(() => {
|
||||
const activeProvider = computed<ProviderView>(
|
||||
() => 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(() => {
|
||||
if (!activeProvider.value.configured) return '未配置';
|
||||
return showKey.value ? '已配置,接口不回传密钥' : 'sk-************';
|
||||
|
||||
Reference in New Issue
Block a user