chore(settings): align default ai model handling

This commit is contained in:
2026-03-31 22:52:29 +02:00
parent 6e84b022c3
commit 05eeaab3f7
4 changed files with 14 additions and 12 deletions
@@ -1,5 +1,6 @@
"use client"; "use client";
import { DEFAULT_OPENAI_MODEL } from "@capakraken/shared";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import { trpc } from "~/lib/trpc/client.js"; import { trpc } from "~/lib/trpc/client.js";
import { import {
@@ -26,7 +27,7 @@ import { parseAzureUrl, type GeminiTestResult } from "./system-settings/shared.j
export function SystemSettingsClient() { export function SystemSettingsClient() {
const [provider, setProvider] = useState<Provider>("openai"); const [provider, setProvider] = useState<Provider>("openai");
const [endpoint, setEndpoint] = useState(""); const [endpoint, setEndpoint] = useState("");
const [model, setModel] = useState(""); const [model, setModel] = useState(DEFAULT_OPENAI_MODEL);
const [apiVersion, setApiVersion] = useState("2025-01-01-preview"); const [apiVersion, setApiVersion] = useState("2025-01-01-preview");
const [maxTokens, setMaxTokens] = useState(2000); const [maxTokens, setMaxTokens] = useState(2000);
const [temperature, setTemperature] = useState(1); const [temperature, setTemperature] = useState(1);
@@ -80,7 +81,7 @@ export function SystemSettingsClient() {
setProvider((settings.aiProvider ?? "openai") as Provider); setProvider((settings.aiProvider ?? "openai") as Provider);
setEndpoint(settings.azureOpenAiEndpoint ?? ""); setEndpoint(settings.azureOpenAiEndpoint ?? "");
setModel(settings.azureOpenAiDeployment ?? ""); setModel(settings.azureOpenAiDeployment ?? DEFAULT_OPENAI_MODEL);
setApiVersion(settings.azureApiVersion ?? "2025-01-01-preview"); setApiVersion(settings.azureApiVersion ?? "2025-01-01-preview");
setMaxTokens(settings.aiMaxCompletionTokens ?? 2000); setMaxTokens(settings.aiMaxCompletionTokens ?? 2000);
setTemperature(settings.aiTemperature ?? 1); setTemperature(settings.aiTemperature ?? 1);
@@ -1,3 +1,4 @@
import { DEFAULT_OPENAI_MODEL } from "@capakraken/shared";
import { InfoTooltip } from "~/components/ui/InfoTooltip.js"; import { InfoTooltip } from "~/components/ui/InfoTooltip.js";
import { import {
INPUT_CLASS, INPUT_CLASS,
@@ -153,14 +154,14 @@ export function AiProviderPanel({
id="ai-model" id="ai-model"
type="text" type="text"
className={INPUT_CLASS} className={INPUT_CLASS}
placeholder={provider === "azure" ? "my-gpt4o-deployment" : "gpt-4o-mini"} placeholder={provider === "azure" ? "capakraken-gpt-5-4" : DEFAULT_OPENAI_MODEL}
value={model} value={model}
onChange={(event) => onModelChange(event.target.value)} onChange={(event) => onModelChange(event.target.value)}
/> />
<p className="mt-1 text-xs text-gray-400 dark:text-gray-500"> <p className="mt-1 text-xs text-gray-400 dark:text-gray-500">
{provider === "azure" {provider === "azure"
? "The deployment name chosen when deploying the model in Azure." ? "The deployment name chosen when deploying the model in Azure."
: "The model identifier, for example gpt-4o-mini or gpt-4o."} : `The model identifier, for example ${DEFAULT_OPENAI_MODEL} or gpt-5.4-pro.`}
</p> </p>
</div> </div>
@@ -1,4 +1,4 @@
import { SystemRole } from "@capakraken/shared"; import { DEFAULT_OPENAI_MODEL, SystemRole } from "@capakraken/shared";
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
const { const {
@@ -90,7 +90,7 @@ describe("settings procedure support", () => {
}, },
}), { }), {
aiProvider: "openai", aiProvider: "openai",
azureOpenAiDeployment: "gpt-4o-mini", azureOpenAiDeployment: DEFAULT_OPENAI_MODEL,
azureOpenAiApiKey: "should-be-ignored", azureOpenAiApiKey: "should-be-ignored",
smtpPassword: "also-ignored", smtpPassword: "also-ignored",
}); });
@@ -105,11 +105,11 @@ describe("settings procedure support", () => {
create: { create: {
id: "singleton", id: "singleton",
aiProvider: "openai", aiProvider: "openai",
azureOpenAiDeployment: "gpt-4o-mini", azureOpenAiDeployment: DEFAULT_OPENAI_MODEL,
}, },
update: { update: {
aiProvider: "openai", aiProvider: "openai",
azureOpenAiDeployment: "gpt-4o-mini", azureOpenAiDeployment: DEFAULT_OPENAI_MODEL,
}, },
}); });
expect(createAuditEntry).toHaveBeenCalledWith(expect.objectContaining({ expect(createAuditEntry).toHaveBeenCalledWith(expect.objectContaining({
@@ -117,7 +117,7 @@ describe("settings procedure support", () => {
action: "UPDATE", action: "UPDATE",
after: expect.objectContaining({ after: expect.objectContaining({
aiProvider: "openai", aiProvider: "openai",
azureOpenAiDeployment: "gpt-4o-mini", azureOpenAiDeployment: DEFAULT_OPENAI_MODEL,
}), }),
})); }));
}); });
@@ -182,7 +182,7 @@ describe("settings procedure support", () => {
systemSettings: { systemSettings: {
findUnique: vi.fn().mockResolvedValue({ findUnique: vi.fn().mockResolvedValue({
aiProvider: "openai", aiProvider: "openai",
azureOpenAiDeployment: "gpt-4o-mini", azureOpenAiDeployment: DEFAULT_OPENAI_MODEL,
azureOpenAiApiKey: null, azureOpenAiApiKey: null,
}), }),
}, },
+2 -2
View File
@@ -1,4 +1,4 @@
import { VALUE_SCORE_WEIGHTS } from "@capakraken/shared"; import { DEFAULT_OPENAI_MODEL, VALUE_SCORE_WEIGHTS } from "@capakraken/shared";
import { z } from "zod"; import { z } from "zod";
import { import {
isAiConfigured, isAiConfigured,
@@ -238,7 +238,7 @@ export async function testRuntimeAiConnection(settings: {
}); });
} }
const model = configuredSettings.azureOpenAiDeployment ?? "gpt-4o-mini"; const model = configuredSettings.azureOpenAiDeployment ?? DEFAULT_OPENAI_MODEL;
return performAiConnectionFetch( return performAiConnectionFetch(
provider, provider,
"https://api.openai.com/v1/chat/completions", "https://api.openai.com/v1/chat/completions",