@langchain/openai 1.0.0-alpha.1 → 1.0.0-alpha.3

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.
Files changed (54) hide show
  1. package/LICENSE +6 -6
  2. package/dist/chat_models.cjs +21 -11
  3. package/dist/chat_models.cjs.map +1 -1
  4. package/dist/chat_models.d.cts +10 -7
  5. package/dist/chat_models.d.cts.map +1 -1
  6. package/dist/chat_models.d.ts +9 -6
  7. package/dist/chat_models.d.ts.map +1 -1
  8. package/dist/chat_models.js +22 -12
  9. package/dist/chat_models.js.map +1 -1
  10. package/dist/embeddings.cjs +4 -0
  11. package/dist/embeddings.cjs.map +1 -1
  12. package/dist/embeddings.d.cts +8 -3
  13. package/dist/embeddings.d.cts.map +1 -1
  14. package/dist/embeddings.d.ts +8 -3
  15. package/dist/embeddings.d.ts.map +1 -1
  16. package/dist/embeddings.js +4 -0
  17. package/dist/embeddings.js.map +1 -1
  18. package/dist/llms.cjs.map +1 -1
  19. package/dist/llms.js.map +1 -1
  20. package/dist/tools/custom.cjs.map +1 -1
  21. package/dist/tools/custom.js.map +1 -1
  22. package/dist/tools/dalle.cjs.map +1 -1
  23. package/dist/tools/dalle.js.map +1 -1
  24. package/dist/utils/errors.cjs.map +1 -1
  25. package/dist/utils/errors.js.map +1 -1
  26. package/dist/utils/message_inputs.cjs +1 -1
  27. package/dist/utils/message_inputs.cjs.map +1 -1
  28. package/dist/utils/message_inputs.d.cts.map +1 -1
  29. package/dist/utils/message_inputs.d.ts.map +1 -1
  30. package/dist/utils/message_inputs.js +1 -1
  31. package/dist/utils/message_inputs.js.map +1 -1
  32. package/dist/utils/misc.cjs +7 -2
  33. package/dist/utils/misc.cjs.map +1 -1
  34. package/dist/utils/misc.d.cts.map +1 -1
  35. package/dist/utils/misc.d.ts.map +1 -1
  36. package/dist/utils/misc.js +6 -1
  37. package/dist/utils/misc.js.map +1 -1
  38. package/dist/utils/output.cjs +37 -0
  39. package/dist/utils/output.cjs.map +1 -1
  40. package/dist/utils/output.js +36 -1
  41. package/dist/utils/output.js.map +1 -1
  42. package/dist/utils/prompts.cjs.map +1 -1
  43. package/dist/utils/prompts.d.cts.map +1 -1
  44. package/dist/utils/prompts.d.ts.map +1 -1
  45. package/dist/utils/prompts.js.map +1 -1
  46. package/dist/utils/standard.cjs +217 -15
  47. package/dist/utils/standard.cjs.map +1 -1
  48. package/dist/utils/standard.js +218 -16
  49. package/dist/utils/standard.js.map +1 -1
  50. package/dist/utils/tools.cjs.map +1 -1
  51. package/dist/utils/tools.d.cts.map +1 -1
  52. package/dist/utils/tools.d.ts.map +1 -1
  53. package/dist/utils/tools.js.map +1 -1
  54. package/package.json +30 -33
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
- The MIT License
1
+ MIT License
2
2
 
3
- Copyright (c) Harrison Chase
3
+ Copyright (c) LangChain, Inc.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -9,13 +9,13 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
9
  copies of the Software, and to permit persons to whom the Software is
10
10
  furnished to do so, subject to the following conditions:
11
11
 
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
14
 
15
15
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
16
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
17
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
18
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
19
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -60,7 +60,7 @@ var BaseChatOpenAI = class extends __langchain_core_language_models_chat_models.
60
60
  * OpenAI organization or project. This must be configured directly with OpenAI.
61
61
  *
62
62
  * See:
63
- * https://help.openai.com/en/articles/10503543-data-residency-for-the-openai-api
63
+ * https://platform.openai.com/docs/guides/your-data
64
64
  * https://platform.openai.com/docs/api-reference/responses/create#responses-create-store
65
65
  *
66
66
  * @default false
@@ -204,11 +204,12 @@ var BaseChatOpenAI = class extends __langchain_core_language_models_chat_models.
204
204
  this.modalities = fields?.modalities;
205
205
  this.reasoning = fields?.reasoning;
206
206
  this.maxTokens = fields?.maxCompletionTokens ?? fields?.maxTokens;
207
- this.disableStreaming = fields?.disableStreaming ?? this.disableStreaming;
208
207
  this.promptCacheKey = fields?.promptCacheKey ?? this.promptCacheKey;
209
208
  this.verbosity = fields?.verbosity ?? this.verbosity;
210
- this.streaming = fields?.streaming ?? false;
209
+ this.disableStreaming = fields?.disableStreaming === true;
210
+ this.streaming = fields?.streaming === true;
211
211
  if (this.disableStreaming) this.streaming = false;
212
+ if (fields?.streaming === false) this.disableStreaming = true;
212
213
  this.streamUsage = fields?.streamUsage ?? this.streamUsage;
213
214
  if (this.disableStreaming) this.streamUsage = false;
214
215
  this.clientConfig = {
@@ -745,7 +746,7 @@ var ChatOpenAIResponses = class extends BaseChatOpenAI {
745
746
  content,
746
747
  tool_calls,
747
748
  invalid_tool_calls,
748
- usage_metadata: response.usage,
749
+ usage_metadata: require_output._convertOpenAIResponsesUsageToLangChainUsage(response.usage),
749
750
  additional_kwargs,
750
751
  response_metadata
751
752
  });
