@langchain/openai 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/dist/azure/chat_models/common.cjs +4 -9
- package/dist/azure/chat_models/common.cjs.map +1 -1
- package/dist/azure/chat_models/common.js +6 -11
- package/dist/azure/chat_models/common.js.map +1 -1
- package/dist/azure/embeddings.cjs +4 -7
- package/dist/azure/embeddings.cjs.map +1 -1
- package/dist/azure/embeddings.js +5 -8
- package/dist/azure/embeddings.js.map +1 -1
- package/dist/azure/llms.cjs +4 -7
- package/dist/azure/llms.cjs.map +1 -1
- package/dist/azure/llms.js +5 -8
- package/dist/azure/llms.js.map +1 -1
- package/dist/chat_models/base.cjs +2 -1
- package/dist/chat_models/base.cjs.map +1 -1
- package/dist/chat_models/base.d.cts +2 -2
- package/dist/chat_models/base.d.cts.map +1 -1
- package/dist/chat_models/base.d.ts +2 -2
- package/dist/chat_models/base.d.ts.map +1 -1
- package/dist/chat_models/base.js +3 -2
- package/dist/chat_models/base.js.map +1 -1
- package/dist/embeddings.cjs +2 -0
- package/dist/embeddings.cjs.map +1 -1
- package/dist/embeddings.d.cts +4 -2
- package/dist/embeddings.d.cts.map +1 -1
- package/dist/embeddings.d.ts +4 -2
- package/dist/embeddings.d.ts.map +1 -1
- package/dist/embeddings.js +3 -1
- package/dist/embeddings.js.map +1 -1
- package/dist/index.cjs +2 -0
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +2 -2
- package/dist/llms.cjs +1 -0
- package/dist/llms.cjs.map +1 -1
- package/dist/llms.d.cts +3 -3
- package/dist/llms.d.cts.map +1 -1
- package/dist/llms.d.ts +3 -3
- package/dist/llms.d.ts.map +1 -1
- package/dist/llms.js +2 -1
- package/dist/llms.js.map +1 -1
- package/dist/types.d.cts +5 -5
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.ts +5 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/azure.cjs +18 -0
- package/dist/utils/azure.cjs.map +1 -1
- package/dist/utils/azure.d.cts +5 -1
- package/dist/utils/azure.d.cts.map +1 -1
- package/dist/utils/azure.d.ts +5 -1
- package/dist/utils/azure.d.ts.map +1 -1
- package/dist/utils/azure.js +16 -1
- package/dist/utils/azure.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @langchain/openai
|
|
2
2
|
|
|
3
|
+
## 1.1.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#9408](https://github.com/langchain-ai/langchainjs/pull/9408) [`415cb0b`](https://github.com/langchain-ai/langchainjs/commit/415cb0bfd26207583befdb02367bd12a46b33d51) Thanks [@sinedied](https://github.com/sinedied)! - Fix missing and inconsistent user agent headers
|
|
8
|
+
|
|
9
|
+
- [#9301](https://github.com/langchain-ai/langchainjs/pull/9301) [`a2ad61e`](https://github.com/langchain-ai/langchainjs/commit/a2ad61e787a06a55a615f63589a65ada05927792) Thanks [@sinedied](https://github.com/sinedied)! - support callable function for apiKey
|
|
10
|
+
|
|
3
11
|
## 1.1.1
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
|
@@ -27,7 +27,7 @@ const AZURE_SERIALIZABLE_KEYS = [
|
|
|
27
27
|
"openAIApiVersion"
|
|
28
28
|
];
|
|
29
29
|
function _constructAzureFields(fields) {
|
|
30
|
-
this.azureOpenAIApiKey = fields?.azureOpenAIApiKey ?? fields?.openAIApiKey ?? fields?.apiKey ?? (0, __langchain_core_utils_env.getEnvironmentVariable)("AZURE_OPENAI_API_KEY");
|
|
30
|
+
this.azureOpenAIApiKey = fields?.azureOpenAIApiKey ?? (typeof fields?.openAIApiKey === "string" ? fields?.openAIApiKey : void 0) ?? (typeof fields?.apiKey === "string" ? fields?.apiKey : void 0) ?? (0, __langchain_core_utils_env.getEnvironmentVariable)("AZURE_OPENAI_API_KEY");
|
|
31
31
|
this.azureOpenAIApiInstanceName = fields?.azureOpenAIApiInstanceName ?? (0, __langchain_core_utils_env.getEnvironmentVariable)("AZURE_OPENAI_API_INSTANCE_NAME");
|
|
32
32
|
this.azureOpenAIApiDeploymentName = fields?.azureOpenAIApiDeploymentName ?? fields?.deploymentName ?? (0, __langchain_core_utils_env.getEnvironmentVariable)("AZURE_OPENAI_API_DEPLOYMENT_NAME");
|
|
33
33
|
this.azureOpenAIApiVersion = fields?.azureOpenAIApiVersion ?? fields?.openAIApiVersion ?? (0, __langchain_core_utils_env.getEnvironmentVariable)("AZURE_OPENAI_API_VERSION");
|
|
@@ -48,21 +48,16 @@ function _getAzureClientOptions(options) {
|
|
|
48
48
|
azureOpenAIEndpoint: this.azureOpenAIEndpoint
|
|
49
49
|
};
|
|
50
50
|
const endpoint = require_azure.getEndpoint(openAIEndpointConfig);
|
|
51
|
+
const { apiKey: existingApiKey,...clientConfigRest } = this.clientConfig;
|
|
51
52
|
const params = {
|
|
52
|
-
...
|
|
53
|
+
...clientConfigRest,
|
|
53
54
|
baseURL: endpoint,
|
|
54
55
|
timeout: this.timeout,
|
|
55
56
|
maxRetries: 0
|
|
56
57
|
};
|
|
57
58
|
if (!this.azureADTokenProvider) params.apiKey = openAIEndpointConfig.azureOpenAIApiKey;
|
|
58
59
|
if (!params.baseURL) delete params.baseURL;
|
|
59
|
-
|
|
60
|
-
if (env === "node" || env === "deno") env = `(${env}/${process.version}; ${process.platform}; ${process.arch})`;
|
|
61
|
-
const defaultHeaders = require_azure.normalizeHeaders(params.defaultHeaders);
|
|
62
|
-
params.defaultHeaders = {
|
|
63
|
-
...params.defaultHeaders,
|
|
64
|
-
"User-Agent": defaultHeaders["User-Agent"] ? `langchainjs-azure-openai/2.0.0 (${env})${defaultHeaders["User-Agent"]}` : `langchainjs-azure-openai/2.0.0 (${env})`
|
|
65
|
-
};
|
|
60
|
+
params.defaultHeaders = require_azure.getHeadersWithUserAgent(params.defaultHeaders, true, "2.0.0");
|
|
66
61
|
this.client = new openai.AzureOpenAI({
|
|
67
62
|
apiVersion: this.azureOpenAIApiVersion,
|
|
68
63
|
azureADTokenProvider: this.azureADTokenProvider,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.cjs","names":["fields?: AzureChatOpenAIFields","options: OpenAICoreRequestOptions | undefined","openAIEndpointConfig: OpenAIEndpointConfig","getEndpoint","normalizeHeaders","AzureOpenAIClient","input: Serialized","obj: unknown"],"sources":["../../../src/azure/chat_models/common.ts"],"sourcesContent":["import { AzureOpenAI as AzureOpenAIClient } from \"openai\";\nimport { getEnv, getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport type { Serialized } from \"@langchain/core/load/serializable\";\nimport { ChatOpenAICallOptions } from \"../../chat_models/index.js\";\nimport {\n OpenAIEndpointConfig,\n getEndpoint,\n normalizeHeaders,\n} from \"../../utils/azure.js\";\nimport { AzureOpenAIChatInput, OpenAICoreRequestOptions } from \"../../types.js\";\nimport {\n BaseChatOpenAI,\n BaseChatOpenAIFields,\n} from \"../../chat_models/base.js\";\n\nexport const AZURE_ALIASES = {\n openAIApiKey: \"openai_api_key\",\n openAIApiVersion: \"openai_api_version\",\n openAIBasePath: \"openai_api_base\",\n deploymentName: \"deployment_name\",\n azureOpenAIEndpoint: \"azure_endpoint\",\n azureOpenAIApiVersion: \"openai_api_version\",\n azureOpenAIBasePath: \"openai_api_base\",\n azureOpenAIApiDeploymentName: \"deployment_name\",\n};\n\nexport const AZURE_SECRETS = {\n azureOpenAIApiKey: \"AZURE_OPENAI_API_KEY\",\n};\n\nexport const AZURE_SERIALIZABLE_KEYS = [\n \"azureOpenAIApiKey\",\n \"azureOpenAIApiVersion\",\n \"azureOpenAIBasePath\",\n \"azureOpenAIEndpoint\",\n \"azureOpenAIApiInstanceName\",\n \"azureOpenAIApiDeploymentName\",\n \"deploymentName\",\n \"openAIApiKey\",\n \"openAIApiVersion\",\n];\n\nexport interface AzureChatOpenAIFields\n extends BaseChatOpenAIFields,\n Partial<AzureOpenAIChatInput> {\n /**\n * Whether to use the responses API for all requests. If `false` the responses API will be used\n * only when required in order to fulfill the request.\n */\n useResponsesApi?: boolean;\n}\n\nexport function _constructAzureFields(\n this: Partial<AzureOpenAIChatInput>,\n fields?: AzureChatOpenAIFields\n) {\n this.azureOpenAIApiKey =\n fields?.azureOpenAIApiKey ??\n fields?.openAIApiKey ??\n fields?.apiKey ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_KEY\");\n\n this.azureOpenAIApiInstanceName =\n fields?.azureOpenAIApiInstanceName ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_INSTANCE_NAME\");\n\n this.azureOpenAIApiDeploymentName =\n fields?.azureOpenAIApiDeploymentName ??\n fields?.deploymentName ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_DEPLOYMENT_NAME\");\n\n this.azureOpenAIApiVersion =\n fields?.azureOpenAIApiVersion ??\n fields?.openAIApiVersion ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_VERSION\");\n\n this.azureOpenAIBasePath =\n fields?.azureOpenAIBasePath ??\n getEnvironmentVariable(\"AZURE_OPENAI_BASE_PATH\");\n\n this.azureOpenAIEndpoint =\n fields?.azureOpenAIEndpoint ??\n getEnvironmentVariable(\"AZURE_OPENAI_ENDPOINT\");\n\n this.azureADTokenProvider = fields?.azureADTokenProvider;\n\n if (!this.azureOpenAIApiKey && !this.apiKey && !this.azureADTokenProvider) {\n throw new Error(\"Azure OpenAI API key or Token Provider not found\");\n }\n}\n\nexport function _getAzureClientOptions(\n this: BaseChatOpenAI<ChatOpenAICallOptions> & Partial<AzureOpenAIChatInput>,\n options: OpenAICoreRequestOptions | undefined\n): OpenAICoreRequestOptions {\n if (!this.client) {\n const openAIEndpointConfig: OpenAIEndpointConfig = {\n azureOpenAIApiDeploymentName: this.azureOpenAIApiDeploymentName,\n azureOpenAIApiInstanceName: this.azureOpenAIApiInstanceName,\n azureOpenAIApiKey: this.azureOpenAIApiKey,\n azureOpenAIBasePath: this.azureOpenAIBasePath,\n azureADTokenProvider: this.azureADTokenProvider,\n baseURL: this.clientConfig.baseURL,\n azureOpenAIEndpoint: this.azureOpenAIEndpoint,\n };\n\n const endpoint = getEndpoint(openAIEndpointConfig);\n\n const params = {\n ...this.clientConfig,\n baseURL: endpoint,\n timeout: this.timeout,\n maxRetries: 0,\n };\n\n if (!this.azureADTokenProvider) {\n params.apiKey = openAIEndpointConfig.azureOpenAIApiKey;\n }\n\n if (!params.baseURL) {\n delete params.baseURL;\n }\n\n let env = getEnv();\n if (env === \"node\" || env === \"deno\") {\n env = `(${env}/${process.version}; ${process.platform}; ${process.arch})`;\n }\n\n const defaultHeaders = normalizeHeaders(params.defaultHeaders);\n params.defaultHeaders = {\n ...params.defaultHeaders,\n \"User-Agent\": defaultHeaders[\"User-Agent\"]\n ? `langchainjs-azure-openai/2.0.0 (${env})${defaultHeaders[\"User-Agent\"]}`\n : `langchainjs-azure-openai/2.0.0 (${env})`,\n };\n\n this.client = new AzureOpenAIClient({\n apiVersion: this.azureOpenAIApiVersion,\n azureADTokenProvider: this.azureADTokenProvider,\n deployment: this.azureOpenAIApiDeploymentName,\n ...params,\n });\n }\n const requestOptions = {\n ...this.clientConfig,\n ...options,\n } as OpenAICoreRequestOptions;\n if (this.azureOpenAIApiKey) {\n requestOptions.headers = {\n \"api-key\": this.azureOpenAIApiKey,\n ...requestOptions.headers,\n };\n requestOptions.query = {\n \"api-version\": this.azureOpenAIApiVersion,\n ...requestOptions.query,\n };\n }\n return requestOptions;\n}\n\nexport function _serializeAzureChat(\n this: BaseChatOpenAI<ChatOpenAICallOptions> & Partial<AzureOpenAIChatInput>,\n input: Serialized\n) {\n const json = input;\n\n function isRecord(obj: unknown): obj is Record<string, unknown> {\n return typeof obj === \"object\" && obj != null;\n }\n\n if (isRecord(json) && isRecord(json.kwargs)) {\n delete json.kwargs.azure_openai_base_path;\n delete json.kwargs.azure_openai_api_deployment_name;\n delete json.kwargs.azure_openai_api_key;\n delete json.kwargs.azure_openai_api_version;\n delete json.kwargs.azure_open_ai_base_path;\n\n if (!json.kwargs.azure_endpoint && this.azureOpenAIEndpoint) {\n json.kwargs.azure_endpoint = this.azureOpenAIEndpoint;\n }\n if (!json.kwargs.azure_endpoint && this.azureOpenAIBasePath) {\n const parts = this.azureOpenAIBasePath.split(\"/openai/deployments/\");\n if (parts.length === 2 && parts[0].startsWith(\"http\")) {\n const [endpoint] = parts;\n json.kwargs.azure_endpoint = endpoint;\n }\n }\n if (!json.kwargs.azure_endpoint && this.azureOpenAIApiInstanceName) {\n json.kwargs.azure_endpoint = `https://${this.azureOpenAIApiInstanceName}.openai.azure.com/`;\n }\n if (!json.kwargs.deployment_name && this.azureOpenAIApiDeploymentName) {\n json.kwargs.deployment_name = this.azureOpenAIApiDeploymentName;\n }\n if (!json.kwargs.deployment_name && this.azureOpenAIBasePath) {\n const parts = this.azureOpenAIBasePath.split(\"/openai/deployments/\");\n if (parts.length === 2) {\n const [, deployment] = parts;\n json.kwargs.deployment_name = deployment;\n }\n }\n\n if (\n json.kwargs.azure_endpoint &&\n json.kwargs.deployment_name &&\n json.kwargs.openai_api_base\n ) {\n delete json.kwargs.openai_api_base;\n }\n if (\n json.kwargs.azure_openai_api_instance_name &&\n json.kwargs.azure_endpoint\n ) {\n delete json.kwargs.azure_openai_api_instance_name;\n }\n }\n\n return json;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"common.cjs","names":["fields?: AzureChatOpenAIFields","options: OpenAICoreRequestOptions | undefined","openAIEndpointConfig: OpenAIEndpointConfig","getEndpoint","params: Omit<ClientOptions, \"apiKey\"> & { apiKey?: string }","getHeadersWithUserAgent","AzureOpenAIClient","input: Serialized","obj: unknown"],"sources":["../../../src/azure/chat_models/common.ts"],"sourcesContent":["import { AzureOpenAI as AzureOpenAIClient, type ClientOptions } from \"openai\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport type { Serialized } from \"@langchain/core/load/serializable\";\nimport { ChatOpenAICallOptions } from \"../../chat_models/index.js\";\nimport {\n OpenAIEndpointConfig,\n getEndpoint,\n getHeadersWithUserAgent,\n} from \"../../utils/azure.js\";\nimport { AzureOpenAIChatInput, OpenAICoreRequestOptions } from \"../../types.js\";\nimport {\n BaseChatOpenAI,\n BaseChatOpenAIFields,\n} from \"../../chat_models/base.js\";\n\nexport const AZURE_ALIASES = {\n openAIApiKey: \"openai_api_key\",\n openAIApiVersion: \"openai_api_version\",\n openAIBasePath: \"openai_api_base\",\n deploymentName: \"deployment_name\",\n azureOpenAIEndpoint: \"azure_endpoint\",\n azureOpenAIApiVersion: \"openai_api_version\",\n azureOpenAIBasePath: \"openai_api_base\",\n azureOpenAIApiDeploymentName: \"deployment_name\",\n};\n\nexport const AZURE_SECRETS = {\n azureOpenAIApiKey: \"AZURE_OPENAI_API_KEY\",\n};\n\nexport const AZURE_SERIALIZABLE_KEYS = [\n \"azureOpenAIApiKey\",\n \"azureOpenAIApiVersion\",\n \"azureOpenAIBasePath\",\n \"azureOpenAIEndpoint\",\n \"azureOpenAIApiInstanceName\",\n \"azureOpenAIApiDeploymentName\",\n \"deploymentName\",\n \"openAIApiKey\",\n \"openAIApiVersion\",\n];\n\nexport interface AzureChatOpenAIFields\n extends BaseChatOpenAIFields,\n Partial<AzureOpenAIChatInput> {\n /**\n * Whether to use the responses API for all requests. If `false` the responses API will be used\n * only when required in order to fulfill the request.\n */\n useResponsesApi?: boolean;\n}\n\nexport function _constructAzureFields(\n this: Partial<AzureOpenAIChatInput>,\n fields?: AzureChatOpenAIFields\n) {\n this.azureOpenAIApiKey =\n fields?.azureOpenAIApiKey ??\n (typeof fields?.openAIApiKey === \"string\"\n ? fields?.openAIApiKey\n : undefined) ??\n (typeof fields?.apiKey === \"string\" ? fields?.apiKey : undefined) ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_KEY\");\n\n this.azureOpenAIApiInstanceName =\n fields?.azureOpenAIApiInstanceName ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_INSTANCE_NAME\");\n\n this.azureOpenAIApiDeploymentName =\n fields?.azureOpenAIApiDeploymentName ??\n fields?.deploymentName ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_DEPLOYMENT_NAME\");\n\n this.azureOpenAIApiVersion =\n fields?.azureOpenAIApiVersion ??\n fields?.openAIApiVersion ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_VERSION\");\n\n this.azureOpenAIBasePath =\n fields?.azureOpenAIBasePath ??\n getEnvironmentVariable(\"AZURE_OPENAI_BASE_PATH\");\n\n this.azureOpenAIEndpoint =\n fields?.azureOpenAIEndpoint ??\n getEnvironmentVariable(\"AZURE_OPENAI_ENDPOINT\");\n\n this.azureADTokenProvider = fields?.azureADTokenProvider;\n\n if (!this.azureOpenAIApiKey && !this.apiKey && !this.azureADTokenProvider) {\n throw new Error(\"Azure OpenAI API key or Token Provider not found\");\n }\n}\n\nexport function _getAzureClientOptions(\n this: BaseChatOpenAI<ChatOpenAICallOptions> & Partial<AzureOpenAIChatInput>,\n options: OpenAICoreRequestOptions | undefined\n): OpenAICoreRequestOptions {\n if (!this.client) {\n const openAIEndpointConfig: OpenAIEndpointConfig = {\n azureOpenAIApiDeploymentName: this.azureOpenAIApiDeploymentName,\n azureOpenAIApiInstanceName: this.azureOpenAIApiInstanceName,\n azureOpenAIApiKey: this.azureOpenAIApiKey,\n azureOpenAIBasePath: this.azureOpenAIBasePath,\n azureADTokenProvider: this.azureADTokenProvider,\n baseURL: this.clientConfig.baseURL,\n azureOpenAIEndpoint: this.azureOpenAIEndpoint,\n };\n\n const endpoint = getEndpoint(openAIEndpointConfig);\n\n const { apiKey: existingApiKey, ...clientConfigRest } = this.clientConfig;\n const params: Omit<ClientOptions, \"apiKey\"> & { apiKey?: string } = {\n ...clientConfigRest,\n baseURL: endpoint,\n timeout: this.timeout,\n maxRetries: 0,\n };\n\n if (!this.azureADTokenProvider) {\n params.apiKey = openAIEndpointConfig.azureOpenAIApiKey;\n }\n\n if (!params.baseURL) {\n delete params.baseURL;\n }\n\n params.defaultHeaders = getHeadersWithUserAgent(\n params.defaultHeaders,\n true,\n \"2.0.0\"\n );\n\n this.client = new AzureOpenAIClient({\n apiVersion: this.azureOpenAIApiVersion,\n azureADTokenProvider: this.azureADTokenProvider,\n deployment: this.azureOpenAIApiDeploymentName,\n ...params,\n });\n }\n const requestOptions = {\n ...this.clientConfig,\n ...options,\n } as OpenAICoreRequestOptions;\n if (this.azureOpenAIApiKey) {\n requestOptions.headers = {\n \"api-key\": this.azureOpenAIApiKey,\n ...requestOptions.headers,\n };\n requestOptions.query = {\n \"api-version\": this.azureOpenAIApiVersion,\n ...requestOptions.query,\n };\n }\n return requestOptions;\n}\n\nexport function _serializeAzureChat(\n this: BaseChatOpenAI<ChatOpenAICallOptions> & Partial<AzureOpenAIChatInput>,\n input: Serialized\n) {\n const json = input;\n\n function isRecord(obj: unknown): obj is Record<string, unknown> {\n return typeof obj === \"object\" && obj != null;\n }\n\n if (isRecord(json) && isRecord(json.kwargs)) {\n delete json.kwargs.azure_openai_base_path;\n delete json.kwargs.azure_openai_api_deployment_name;\n delete json.kwargs.azure_openai_api_key;\n delete json.kwargs.azure_openai_api_version;\n delete json.kwargs.azure_open_ai_base_path;\n\n if (!json.kwargs.azure_endpoint && this.azureOpenAIEndpoint) {\n json.kwargs.azure_endpoint = this.azureOpenAIEndpoint;\n }\n if (!json.kwargs.azure_endpoint && this.azureOpenAIBasePath) {\n const parts = this.azureOpenAIBasePath.split(\"/openai/deployments/\");\n if (parts.length === 2 && parts[0].startsWith(\"http\")) {\n const [endpoint] = parts;\n json.kwargs.azure_endpoint = endpoint;\n }\n }\n if (!json.kwargs.azure_endpoint && this.azureOpenAIApiInstanceName) {\n json.kwargs.azure_endpoint = `https://${this.azureOpenAIApiInstanceName}.openai.azure.com/`;\n }\n if (!json.kwargs.deployment_name && this.azureOpenAIApiDeploymentName) {\n json.kwargs.deployment_name = this.azureOpenAIApiDeploymentName;\n }\n if (!json.kwargs.deployment_name && this.azureOpenAIBasePath) {\n const parts = this.azureOpenAIBasePath.split(\"/openai/deployments/\");\n if (parts.length === 2) {\n const [, deployment] = parts;\n json.kwargs.deployment_name = deployment;\n }\n }\n\n if (\n json.kwargs.azure_endpoint &&\n json.kwargs.deployment_name &&\n json.kwargs.openai_api_base\n ) {\n delete json.kwargs.openai_api_base;\n }\n if (\n json.kwargs.azure_openai_api_instance_name &&\n json.kwargs.azure_endpoint\n ) {\n delete json.kwargs.azure_openai_api_instance_name;\n }\n }\n\n return json;\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { getEndpoint,
|
|
1
|
+
import { getEndpoint, getHeadersWithUserAgent } from "../../utils/azure.js";
|
|
2
2
|
import { AzureOpenAI } from "openai";
|
|
3
|
-
import {
|
|
3
|
+
import { getEnvironmentVariable } from "@langchain/core/utils/env";
|
|
4
4
|
|
|
5
5
|
//#region src/azure/chat_models/common.ts
|
|
6
6
|
const AZURE_ALIASES = {
|
|
@@ -26,7 +26,7 @@ const AZURE_SERIALIZABLE_KEYS = [
|
|
|
26
26
|
"openAIApiVersion"
|
|
27
27
|
];
|
|
28
28
|
function _constructAzureFields(fields) {
|
|
29
|
-
this.azureOpenAIApiKey = fields?.azureOpenAIApiKey ?? fields?.openAIApiKey ?? fields?.apiKey ?? getEnvironmentVariable("AZURE_OPENAI_API_KEY");
|
|
29
|
+
this.azureOpenAIApiKey = fields?.azureOpenAIApiKey ?? (typeof fields?.openAIApiKey === "string" ? fields?.openAIApiKey : void 0) ?? (typeof fields?.apiKey === "string" ? fields?.apiKey : void 0) ?? getEnvironmentVariable("AZURE_OPENAI_API_KEY");
|
|
30
30
|
this.azureOpenAIApiInstanceName = fields?.azureOpenAIApiInstanceName ?? getEnvironmentVariable("AZURE_OPENAI_API_INSTANCE_NAME");
|
|
31
31
|
this.azureOpenAIApiDeploymentName = fields?.azureOpenAIApiDeploymentName ?? fields?.deploymentName ?? getEnvironmentVariable("AZURE_OPENAI_API_DEPLOYMENT_NAME");
|
|
32
32
|
this.azureOpenAIApiVersion = fields?.azureOpenAIApiVersion ?? fields?.openAIApiVersion ?? getEnvironmentVariable("AZURE_OPENAI_API_VERSION");
|
|
@@ -47,21 +47,16 @@ function _getAzureClientOptions(options) {
|
|
|
47
47
|
azureOpenAIEndpoint: this.azureOpenAIEndpoint
|
|
48
48
|
};
|
|
49
49
|
const endpoint = getEndpoint(openAIEndpointConfig);
|
|
50
|
+
const { apiKey: existingApiKey,...clientConfigRest } = this.clientConfig;
|
|
50
51
|
const params = {
|
|
51
|
-
...
|
|
52
|
+
...clientConfigRest,
|
|
52
53
|
baseURL: endpoint,
|
|
53
54
|
timeout: this.timeout,
|
|
54
55
|
maxRetries: 0
|
|
55
56
|
};
|
|
56
57
|
if (!this.azureADTokenProvider) params.apiKey = openAIEndpointConfig.azureOpenAIApiKey;
|
|
57
58
|
if (!params.baseURL) delete params.baseURL;
|
|
58
|
-
|
|
59
|
-
if (env === "node" || env === "deno") env = `(${env}/${process.version}; ${process.platform}; ${process.arch})`;
|
|
60
|
-
const defaultHeaders = normalizeHeaders(params.defaultHeaders);
|
|
61
|
-
params.defaultHeaders = {
|
|
62
|
-
...params.defaultHeaders,
|
|
63
|
-
"User-Agent": defaultHeaders["User-Agent"] ? `langchainjs-azure-openai/2.0.0 (${env})${defaultHeaders["User-Agent"]}` : `langchainjs-azure-openai/2.0.0 (${env})`
|
|
64
|
-
};
|
|
59
|
+
params.defaultHeaders = getHeadersWithUserAgent(params.defaultHeaders, true, "2.0.0");
|
|
65
60
|
this.client = new AzureOpenAI({
|
|
66
61
|
apiVersion: this.azureOpenAIApiVersion,
|
|
67
62
|
azureADTokenProvider: this.azureADTokenProvider,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","names":["fields?: AzureChatOpenAIFields","options: OpenAICoreRequestOptions | undefined","openAIEndpointConfig: OpenAIEndpointConfig","AzureOpenAIClient","input: Serialized","obj: unknown"],"sources":["../../../src/azure/chat_models/common.ts"],"sourcesContent":["import { AzureOpenAI as AzureOpenAIClient } from \"openai\";\nimport { getEnv, getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport type { Serialized } from \"@langchain/core/load/serializable\";\nimport { ChatOpenAICallOptions } from \"../../chat_models/index.js\";\nimport {\n OpenAIEndpointConfig,\n getEndpoint,\n normalizeHeaders,\n} from \"../../utils/azure.js\";\nimport { AzureOpenAIChatInput, OpenAICoreRequestOptions } from \"../../types.js\";\nimport {\n BaseChatOpenAI,\n BaseChatOpenAIFields,\n} from \"../../chat_models/base.js\";\n\nexport const AZURE_ALIASES = {\n openAIApiKey: \"openai_api_key\",\n openAIApiVersion: \"openai_api_version\",\n openAIBasePath: \"openai_api_base\",\n deploymentName: \"deployment_name\",\n azureOpenAIEndpoint: \"azure_endpoint\",\n azureOpenAIApiVersion: \"openai_api_version\",\n azureOpenAIBasePath: \"openai_api_base\",\n azureOpenAIApiDeploymentName: \"deployment_name\",\n};\n\nexport const AZURE_SECRETS = {\n azureOpenAIApiKey: \"AZURE_OPENAI_API_KEY\",\n};\n\nexport const AZURE_SERIALIZABLE_KEYS = [\n \"azureOpenAIApiKey\",\n \"azureOpenAIApiVersion\",\n \"azureOpenAIBasePath\",\n \"azureOpenAIEndpoint\",\n \"azureOpenAIApiInstanceName\",\n \"azureOpenAIApiDeploymentName\",\n \"deploymentName\",\n \"openAIApiKey\",\n \"openAIApiVersion\",\n];\n\nexport interface AzureChatOpenAIFields\n extends BaseChatOpenAIFields,\n Partial<AzureOpenAIChatInput> {\n /**\n * Whether to use the responses API for all requests. If `false` the responses API will be used\n * only when required in order to fulfill the request.\n */\n useResponsesApi?: boolean;\n}\n\nexport function _constructAzureFields(\n this: Partial<AzureOpenAIChatInput>,\n fields?: AzureChatOpenAIFields\n) {\n this.azureOpenAIApiKey =\n fields?.azureOpenAIApiKey ??\n fields?.openAIApiKey ??\n fields?.apiKey ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_KEY\");\n\n this.azureOpenAIApiInstanceName =\n fields?.azureOpenAIApiInstanceName ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_INSTANCE_NAME\");\n\n this.azureOpenAIApiDeploymentName =\n fields?.azureOpenAIApiDeploymentName ??\n fields?.deploymentName ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_DEPLOYMENT_NAME\");\n\n this.azureOpenAIApiVersion =\n fields?.azureOpenAIApiVersion ??\n fields?.openAIApiVersion ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_VERSION\");\n\n this.azureOpenAIBasePath =\n fields?.azureOpenAIBasePath ??\n getEnvironmentVariable(\"AZURE_OPENAI_BASE_PATH\");\n\n this.azureOpenAIEndpoint =\n fields?.azureOpenAIEndpoint ??\n getEnvironmentVariable(\"AZURE_OPENAI_ENDPOINT\");\n\n this.azureADTokenProvider = fields?.azureADTokenProvider;\n\n if (!this.azureOpenAIApiKey && !this.apiKey && !this.azureADTokenProvider) {\n throw new Error(\"Azure OpenAI API key or Token Provider not found\");\n }\n}\n\nexport function _getAzureClientOptions(\n this: BaseChatOpenAI<ChatOpenAICallOptions> & Partial<AzureOpenAIChatInput>,\n options: OpenAICoreRequestOptions | undefined\n): OpenAICoreRequestOptions {\n if (!this.client) {\n const openAIEndpointConfig: OpenAIEndpointConfig = {\n azureOpenAIApiDeploymentName: this.azureOpenAIApiDeploymentName,\n azureOpenAIApiInstanceName: this.azureOpenAIApiInstanceName,\n azureOpenAIApiKey: this.azureOpenAIApiKey,\n azureOpenAIBasePath: this.azureOpenAIBasePath,\n azureADTokenProvider: this.azureADTokenProvider,\n baseURL: this.clientConfig.baseURL,\n azureOpenAIEndpoint: this.azureOpenAIEndpoint,\n };\n\n const endpoint = getEndpoint(openAIEndpointConfig);\n\n const params = {\n ...this.clientConfig,\n baseURL: endpoint,\n timeout: this.timeout,\n maxRetries: 0,\n };\n\n if (!this.azureADTokenProvider) {\n params.apiKey = openAIEndpointConfig.azureOpenAIApiKey;\n }\n\n if (!params.baseURL) {\n delete params.baseURL;\n }\n\n let env = getEnv();\n if (env === \"node\" || env === \"deno\") {\n env = `(${env}/${process.version}; ${process.platform}; ${process.arch})`;\n }\n\n const defaultHeaders = normalizeHeaders(params.defaultHeaders);\n params.defaultHeaders = {\n ...params.defaultHeaders,\n \"User-Agent\": defaultHeaders[\"User-Agent\"]\n ? `langchainjs-azure-openai/2.0.0 (${env})${defaultHeaders[\"User-Agent\"]}`\n : `langchainjs-azure-openai/2.0.0 (${env})`,\n };\n\n this.client = new AzureOpenAIClient({\n apiVersion: this.azureOpenAIApiVersion,\n azureADTokenProvider: this.azureADTokenProvider,\n deployment: this.azureOpenAIApiDeploymentName,\n ...params,\n });\n }\n const requestOptions = {\n ...this.clientConfig,\n ...options,\n } as OpenAICoreRequestOptions;\n if (this.azureOpenAIApiKey) {\n requestOptions.headers = {\n \"api-key\": this.azureOpenAIApiKey,\n ...requestOptions.headers,\n };\n requestOptions.query = {\n \"api-version\": this.azureOpenAIApiVersion,\n ...requestOptions.query,\n };\n }\n return requestOptions;\n}\n\nexport function _serializeAzureChat(\n this: BaseChatOpenAI<ChatOpenAICallOptions> & Partial<AzureOpenAIChatInput>,\n input: Serialized\n) {\n const json = input;\n\n function isRecord(obj: unknown): obj is Record<string, unknown> {\n return typeof obj === \"object\" && obj != null;\n }\n\n if (isRecord(json) && isRecord(json.kwargs)) {\n delete json.kwargs.azure_openai_base_path;\n delete json.kwargs.azure_openai_api_deployment_name;\n delete json.kwargs.azure_openai_api_key;\n delete json.kwargs.azure_openai_api_version;\n delete json.kwargs.azure_open_ai_base_path;\n\n if (!json.kwargs.azure_endpoint && this.azureOpenAIEndpoint) {\n json.kwargs.azure_endpoint = this.azureOpenAIEndpoint;\n }\n if (!json.kwargs.azure_endpoint && this.azureOpenAIBasePath) {\n const parts = this.azureOpenAIBasePath.split(\"/openai/deployments/\");\n if (parts.length === 2 && parts[0].startsWith(\"http\")) {\n const [endpoint] = parts;\n json.kwargs.azure_endpoint = endpoint;\n }\n }\n if (!json.kwargs.azure_endpoint && this.azureOpenAIApiInstanceName) {\n json.kwargs.azure_endpoint = `https://${this.azureOpenAIApiInstanceName}.openai.azure.com/`;\n }\n if (!json.kwargs.deployment_name && this.azureOpenAIApiDeploymentName) {\n json.kwargs.deployment_name = this.azureOpenAIApiDeploymentName;\n }\n if (!json.kwargs.deployment_name && this.azureOpenAIBasePath) {\n const parts = this.azureOpenAIBasePath.split(\"/openai/deployments/\");\n if (parts.length === 2) {\n const [, deployment] = parts;\n json.kwargs.deployment_name = deployment;\n }\n }\n\n if (\n json.kwargs.azure_endpoint &&\n json.kwargs.deployment_name &&\n json.kwargs.openai_api_base\n ) {\n delete json.kwargs.openai_api_base;\n }\n if (\n json.kwargs.azure_openai_api_instance_name &&\n json.kwargs.azure_endpoint\n ) {\n delete json.kwargs.azure_openai_api_instance_name;\n }\n }\n\n return json;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"common.js","names":["fields?: AzureChatOpenAIFields","options: OpenAICoreRequestOptions | undefined","openAIEndpointConfig: OpenAIEndpointConfig","params: Omit<ClientOptions, \"apiKey\"> & { apiKey?: string }","AzureOpenAIClient","input: Serialized","obj: unknown"],"sources":["../../../src/azure/chat_models/common.ts"],"sourcesContent":["import { AzureOpenAI as AzureOpenAIClient, type ClientOptions } from \"openai\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport type { Serialized } from \"@langchain/core/load/serializable\";\nimport { ChatOpenAICallOptions } from \"../../chat_models/index.js\";\nimport {\n OpenAIEndpointConfig,\n getEndpoint,\n getHeadersWithUserAgent,\n} from \"../../utils/azure.js\";\nimport { AzureOpenAIChatInput, OpenAICoreRequestOptions } from \"../../types.js\";\nimport {\n BaseChatOpenAI,\n BaseChatOpenAIFields,\n} from \"../../chat_models/base.js\";\n\nexport const AZURE_ALIASES = {\n openAIApiKey: \"openai_api_key\",\n openAIApiVersion: \"openai_api_version\",\n openAIBasePath: \"openai_api_base\",\n deploymentName: \"deployment_name\",\n azureOpenAIEndpoint: \"azure_endpoint\",\n azureOpenAIApiVersion: \"openai_api_version\",\n azureOpenAIBasePath: \"openai_api_base\",\n azureOpenAIApiDeploymentName: \"deployment_name\",\n};\n\nexport const AZURE_SECRETS = {\n azureOpenAIApiKey: \"AZURE_OPENAI_API_KEY\",\n};\n\nexport const AZURE_SERIALIZABLE_KEYS = [\n \"azureOpenAIApiKey\",\n \"azureOpenAIApiVersion\",\n \"azureOpenAIBasePath\",\n \"azureOpenAIEndpoint\",\n \"azureOpenAIApiInstanceName\",\n \"azureOpenAIApiDeploymentName\",\n \"deploymentName\",\n \"openAIApiKey\",\n \"openAIApiVersion\",\n];\n\nexport interface AzureChatOpenAIFields\n extends BaseChatOpenAIFields,\n Partial<AzureOpenAIChatInput> {\n /**\n * Whether to use the responses API for all requests. If `false` the responses API will be used\n * only when required in order to fulfill the request.\n */\n useResponsesApi?: boolean;\n}\n\nexport function _constructAzureFields(\n this: Partial<AzureOpenAIChatInput>,\n fields?: AzureChatOpenAIFields\n) {\n this.azureOpenAIApiKey =\n fields?.azureOpenAIApiKey ??\n (typeof fields?.openAIApiKey === \"string\"\n ? fields?.openAIApiKey\n : undefined) ??\n (typeof fields?.apiKey === \"string\" ? fields?.apiKey : undefined) ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_KEY\");\n\n this.azureOpenAIApiInstanceName =\n fields?.azureOpenAIApiInstanceName ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_INSTANCE_NAME\");\n\n this.azureOpenAIApiDeploymentName =\n fields?.azureOpenAIApiDeploymentName ??\n fields?.deploymentName ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_DEPLOYMENT_NAME\");\n\n this.azureOpenAIApiVersion =\n fields?.azureOpenAIApiVersion ??\n fields?.openAIApiVersion ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_VERSION\");\n\n this.azureOpenAIBasePath =\n fields?.azureOpenAIBasePath ??\n getEnvironmentVariable(\"AZURE_OPENAI_BASE_PATH\");\n\n this.azureOpenAIEndpoint =\n fields?.azureOpenAIEndpoint ??\n getEnvironmentVariable(\"AZURE_OPENAI_ENDPOINT\");\n\n this.azureADTokenProvider = fields?.azureADTokenProvider;\n\n if (!this.azureOpenAIApiKey && !this.apiKey && !this.azureADTokenProvider) {\n throw new Error(\"Azure OpenAI API key or Token Provider not found\");\n }\n}\n\nexport function _getAzureClientOptions(\n this: BaseChatOpenAI<ChatOpenAICallOptions> & Partial<AzureOpenAIChatInput>,\n options: OpenAICoreRequestOptions | undefined\n): OpenAICoreRequestOptions {\n if (!this.client) {\n const openAIEndpointConfig: OpenAIEndpointConfig = {\n azureOpenAIApiDeploymentName: this.azureOpenAIApiDeploymentName,\n azureOpenAIApiInstanceName: this.azureOpenAIApiInstanceName,\n azureOpenAIApiKey: this.azureOpenAIApiKey,\n azureOpenAIBasePath: this.azureOpenAIBasePath,\n azureADTokenProvider: this.azureADTokenProvider,\n baseURL: this.clientConfig.baseURL,\n azureOpenAIEndpoint: this.azureOpenAIEndpoint,\n };\n\n const endpoint = getEndpoint(openAIEndpointConfig);\n\n const { apiKey: existingApiKey, ...clientConfigRest } = this.clientConfig;\n const params: Omit<ClientOptions, \"apiKey\"> & { apiKey?: string } = {\n ...clientConfigRest,\n baseURL: endpoint,\n timeout: this.timeout,\n maxRetries: 0,\n };\n\n if (!this.azureADTokenProvider) {\n params.apiKey = openAIEndpointConfig.azureOpenAIApiKey;\n }\n\n if (!params.baseURL) {\n delete params.baseURL;\n }\n\n params.defaultHeaders = getHeadersWithUserAgent(\n params.defaultHeaders,\n true,\n \"2.0.0\"\n );\n\n this.client = new AzureOpenAIClient({\n apiVersion: this.azureOpenAIApiVersion,\n azureADTokenProvider: this.azureADTokenProvider,\n deployment: this.azureOpenAIApiDeploymentName,\n ...params,\n });\n }\n const requestOptions = {\n ...this.clientConfig,\n ...options,\n } as OpenAICoreRequestOptions;\n if (this.azureOpenAIApiKey) {\n requestOptions.headers = {\n \"api-key\": this.azureOpenAIApiKey,\n ...requestOptions.headers,\n };\n requestOptions.query = {\n \"api-version\": this.azureOpenAIApiVersion,\n ...requestOptions.query,\n };\n }\n return requestOptions;\n}\n\nexport function _serializeAzureChat(\n this: BaseChatOpenAI<ChatOpenAICallOptions> & Partial<AzureOpenAIChatInput>,\n input: Serialized\n) {\n const json = input;\n\n function isRecord(obj: unknown): obj is Record<string, unknown> {\n return typeof obj === \"object\" && obj != null;\n }\n\n if (isRecord(json) && isRecord(json.kwargs)) {\n delete json.kwargs.azure_openai_base_path;\n delete json.kwargs.azure_openai_api_deployment_name;\n delete json.kwargs.azure_openai_api_key;\n delete json.kwargs.azure_openai_api_version;\n delete json.kwargs.azure_open_ai_base_path;\n\n if (!json.kwargs.azure_endpoint && this.azureOpenAIEndpoint) {\n json.kwargs.azure_endpoint = this.azureOpenAIEndpoint;\n }\n if (!json.kwargs.azure_endpoint && this.azureOpenAIBasePath) {\n const parts = this.azureOpenAIBasePath.split(\"/openai/deployments/\");\n if (parts.length === 2 && parts[0].startsWith(\"http\")) {\n const [endpoint] = parts;\n json.kwargs.azure_endpoint = endpoint;\n }\n }\n if (!json.kwargs.azure_endpoint && this.azureOpenAIApiInstanceName) {\n json.kwargs.azure_endpoint = `https://${this.azureOpenAIApiInstanceName}.openai.azure.com/`;\n }\n if (!json.kwargs.deployment_name && this.azureOpenAIApiDeploymentName) {\n json.kwargs.deployment_name = this.azureOpenAIApiDeploymentName;\n }\n if (!json.kwargs.deployment_name && this.azureOpenAIBasePath) {\n const parts = this.azureOpenAIBasePath.split(\"/openai/deployments/\");\n if (parts.length === 2) {\n const [, deployment] = parts;\n json.kwargs.deployment_name = deployment;\n }\n }\n\n if (\n json.kwargs.azure_endpoint &&\n json.kwargs.deployment_name &&\n json.kwargs.openai_api_base\n ) {\n delete json.kwargs.openai_api_base;\n }\n if (\n json.kwargs.azure_openai_api_instance_name &&\n json.kwargs.azure_endpoint\n ) {\n delete json.kwargs.azure_openai_api_instance_name;\n }\n }\n\n return json;\n}\n"],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ var AzureOpenAIEmbeddings = class extends require_embeddings.OpenAIEmbeddings {
|
|
|
16
16
|
constructor(fields) {
|
|
17
17
|
super(fields);
|
|
18
18
|
this.batchSize = fields?.batchSize ?? 1;
|
|
19
|
-
this.azureOpenAIApiKey = fields?.azureOpenAIApiKey ?? fields?.apiKey ?? (0, __langchain_core_utils_env.getEnvironmentVariable)("AZURE_OPENAI_API_KEY");
|
|
19
|
+
this.azureOpenAIApiKey = fields?.azureOpenAIApiKey ?? (typeof fields?.apiKey === "string" ? fields?.apiKey : void 0) ?? (0, __langchain_core_utils_env.getEnvironmentVariable)("AZURE_OPENAI_API_KEY");
|
|
20
20
|
this.azureOpenAIApiVersion = fields?.azureOpenAIApiVersion ?? fields?.openAIApiVersion ?? (0, __langchain_core_utils_env.getEnvironmentVariable)("AZURE_OPENAI_API_VERSION");
|
|
21
21
|
this.azureOpenAIBasePath = fields?.azureOpenAIBasePath ?? (0, __langchain_core_utils_env.getEnvironmentVariable)("AZURE_OPENAI_BASE_PATH");
|
|
22
22
|
this.azureOpenAIApiInstanceName = fields?.azureOpenAIApiInstanceName ?? (0, __langchain_core_utils_env.getEnvironmentVariable)("AZURE_OPENAI_API_INSTANCE_NAME");
|
|
@@ -34,19 +34,16 @@ var AzureOpenAIEmbeddings = class extends require_embeddings.OpenAIEmbeddings {
|
|
|
34
34
|
baseURL: this.clientConfig.baseURL
|
|
35
35
|
};
|
|
36
36
|
const endpoint = require_azure.getEndpoint(openAIEndpointConfig);
|
|
37
|
+
const { apiKey: existingApiKey,...clientConfigRest } = this.clientConfig;
|
|
37
38
|
const params = {
|
|
38
|
-
...
|
|
39
|
+
...clientConfigRest,
|
|
39
40
|
baseURL: endpoint,
|
|
40
41
|
timeout: this.timeout,
|
|
41
42
|
maxRetries: 0
|
|
42
43
|
};
|
|
43
44
|
if (!this.azureADTokenProvider) params.apiKey = openAIEndpointConfig.azureOpenAIApiKey;
|
|
44
45
|
if (!params.baseURL) delete params.baseURL;
|
|
45
|
-
|
|
46
|
-
params.defaultHeaders = {
|
|
47
|
-
...params.defaultHeaders,
|
|
48
|
-
"User-Agent": defaultHeaders["User-Agent"] ? `${defaultHeaders["User-Agent"]}: langchainjs-azure-openai-v2` : `langchainjs-azure-openai-v2`
|
|
49
|
-
};
|
|
46
|
+
params.defaultHeaders = require_azure.getHeadersWithUserAgent(params.defaultHeaders, true, "2.0.0");
|
|
50
47
|
this.client = new openai.AzureOpenAI({
|
|
51
48
|
apiVersion: this.azureOpenAIApiVersion,
|
|
52
49
|
azureADTokenProvider: this.azureADTokenProvider,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embeddings.cjs","names":["OpenAIEmbeddings","fields?: Partial<OpenAIEmbeddingsParams> &\n Partial<AzureOpenAIInput> & {\n verbose?: boolean;\n /** The OpenAI API key to use. */\n apiKey?: string;\n configuration?: ClientOptions;\n deploymentName?: string;\n openAIApiVersion?: string;\n }","request: OpenAIClient.EmbeddingCreateParams","openAIEndpointConfig: OpenAIEndpointConfig","getEndpoint","
|
|
1
|
+
{"version":3,"file":"embeddings.cjs","names":["OpenAIEmbeddings","fields?: Partial<OpenAIEmbeddingsParams> &\n Partial<AzureOpenAIInput> & {\n verbose?: boolean;\n /** The OpenAI API key to use. */\n apiKey?: string;\n configuration?: ClientOptions;\n deploymentName?: string;\n openAIApiVersion?: string;\n }","request: OpenAIClient.EmbeddingCreateParams","openAIEndpointConfig: OpenAIEndpointConfig","getEndpoint","params: Omit<ClientOptions, \"apiKey\"> & { apiKey?: string }","getHeadersWithUserAgent","AzureOpenAIClient","requestOptions: OpenAICoreRequestOptions","wrapOpenAIClientError"],"sources":["../../src/azure/embeddings.ts"],"sourcesContent":["import {\n type ClientOptions,\n AzureOpenAI as AzureOpenAIClient,\n OpenAI as OpenAIClient,\n} from \"openai\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport { OpenAIEmbeddings, OpenAIEmbeddingsParams } from \"../embeddings.js\";\nimport { AzureOpenAIInput, OpenAICoreRequestOptions } from \"../types.js\";\nimport {\n getEndpoint,\n OpenAIEndpointConfig,\n getHeadersWithUserAgent,\n} from \"../utils/azure.js\";\nimport { wrapOpenAIClientError } from \"../utils/client.js\";\n\nexport class AzureOpenAIEmbeddings extends OpenAIEmbeddings {\n azureOpenAIApiVersion?: string;\n\n azureOpenAIApiKey?: string;\n\n azureADTokenProvider?: () => Promise<string>;\n\n azureOpenAIApiInstanceName?: string;\n\n azureOpenAIApiDeploymentName?: string;\n\n azureOpenAIBasePath?: string;\n\n constructor(\n fields?: Partial<OpenAIEmbeddingsParams> &\n Partial<AzureOpenAIInput> & {\n verbose?: boolean;\n /** The OpenAI API key to use. */\n apiKey?: string;\n configuration?: ClientOptions;\n deploymentName?: string;\n openAIApiVersion?: string;\n }\n ) {\n super(fields);\n this.batchSize = fields?.batchSize ?? 1;\n this.azureOpenAIApiKey =\n fields?.azureOpenAIApiKey ??\n (typeof fields?.apiKey === \"string\" ? fields?.apiKey : undefined) ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_KEY\");\n\n this.azureOpenAIApiVersion =\n fields?.azureOpenAIApiVersion ??\n fields?.openAIApiVersion ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_VERSION\");\n\n this.azureOpenAIBasePath =\n fields?.azureOpenAIBasePath ??\n getEnvironmentVariable(\"AZURE_OPENAI_BASE_PATH\");\n\n this.azureOpenAIApiInstanceName =\n fields?.azureOpenAIApiInstanceName ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_INSTANCE_NAME\");\n\n this.azureOpenAIApiDeploymentName =\n (fields?.azureOpenAIApiEmbeddingsDeploymentName ||\n fields?.azureOpenAIApiDeploymentName) ??\n (getEnvironmentVariable(\"AZURE_OPENAI_API_EMBEDDINGS_DEPLOYMENT_NAME\") ||\n getEnvironmentVariable(\"AZURE_OPENAI_API_DEPLOYMENT_NAME\"));\n\n this.azureADTokenProvider = fields?.azureADTokenProvider;\n }\n\n protected async embeddingWithRetry(\n request: OpenAIClient.EmbeddingCreateParams\n ) {\n if (!this.client) {\n const openAIEndpointConfig: OpenAIEndpointConfig = {\n azureOpenAIApiDeploymentName: this.azureOpenAIApiDeploymentName,\n azureOpenAIApiInstanceName: this.azureOpenAIApiInstanceName,\n azureOpenAIApiKey: this.azureOpenAIApiKey,\n azureOpenAIBasePath: this.azureOpenAIBasePath,\n azureADTokenProvider: this.azureADTokenProvider,\n baseURL: this.clientConfig.baseURL,\n };\n\n const endpoint = getEndpoint(openAIEndpointConfig);\n\n const { apiKey: existingApiKey, ...clientConfigRest } = this.clientConfig;\n const params: Omit<ClientOptions, \"apiKey\"> & { apiKey?: string } = {\n ...clientConfigRest,\n baseURL: endpoint,\n timeout: this.timeout,\n maxRetries: 0,\n };\n\n if (!this.azureADTokenProvider) {\n params.apiKey = openAIEndpointConfig.azureOpenAIApiKey;\n }\n\n if (!params.baseURL) {\n delete params.baseURL;\n }\n\n params.defaultHeaders = getHeadersWithUserAgent(\n params.defaultHeaders,\n true,\n \"2.0.0\"\n );\n\n this.client = new AzureOpenAIClient({\n apiVersion: this.azureOpenAIApiVersion,\n azureADTokenProvider: this.azureADTokenProvider,\n deployment: this.azureOpenAIApiDeploymentName,\n ...params,\n });\n }\n const requestOptions: OpenAICoreRequestOptions = {};\n if (this.azureOpenAIApiKey) {\n requestOptions.headers = {\n \"api-key\": this.azureOpenAIApiKey,\n ...requestOptions.headers,\n };\n requestOptions.query = {\n \"api-version\": this.azureOpenAIApiVersion,\n ...requestOptions.query,\n };\n }\n return this.caller.call(async () => {\n try {\n const res = await this.client.embeddings.create(\n request,\n requestOptions\n );\n return res;\n } catch (e) {\n const error = wrapOpenAIClientError(e);\n throw error;\n }\n });\n }\n}\n"],"mappings":";;;;;;;;AAeA,IAAa,wBAAb,cAA2CA,oCAAiB;CAC1D;CAEA;CAEA;CAEA;CAEA;CAEA;CAEA,YACEC,QASA;EACA,MAAM,OAAO;EACb,KAAK,YAAY,QAAQ,aAAa;EACtC,KAAK,oBACH,QAAQ,sBACP,OAAO,QAAQ,WAAW,WAAW,QAAQ,SAAS,kEAChC,uBAAuB;EAEhD,KAAK,wBACH,QAAQ,yBACR,QAAQ,2EACe,2BAA2B;EAEpD,KAAK,sBACH,QAAQ,8EACe,yBAAyB;EAElD,KAAK,6BACH,QAAQ,qFACe,iCAAiC;EAE1D,KAAK,gCACF,QAAQ,0CACP,QAAQ,yFACc,8CAA8C,2DAC7C,mCAAmC;EAE9D,KAAK,uBAAuB,QAAQ;CACrC;CAED,MAAgB,mBACdC,SACA;AACA,MAAI,CAAC,KAAK,QAAQ;GAChB,MAAMC,uBAA6C;IACjD,8BAA8B,KAAK;IACnC,4BAA4B,KAAK;IACjC,mBAAmB,KAAK;IACxB,qBAAqB,KAAK;IAC1B,sBAAsB,KAAK;IAC3B,SAAS,KAAK,aAAa;GAC5B;GAED,MAAM,WAAWC,0BAAY,qBAAqB;GAElD,MAAM,EAAE,QAAQ,eAAgB,GAAG,kBAAkB,GAAG,KAAK;GAC7D,MAAMC,SAA8D;IAClE,GAAG;IACH,SAAS;IACT,SAAS,KAAK;IACd,YAAY;GACb;AAED,OAAI,CAAC,KAAK,sBACR,OAAO,SAAS,qBAAqB;AAGvC,OAAI,CAAC,OAAO,SACV,OAAO,OAAO;GAGhB,OAAO,iBAAiBC,sCACtB,OAAO,gBACP,MACA,QACD;GAED,KAAK,SAAS,IAAIC,mBAAkB;IAClC,YAAY,KAAK;IACjB,sBAAsB,KAAK;IAC3B,YAAY,KAAK;IACjB,GAAG;GACJ;EACF;EACD,MAAMC,iBAA2C,CAAE;AACnD,MAAI,KAAK,mBAAmB;GAC1B,eAAe,UAAU;IACvB,WAAW,KAAK;IAChB,GAAG,eAAe;GACnB;GACD,eAAe,QAAQ;IACrB,eAAe,KAAK;IACpB,GAAG,eAAe;GACnB;EACF;AACD,SAAO,KAAK,OAAO,KAAK,YAAY;AAClC,OAAI;IACF,MAAM,MAAM,MAAM,KAAK,OAAO,WAAW,OACvC,SACA,eACD;AACD,WAAO;GACR,SAAQ,GAAG;IACV,MAAM,QAAQC,qCAAsB,EAAE;AACtC,UAAM;GACP;EACF,EAAC;CACH;AACF"}
|
package/dist/azure/embeddings.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { wrapOpenAIClientError } from "../utils/client.js";
|
|
2
|
-
import { getEndpoint,
|
|
2
|
+
import { getEndpoint, getHeadersWithUserAgent } from "../utils/azure.js";
|
|
3
3
|
import { OpenAIEmbeddings } from "../embeddings.js";
|
|
4
4
|
import { AzureOpenAI } from "openai";
|
|
5
5
|
import { getEnvironmentVariable } from "@langchain/core/utils/env";
|
|
@@ -15,7 +15,7 @@ var AzureOpenAIEmbeddings = class extends OpenAIEmbeddings {
|
|
|
15
15
|
constructor(fields) {
|
|
16
16
|
super(fields);
|
|
17
17
|
this.batchSize = fields?.batchSize ?? 1;
|
|
18
|
-
this.azureOpenAIApiKey = fields?.azureOpenAIApiKey ?? fields?.apiKey ?? getEnvironmentVariable("AZURE_OPENAI_API_KEY");
|
|
18
|
+
this.azureOpenAIApiKey = fields?.azureOpenAIApiKey ?? (typeof fields?.apiKey === "string" ? fields?.apiKey : void 0) ?? getEnvironmentVariable("AZURE_OPENAI_API_KEY");
|
|
19
19
|
this.azureOpenAIApiVersion = fields?.azureOpenAIApiVersion ?? fields?.openAIApiVersion ?? getEnvironmentVariable("AZURE_OPENAI_API_VERSION");
|
|
20
20
|
this.azureOpenAIBasePath = fields?.azureOpenAIBasePath ?? getEnvironmentVariable("AZURE_OPENAI_BASE_PATH");
|
|
21
21
|
this.azureOpenAIApiInstanceName = fields?.azureOpenAIApiInstanceName ?? getEnvironmentVariable("AZURE_OPENAI_API_INSTANCE_NAME");
|
|
@@ -33,19 +33,16 @@ var AzureOpenAIEmbeddings = class extends OpenAIEmbeddings {
|
|
|
33
33
|
baseURL: this.clientConfig.baseURL
|
|
34
34
|
};
|
|
35
35
|
const endpoint = getEndpoint(openAIEndpointConfig);
|
|
36
|
+
const { apiKey: existingApiKey,...clientConfigRest } = this.clientConfig;
|
|
36
37
|
const params = {
|
|
37
|
-
...
|
|
38
|
+
...clientConfigRest,
|
|
38
39
|
baseURL: endpoint,
|
|
39
40
|
timeout: this.timeout,
|
|
40
41
|
maxRetries: 0
|
|
41
42
|
};
|
|
42
43
|
if (!this.azureADTokenProvider) params.apiKey = openAIEndpointConfig.azureOpenAIApiKey;
|
|
43
44
|
if (!params.baseURL) delete params.baseURL;
|
|
44
|
-
|
|
45
|
-
params.defaultHeaders = {
|
|
46
|
-
...params.defaultHeaders,
|
|
47
|
-
"User-Agent": defaultHeaders["User-Agent"] ? `${defaultHeaders["User-Agent"]}: langchainjs-azure-openai-v2` : `langchainjs-azure-openai-v2`
|
|
48
|
-
};
|
|
45
|
+
params.defaultHeaders = getHeadersWithUserAgent(params.defaultHeaders, true, "2.0.0");
|
|
49
46
|
this.client = new AzureOpenAI({
|
|
50
47
|
apiVersion: this.azureOpenAIApiVersion,
|
|
51
48
|
azureADTokenProvider: this.azureADTokenProvider,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embeddings.js","names":["fields?: Partial<OpenAIEmbeddingsParams> &\n Partial<AzureOpenAIInput> & {\n verbose?: boolean;\n /** The OpenAI API key to use. */\n apiKey?: string;\n configuration?: ClientOptions;\n deploymentName?: string;\n openAIApiVersion?: string;\n }","request: OpenAIClient.EmbeddingCreateParams","openAIEndpointConfig: OpenAIEndpointConfig","AzureOpenAIClient","requestOptions: OpenAICoreRequestOptions"],"sources":["../../src/azure/embeddings.ts"],"sourcesContent":["import {\n type ClientOptions,\n AzureOpenAI as AzureOpenAIClient,\n OpenAI as OpenAIClient,\n} from \"openai\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport { OpenAIEmbeddings, OpenAIEmbeddingsParams } from \"../embeddings.js\";\nimport { AzureOpenAIInput, OpenAICoreRequestOptions } from \"../types.js\";\nimport {\n getEndpoint,\n OpenAIEndpointConfig,\n
|
|
1
|
+
{"version":3,"file":"embeddings.js","names":["fields?: Partial<OpenAIEmbeddingsParams> &\n Partial<AzureOpenAIInput> & {\n verbose?: boolean;\n /** The OpenAI API key to use. */\n apiKey?: string;\n configuration?: ClientOptions;\n deploymentName?: string;\n openAIApiVersion?: string;\n }","request: OpenAIClient.EmbeddingCreateParams","openAIEndpointConfig: OpenAIEndpointConfig","params: Omit<ClientOptions, \"apiKey\"> & { apiKey?: string }","AzureOpenAIClient","requestOptions: OpenAICoreRequestOptions"],"sources":["../../src/azure/embeddings.ts"],"sourcesContent":["import {\n type ClientOptions,\n AzureOpenAI as AzureOpenAIClient,\n OpenAI as OpenAIClient,\n} from \"openai\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport { OpenAIEmbeddings, OpenAIEmbeddingsParams } from \"../embeddings.js\";\nimport { AzureOpenAIInput, OpenAICoreRequestOptions } from \"../types.js\";\nimport {\n getEndpoint,\n OpenAIEndpointConfig,\n getHeadersWithUserAgent,\n} from \"../utils/azure.js\";\nimport { wrapOpenAIClientError } from \"../utils/client.js\";\n\nexport class AzureOpenAIEmbeddings extends OpenAIEmbeddings {\n azureOpenAIApiVersion?: string;\n\n azureOpenAIApiKey?: string;\n\n azureADTokenProvider?: () => Promise<string>;\n\n azureOpenAIApiInstanceName?: string;\n\n azureOpenAIApiDeploymentName?: string;\n\n azureOpenAIBasePath?: string;\n\n constructor(\n fields?: Partial<OpenAIEmbeddingsParams> &\n Partial<AzureOpenAIInput> & {\n verbose?: boolean;\n /** The OpenAI API key to use. */\n apiKey?: string;\n configuration?: ClientOptions;\n deploymentName?: string;\n openAIApiVersion?: string;\n }\n ) {\n super(fields);\n this.batchSize = fields?.batchSize ?? 1;\n this.azureOpenAIApiKey =\n fields?.azureOpenAIApiKey ??\n (typeof fields?.apiKey === \"string\" ? fields?.apiKey : undefined) ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_KEY\");\n\n this.azureOpenAIApiVersion =\n fields?.azureOpenAIApiVersion ??\n fields?.openAIApiVersion ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_VERSION\");\n\n this.azureOpenAIBasePath =\n fields?.azureOpenAIBasePath ??\n getEnvironmentVariable(\"AZURE_OPENAI_BASE_PATH\");\n\n this.azureOpenAIApiInstanceName =\n fields?.azureOpenAIApiInstanceName ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_INSTANCE_NAME\");\n\n this.azureOpenAIApiDeploymentName =\n (fields?.azureOpenAIApiEmbeddingsDeploymentName ||\n fields?.azureOpenAIApiDeploymentName) ??\n (getEnvironmentVariable(\"AZURE_OPENAI_API_EMBEDDINGS_DEPLOYMENT_NAME\") ||\n getEnvironmentVariable(\"AZURE_OPENAI_API_DEPLOYMENT_NAME\"));\n\n this.azureADTokenProvider = fields?.azureADTokenProvider;\n }\n\n protected async embeddingWithRetry(\n request: OpenAIClient.EmbeddingCreateParams\n ) {\n if (!this.client) {\n const openAIEndpointConfig: OpenAIEndpointConfig = {\n azureOpenAIApiDeploymentName: this.azureOpenAIApiDeploymentName,\n azureOpenAIApiInstanceName: this.azureOpenAIApiInstanceName,\n azureOpenAIApiKey: this.azureOpenAIApiKey,\n azureOpenAIBasePath: this.azureOpenAIBasePath,\n azureADTokenProvider: this.azureADTokenProvider,\n baseURL: this.clientConfig.baseURL,\n };\n\n const endpoint = getEndpoint(openAIEndpointConfig);\n\n const { apiKey: existingApiKey, ...clientConfigRest } = this.clientConfig;\n const params: Omit<ClientOptions, \"apiKey\"> & { apiKey?: string } = {\n ...clientConfigRest,\n baseURL: endpoint,\n timeout: this.timeout,\n maxRetries: 0,\n };\n\n if (!this.azureADTokenProvider) {\n params.apiKey = openAIEndpointConfig.azureOpenAIApiKey;\n }\n\n if (!params.baseURL) {\n delete params.baseURL;\n }\n\n params.defaultHeaders = getHeadersWithUserAgent(\n params.defaultHeaders,\n true,\n \"2.0.0\"\n );\n\n this.client = new AzureOpenAIClient({\n apiVersion: this.azureOpenAIApiVersion,\n azureADTokenProvider: this.azureADTokenProvider,\n deployment: this.azureOpenAIApiDeploymentName,\n ...params,\n });\n }\n const requestOptions: OpenAICoreRequestOptions = {};\n if (this.azureOpenAIApiKey) {\n requestOptions.headers = {\n \"api-key\": this.azureOpenAIApiKey,\n ...requestOptions.headers,\n };\n requestOptions.query = {\n \"api-version\": this.azureOpenAIApiVersion,\n ...requestOptions.query,\n };\n }\n return this.caller.call(async () => {\n try {\n const res = await this.client.embeddings.create(\n request,\n requestOptions\n );\n return res;\n } catch (e) {\n const error = wrapOpenAIClientError(e);\n throw error;\n }\n });\n }\n}\n"],"mappings":";;;;;;;AAeA,IAAa,wBAAb,cAA2C,iBAAiB;CAC1D;CAEA;CAEA;CAEA;CAEA;CAEA;CAEA,YACEA,QASA;EACA,MAAM,OAAO;EACb,KAAK,YAAY,QAAQ,aAAa;EACtC,KAAK,oBACH,QAAQ,sBACP,OAAO,QAAQ,WAAW,WAAW,QAAQ,SAAS,WACvD,uBAAuB,uBAAuB;EAEhD,KAAK,wBACH,QAAQ,yBACR,QAAQ,oBACR,uBAAuB,2BAA2B;EAEpD,KAAK,sBACH,QAAQ,uBACR,uBAAuB,yBAAyB;EAElD,KAAK,6BACH,QAAQ,8BACR,uBAAuB,iCAAiC;EAE1D,KAAK,gCACF,QAAQ,0CACP,QAAQ,kCACT,uBAAuB,8CAA8C,IACpE,uBAAuB,mCAAmC;EAE9D,KAAK,uBAAuB,QAAQ;CACrC;CAED,MAAgB,mBACdC,SACA;AACA,MAAI,CAAC,KAAK,QAAQ;GAChB,MAAMC,uBAA6C;IACjD,8BAA8B,KAAK;IACnC,4BAA4B,KAAK;IACjC,mBAAmB,KAAK;IACxB,qBAAqB,KAAK;IAC1B,sBAAsB,KAAK;IAC3B,SAAS,KAAK,aAAa;GAC5B;GAED,MAAM,WAAW,YAAY,qBAAqB;GAElD,MAAM,EAAE,QAAQ,eAAgB,GAAG,kBAAkB,GAAG,KAAK;GAC7D,MAAMC,SAA8D;IAClE,GAAG;IACH,SAAS;IACT,SAAS,KAAK;IACd,YAAY;GACb;AAED,OAAI,CAAC,KAAK,sBACR,OAAO,SAAS,qBAAqB;AAGvC,OAAI,CAAC,OAAO,SACV,OAAO,OAAO;GAGhB,OAAO,iBAAiB,wBACtB,OAAO,gBACP,MACA,QACD;GAED,KAAK,SAAS,IAAIC,YAAkB;IAClC,YAAY,KAAK;IACjB,sBAAsB,KAAK;IAC3B,YAAY,KAAK;IACjB,GAAG;GACJ;EACF;EACD,MAAMC,iBAA2C,CAAE;AACnD,MAAI,KAAK,mBAAmB;GAC1B,eAAe,UAAU;IACvB,WAAW,KAAK;IAChB,GAAG,eAAe;GACnB;GACD,eAAe,QAAQ;IACrB,eAAe,KAAK;IACpB,GAAG,eAAe;GACnB;EACF;AACD,SAAO,KAAK,OAAO,KAAK,YAAY;AAClC,OAAI;IACF,MAAM,MAAM,MAAM,KAAK,OAAO,WAAW,OACvC,SACA,eACD;AACD,WAAO;GACR,SAAQ,GAAG;IACV,MAAM,QAAQ,sBAAsB,EAAE;AACtC,UAAM;GACP;EACF,EAAC;CACH;AACF"}
|
package/dist/azure/llms.cjs
CHANGED
|
@@ -35,7 +35,7 @@ var AzureOpenAI = class extends require_llms.OpenAI {
|
|
|
35
35
|
constructor(fields) {
|
|
36
36
|
super(fields);
|
|
37
37
|
this.azureOpenAIApiDeploymentName = (fields?.azureOpenAIApiCompletionsDeploymentName || fields?.azureOpenAIApiDeploymentName) ?? ((0, __langchain_core_utils_env.getEnvironmentVariable)("AZURE_OPENAI_API_COMPLETIONS_DEPLOYMENT_NAME") || (0, __langchain_core_utils_env.getEnvironmentVariable)("AZURE_OPENAI_API_DEPLOYMENT_NAME"));
|
|
38
|
-
this.azureOpenAIApiKey = fields?.azureOpenAIApiKey ?? fields?.openAIApiKey ?? fields?.apiKey ?? (0, __langchain_core_utils_env.getEnvironmentVariable)("AZURE_OPENAI_API_KEY");
|
|
38
|
+
this.azureOpenAIApiKey = fields?.azureOpenAIApiKey ?? (typeof fields?.openAIApiKey === "string" ? fields?.openAIApiKey : void 0) ?? (typeof fields?.apiKey === "string" ? fields?.apiKey : void 0) ?? (0, __langchain_core_utils_env.getEnvironmentVariable)("AZURE_OPENAI_API_KEY");
|
|
39
39
|
this.azureOpenAIApiInstanceName = fields?.azureOpenAIApiInstanceName ?? (0, __langchain_core_utils_env.getEnvironmentVariable)("AZURE_OPENAI_API_INSTANCE_NAME");
|
|
40
40
|
this.azureOpenAIApiVersion = fields?.azureOpenAIApiVersion ?? fields?.openAIApiVersion ?? (0, __langchain_core_utils_env.getEnvironmentVariable)("AZURE_OPENAI_API_VERSION");
|
|
41
41
|
this.azureOpenAIBasePath = fields?.azureOpenAIBasePath ?? (0, __langchain_core_utils_env.getEnvironmentVariable)("AZURE_OPENAI_BASE_PATH");
|
|
@@ -54,19 +54,16 @@ var AzureOpenAI = class extends require_llms.OpenAI {
|
|
|
54
54
|
baseURL: this.clientConfig.baseURL
|
|
55
55
|
};
|
|
56
56
|
const endpoint = require_azure.getEndpoint(openAIEndpointConfig);
|
|
57
|
+
const { apiKey: existingApiKey,...clientConfigRest } = this.clientConfig;
|
|
57
58
|
const params = {
|
|
58
|
-
...
|
|
59
|
+
...clientConfigRest,
|
|
59
60
|
baseURL: endpoint,
|
|
60
61
|
timeout: this.timeout,
|
|
61
62
|
maxRetries: 0
|
|
62
63
|
};
|
|
63
64
|
if (!this.azureADTokenProvider) params.apiKey = openAIEndpointConfig.azureOpenAIApiKey;
|
|
64
65
|
if (!params.baseURL) delete params.baseURL;
|
|
65
|
-
|
|
66
|
-
params.defaultHeaders = {
|
|
67
|
-
...params.defaultHeaders,
|
|
68
|
-
"User-Agent": defaultHeaders["User-Agent"] ? `${defaultHeaders["User-Agent"]}: langchainjs-azure-openai-v2` : `langchainjs-azure-openai-v2`
|
|
69
|
-
};
|
|
66
|
+
params.defaultHeaders = require_azure.getHeadersWithUserAgent(params.defaultHeaders, true, "2.0.0");
|
|
70
67
|
this.client = new openai.AzureOpenAI({
|
|
71
68
|
apiVersion: this.azureOpenAIApiVersion,
|
|
72
69
|
azureADTokenProvider: this.azureADTokenProvider,
|
package/dist/azure/llms.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llms.cjs","names":["OpenAI","fields?: Partial<OpenAIInput> & {\n openAIApiKey?: string;\n openAIApiVersion?: string;\n openAIBasePath?: string;\n deploymentName?: string;\n } & Partial<AzureOpenAIInput> &\n BaseLLMParams & {\n configuration?: ClientOptions;\n }","options: OpenAICoreRequestOptions | undefined","openAIEndpointConfig: OpenAIEndpointConfig","getEndpoint","
|
|
1
|
+
{"version":3,"file":"llms.cjs","names":["OpenAI","fields?: Partial<OpenAIInput> & {\n openAIApiKey?: string;\n openAIApiVersion?: string;\n openAIBasePath?: string;\n deploymentName?: string;\n } & Partial<AzureOpenAIInput> &\n BaseLLMParams & {\n configuration?: ClientOptions;\n }","options: OpenAICoreRequestOptions | undefined","openAIEndpointConfig: OpenAIEndpointConfig","getEndpoint","params: Omit<ClientOptions, \"apiKey\"> & { apiKey?: string }","getHeadersWithUserAgent","AzureOpenAIClient","obj: unknown"],"sources":["../../src/azure/llms.ts"],"sourcesContent":["import { type ClientOptions, AzureOpenAI as AzureOpenAIClient } from \"openai\";\nimport { type BaseLLMParams } from \"@langchain/core/language_models/llms\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport { OpenAI } from \"../llms.js\";\nimport {\n OpenAIEndpointConfig,\n getEndpoint,\n getHeadersWithUserAgent,\n} from \"../utils/azure.js\";\nimport type {\n OpenAIInput,\n AzureOpenAIInput,\n OpenAICoreRequestOptions,\n} from \"../types.js\";\n\nexport class AzureOpenAI extends OpenAI {\n azureOpenAIApiVersion?: string;\n\n azureOpenAIApiKey?: string;\n\n azureADTokenProvider?: () => Promise<string>;\n\n azureOpenAIApiInstanceName?: string;\n\n azureOpenAIApiDeploymentName?: string;\n\n azureOpenAIBasePath?: string;\n\n azureOpenAIEndpoint?: string;\n\n get lc_aliases(): Record<string, string> {\n return {\n ...super.lc_aliases,\n openAIApiKey: \"openai_api_key\",\n openAIApiVersion: \"openai_api_version\",\n openAIBasePath: \"openai_api_base\",\n deploymentName: \"deployment_name\",\n azureOpenAIEndpoint: \"azure_endpoint\",\n azureOpenAIApiVersion: \"openai_api_version\",\n azureOpenAIBasePath: \"openai_api_base\",\n azureOpenAIApiDeploymentName: \"deployment_name\",\n };\n }\n\n get lc_secrets(): { [key: string]: string } | undefined {\n return {\n ...super.lc_secrets,\n azureOpenAIApiKey: \"AZURE_OPENAI_API_KEY\",\n };\n }\n\n constructor(\n fields?: Partial<OpenAIInput> & {\n openAIApiKey?: string;\n openAIApiVersion?: string;\n openAIBasePath?: string;\n deploymentName?: string;\n } & Partial<AzureOpenAIInput> &\n BaseLLMParams & {\n configuration?: ClientOptions;\n }\n ) {\n super(fields);\n\n this.azureOpenAIApiDeploymentName =\n (fields?.azureOpenAIApiCompletionsDeploymentName ||\n fields?.azureOpenAIApiDeploymentName) ??\n (getEnvironmentVariable(\"AZURE_OPENAI_API_COMPLETIONS_DEPLOYMENT_NAME\") ||\n getEnvironmentVariable(\"AZURE_OPENAI_API_DEPLOYMENT_NAME\"));\n\n this.azureOpenAIApiKey =\n fields?.azureOpenAIApiKey ??\n (typeof fields?.openAIApiKey === \"string\"\n ? fields?.openAIApiKey\n : undefined) ??\n (typeof fields?.apiKey === \"string\" ? fields?.apiKey : undefined) ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_KEY\");\n\n this.azureOpenAIApiInstanceName =\n fields?.azureOpenAIApiInstanceName ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_INSTANCE_NAME\");\n\n this.azureOpenAIApiVersion =\n fields?.azureOpenAIApiVersion ??\n fields?.openAIApiVersion ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_VERSION\");\n\n this.azureOpenAIBasePath =\n fields?.azureOpenAIBasePath ??\n getEnvironmentVariable(\"AZURE_OPENAI_BASE_PATH\");\n\n this.azureOpenAIEndpoint =\n fields?.azureOpenAIEndpoint ??\n getEnvironmentVariable(\"AZURE_OPENAI_ENDPOINT\");\n\n this.azureADTokenProvider = fields?.azureADTokenProvider;\n\n if (!this.azureOpenAIApiKey && !this.apiKey && !this.azureADTokenProvider) {\n throw new Error(\"Azure OpenAI API key or Token Provider not found\");\n }\n }\n\n protected _getClientOptions(\n options: OpenAICoreRequestOptions | undefined\n ): OpenAICoreRequestOptions {\n if (!this.client) {\n const openAIEndpointConfig: OpenAIEndpointConfig = {\n azureOpenAIApiDeploymentName: this.azureOpenAIApiDeploymentName,\n azureOpenAIApiInstanceName: this.azureOpenAIApiInstanceName,\n azureOpenAIApiKey: this.azureOpenAIApiKey,\n azureOpenAIBasePath: this.azureOpenAIBasePath,\n azureADTokenProvider: this.azureADTokenProvider,\n baseURL: this.clientConfig.baseURL,\n };\n\n const endpoint = getEndpoint(openAIEndpointConfig);\n\n const { apiKey: existingApiKey, ...clientConfigRest } = this.clientConfig;\n const params: Omit<ClientOptions, \"apiKey\"> & { apiKey?: string } = {\n ...clientConfigRest,\n baseURL: endpoint,\n timeout: this.timeout,\n maxRetries: 0,\n };\n\n if (!this.azureADTokenProvider) {\n params.apiKey = openAIEndpointConfig.azureOpenAIApiKey;\n }\n\n if (!params.baseURL) {\n delete params.baseURL;\n }\n\n params.defaultHeaders = getHeadersWithUserAgent(\n params.defaultHeaders,\n true,\n \"2.0.0\"\n );\n\n this.client = new AzureOpenAIClient({\n apiVersion: this.azureOpenAIApiVersion,\n azureADTokenProvider: this.azureADTokenProvider,\n ...params,\n });\n }\n\n const requestOptions = {\n ...this.clientConfig,\n ...options,\n } as OpenAICoreRequestOptions;\n if (this.azureOpenAIApiKey) {\n requestOptions.headers = {\n \"api-key\": this.azureOpenAIApiKey,\n ...requestOptions.headers,\n };\n requestOptions.query = {\n \"api-version\": this.azureOpenAIApiVersion,\n ...requestOptions.query,\n };\n }\n return requestOptions;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n toJSON(): any {\n const json = super.toJSON() as unknown;\n\n function isRecord(obj: unknown): obj is Record<string, unknown> {\n return typeof obj === \"object\" && obj != null;\n }\n\n if (isRecord(json) && isRecord(json.kwargs)) {\n delete json.kwargs.azure_openai_base_path;\n delete json.kwargs.azure_openai_api_deployment_name;\n delete json.kwargs.azure_openai_api_key;\n delete json.kwargs.azure_openai_api_version;\n delete json.kwargs.azure_open_ai_base_path;\n }\n\n return json;\n }\n}\n"],"mappings":";;;;;;;AAeA,IAAa,cAAb,cAAiCA,oBAAO;CACtC;CAEA;CAEA;CAEA;CAEA;CAEA;CAEA;CAEA,IAAI,aAAqC;AACvC,SAAO;GACL,GAAG,MAAM;GACT,cAAc;GACd,kBAAkB;GAClB,gBAAgB;GAChB,gBAAgB;GAChB,qBAAqB;GACrB,uBAAuB;GACvB,qBAAqB;GACrB,8BAA8B;EAC/B;CACF;CAED,IAAI,aAAoD;AACtD,SAAO;GACL,GAAG,MAAM;GACT,mBAAmB;EACpB;CACF;CAED,YACEC,QASA;EACA,MAAM,OAAO;EAEb,KAAK,gCACF,QAAQ,2CACP,QAAQ,yFACc,+CAA+C,2DAC9C,mCAAmC;EAE9D,KAAK,oBACH,QAAQ,sBACP,OAAO,QAAQ,iBAAiB,WAC7B,QAAQ,eACR,YACH,OAAO,QAAQ,WAAW,WAAW,QAAQ,SAAS,kEAChC,uBAAuB;EAEhD,KAAK,6BACH,QAAQ,qFACe,iCAAiC;EAE1D,KAAK,wBACH,QAAQ,yBACR,QAAQ,2EACe,2BAA2B;EAEpD,KAAK,sBACH,QAAQ,8EACe,yBAAyB;EAElD,KAAK,sBACH,QAAQ,8EACe,wBAAwB;EAEjD,KAAK,uBAAuB,QAAQ;AAEpC,MAAI,CAAC,KAAK,qBAAqB,CAAC,KAAK,UAAU,CAAC,KAAK,qBACnD,OAAM,IAAI,MAAM;CAEnB;CAED,AAAU,kBACRC,SAC0B;AAC1B,MAAI,CAAC,KAAK,QAAQ;GAChB,MAAMC,uBAA6C;IACjD,8BAA8B,KAAK;IACnC,4BAA4B,KAAK;IACjC,mBAAmB,KAAK;IACxB,qBAAqB,KAAK;IAC1B,sBAAsB,KAAK;IAC3B,SAAS,KAAK,aAAa;GAC5B;GAED,MAAM,WAAWC,0BAAY,qBAAqB;GAElD,MAAM,EAAE,QAAQ,eAAgB,GAAG,kBAAkB,GAAG,KAAK;GAC7D,MAAMC,SAA8D;IAClE,GAAG;IACH,SAAS;IACT,SAAS,KAAK;IACd,YAAY;GACb;AAED,OAAI,CAAC,KAAK,sBACR,OAAO,SAAS,qBAAqB;AAGvC,OAAI,CAAC,OAAO,SACV,OAAO,OAAO;GAGhB,OAAO,iBAAiBC,sCACtB,OAAO,gBACP,MACA,QACD;GAED,KAAK,SAAS,IAAIC,mBAAkB;IAClC,YAAY,KAAK;IACjB,sBAAsB,KAAK;IAC3B,GAAG;GACJ;EACF;EAED,MAAM,iBAAiB;GACrB,GAAG,KAAK;GACR,GAAG;EACJ;AACD,MAAI,KAAK,mBAAmB;GAC1B,eAAe,UAAU;IACvB,WAAW,KAAK;IAChB,GAAG,eAAe;GACnB;GACD,eAAe,QAAQ;IACrB,eAAe,KAAK;IACpB,GAAG,eAAe;GACnB;EACF;AACD,SAAO;CACR;CAGD,SAAc;EACZ,MAAM,OAAO,MAAM,QAAQ;EAE3B,SAAS,SAASC,KAA8C;AAC9D,UAAO,OAAO,QAAQ,YAAY,OAAO;EAC1C;AAED,MAAI,SAAS,KAAK,IAAI,SAAS,KAAK,OAAO,EAAE;GAC3C,OAAO,KAAK,OAAO;GACnB,OAAO,KAAK,OAAO;GACnB,OAAO,KAAK,OAAO;GACnB,OAAO,KAAK,OAAO;GACnB,OAAO,KAAK,OAAO;EACpB;AAED,SAAO;CACR;AACF"}
|
package/dist/azure/llms.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getEndpoint,
|
|
1
|
+
import { getEndpoint, getHeadersWithUserAgent } from "../utils/azure.js";
|
|
2
2
|
import { OpenAI } from "../llms.js";
|
|
3
3
|
import { AzureOpenAI } from "openai";
|
|
4
4
|
import { getEnvironmentVariable } from "@langchain/core/utils/env";
|
|
@@ -34,7 +34,7 @@ var AzureOpenAI$1 = class extends OpenAI {
|
|
|
34
34
|
constructor(fields) {
|
|
35
35
|
super(fields);
|
|
36
36
|
this.azureOpenAIApiDeploymentName = (fields?.azureOpenAIApiCompletionsDeploymentName || fields?.azureOpenAIApiDeploymentName) ?? (getEnvironmentVariable("AZURE_OPENAI_API_COMPLETIONS_DEPLOYMENT_NAME") || getEnvironmentVariable("AZURE_OPENAI_API_DEPLOYMENT_NAME"));
|
|
37
|
-
this.azureOpenAIApiKey = fields?.azureOpenAIApiKey ?? fields?.openAIApiKey ?? fields?.apiKey ?? getEnvironmentVariable("AZURE_OPENAI_API_KEY");
|
|
37
|
+
this.azureOpenAIApiKey = fields?.azureOpenAIApiKey ?? (typeof fields?.openAIApiKey === "string" ? fields?.openAIApiKey : void 0) ?? (typeof fields?.apiKey === "string" ? fields?.apiKey : void 0) ?? getEnvironmentVariable("AZURE_OPENAI_API_KEY");
|
|
38
38
|
this.azureOpenAIApiInstanceName = fields?.azureOpenAIApiInstanceName ?? getEnvironmentVariable("AZURE_OPENAI_API_INSTANCE_NAME");
|
|
39
39
|
this.azureOpenAIApiVersion = fields?.azureOpenAIApiVersion ?? fields?.openAIApiVersion ?? getEnvironmentVariable("AZURE_OPENAI_API_VERSION");
|
|
40
40
|
this.azureOpenAIBasePath = fields?.azureOpenAIBasePath ?? getEnvironmentVariable("AZURE_OPENAI_BASE_PATH");
|
|
@@ -53,19 +53,16 @@ var AzureOpenAI$1 = class extends OpenAI {
|
|
|
53
53
|
baseURL: this.clientConfig.baseURL
|
|
54
54
|
};
|
|
55
55
|
const endpoint = getEndpoint(openAIEndpointConfig);
|
|
56
|
+
const { apiKey: existingApiKey,...clientConfigRest } = this.clientConfig;
|
|
56
57
|
const params = {
|
|
57
|
-
...
|
|
58
|
+
...clientConfigRest,
|
|
58
59
|
baseURL: endpoint,
|
|
59
60
|
timeout: this.timeout,
|
|
60
61
|
maxRetries: 0
|
|
61
62
|
};
|
|
62
63
|
if (!this.azureADTokenProvider) params.apiKey = openAIEndpointConfig.azureOpenAIApiKey;
|
|
63
64
|
if (!params.baseURL) delete params.baseURL;
|
|
64
|
-
|
|
65
|
-
params.defaultHeaders = {
|
|
66
|
-
...params.defaultHeaders,
|
|
67
|
-
"User-Agent": defaultHeaders["User-Agent"] ? `${defaultHeaders["User-Agent"]}: langchainjs-azure-openai-v2` : `langchainjs-azure-openai-v2`
|
|
68
|
-
};
|
|
65
|
+
params.defaultHeaders = getHeadersWithUserAgent(params.defaultHeaders, true, "2.0.0");
|
|
69
66
|
this.client = new AzureOpenAI({
|
|
70
67
|
apiVersion: this.azureOpenAIApiVersion,
|
|
71
68
|
azureADTokenProvider: this.azureADTokenProvider,
|
package/dist/azure/llms.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llms.js","names":["AzureOpenAI","fields?: Partial<OpenAIInput> & {\n openAIApiKey?: string;\n openAIApiVersion?: string;\n openAIBasePath?: string;\n deploymentName?: string;\n } & Partial<AzureOpenAIInput> &\n BaseLLMParams & {\n configuration?: ClientOptions;\n }","options: OpenAICoreRequestOptions | undefined","openAIEndpointConfig: OpenAIEndpointConfig","AzureOpenAIClient","obj: unknown"],"sources":["../../src/azure/llms.ts"],"sourcesContent":["import { type ClientOptions, AzureOpenAI as AzureOpenAIClient } from \"openai\";\nimport { type BaseLLMParams } from \"@langchain/core/language_models/llms\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport { OpenAI } from \"../llms.js\";\nimport {\n OpenAIEndpointConfig,\n getEndpoint,\n
|
|
1
|
+
{"version":3,"file":"llms.js","names":["AzureOpenAI","fields?: Partial<OpenAIInput> & {\n openAIApiKey?: string;\n openAIApiVersion?: string;\n openAIBasePath?: string;\n deploymentName?: string;\n } & Partial<AzureOpenAIInput> &\n BaseLLMParams & {\n configuration?: ClientOptions;\n }","options: OpenAICoreRequestOptions | undefined","openAIEndpointConfig: OpenAIEndpointConfig","params: Omit<ClientOptions, \"apiKey\"> & { apiKey?: string }","AzureOpenAIClient","obj: unknown"],"sources":["../../src/azure/llms.ts"],"sourcesContent":["import { type ClientOptions, AzureOpenAI as AzureOpenAIClient } from \"openai\";\nimport { type BaseLLMParams } from \"@langchain/core/language_models/llms\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport { OpenAI } from \"../llms.js\";\nimport {\n OpenAIEndpointConfig,\n getEndpoint,\n getHeadersWithUserAgent,\n} from \"../utils/azure.js\";\nimport type {\n OpenAIInput,\n AzureOpenAIInput,\n OpenAICoreRequestOptions,\n} from \"../types.js\";\n\nexport class AzureOpenAI extends OpenAI {\n azureOpenAIApiVersion?: string;\n\n azureOpenAIApiKey?: string;\n\n azureADTokenProvider?: () => Promise<string>;\n\n azureOpenAIApiInstanceName?: string;\n\n azureOpenAIApiDeploymentName?: string;\n\n azureOpenAIBasePath?: string;\n\n azureOpenAIEndpoint?: string;\n\n get lc_aliases(): Record<string, string> {\n return {\n ...super.lc_aliases,\n openAIApiKey: \"openai_api_key\",\n openAIApiVersion: \"openai_api_version\",\n openAIBasePath: \"openai_api_base\",\n deploymentName: \"deployment_name\",\n azureOpenAIEndpoint: \"azure_endpoint\",\n azureOpenAIApiVersion: \"openai_api_version\",\n azureOpenAIBasePath: \"openai_api_base\",\n azureOpenAIApiDeploymentName: \"deployment_name\",\n };\n }\n\n get lc_secrets(): { [key: string]: string } | undefined {\n return {\n ...super.lc_secrets,\n azureOpenAIApiKey: \"AZURE_OPENAI_API_KEY\",\n };\n }\n\n constructor(\n fields?: Partial<OpenAIInput> & {\n openAIApiKey?: string;\n openAIApiVersion?: string;\n openAIBasePath?: string;\n deploymentName?: string;\n } & Partial<AzureOpenAIInput> &\n BaseLLMParams & {\n configuration?: ClientOptions;\n }\n ) {\n super(fields);\n\n this.azureOpenAIApiDeploymentName =\n (fields?.azureOpenAIApiCompletionsDeploymentName ||\n fields?.azureOpenAIApiDeploymentName) ??\n (getEnvironmentVariable(\"AZURE_OPENAI_API_COMPLETIONS_DEPLOYMENT_NAME\") ||\n getEnvironmentVariable(\"AZURE_OPENAI_API_DEPLOYMENT_NAME\"));\n\n this.azureOpenAIApiKey =\n fields?.azureOpenAIApiKey ??\n (typeof fields?.openAIApiKey === \"string\"\n ? fields?.openAIApiKey\n : undefined) ??\n (typeof fields?.apiKey === \"string\" ? fields?.apiKey : undefined) ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_KEY\");\n\n this.azureOpenAIApiInstanceName =\n fields?.azureOpenAIApiInstanceName ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_INSTANCE_NAME\");\n\n this.azureOpenAIApiVersion =\n fields?.azureOpenAIApiVersion ??\n fields?.openAIApiVersion ??\n getEnvironmentVariable(\"AZURE_OPENAI_API_VERSION\");\n\n this.azureOpenAIBasePath =\n fields?.azureOpenAIBasePath ??\n getEnvironmentVariable(\"AZURE_OPENAI_BASE_PATH\");\n\n this.azureOpenAIEndpoint =\n fields?.azureOpenAIEndpoint ??\n getEnvironmentVariable(\"AZURE_OPENAI_ENDPOINT\");\n\n this.azureADTokenProvider = fields?.azureADTokenProvider;\n\n if (!this.azureOpenAIApiKey && !this.apiKey && !this.azureADTokenProvider) {\n throw new Error(\"Azure OpenAI API key or Token Provider not found\");\n }\n }\n\n protected _getClientOptions(\n options: OpenAICoreRequestOptions | undefined\n ): OpenAICoreRequestOptions {\n if (!this.client) {\n const openAIEndpointConfig: OpenAIEndpointConfig = {\n azureOpenAIApiDeploymentName: this.azureOpenAIApiDeploymentName,\n azureOpenAIApiInstanceName: this.azureOpenAIApiInstanceName,\n azureOpenAIApiKey: this.azureOpenAIApiKey,\n azureOpenAIBasePath: this.azureOpenAIBasePath,\n azureADTokenProvider: this.azureADTokenProvider,\n baseURL: this.clientConfig.baseURL,\n };\n\n const endpoint = getEndpoint(openAIEndpointConfig);\n\n const { apiKey: existingApiKey, ...clientConfigRest } = this.clientConfig;\n const params: Omit<ClientOptions, \"apiKey\"> & { apiKey?: string } = {\n ...clientConfigRest,\n baseURL: endpoint,\n timeout: this.timeout,\n maxRetries: 0,\n };\n\n if (!this.azureADTokenProvider) {\n params.apiKey = openAIEndpointConfig.azureOpenAIApiKey;\n }\n\n if (!params.baseURL) {\n delete params.baseURL;\n }\n\n params.defaultHeaders = getHeadersWithUserAgent(\n params.defaultHeaders,\n true,\n \"2.0.0\"\n );\n\n this.client = new AzureOpenAIClient({\n apiVersion: this.azureOpenAIApiVersion,\n azureADTokenProvider: this.azureADTokenProvider,\n ...params,\n });\n }\n\n const requestOptions = {\n ...this.clientConfig,\n ...options,\n } as OpenAICoreRequestOptions;\n if (this.azureOpenAIApiKey) {\n requestOptions.headers = {\n \"api-key\": this.azureOpenAIApiKey,\n ...requestOptions.headers,\n };\n requestOptions.query = {\n \"api-version\": this.azureOpenAIApiVersion,\n ...requestOptions.query,\n };\n }\n return requestOptions;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n toJSON(): any {\n const json = super.toJSON() as unknown;\n\n function isRecord(obj: unknown): obj is Record<string, unknown> {\n return typeof obj === \"object\" && obj != null;\n }\n\n if (isRecord(json) && isRecord(json.kwargs)) {\n delete json.kwargs.azure_openai_base_path;\n delete json.kwargs.azure_openai_api_deployment_name;\n delete json.kwargs.azure_openai_api_key;\n delete json.kwargs.azure_openai_api_version;\n delete json.kwargs.azure_open_ai_base_path;\n }\n\n return json;\n }\n}\n"],"mappings":";;;;;;AAeA,IAAaA,gBAAb,cAAiC,OAAO;CACtC;CAEA;CAEA;CAEA;CAEA;CAEA;CAEA;CAEA,IAAI,aAAqC;AACvC,SAAO;GACL,GAAG,MAAM;GACT,cAAc;GACd,kBAAkB;GAClB,gBAAgB;GAChB,gBAAgB;GAChB,qBAAqB;GACrB,uBAAuB;GACvB,qBAAqB;GACrB,8BAA8B;EAC/B;CACF;CAED,IAAI,aAAoD;AACtD,SAAO;GACL,GAAG,MAAM;GACT,mBAAmB;EACpB;CACF;CAED,YACEC,QASA;EACA,MAAM,OAAO;EAEb,KAAK,gCACF,QAAQ,2CACP,QAAQ,kCACT,uBAAuB,+CAA+C,IACrE,uBAAuB,mCAAmC;EAE9D,KAAK,oBACH,QAAQ,sBACP,OAAO,QAAQ,iBAAiB,WAC7B,QAAQ,eACR,YACH,OAAO,QAAQ,WAAW,WAAW,QAAQ,SAAS,WACvD,uBAAuB,uBAAuB;EAEhD,KAAK,6BACH,QAAQ,8BACR,uBAAuB,iCAAiC;EAE1D,KAAK,wBACH,QAAQ,yBACR,QAAQ,oBACR,uBAAuB,2BAA2B;EAEpD,KAAK,sBACH,QAAQ,uBACR,uBAAuB,yBAAyB;EAElD,KAAK,sBACH,QAAQ,uBACR,uBAAuB,wBAAwB;EAEjD,KAAK,uBAAuB,QAAQ;AAEpC,MAAI,CAAC,KAAK,qBAAqB,CAAC,KAAK,UAAU,CAAC,KAAK,qBACnD,OAAM,IAAI,MAAM;CAEnB;CAED,AAAU,kBACRC,SAC0B;AAC1B,MAAI,CAAC,KAAK,QAAQ;GAChB,MAAMC,uBAA6C;IACjD,8BAA8B,KAAK;IACnC,4BAA4B,KAAK;IACjC,mBAAmB,KAAK;IACxB,qBAAqB,KAAK;IAC1B,sBAAsB,KAAK;IAC3B,SAAS,KAAK,aAAa;GAC5B;GAED,MAAM,WAAW,YAAY,qBAAqB;GAElD,MAAM,EAAE,QAAQ,eAAgB,GAAG,kBAAkB,GAAG,KAAK;GAC7D,MAAMC,SAA8D;IAClE,GAAG;IACH,SAAS;IACT,SAAS,KAAK;IACd,YAAY;GACb;AAED,OAAI,CAAC,KAAK,sBACR,OAAO,SAAS,qBAAqB;AAGvC,OAAI,CAAC,OAAO,SACV,OAAO,OAAO;GAGhB,OAAO,iBAAiB,wBACtB,OAAO,gBACP,MACA,QACD;GAED,KAAK,SAAS,IAAIC,YAAkB;IAClC,YAAY,KAAK;IACjB,sBAAsB,KAAK;IAC3B,GAAG;GACJ;EACF;EAED,MAAM,iBAAiB;GACrB,GAAG,KAAK;GACR,GAAG;EACJ;AACD,MAAI,KAAK,mBAAmB;GAC1B,eAAe,UAAU;IACvB,WAAW,KAAK;IAChB,GAAG,eAAe;GACnB;GACD,eAAe,QAAQ;IACrB,eAAe,KAAK;IACpB,GAAG,eAAe;GACnB;EACF;AACD,SAAO;CACR;CAGD,SAAc;EACZ,MAAM,OAAO,MAAM,QAAQ;EAE3B,SAAS,SAASC,KAA8C;AAC9D,UAAO,OAAO,QAAQ,YAAY,OAAO;EAC1C;AAED,MAAI,SAAS,KAAK,IAAI,SAAS,KAAK,OAAO,EAAE;GAC3C,OAAO,KAAK,OAAO;GACnB,OAAO,KAAK,OAAO;GACnB,OAAO,KAAK,OAAO;GACnB,OAAO,KAAK,OAAO;GACnB,OAAO,KAAK,OAAO;EACpB;AAED,SAAO;CACR;AACF"}
|
|
@@ -178,7 +178,7 @@ var BaseChatOpenAI = class extends __langchain_core_language_models_chat_models.
|
|
|
178
178
|
}
|
|
179
179
|
constructor(fields) {
|
|
180
180
|
super(fields ?? {});
|
|
181
|
-
const configApiKey = typeof fields?.configuration?.apiKey === "string" ? fields?.configuration?.apiKey : void 0;
|
|
181
|
+
const configApiKey = typeof fields?.configuration?.apiKey === "string" || typeof fields?.configuration?.apiKey === "function" ? fields?.configuration?.apiKey : void 0;
|
|
182
182
|
this.apiKey = fields?.apiKey ?? configApiKey ?? (0, __langchain_core_utils_env.getEnvironmentVariable)("OPENAI_API_KEY");
|
|
183
183
|
this.organization = fields?.configuration?.organization ?? (0, __langchain_core_utils_env.getEnvironmentVariable)("OPENAI_ORGANIZATION");
|
|
184
184
|
this.model = fields?.model ?? fields?.modelName ?? this.model;
|
|
@@ -261,6 +261,7 @@ var BaseChatOpenAI = class extends __langchain_core_language_models_chat_models.
|
|
|
261
261
|
maxRetries: 0
|
|
262
262
|
};
|
|
263
263
|
if (!params.baseURL) delete params.baseURL;
|
|
264
|
+
params.defaultHeaders = require_azure.getHeadersWithUserAgent(params.defaultHeaders);
|
|
264
265
|
this.client = new openai.OpenAI(params);
|
|
265
266
|
}
|
|
266
267
|
const requestOptions = {
|