@langchain/openai 0.3.4 → 0.3.5

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.
@@ -74,6 +74,7 @@ function openAIResponseToChatMessage(message, rawResponse, includeRawResponse) {
74
74
  let response_metadata;
75
75
  if (rawResponse.system_fingerprint) {
76
76
  response_metadata = {
77
+ usage: { ...rawResponse.usage },
77
78
  system_fingerprint: rawResponse.system_fingerprint,
78
79
  };
79
80
  }
@@ -112,8 +113,9 @@ delta, rawResponse, defaultRole, includeRawResponse) {
112
113
  if (includeRawResponse) {
113
114
  additional_kwargs.__raw_response = rawResponse;
114
115
  }
116
+ const response_metadata = { usage: { ...rawResponse.usage } };
115
117
  if (role === "user") {
116
- return new messages_1.HumanMessageChunk({ content });
118
+ return new messages_1.HumanMessageChunk({ content, response_metadata });
117
119
  }
118
120
  else if (role === "assistant") {
119
121
  const toolCallChunks = [];
@@ -133,16 +135,18 @@ delta, rawResponse, defaultRole, includeRawResponse) {
133
135
  tool_call_chunks: toolCallChunks,
134
136
  additional_kwargs,
135
137
  id: rawResponse.id,
138
+ response_metadata,
136
139
  });
137
140
  }
138
141
  else if (role === "system") {
139
- return new messages_1.SystemMessageChunk({ content });
142
+ return new messages_1.SystemMessageChunk({ content, response_metadata });
140
143
  }
141
144
  else if (role === "function") {
142
145
  return new messages_1.FunctionMessageChunk({
143
146
  content,
144
147
  additional_kwargs,
145
148
  name: delta.name,
149
+ response_metadata,
146
150
  });
147
151
  }
148
152
  else if (role === "tool") {
@@ -150,10 +154,11 @@ delta, rawResponse, defaultRole, includeRawResponse) {
150
154
  content,
151
155
  additional_kwargs,
152
156
  tool_call_id: delta.tool_call_id,
157
+ response_metadata,
153
158
  });
154
159
  }
155
160
  else {
156
- return new messages_1.ChatMessageChunk({ content, role });
161
+ return new messages_1.ChatMessageChunk({ content, role, response_metadata });
157
162
  }
158
163
  }
159
164
  // Used in LangSmith, export is important here
@@ -1155,6 +1160,9 @@ class ChatOpenAI extends chat_models_1.BaseChatModel {
1155
1160
  const generationChunk = new outputs_1.ChatGenerationChunk({
1156
1161
  message: new messages_1.AIMessageChunk({
1157
1162
  content: "",
1163
+ response_metadata: {
1164
+ usage: { ...usage },
1165
+ },
1158
1166
  usage_metadata: {
1159
1167
  input_tokens: usage.prompt_tokens,
1160
1168
  output_tokens: usage.completion_tokens,
@@ -70,6 +70,7 @@ function openAIResponseToChatMessage(message, rawResponse, includeRawResponse) {
70
70
  let response_metadata;
71
71
  if (rawResponse.system_fingerprint) {
72
72
  response_metadata = {
73
+ usage: { ...rawResponse.usage },
73
74
  system_fingerprint: rawResponse.system_fingerprint,
74
75
  };
75
76
  }
@@ -108,8 +109,9 @@ delta, rawResponse, defaultRole, includeRawResponse) {
108
109
  if (includeRawResponse) {
109
110
  additional_kwargs.__raw_response = rawResponse;
110
111
  }
112
+ const response_metadata = { usage: { ...rawResponse.usage } };
111
113
  if (role === "user") {
112
- return new HumanMessageChunk({ content });
114
+ return new HumanMessageChunk({ content, response_metadata });
113
115
  }
114
116
  else if (role === "assistant") {
115
117
  const toolCallChunks = [];
@@ -129,16 +131,18 @@ delta, rawResponse, defaultRole, includeRawResponse) {
129
131
  tool_call_chunks: toolCallChunks,
130
132
  additional_kwargs,
131
133
  id: rawResponse.id,
134
+ response_metadata,
132
135
  });
133
136
  }
134
137
  else if (role === "system") {
135
- return new SystemMessageChunk({ content });
138
+ return new SystemMessageChunk({ content, response_metadata });
136
139
  }
137
140
  else if (role === "function") {
138
141
  return new FunctionMessageChunk({
139
142
  content,
140
143
  additional_kwargs,
141
144
  name: delta.name,
145
+ response_metadata,
142
146
  });
143
147
  }
144
148
  else if (role === "tool") {
@@ -146,10 +150,11 @@ delta, rawResponse, defaultRole, includeRawResponse) {
146
150
  content,
147
151
  additional_kwargs,
148
152
  tool_call_id: delta.tool_call_id,
153
+ response_metadata,
149
154
  });
150
155
  }
151
156
  else {
152
- return new ChatMessageChunk({ content, role });
157
+ return new ChatMessageChunk({ content, role, response_metadata });
153
158
  }
154
159
  }
155
160
  // Used in LangSmith, export is important here
@@ -1150,6 +1155,9 @@ export class ChatOpenAI extends BaseChatModel {
1150
1155
  const generationChunk = new ChatGenerationChunk({
1151
1156
  message: new AIMessageChunk({
1152
1157
  content: "",
1158
+ response_metadata: {
1159
+ usage: { ...usage },
1160
+ },
1153
1161
  usage_metadata: {
1154
1162
  input_tokens: usage.prompt_tokens,
1155
1163
  output_tokens: usage.completion_tokens,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@langchain/openai",
3
- "version": "0.3.4",
3
+ "version": "0.3.5",
4
4
  "description": "OpenAI integrations for LangChain.js",
5
5
  "type": "module",
6
6
  "engines": {