@langchain/anthropic 0.1.1 → 0.1.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.
- package/dist/chat_models.cjs +46 -12
- package/dist/chat_models.d.ts +0 -2
- package/dist/chat_models.js +46 -12
- package/dist/experimental/index.cjs +17 -0
- package/dist/experimental/index.d.ts +1 -0
- package/dist/experimental/index.js +1 -0
- package/dist/experimental/tests/tool_calling.int.test.d.ts +1 -0
- package/dist/experimental/tests/tool_calling.int.test.js +268 -0
- package/dist/experimental/tool_calling.cjs +260 -0
- package/dist/experimental/tool_calling.d.ts +51 -0
- package/dist/experimental/tool_calling.js +256 -0
- package/dist/experimental/utils/tool_calling.cjs +87 -0
- package/dist/experimental/utils/tool_calling.d.ts +10 -0
- package/dist/experimental/utils/tool_calling.js +82 -0
- package/dist/tests/chat_models.int.test.js +26 -6
- package/experimental.cjs +1 -0
- package/experimental.d.cts +1 -0
- package/experimental.d.ts +1 -0
- package/experimental.js +1 -0
- package/package.json +20 -3
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { XMLBuilder } from "fast-xml-parser";
|
|
2
|
+
import { PromptTemplate } from "@langchain/core/prompts";
|
|
3
|
+
export const DEFAULT_TOOL_SYSTEM_PROMPT =
|
|
4
|
+
/* #__PURE__ */ PromptTemplate.fromTemplate(`In this environment you have access to a set of tools you can use to answer the user's question.
|
|
5
|
+
|
|
6
|
+
You may call them like this:
|
|
7
|
+
<function_calls>
|
|
8
|
+
<invoke>
|
|
9
|
+
<tool_name>$TOOL_NAME</tool_name>
|
|
10
|
+
<parameters>
|
|
11
|
+
<$PARAMETER_NAME>$PARAMETER_VALUE</$PARAMETER_NAME>
|
|
12
|
+
...
|
|
13
|
+
</parameters>
|
|
14
|
+
</invoke>
|
|
15
|
+
</function_calls>
|
|
16
|
+
|
|
17
|
+
Here are the tools available:
|
|
18
|
+
{tools}`);
|
|
19
|
+
export function formatAsXMLRepresentation(tool) {
|
|
20
|
+
const builder = new XMLBuilder();
|
|
21
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
22
|
+
const toolParamProps = tool.function.parameters?.properties;
|
|
23
|
+
const parameterXml = Object.keys(toolParamProps)
|
|
24
|
+
.map((key) => {
|
|
25
|
+
const parameterData = toolParamProps[key];
|
|
26
|
+
let xml = `<parameter>
|
|
27
|
+
<name>${key}</name>
|
|
28
|
+
<type>${parameterData.type}</type>`;
|
|
29
|
+
if (parameterData.description) {
|
|
30
|
+
xml += `\n<description>${parameterData.description}</description>`;
|
|
31
|
+
}
|
|
32
|
+
if (parameterData.type === "array" && parameterData.items) {
|
|
33
|
+
xml += `\n<items>${builder.build(parameterData.items.properties)}</items>`;
|
|
34
|
+
}
|
|
35
|
+
if (parameterData.properties) {
|
|
36
|
+
xml += `\n<properties>\n${builder.build(parameterData.properties)}\n</properties>`;
|
|
37
|
+
}
|
|
38
|
+
return `${xml}\n</parameter>`;
|
|
39
|
+
})
|
|
40
|
+
.join("\n");
|
|
41
|
+
return `<tool_description>
|
|
42
|
+
<tool_name>${tool.function.name}</tool_name>
|
|
43
|
+
<description>${tool.function.description}</description>
|
|
44
|
+
<parameters>
|
|
45
|
+
${parameterXml}
|
|
46
|
+
</parameters>
|
|
47
|
+
</tool_description>`;
|
|
48
|
+
}
|
|
49
|
+
export function fixArrayXMLParameters(schema,
|
|
50
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
51
|
+
xmlParameters
|
|
52
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
53
|
+
) {
|
|
54
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
55
|
+
const fixedParameters = {};
|
|
56
|
+
for (const key of Object.keys(xmlParameters)) {
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
58
|
+
const schemaType = schema.properties[key].type;
|
|
59
|
+
// Crawl for lists indistinguishable from single items
|
|
60
|
+
if (schema.properties && schema.properties[key] && schemaType === "array") {
|
|
61
|
+
fixedParameters[key] = Array.isArray(xmlParameters[key])
|
|
62
|
+
? xmlParameters[key]
|
|
63
|
+
: [xmlParameters[key]];
|
|
64
|
+
// Crawl for objects like {"item": "my string"} that should really just be "my string"
|
|
65
|
+
if (schemaType !== "object" &&
|
|
66
|
+
typeof xmlParameters[key] === "object" &&
|
|
67
|
+
!Array.isArray(xmlParameters[key]) &&
|
|
68
|
+
Object.keys(xmlParameters[key]).length === 1) {
|
|
69
|
+
// eslint-disable-next-line prefer-destructuring
|
|
70
|
+
fixedParameters[key] = Object.values(xmlParameters[key])[0];
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else if (typeof xmlParameters[key] === "object" &&
|
|
74
|
+
xmlParameters[key] !== null) {
|
|
75
|
+
fixedParameters[key] = fixArrayXMLParameters(schema, xmlParameters[key]);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
fixedParameters[key] = xmlParameters[key];
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return fixedParameters;
|
|
82
|
+
}
|
|
@@ -30,7 +30,7 @@ test("Test ChatAnthropic Generate", async () => {
|
|
|
30
30
|
}
|
|
31
31
|
console.log({ res });
|
|
32
32
|
});
|
|
33
|
-
test("Test ChatAnthropic Generate w/ ClientOptions", async () => {
|
|
33
|
+
test.skip("Test ChatAnthropic Generate w/ ClientOptions", async () => {
|
|
34
34
|
const chat = new ChatAnthropic({
|
|
35
35
|
modelName: "claude-3-sonnet-20240229",
|
|
36
36
|
maxRetries: 0,
|
|
@@ -127,7 +127,7 @@ test("Test ChatAnthropic in streaming mode with a signal", async () => {
|
|
|
127
127
|
}).rejects.toThrow();
|
|
128
128
|
console.log({ nrNewTokens, streamedCompletion });
|
|
129
129
|
}, 5000);
|
|
130
|
-
test("Test ChatAnthropic prompt value", async () => {
|
|
130
|
+
test.skip("Test ChatAnthropic prompt value", async () => {
|
|
131
131
|
const chat = new ChatAnthropic({
|
|
132
132
|
modelName: "claude-3-sonnet-20240229",
|
|
133
133
|
maxRetries: 0,
|
|
@@ -142,7 +142,7 @@ test("Test ChatAnthropic prompt value", async () => {
|
|
|
142
142
|
}
|
|
143
143
|
console.log({ res });
|
|
144
144
|
});
|
|
145
|
-
test("ChatAnthropic, docs, prompt templates", async () => {
|
|
145
|
+
test.skip("ChatAnthropic, docs, prompt templates", async () => {
|
|
146
146
|
const chat = new ChatAnthropic({
|
|
147
147
|
modelName: "claude-3-sonnet-20240229",
|
|
148
148
|
maxRetries: 0,
|
|
@@ -162,7 +162,7 @@ test("ChatAnthropic, docs, prompt templates", async () => {
|
|
|
162
162
|
]);
|
|
163
163
|
console.log(responseA.generations);
|
|
164
164
|
});
|
|
165
|
-
test("ChatAnthropic, longer chain of messages", async () => {
|
|
165
|
+
test.skip("ChatAnthropic, longer chain of messages", async () => {
|
|
166
166
|
const chat = new ChatAnthropic({
|
|
167
167
|
modelName: "claude-3-sonnet-20240229",
|
|
168
168
|
maxRetries: 0,
|
|
@@ -180,7 +180,7 @@ test("ChatAnthropic, longer chain of messages", async () => {
|
|
|
180
180
|
]);
|
|
181
181
|
console.log(responseA.generations);
|
|
182
182
|
});
|
|
183
|
-
test("ChatAnthropic, Anthropic apiUrl set manually via constructor", async () => {
|
|
183
|
+
test.skip("ChatAnthropic, Anthropic apiUrl set manually via constructor", async () => {
|
|
184
184
|
// Pass the default URL through (should use this, and work as normal)
|
|
185
185
|
const anthropicApiUrl = "https://api.anthropic.com";
|
|
186
186
|
const chat = new ChatAnthropic({
|
|
@@ -249,6 +249,26 @@ test("Test ChatAnthropic headers passed through", async () => {
|
|
|
249
249
|
},
|
|
250
250
|
});
|
|
251
251
|
const message = new HumanMessage("Hello!");
|
|
252
|
-
const res = await chat.
|
|
252
|
+
const res = await chat.invoke([message]);
|
|
253
253
|
console.log({ res });
|
|
254
254
|
});
|
|
255
|
+
test("Test ChatAnthropic multimodal", async () => {
|
|
256
|
+
const chat = new ChatAnthropic({
|
|
257
|
+
modelName: "claude-3-sonnet-20240229",
|
|
258
|
+
maxRetries: 0,
|
|
259
|
+
});
|
|
260
|
+
const res = await chat.invoke([
|
|
261
|
+
new HumanMessage({
|
|
262
|
+
content: [
|
|
263
|
+
{
|
|
264
|
+
type: "image_url",
|
|
265
|
+
image_url: {
|
|
266
|
+
url: "data:image/jpeg;base64,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",
|
|
267
|
+
},
|
|
268
|
+
},
|
|
269
|
+
{ type: "text", text: "What is this a logo for?" },
|
|
270
|
+
],
|
|
271
|
+
}),
|
|
272
|
+
]);
|
|
273
|
+
console.log(res);
|
|
274
|
+
});
|
package/experimental.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('./dist/experimental/index.cjs');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './dist/experimental/index.js'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './dist/experimental/index.js'
|
package/experimental.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './dist/experimental/index.js'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@langchain/anthropic",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Anthropic integrations for LangChain.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -39,10 +39,14 @@
|
|
|
39
39
|
"license": "MIT",
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@anthropic-ai/sdk": "^0.15.0",
|
|
42
|
-
"@langchain/core": "~0.1"
|
|
42
|
+
"@langchain/core": "~0.1",
|
|
43
|
+
"fast-xml-parser": "^4.3.5",
|
|
44
|
+
"zod": "^3.22.4",
|
|
45
|
+
"zod-to-json-schema": "^3.22.4"
|
|
43
46
|
},
|
|
44
47
|
"devDependencies": {
|
|
45
48
|
"@jest/globals": "^29.5.0",
|
|
49
|
+
"@langchain/community": "workspace:^",
|
|
46
50
|
"@langchain/scripts": "~0.0",
|
|
47
51
|
"@swc/core": "^1.3.90",
|
|
48
52
|
"@swc/jest": "^0.2.29",
|
|
@@ -88,6 +92,15 @@
|
|
|
88
92
|
"import": "./index.js",
|
|
89
93
|
"require": "./index.cjs"
|
|
90
94
|
},
|
|
95
|
+
"./experimental": {
|
|
96
|
+
"types": {
|
|
97
|
+
"import": "./experimental.d.ts",
|
|
98
|
+
"require": "./experimental.d.cts",
|
|
99
|
+
"default": "./experimental.d.ts"
|
|
100
|
+
},
|
|
101
|
+
"import": "./experimental.js",
|
|
102
|
+
"require": "./experimental.cjs"
|
|
103
|
+
},
|
|
91
104
|
"./package.json": "./package.json"
|
|
92
105
|
},
|
|
93
106
|
"files": [
|
|
@@ -95,6 +108,10 @@
|
|
|
95
108
|
"index.cjs",
|
|
96
109
|
"index.js",
|
|
97
110
|
"index.d.ts",
|
|
98
|
-
"index.d.cts"
|
|
111
|
+
"index.d.cts",
|
|
112
|
+
"experimental.cjs",
|
|
113
|
+
"experimental.js",
|
|
114
|
+
"experimental.d.ts",
|
|
115
|
+
"experimental.d.cts"
|
|
99
116
|
]
|
|
100
117
|
}
|