| 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; |
| } |
| } |
|
|