mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-17 08:00:59 +00:00
switch azure responses to base url config and v1 api
This commit is contained in:
parent
01f559efc0
commit
391c93800c
5 changed files with 26 additions and 33 deletions
|
|
@ -45,14 +45,13 @@ function shortHash(str: string): string {
|
|||
return (h2 >>> 0).toString(36) + (h1 >>> 0).toString(36);
|
||||
}
|
||||
|
||||
const DEFAULT_AZURE_API_VERSION = "2025-04-01-preview";
|
||||
const DEFAULT_AZURE_API_VERSION = "v1";
|
||||
|
||||
// Azure OpenAI Responses-specific options
|
||||
export interface AzureOpenAIResponsesOptions extends StreamOptions {
|
||||
reasoningEffort?: "minimal" | "low" | "medium" | "high" | "xhigh";
|
||||
reasoningSummary?: "auto" | "detailed" | "concise" | null;
|
||||
azureApiVersion?: string;
|
||||
azureEndpoint?: string;
|
||||
azureResourceName?: string;
|
||||
azureBaseUrl?: string;
|
||||
azureDeploymentName?: string;
|
||||
|
|
@ -332,47 +331,41 @@ export const streamAzureOpenAIResponses: StreamFunction<"azure-openai-responses"
|
|||
return stream;
|
||||
};
|
||||
|
||||
function normalizeAzureEndpoint(endpoint: string): string {
|
||||
return endpoint.replace(/\/+$/, "");
|
||||
function normalizeAzureBaseUrl(baseUrl: string): string {
|
||||
return baseUrl.replace(/\/+$/, "");
|
||||
}
|
||||
|
||||
function getAzureEndpoint(options?: AzureOpenAIResponsesOptions): string | undefined {
|
||||
const endpoint =
|
||||
options?.azureEndpoint ||
|
||||
(options?.azureResourceName ? `https://${options.azureResourceName}.openai.azure.com` : undefined) ||
|
||||
process.env.AZURE_OPENAI_ENDPOINT ||
|
||||
(process.env.AZURE_OPENAI_RESOURCE_NAME
|
||||
? `https://${process.env.AZURE_OPENAI_RESOURCE_NAME}.openai.azure.com`
|
||||
: undefined);
|
||||
|
||||
return endpoint ? normalizeAzureEndpoint(endpoint) : undefined;
|
||||
function buildDefaultBaseUrl(resourceName: string): string {
|
||||
return `https://${resourceName}.openai.azure.com/openai/v1`;
|
||||
}
|
||||
|
||||
function resolveAzureConfig(
|
||||
model: Model<"azure-openai-responses">,
|
||||
options?: AzureOpenAIResponsesOptions,
|
||||
): { baseUrl?: string; endpoint?: string; apiVersion: string } {
|
||||
): { baseUrl: string; apiVersion: string } {
|
||||
const apiVersion = options?.azureApiVersion || process.env.AZURE_OPENAI_API_VERSION || DEFAULT_AZURE_API_VERSION;
|
||||
|
||||
const baseUrl = options?.azureBaseUrl?.trim() || undefined;
|
||||
const endpoint = getAzureEndpoint(options);
|
||||
const baseUrl = options?.azureBaseUrl?.trim() || process.env.AZURE_OPENAI_BASE_URL?.trim() || undefined;
|
||||
const resourceName = options?.azureResourceName || process.env.AZURE_OPENAI_RESOURCE_NAME;
|
||||
|
||||
let resolvedBaseUrl = baseUrl;
|
||||
const resolvedEndpoint = endpoint;
|
||||
|
||||
if (!resolvedBaseUrl && !resolvedEndpoint && model.baseUrl) {
|
||||
if (!resolvedBaseUrl && resourceName) {
|
||||
resolvedBaseUrl = buildDefaultBaseUrl(resourceName);
|
||||
}
|
||||
|
||||
if (!resolvedBaseUrl && model.baseUrl) {
|
||||
resolvedBaseUrl = model.baseUrl;
|
||||
}
|
||||
|
||||
if (!resolvedBaseUrl && !resolvedEndpoint) {
|
||||
if (!resolvedBaseUrl) {
|
||||
throw new Error(
|
||||
"Azure OpenAI endpoint is required. Set AZURE_OPENAI_ENDPOINT or AZURE_OPENAI_RESOURCE_NAME, or pass azureEndpoint, azureResourceName, azureBaseUrl, or model.baseUrl.",
|
||||
"Azure OpenAI base URL is required. Set AZURE_OPENAI_BASE_URL or AZURE_OPENAI_RESOURCE_NAME, or pass azureBaseUrl, azureResourceName, or model.baseUrl.",
|
||||
);
|
||||
}
|
||||
|
||||
return {
|
||||
baseUrl: resolvedBaseUrl,
|
||||
endpoint: resolvedEndpoint,
|
||||
baseUrl: normalizeAzureBaseUrl(resolvedBaseUrl),
|
||||
apiVersion,
|
||||
};
|
||||
}
|
||||
|
|
@ -393,14 +386,14 @@ function createClient(model: Model<"azure-openai-responses">, apiKey: string, op
|
|||
Object.assign(headers, options.headers);
|
||||
}
|
||||
|
||||
const { baseUrl, endpoint, apiVersion } = resolveAzureConfig(model, options);
|
||||
const { baseUrl, apiVersion } = resolveAzureConfig(model, options);
|
||||
|
||||
return new AzureOpenAI({
|
||||
apiKey,
|
||||
apiVersion,
|
||||
dangerouslyAllowBrowser: true,
|
||||
defaultHeaders: headers,
|
||||
...(baseUrl ? { baseURL: baseUrl } : { endpoint }),
|
||||
baseURL: baseUrl,
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue