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";
import { DEFAULT_OPENAI_MODEL } from "@capakraken/shared";
import { useEffect, useState } from "react";
import { trpc } from "~/lib/trpc/client.js";
import {
@@ -26,7 +27,7 @@ import { parseAzureUrl, type GeminiTestResult } from "./system-settings/shared.j
export function SystemSettingsClient() {
const [provider, setProvider] = useState<Provider>("openai");
const [endpoint, setEndpoint] = useState("");
const [model, setModel] = useState("");
const [model, setModel] = useState(DEFAULT_OPENAI_MODEL);
const [apiVersion, setApiVersion] = useState("2025-01-01-preview");
const [maxTokens, setMaxTokens] = useState(2000);
const [temperature, setTemperature] = useState(1);
@@ -80,7 +81,7 @@ export function SystemSettingsClient() {
setProvider((settings.aiProvider ?? "openai") as Provider);
setEndpoint(settings.azureOpenAiEndpoint ?? "");
setModel(settings.azureOpenAiDeployment ?? "");
setModel(settings.azureOpenAiDeployment ?? DEFAULT_OPENAI_MODEL);
setApiVersion(settings.azureApiVersion ?? "2025-01-01-preview");
setMaxTokens(settings.aiMaxCompletionTokens ?? 2000);
setTemperature(settings.aiTemperature ?? 1);
@@ -1,3 +1,4 @@
import { DEFAULT_OPENAI_MODEL } from "@capakraken/shared";
import { InfoTooltip } from "~/components/ui/InfoTooltip.js";
import {
INPUT_CLASS,
@@ -153,14 +154,14 @@ export function AiProviderPanel({
id="ai-model"
type="text"
className={INPUT_CLASS}
placeholder={provider === "azure" ? "my-gpt4o-deployment" : "gpt-4o-mini"}
placeholder={provider === "azure" ? "capakraken-gpt-5-4" : DEFAULT_OPENAI_MODEL}
value={model}
onChange={(event) => onModelChange(event.target.value)}
/>
<p className="mt-1 text-xs text-gray-400 dark:text-gray-500">
{provider === "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>
</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";
const {
@@ -90,7 +90,7 @@ describe("settings procedure support", () => {
},
}), {
aiProvider: "openai",
azureOpenAiDeployment: "gpt-4o-mini",
azureOpenAiDeployment: DEFAULT_OPENAI_MODEL,
azureOpenAiApiKey: "should-be-ignored",
smtpPassword: "also-ignored",
});
@@ -105,11 +105,11 @@ describe("settings procedure support", () => {
create: {
id: "singleton",
aiProvider: "openai",
azureOpenAiDeployment: "gpt-4o-mini",
azureOpenAiDeployment: DEFAULT_OPENAI_MODEL,
},
update: {
aiProvider: "openai",
azureOpenAiDeployment: "gpt-4o-mini",
azureOpenAiDeployment: DEFAULT_OPENAI_MODEL,
},
});
expect(createAuditEntry).toHaveBeenCalledWith(expect.objectContaining({
@@ -117,7 +117,7 @@ describe("settings procedure support", () => {
action: "UPDATE",
after: expect.objectContaining({
aiProvider: "openai",
azureOpenAiDeployment: "gpt-4o-mini",
azureOpenAiDeployment: DEFAULT_OPENAI_MODEL,
}),
}));
});
@@ -182,7 +182,7 @@ describe("settings procedure support", () => {
systemSettings: {
findUnique: vi.fn().mockResolvedValue({
aiProvider: "openai",
azureOpenAiDeployment: "gpt-4o-mini",
azureOpenAiDeployment: DEFAULT_OPENAI_MODEL,
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 {
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(
provider,
"https://api.openai.com/v1/chat/completions",