@@ -797,10 +798,10 @@ var ChatOpenAIResponses = class extends BaseChatOpenAI {
797
798
  response_metadata.model = chunk.response.model;
798
799
  } else if (chunk.type === "response.completed") {
799
800
  const msg = this._convertResponsesMessageToBaseMessage(chunk.response);
800
- usage_metadata = chunk.response.usage;
801
+ usage_metadata = require_output._convertOpenAIResponsesUsageToLangChainUsage(chunk.response.usage);
801
802
  if (chunk.response.text?.format?.type === "json_schema") additional_kwargs.parsed ??= JSON.parse(msg.text);
802
803
  for (const [key, value] of Object.entries(chunk.response)) if (key !== "id") response_metadata[key] = value;
803
- } else if (chunk.type === "response.function_call_arguments.delta") tool_call_chunks.push({
804
+ } else if (chunk.type === "response.function_call_arguments.delta" || chunk.type === "response.custom_tool_call_input.delta") tool_call_chunks.push({
804
805
  type: "tool_call_chunk",
805
806
  args: chunk.delta,
806
807
  index: chunk.output_index
@@ -854,7 +855,8 @@ var ChatOpenAIResponses = class extends BaseChatOpenAI {
854
855
  /** @internal */
855
856
  _convertMessagesToResponsesParams(messages) {
856
857
  return messages.flatMap((lcMsg) => {
857
- if ((0, __langchain_core_messages.isAIMessage)(lcMsg) && lcMsg.response_metadata?.output_version === "v1") return require_standard._convertToResponsesMessageFromV1(lcMsg);
858
+ const responseMetadata = lcMsg.response_metadata;
859
+ if (responseMetadata?.output_version === "v1") return require_standard._convertToResponsesMessageFromV1(lcMsg);
858
860
  const additional_kwargs = lcMsg.additional_kwargs;
859
861
  let role = require_misc.messageToOpenAIRole(lcMsg);
860
862
  if (role === "system" && require_misc.isReasoningModel(this.model)) role = "developer";
@@ -884,6 +886,11 @@ var ChatOpenAIResponses = class extends BaseChatOpenAI {
884
886
  call_id: toolMessage.tool_call_id
885
887
  };
886
888
  }
889
+ if (toolMessage.additional_kwargs?.customTool) return {
890
+ type: "custom_tool_call_output",
891
+ call_id: toolMessage.tool_call_id,
892
+ output: toolMessage.content
893
+ };
887
894
  return {
888
895
  type: "function_call_output",
889
896
  call_id: toolMessage.tool_call_id,
@@ -892,7 +899,7 @@ var ChatOpenAIResponses = class extends BaseChatOpenAI {
892
899
  };
893
900
  }
894
901
  if (role === "assistant") {
895
- if (!this.zdrEnabled && lcMsg.response_metadata.output != null && Array.isArray(lcMsg.response_metadata.output) && lcMsg.response_metadata.output.length > 0 && lcMsg.response_metadata.output.every((item) => "type" in item)) return lcMsg.response_metadata.output;
902
+ if (!this.zdrEnabled && responseMetadata?.output != null && Array.isArray(responseMetadata?.output) && responseMetadata?.output.length > 0 && responseMetadata?.output.every((item) => "type" in item)) return responseMetadata?.output;
896
903
  const input = [];
897
904
  if (additional_kwargs?.reasoning && !this.zdrEnabled) {
898
905
  const reasoningItem = this._convertReasoningSummary(additional_kwargs.reasoning);
@@ -951,7 +958,7 @@ var ChatOpenAIResponses = class extends BaseChatOpenAI {
951
958
  arguments: toolCall.function.arguments,
952
959
  ...this.zdrEnabled ? { id: functionCallIds?.[toolCall.id] } : {}
953
960
  })));
954
- const toolOutputs = lcMsg.response_metadata.output?.length ? lcMsg.response_metadata.output : additional_kwargs.tool_outputs;
961
+ const toolOutputs = (responseMetadata?.output)?.length ? responseMetadata?.output : additional_kwargs.tool_outputs;
955
962
  const fallthroughCallTypes = [
956
963
  "computer_call",
957
964
  "mcp_call",
@@ -1278,8 +1285,9 @@ var ChatOpenAICompletions = class extends BaseChatOpenAI {
1278
1285
  } : {}
1279
1286
  };
1280
1287
  if (message.audio) additional_kwargs.audio = message.audio;
1288
+ const content = require_output.handleMultiModalOutput(message.content || "", rawResponse.choices?.[0]?.message);
1281
1289
  return new __langchain_core_messages.AIMessage({
1282
- content: message.content || "",
1290
+ content,
1283
1291
  tool_calls: toolCalls,
1284
1292
  invalid_tool_calls: invalidToolCalls,
1285
1293
  additional_kwargs,
@@ -1406,7 +1414,9 @@ var ChatOpenAICompletions = class extends BaseChatOpenAI {
1406
1414
  * timeout: undefined,
1407
1415
  * maxRetries: 2,
1408
1416
  * // apiKey: "...",
1409
- * // baseUrl: "...",
1417
+ * // configuration: {
1418
+ * // baseURL: "...",
1419
+ * // }
1410
1420
  * // organization: "...",
1411
1421
  * // other params...
1412
1422
  * });