mirror of
https://github.com/decolua/9router.git
synced 2026-05-08 12:01:28 +00:00
58 lines
1.5 KiB
JavaScript
58 lines
1.5 KiB
JavaScript
import { DefaultExecutor } from "./default.js";
|
|
|
|
export class AzureExecutor extends DefaultExecutor {
|
|
constructor() {
|
|
super("azure");
|
|
}
|
|
|
|
buildUrl(model, stream, urlIndex = 0, credentials = null) {
|
|
const azureEndpoint = credentials?.providerSpecificData?.azureEndpoint
|
|
|| process.env.AZURE_ENDPOINT
|
|
|| "https://api.openai.com";
|
|
|
|
const apiVersion = credentials?.providerSpecificData?.apiVersion
|
|
|| process.env.AZURE_API_VERSION
|
|
|| "2024-10-01-preview";
|
|
|
|
const deployment = credentials?.providerSpecificData?.deployment
|
|
|| model
|
|
|| process.env.AZURE_DEPLOYMENT
|
|
|| "gpt-4";
|
|
|
|
const endpoint = azureEndpoint.replace(/\/$/, "");
|
|
return `${endpoint}/openai/deployments/${deployment}/chat/completions?api-version=${apiVersion}`;
|
|
}
|
|
|
|
buildHeaders(credentials, stream = true) {
|
|
const headers = {
|
|
"Content-Type": "application/json",
|
|
...this.config.headers
|
|
};
|
|
|
|
const apiKey = credentials?.apiKey
|
|
|| credentials?.accessToken
|
|
|| process.env.OPENAI_API_KEY;
|
|
|
|
if (apiKey) {
|
|
headers["api-key"] = apiKey;
|
|
}
|
|
|
|
const organization = credentials?.providerSpecificData?.organization
|
|
|| process.env.AZURE_ORGANIZATION;
|
|
|
|
if (organization) {
|
|
headers["OpenAI-Organization"] = organization;
|
|
}
|
|
|
|
if (stream) {
|
|
headers["Accept"] = "text/event-stream";
|
|
}
|
|
|
|
return headers;
|
|
}
|
|
|
|
transformRequest(model, body, stream, credentials) {
|
|
return body;
|
|
}
|
|
}
|