chore(settings): align default ai model handling
This commit is contained in:
@@ -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,
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
Reference in New Issue
Block a user