@langchain/openai 1.0.0-alpha.1 → 1.0.0-alpha.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.
Files changed (53) hide show
  1. package/dist/chat_models.cjs +18 -10
  2. package/dist/chat_models.cjs.map +1 -1
  3. package/dist/chat_models.d.cts +7 -6
  4. package/dist/chat_models.d.cts.map +1 -1
  5. package/dist/chat_models.d.ts +6 -5
  6. package/dist/chat_models.d.ts.map +1 -1
  7. package/dist/chat_models.js +19 -11
  8. package/dist/chat_models.js.map +1 -1
  9. package/dist/embeddings.cjs +4 -0
  10. package/dist/embeddings.cjs.map +1 -1
  11. package/dist/embeddings.d.cts +8 -3
  12. package/dist/embeddings.d.cts.map +1 -1
  13. package/dist/embeddings.d.ts +8 -3
  14. package/dist/embeddings.d.ts.map +1 -1
  15. package/dist/embeddings.js +4 -0
  16. package/dist/embeddings.js.map +1 -1
  17. package/dist/llms.cjs.map +1 -1
  18. package/dist/llms.js.map +1 -1
  19. package/dist/tools/custom.cjs.map +1 -1
  20. package/dist/tools/custom.js.map +1 -1
  21. package/dist/tools/dalle.cjs.map +1 -1
  22. package/dist/tools/dalle.js.map +1 -1
  23. package/dist/utils/errors.cjs.map +1 -1
  24. package/dist/utils/errors.js.map +1 -1
  25. package/dist/utils/message_inputs.cjs +1 -1
  26. package/dist/utils/message_inputs.cjs.map +1 -1
  27. package/dist/utils/message_inputs.d.cts.map +1 -1
  28. package/dist/utils/message_inputs.d.ts.map +1 -1
  29. package/dist/utils/message_inputs.js +1 -1
  30. package/dist/utils/message_inputs.js.map +1 -1
  31. package/dist/utils/misc.cjs +3 -1
  32. package/dist/utils/misc.cjs.map +1 -1
  33. package/dist/utils/misc.d.cts.map +1 -1
  34. package/dist/utils/misc.d.ts.map +1 -1
  35. package/dist/utils/misc.js +2 -0
  36. package/dist/utils/misc.js.map +1 -1
  37. package/dist/utils/output.cjs +37 -0
  38. package/dist/utils/output.cjs.map +1 -1
  39. package/dist/utils/output.js +36 -1
  40. package/dist/utils/output.js.map +1 -1
  41. package/dist/utils/prompts.cjs.map +1 -1
  42. package/dist/utils/prompts.d.cts.map +1 -1
  43. package/dist/utils/prompts.d.ts.map +1 -1
  44. package/dist/utils/prompts.js.map +1 -1
  45. package/dist/utils/standard.cjs +217 -15
  46. package/dist/utils/standard.cjs.map +1 -1
  47. package/dist/utils/standard.js +218 -16
  48. package/dist/utils/standard.js.map +1 -1
  49. package/dist/utils/tools.cjs.map +1 -1
  50. package/dist/utils/tools.d.cts.map +1 -1
  51. package/dist/utils/tools.d.ts.map +1 -1
  52. package/dist/utils/tools.js.map +1 -1
  53. package/package.json +32 -33
@@ -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,