@langchain/openai 0.5.12 → 0.5.14

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.
@@ -5,6 +5,7 @@ const openai_1 = require("openai");
5
5
  const env_1 = require("@langchain/core/utils/env");
6
6
  const chat_models_js_1 = require("../chat_models.cjs");
7
7
  const azure_js_1 = require("../utils/azure.cjs");
8
+ const headers_js_1 = require("../utils/headers.cjs");
8
9
  /**
9
10
  * Azure OpenAI chat model integration.
10
11
  *
@@ -558,10 +559,12 @@ class AzureChatOpenAI extends chat_models_js_1.ChatOpenAI {
558
559
  if (env === "node" || env === "deno") {
559
560
  env = `(${env}/${process.version}; ${process.platform}; ${process.arch})`;
560
561
  }
561
- const specifiedUserAgent = params.defaultHeaders?.["User-Agent"];
562
+ const defaultHeaders = (0, headers_js_1.normalizeHeaders)(params.defaultHeaders);
562
563
  params.defaultHeaders = {
563
564
  ...params.defaultHeaders,
564
- "User-Agent": `langchainjs-azure-openai/2.0.0 (${env})${specifiedUserAgent ? ` ${specifiedUserAgent}` : ""}`,
565
+ "User-Agent": defaultHeaders["User-Agent"]
566
+ ? `langchainjs-azure-openai/2.0.0 (${env})${defaultHeaders["User-Agent"]}`
567
+ : `langchainjs-azure-openai/2.0.0 (${env})`,
565
568
  };
566
569
  this.client = new openai_1.AzureOpenAI({
567
570
  apiVersion: this.azureOpenAIApiVersion,
@@ -3,7 +3,7 @@ import { LangSmithParams, type BaseChatModelParams } from "@langchain/core/langu
3
3
  import { BaseLanguageModelInput } from "@langchain/core/language_models/base";
4
4
  import { BaseMessage } from "@langchain/core/messages";
5
5
  import { Runnable } from "@langchain/core/runnables";
6
- import { z } from "zod";
6
+ import { InteropZodType } from "@langchain/core/utils/types";
7
7
  import { ChatOpenAI, ChatOpenAIStructuredOutputMethodOptions } from "../chat_models.js";
8
8
  import { AzureOpenAIInput, OpenAIChatInput, OpenAICoreRequestOptions } from "../types.js";
9
9
  export type { AzureOpenAIInput };
@@ -444,12 +444,12 @@ export declare class AzureChatOpenAI extends ChatOpenAI {
444
444
  getLsParams(options: this["ParsedCallOptions"]): LangSmithParams;
445
445
  protected _getClientOptions(options: OpenAICoreRequestOptions | undefined): OpenAICoreRequestOptions;
446
446
  toJSON(): any;
447
- withStructuredOutput<RunOutput extends Record<string, any> = Record<string, any>>(outputSchema: z.ZodType<RunOutput> | Record<string, any>, config?: ChatOpenAIStructuredOutputMethodOptions<false>): Runnable<BaseLanguageModelInput, RunOutput>;
448
- withStructuredOutput<RunOutput extends Record<string, any> = Record<string, any>>(outputSchema: z.ZodType<RunOutput> | Record<string, any>, config?: ChatOpenAIStructuredOutputMethodOptions<true>): Runnable<BaseLanguageModelInput, {
447
+ withStructuredOutput<RunOutput extends Record<string, any> = Record<string, any>>(outputSchema: InteropZodType<RunOutput> | Record<string, any>, config?: ChatOpenAIStructuredOutputMethodOptions<false>): Runnable<BaseLanguageModelInput, RunOutput>;
448
+ withStructuredOutput<RunOutput extends Record<string, any> = Record<string, any>>(outputSchema: InteropZodType<RunOutput> | Record<string, any>, config?: ChatOpenAIStructuredOutputMethodOptions<true>): Runnable<BaseLanguageModelInput, {
449
449
  raw: BaseMessage;
450
450
  parsed: RunOutput;
451
451
  }>;
452
- withStructuredOutput<RunOutput extends Record<string, any> = Record<string, any>>(outputSchema: z.ZodType<RunOutput> | Record<string, any>, config?: ChatOpenAIStructuredOutputMethodOptions<boolean>): Runnable<BaseLanguageModelInput, RunOutput> | Runnable<BaseLanguageModelInput, {
452
+ withStructuredOutput<RunOutput extends Record<string, any> = Record<string, any>>(outputSchema: InteropZodType<RunOutput> | Record<string, any>, config?: ChatOpenAIStructuredOutputMethodOptions<boolean>): Runnable<BaseLanguageModelInput, RunOutput> | Runnable<BaseLanguageModelInput, {
453
453
  raw: BaseMessage;
454
454
  parsed: RunOutput;
455
455
  }>;
@@ -2,6 +2,7 @@ import { AzureOpenAI as AzureOpenAIClient } from "openai";
2
2
  import { getEnv, getEnvironmentVariable } from "@langchain/core/utils/env";
3
3
  import { ChatOpenAI, } from "../chat_models.js";
4
4
  import { getEndpoint } from "../utils/azure.js";
5
+ import { normalizeHeaders } from "../utils/headers.js";
5
6
  /**
6
7
  * Azure OpenAI chat model integration.
7
8
  *
@@ -555,10 +556,12 @@ export class AzureChatOpenAI extends ChatOpenAI {
555
556
  if (env === "node" || env === "deno") {
556
557
  env = `(${env}/${process.version}; ${process.platform}; ${process.arch})`;
557
558
  }
558
- const specifiedUserAgent = params.defaultHeaders?.["User-Agent"];
559
+ const defaultHeaders = normalizeHeaders(params.defaultHeaders);
559
560
  params.defaultHeaders = {
560
561
  ...params.defaultHeaders,
561
- "User-Agent": `langchainjs-azure-openai/2.0.0 (${env})${specifiedUserAgent ? ` ${specifiedUserAgent}` : ""}`,
562
+ "User-Agent": defaultHeaders["User-Agent"]
563
+ ? `langchainjs-azure-openai/2.0.0 (${env})${defaultHeaders["User-Agent"]}`
564
+ : `langchainjs-azure-openai/2.0.0 (${env})`,
562
565
  };
563
566
  this.client = new AzureOpenAIClient({
564
567
  apiVersion: this.azureOpenAIApiVersion,
@@ -6,6 +6,7 @@ const env_1 = require("@langchain/core/utils/env");
6
6
  const embeddings_js_1 = require("../embeddings.cjs");
7
7
  const azure_js_1 = require("../utils/azure.cjs");
8
8
  const openai_js_1 = require("../utils/openai.cjs");
9
+ const headers_js_1 = require("../utils/headers.cjs");
9
10
  class AzureOpenAIEmbeddings extends embeddings_js_1.OpenAIEmbeddings {
10
11
  constructor(fields) {
11
12
  super(fields);
@@ -90,10 +91,11 @@ class AzureOpenAIEmbeddings extends embeddings_js_1.OpenAIEmbeddings {
90
91
  if (!params.baseURL) {
91
92
  delete params.baseURL;
92
93
  }
94
+ const defaultHeaders = (0, headers_js_1.normalizeHeaders)(params.defaultHeaders);
93
95
  params.defaultHeaders = {
94
96
  ...params.defaultHeaders,
95
- "User-Agent": params.defaultHeaders?.["User-Agent"]
96
- ? `${params.defaultHeaders["User-Agent"]}: langchainjs-azure-openai-v2`
97
+ "User-Agent": defaultHeaders["User-Agent"]
98
+ ? `${defaultHeaders["User-Agent"]}: langchainjs-azure-openai-v2`
97
99
  : `langchainjs-azure-openai-v2`,
98
100
  };
99
101
  this.client = new openai_1.AzureOpenAI({
@@ -116,12 +118,7 @@ class AzureOpenAIEmbeddings extends embeddings_js_1.OpenAIEmbeddings {
116
118
  }
117
119
  return this.caller.call(async () => {
118
120
  try {
119
- const res = await this.client.embeddings.create(request,
120
- // This unknown cast is required because OpenAI types seem to be incorrect here
121
- // without it, we can't pass arbitrary keys via the `query` field in the options,
122
- // which means we can't specify the `api-version` as required by Azure OpenAI.
123
- // See https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#rest-api-versioning
124
- requestOptions);
121
+ const res = await this.client.embeddings.create(request, requestOptions);
125
122
  return res;
126
123
  }
127
124
  catch (e) {
@@ -17,6 +17,6 @@ export declare class AzureOpenAIEmbeddings extends OpenAIEmbeddings {
17
17
  openAIApiVersion?: string;
18
18
  });
19
19
  protected embeddingWithRetry(request: OpenAIClient.EmbeddingCreateParams): Promise<OpenAIClient.Embeddings.CreateEmbeddingResponse & {
20
- _request_id?: string | null | undefined;
20
+ _request_id?: string | null;
21
21
  }>;
22
22
  }
@@ -3,6 +3,7 @@ import { getEnvironmentVariable } from "@langchain/core/utils/env";
3
3
  import { OpenAIEmbeddings } from "../embeddings.js";
4
4
  import { getEndpoint } from "../utils/azure.js";
5
5
  import { wrapOpenAIClientError } from "../utils/openai.js";
6
+ import { normalizeHeaders } from "../utils/headers.js";
6
7
  export class AzureOpenAIEmbeddings extends OpenAIEmbeddings {
7
8
  constructor(fields) {
8
9
  super(fields);
@@ -87,10 +88,11 @@ export class AzureOpenAIEmbeddings extends OpenAIEmbeddings {
87
88
  if (!params.baseURL) {
88
89
  delete params.baseURL;
89
90
  }
91
+ const defaultHeaders = normalizeHeaders(params.defaultHeaders);
90
92
  params.defaultHeaders = {
91
93
  ...params.defaultHeaders,
92
- "User-Agent": params.defaultHeaders?.["User-Agent"]
93
- ? `${params.defaultHeaders["User-Agent"]}: langchainjs-azure-openai-v2`
94
+ "User-Agent": defaultHeaders["User-Agent"]
95
+ ? `${defaultHeaders["User-Agent"]}: langchainjs-azure-openai-v2`
94
96
  : `langchainjs-azure-openai-v2`,
95
97
  };
96
98
  this.client = new AzureOpenAIClient({
@@ -113,12 +115,7 @@ export class AzureOpenAIEmbeddings extends OpenAIEmbeddings {
113
115
  }
114
116
  return this.caller.call(async () => {
115
117
  try {
116
- const res = await this.client.embeddings.create(request,
117
- // This unknown cast is required because OpenAI types seem to be incorrect here
118
- // without it, we can't pass arbitrary keys via the `query` field in the options,
119
- // which means we can't specify the `api-version` as required by Azure OpenAI.
120
- // See https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#rest-api-versioning
121
- requestOptions);
118
+ const res = await this.client.embeddings.create(request, requestOptions);
122
119
  return res;
123
120
  }
124
121
  catch (e) {
@@ -5,6 +5,7 @@ const openai_1 = require("openai");
5
5
  const env_1 = require("@langchain/core/utils/env");
6
6
  const llms_js_1 = require("../llms.cjs");
7
7
  const azure_js_1 = require("../utils/azure.cjs");
8
+ const headers_js_1 = require("../utils/headers.cjs");
8
9
  class AzureOpenAI extends llms_js_1.OpenAI {
9
10
  get lc_aliases() {
10
11
  return {
@@ -120,10 +121,11 @@ class AzureOpenAI extends llms_js_1.OpenAI {
120
121
  if (!params.baseURL) {
121
122
  delete params.baseURL;
122
123
  }
124
+ const defaultHeaders = (0, headers_js_1.normalizeHeaders)(params.defaultHeaders);
123
125
  params.defaultHeaders = {
124
126
  ...params.defaultHeaders,
125
- "User-Agent": params.defaultHeaders?.["User-Agent"]
126
- ? `${params.defaultHeaders["User-Agent"]}: langchainjs-azure-openai-v2`
127
+ "User-Agent": defaultHeaders["User-Agent"]
128
+ ? `${defaultHeaders["User-Agent"]}: langchainjs-azure-openai-v2`
127
129
  : `langchainjs-azure-openai-v2`,
128
130
  };
129
131
  this.client = new openai_1.AzureOpenAI({
@@ -2,6 +2,7 @@ import { AzureOpenAI as AzureOpenAIClient } from "openai";
2
2
  import { getEnvironmentVariable } from "@langchain/core/utils/env";
3
3
  import { OpenAI } from "../llms.js";
4
4
  import { getEndpoint } from "../utils/azure.js";
5
+ import { normalizeHeaders } from "../utils/headers.js";
5
6
  export class AzureOpenAI extends OpenAI {
6
7
  get lc_aliases() {
7
8
  return {
@@ -117,10 +118,11 @@ export class AzureOpenAI extends OpenAI {
117
118
  if (!params.baseURL) {
118
119
  delete params.baseURL;
119
120
  }
121
+ const defaultHeaders = normalizeHeaders(params.defaultHeaders);
120
122
  params.defaultHeaders = {
121
123
  ...params.defaultHeaders,
122
- "User-Agent": params.defaultHeaders?.["User-Agent"]
123
- ? `${params.defaultHeaders["User-Agent"]}: langchainjs-azure-openai-v2`
124
+ "User-Agent": defaultHeaders["User-Agent"]
125
+ ? `${defaultHeaders["User-Agent"]}: langchainjs-azure-openai-v2`
124
126
  : `langchainjs-azure-openai-v2`,
125
127
  };
126
128
  this.client = new AzureOpenAIClient({