@langchain/anthropic 0.3.6 → 0.3.8
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/utils/message_inputs.cjs +16 -29
- package/dist/utils/message_inputs.js +16 -29
- package/package.json +1 -1
|
@@ -21,13 +21,13 @@ function _formatImage(imageUrl) {
|
|
|
21
21
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
-
function
|
|
24
|
+
function _ensureMessageContents(messages) {
|
|
25
25
|
// Merge runs of human/tool messages into single human messages with content blocks.
|
|
26
|
-
const
|
|
26
|
+
const updatedMsgs = [];
|
|
27
27
|
for (const message of messages) {
|
|
28
28
|
if (message._getType() === "tool") {
|
|
29
29
|
if (typeof message.content === "string") {
|
|
30
|
-
const previousMessage =
|
|
30
|
+
const previousMessage = updatedMsgs[updatedMsgs.length - 1];
|
|
31
31
|
if (previousMessage?._getType() === "human" &&
|
|
32
32
|
Array.isArray(previousMessage.content) &&
|
|
33
33
|
"type" in previousMessage.content[0] &&
|
|
@@ -41,7 +41,7 @@ function _mergeMessages(messages) {
|
|
|
41
41
|
}
|
|
42
42
|
else {
|
|
43
43
|
// If not, we create a new human message with the tool result.
|
|
44
|
-
|
|
44
|
+
updatedMsgs.push(new messages_1.HumanMessage({
|
|
45
45
|
content: [
|
|
46
46
|
{
|
|
47
47
|
type: "tool_result",
|
|
@@ -53,35 +53,22 @@ function _mergeMessages(messages) {
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
else {
|
|
56
|
-
|
|
56
|
+
updatedMsgs.push(new messages_1.HumanMessage({
|
|
57
|
+
content: [
|
|
58
|
+
{
|
|
59
|
+
type: "tool_result",
|
|
60
|
+
content: _formatContent(message.content),
|
|
61
|
+
tool_use_id: message.tool_call_id,
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
}));
|
|
57
65
|
}
|
|
58
66
|
}
|
|
59
67
|
else {
|
|
60
|
-
|
|
61
|
-
if (previousMessage?._getType() === "human" &&
|
|
62
|
-
message._getType() === "human") {
|
|
63
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
64
|
-
let combinedContent;
|
|
65
|
-
if (typeof previousMessage.content === "string") {
|
|
66
|
-
combinedContent = [{ type: "text", text: previousMessage.content }];
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
combinedContent = previousMessage.content;
|
|
70
|
-
}
|
|
71
|
-
if (typeof message.content === "string") {
|
|
72
|
-
combinedContent.push({ type: "text", text: message.content });
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
combinedContent = combinedContent.concat(message.content);
|
|
76
|
-
}
|
|
77
|
-
previousMessage.content = combinedContent;
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
merged.push(message);
|
|
81
|
-
}
|
|
68
|
+
updatedMsgs.push(message);
|
|
82
69
|
}
|
|
83
70
|
}
|
|
84
|
-
return
|
|
71
|
+
return updatedMsgs;
|
|
85
72
|
}
|
|
86
73
|
function _convertLangChainToolCallToAnthropic(toolCall) {
|
|
87
74
|
if (toolCall.id === undefined) {
|
|
@@ -168,7 +155,7 @@ function _formatContent(content) {
|
|
|
168
155
|
* @returns The formatted prompt.
|
|
169
156
|
*/
|
|
170
157
|
function _convertMessagesToAnthropicPayload(messages) {
|
|
171
|
-
const mergedMessages =
|
|
158
|
+
const mergedMessages = _ensureMessageContents(messages);
|
|
172
159
|
let system;
|
|
173
160
|
if (mergedMessages.length > 0 && mergedMessages[0]._getType() === "system") {
|
|
174
161
|
system = messages[0].content;
|
|
@@ -18,13 +18,13 @@ function _formatImage(imageUrl) {
|
|
|
18
18
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
|
-
function
|
|
21
|
+
function _ensureMessageContents(messages) {
|
|
22
22
|
// Merge runs of human/tool messages into single human messages with content blocks.
|
|
23
|
-
const
|
|
23
|
+
const updatedMsgs = [];
|
|
24
24
|
for (const message of messages) {
|
|
25
25
|
if (message._getType() === "tool") {
|
|
26
26
|
if (typeof message.content === "string") {
|
|
27
|
-
const previousMessage =
|
|
27
|
+
const previousMessage = updatedMsgs[updatedMsgs.length - 1];
|
|
28
28
|
if (previousMessage?._getType() === "human" &&
|
|
29
29
|
Array.isArray(previousMessage.content) &&
|
|
30
30
|
"type" in previousMessage.content[0] &&
|
|
@@ -38,7 +38,7 @@ function _mergeMessages(messages) {
|
|
|
38
38
|
}
|
|
39
39
|
else {
|
|
40
40
|
// If not, we create a new human message with the tool result.
|
|
41
|
-
|
|
41
|
+
updatedMsgs.push(new HumanMessage({
|
|
42
42
|
content: [
|
|
43
43
|
{
|
|
44
44
|
type: "tool_result",
|
|
@@ -50,35 +50,22 @@ function _mergeMessages(messages) {
|
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
else {
|
|
53
|
-
|
|
53
|
+
updatedMsgs.push(new HumanMessage({
|
|
54
|
+
content: [
|
|
55
|
+
{
|
|
56
|
+
type: "tool_result",
|
|
57
|
+
content: _formatContent(message.content),
|
|
58
|
+
tool_use_id: message.tool_call_id,
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
}));
|
|
54
62
|
}
|
|
55
63
|
}
|
|
56
64
|
else {
|
|
57
|
-
|
|
58
|
-
if (previousMessage?._getType() === "human" &&
|
|
59
|
-
message._getType() === "human") {
|
|
60
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
61
|
-
let combinedContent;
|
|
62
|
-
if (typeof previousMessage.content === "string") {
|
|
63
|
-
combinedContent = [{ type: "text", text: previousMessage.content }];
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
combinedContent = previousMessage.content;
|
|
67
|
-
}
|
|
68
|
-
if (typeof message.content === "string") {
|
|
69
|
-
combinedContent.push({ type: "text", text: message.content });
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
combinedContent = combinedContent.concat(message.content);
|
|
73
|
-
}
|
|
74
|
-
previousMessage.content = combinedContent;
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
merged.push(message);
|
|
78
|
-
}
|
|
65
|
+
updatedMsgs.push(message);
|
|
79
66
|
}
|
|
80
67
|
}
|
|
81
|
-
return
|
|
68
|
+
return updatedMsgs;
|
|
82
69
|
}
|
|
83
70
|
export function _convertLangChainToolCallToAnthropic(toolCall) {
|
|
84
71
|
if (toolCall.id === undefined) {
|
|
@@ -164,7 +151,7 @@ function _formatContent(content) {
|
|
|
164
151
|
* @returns The formatted prompt.
|
|
165
152
|
*/
|
|
166
153
|
export function _convertMessagesToAnthropicPayload(messages) {
|
|
167
|
-
const mergedMessages =
|
|
154
|
+
const mergedMessages = _ensureMessageContents(messages);
|
|
168
155
|
let system;
|
|
169
156
|
if (mergedMessages.length > 0 && mergedMessages[0]._getType() === "system") {
|
|
170
157
|
system = messages[0].content;
|