feat(openai): add Azure OpenAI support with configuration options

This commit is contained in:
Gianluigi Conti
2025-09-09 10:14:34 +02:00
parent b995a6b6c0
commit 098d67cd8c
4 changed files with 143 additions and 12 deletions

View File

@ -4,7 +4,7 @@ import { OpenAI } from "openai";
import { useOpenAiStore } from "@/client/stores/openai";
export const openai = () => {
const { apiKey, baseURL } = useOpenAiStore.getState();
const { apiKey, baseURL, isAzure, azureApiVersion, model } = useOpenAiStore.getState();
if (!apiKey) {
throw new Error(
@ -12,6 +12,37 @@ export const openai = () => {
);
}
if (isAzure) {
if (!baseURL) {
throw new Error(
t`Azure OpenAI Base URL is required when using Azure OpenAI.`,
);
}
if (!model) {
throw new Error(
t`Azure OpenAI deployment name (model) is required when using Azure OpenAI.`,
);
if (!azureApiVersion) {
throw new Error(
t`Azure OpenAI API version is required when using Azure OpenAI.`,
);
}
}
// Construct Azure OpenAI URL: https://your-resource.openai.azure.com/openai/deployments/your-deployment
const azureBaseURL = baseURL.endsWith('/') ? baseURL.slice(0, -1) : baseURL;
const constructedURL = `${azureBaseURL}/openai/deployments/${model}`;
return new OpenAI({
apiKey,
baseURL: constructedURL,
defaultQuery: { "api-version": azureApiVersion ?? undefined },
dangerouslyAllowBrowser: true,
});
}
if (baseURL) {
return new OpenAI({
apiKey,