@langchain/anthropic 0.1.8 → 0.1.9
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/dist/chat_models.cjs +13 -1
- package/dist/chat_models.js +13 -1
- package/package.json +1 -1
package/dist/chat_models.cjs
CHANGED
|
@@ -203,6 +203,7 @@ class ChatAnthropicMessages extends chat_models_1.BaseChatModel {
|
|
|
203
203
|
...this.formatMessagesForAnthropic(messages),
|
|
204
204
|
stream: true,
|
|
205
205
|
});
|
|
206
|
+
let usageData = { input_tokens: 0, output_tokens: 0 };
|
|
206
207
|
for await (const data of stream) {
|
|
207
208
|
if (options.signal?.aborted) {
|
|
208
209
|
stream.controller.abort();
|
|
@@ -210,7 +211,7 @@ class ChatAnthropicMessages extends chat_models_1.BaseChatModel {
|
|
|
210
211
|
}
|
|
211
212
|
if (data.type === "message_start") {
|
|
212
213
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
213
|
-
const { content, ...additionalKwargs } = data.message;
|
|
214
|
+
const { content, usage, ...additionalKwargs } = data.message;
|
|
214
215
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
215
216
|
const filteredAdditionalKwargs = {};
|
|
216
217
|
for (const [key, value] of Object.entries(additionalKwargs)) {
|
|
@@ -218,6 +219,7 @@ class ChatAnthropicMessages extends chat_models_1.BaseChatModel {
|
|
|
218
219
|
filteredAdditionalKwargs[key] = value;
|
|
219
220
|
}
|
|
220
221
|
}
|
|
222
|
+
usageData = usage;
|
|
221
223
|
yield new outputs_1.ChatGenerationChunk({
|
|
222
224
|
message: new messages_1.AIMessageChunk({
|
|
223
225
|
content: "",
|
|
@@ -234,6 +236,9 @@ class ChatAnthropicMessages extends chat_models_1.BaseChatModel {
|
|
|
234
236
|
}),
|
|
235
237
|
text: "",
|
|
236
238
|
});
|
|
239
|
+
if (data?.usage !== undefined) {
|
|
240
|
+
usageData.output_tokens += data.usage.output_tokens;
|
|
241
|
+
}
|
|
237
242
|
}
|
|
238
243
|
else if (data.type === "content_block_delta") {
|
|
239
244
|
const content = data.delta?.text;
|
|
@@ -249,6 +254,13 @@ class ChatAnthropicMessages extends chat_models_1.BaseChatModel {
|
|
|
249
254
|
}
|
|
250
255
|
}
|
|
251
256
|
}
|
|
257
|
+
yield new outputs_1.ChatGenerationChunk({
|
|
258
|
+
message: new messages_1.AIMessageChunk({
|
|
259
|
+
content: "",
|
|
260
|
+
additional_kwargs: { usage: usageData },
|
|
261
|
+
}),
|
|
262
|
+
text: "",
|
|
263
|
+
});
|
|
252
264
|
}
|
|
253
265
|
/**
|
|
254
266
|
* Formats messages as a prompt for the model.
|
package/dist/chat_models.js
CHANGED
|
@@ -200,6 +200,7 @@ export class ChatAnthropicMessages extends BaseChatModel {
|
|
|
200
200
|
...this.formatMessagesForAnthropic(messages),
|
|
201
201
|
stream: true,
|
|
202
202
|
});
|
|
203
|
+
let usageData = { input_tokens: 0, output_tokens: 0 };
|
|
203
204
|
for await (const data of stream) {
|
|
204
205
|
if (options.signal?.aborted) {
|
|
205
206
|
stream.controller.abort();
|
|
@@ -207,7 +208,7 @@ export class ChatAnthropicMessages extends BaseChatModel {
|
|
|
207
208
|
}
|
|
208
209
|
if (data.type === "message_start") {
|
|
209
210
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
210
|
-
const { content, ...additionalKwargs } = data.message;
|
|
211
|
+
const { content, usage, ...additionalKwargs } = data.message;
|
|
211
212
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
212
213
|
const filteredAdditionalKwargs = {};
|
|
213
214
|
for (const [key, value] of Object.entries(additionalKwargs)) {
|
|
@@ -215,6 +216,7 @@ export class ChatAnthropicMessages extends BaseChatModel {
|
|
|
215
216
|
filteredAdditionalKwargs[key] = value;
|
|
216
217
|
}
|
|
217
218
|
}
|
|
219
|
+
usageData = usage;
|
|
218
220
|
yield new ChatGenerationChunk({
|
|
219
221
|
message: new AIMessageChunk({
|
|
220
222
|
content: "",
|
|
@@ -231,6 +233,9 @@ export class ChatAnthropicMessages extends BaseChatModel {
|
|
|
231
233
|
}),
|
|
232
234
|
text: "",
|
|
233
235
|
});
|
|
236
|
+
if (data?.usage !== undefined) {
|
|
237
|
+
usageData.output_tokens += data.usage.output_tokens;
|
|
238
|
+
}
|
|
234
239
|
}
|
|
235
240
|
else if (data.type === "content_block_delta") {
|
|
236
241
|
const content = data.delta?.text;
|
|
@@ -246,6 +251,13 @@ export class ChatAnthropicMessages extends BaseChatModel {
|
|
|
246
251
|
}
|
|
247
252
|
}
|
|
248
253
|
}
|
|
254
|
+
yield new ChatGenerationChunk({
|
|
255
|
+
message: new AIMessageChunk({
|
|
256
|
+
content: "",
|
|
257
|
+
additional_kwargs: { usage: usageData },
|
|
258
|
+
}),
|
|
259
|
+
text: "",
|
|
260
|
+
});
|
|
249
261
|
}
|
|
250
262
|
/**
|
|
251
263
|
* Formats messages as a prompt for the model.
|