29 lines
895 B
TypeScript
29 lines
895 B
TypeScript
import type { AiProviderRequest, AiProviderUpdateRequest } from "../api/types";
|
|
import type { AiProviderFormState } from "../contracts/aiProviders";
|
|
|
|
export function aiProviderCreateRequestFromForm(form: AiProviderFormState): AiProviderRequest {
|
|
return {
|
|
id: form.id.trim(),
|
|
...aiProviderUpdateRequestFromForm(form)
|
|
};
|
|
}
|
|
|
|
export function aiProviderUpdateRequestFromForm(form: AiProviderFormState): AiProviderUpdateRequest {
|
|
const models = form.modelsText
|
|
.split(",")
|
|
.map((model) => model.trim())
|
|
.filter(Boolean);
|
|
|
|
return {
|
|
name: form.name.trim(),
|
|
kind: form.kind,
|
|
baseUrl: form.baseUrl.trim(),
|
|
apiKeyRef: form.apiKeyRef.trim(),
|
|
models,
|
|
defaultModel: form.defaultModel.trim() || models[0],
|
|
relayMode: form.relayMode,
|
|
timeoutMs: Number.parseInt(form.timeoutMs, 10),
|
|
redactionPolicy: form.redactionPolicy.trim() || "default"
|
|
};
|
|
}
|