@langchain/core 0.2.25 → 0.2.27
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/language_models/base.d.ts +1 -1
- package/dist/prompts/chat.cjs +31 -5
- package/dist/prompts/chat.js +31 -5
- package/dist/prompts/image.cjs +13 -0
- package/dist/prompts/image.d.ts +13 -0
- package/dist/prompts/image.js +13 -0
- package/dist/prompts/prompt.cjs +12 -0
- package/dist/prompts/prompt.d.ts +13 -1
- package/dist/prompts/prompt.js +12 -0
- package/package.json +2 -2
|
@@ -113,7 +113,7 @@ export type BaseLanguageModelInput = BasePromptValueInterface | string | BaseMes
|
|
|
113
113
|
export type StructuredOutputType = z.infer<z.ZodObject<any, any, any, any>>;
|
|
114
114
|
export type StructuredOutputMethodOptions<IncludeRaw extends boolean = false> = {
|
|
115
115
|
name?: string;
|
|
116
|
-
method?: "functionCalling" | "jsonMode";
|
|
116
|
+
method?: "functionCalling" | "jsonMode" | "jsonSchema" | string;
|
|
117
117
|
includeRaw?: IncludeRaw;
|
|
118
118
|
};
|
|
119
119
|
/** @deprecated Use StructuredOutputMethodOptions instead */
|
package/dist/prompts/chat.cjs
CHANGED
|
@@ -305,7 +305,13 @@ class _StringImageMessagePromptTemplate extends BaseMessagePromptTemplate {
|
|
|
305
305
|
else if (typeof item.text === "string") {
|
|
306
306
|
text = item.text ?? "";
|
|
307
307
|
}
|
|
308
|
-
|
|
308
|
+
const options = {
|
|
309
|
+
...additionalOptions,
|
|
310
|
+
...(typeof item !== "string"
|
|
311
|
+
? { additionalContentFields: item }
|
|
312
|
+
: {}),
|
|
313
|
+
};
|
|
314
|
+
prompt.push(prompt_js_1.PromptTemplate.fromTemplate(text, options));
|
|
309
315
|
}
|
|
310
316
|
else if (typeof item === "object" && "image_url" in item) {
|
|
311
317
|
let imgTemplate = item.image_url ?? "";
|
|
@@ -334,6 +340,7 @@ class _StringImageMessagePromptTemplate extends BaseMessagePromptTemplate {
|
|
|
334
340
|
template: imgTemplate,
|
|
335
341
|
inputVariables,
|
|
336
342
|
templateFormat: additionalOptions?.templateFormat,
|
|
343
|
+
additionalContentFields: item,
|
|
337
344
|
});
|
|
338
345
|
}
|
|
339
346
|
else if (typeof imgTemplate === "object") {
|
|
@@ -354,6 +361,7 @@ class _StringImageMessagePromptTemplate extends BaseMessagePromptTemplate {
|
|
|
354
361
|
template: imgTemplate,
|
|
355
362
|
inputVariables,
|
|
356
363
|
templateFormat: additionalOptions?.templateFormat,
|
|
364
|
+
additionalContentFields: item,
|
|
357
365
|
});
|
|
358
366
|
}
|
|
359
367
|
else {
|
|
@@ -387,13 +395,31 @@ class _StringImageMessagePromptTemplate extends BaseMessagePromptTemplate {
|
|
|
387
395
|
// eslint-disable-next-line no-instanceof/no-instanceof
|
|
388
396
|
if (prompt instanceof string_js_1.BaseStringPromptTemplate) {
|
|
389
397
|
const formatted = await prompt.format(inputs);
|
|
390
|
-
|
|
398
|
+
let additionalContentFields;
|
|
399
|
+
if ("additionalContentFields" in prompt) {
|
|
400
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
401
|
+
additionalContentFields = prompt.additionalContentFields;
|
|
402
|
+
}
|
|
403
|
+
content.push({
|
|
404
|
+
...additionalContentFields,
|
|
405
|
+
type: "text",
|
|
406
|
+
text: formatted,
|
|
407
|
+
});
|
|
391
408
|
/** @TODO replace this */
|
|
392
409
|
// eslint-disable-next-line no-instanceof/no-instanceof
|
|
393
410
|
}
|
|
394
411
|
else if (prompt instanceof image_js_1.ImagePromptTemplate) {
|
|
395
412
|
const formatted = await prompt.format(inputs);
|
|
396
|
-
|
|
413
|
+
let additionalContentFields;
|
|
414
|
+
if ("additionalContentFields" in prompt) {
|
|
415
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
416
|
+
additionalContentFields = prompt.additionalContentFields;
|
|
417
|
+
}
|
|
418
|
+
content.push({
|
|
419
|
+
...additionalContentFields,
|
|
420
|
+
type: "image_url",
|
|
421
|
+
image_url: formatted,
|
|
422
|
+
});
|
|
397
423
|
}
|
|
398
424
|
}
|
|
399
425
|
return this.createMessage(content);
|
|
@@ -491,10 +517,10 @@ function _coerceMessagePromptTemplateLike(messagePromptTemplateLike, extra) {
|
|
|
491
517
|
// Assuming message.content is an array of complex objects, transform it.
|
|
492
518
|
templateData = message.content.map((item) => {
|
|
493
519
|
if ("text" in item) {
|
|
494
|
-
return { text: item.text };
|
|
520
|
+
return { ...item, text: item.text };
|
|
495
521
|
}
|
|
496
522
|
else if ("image_url" in item) {
|
|
497
|
-
return { image_url: item.image_url };
|
|
523
|
+
return { ...item, image_url: item.image_url };
|
|
498
524
|
}
|
|
499
525
|
else {
|
|
500
526
|
return item;
|
package/dist/prompts/chat.js
CHANGED
|
@@ -297,7 +297,13 @@ class _StringImageMessagePromptTemplate extends BaseMessagePromptTemplate {
|
|
|
297
297
|
else if (typeof item.text === "string") {
|
|
298
298
|
text = item.text ?? "";
|
|
299
299
|
}
|
|
300
|
-
|
|
300
|
+
const options = {
|
|
301
|
+
...additionalOptions,
|
|
302
|
+
...(typeof item !== "string"
|
|
303
|
+
? { additionalContentFields: item }
|
|
304
|
+
: {}),
|
|
305
|
+
};
|
|
306
|
+
prompt.push(PromptTemplate.fromTemplate(text, options));
|
|
301
307
|
}
|
|
302
308
|
else if (typeof item === "object" && "image_url" in item) {
|
|
303
309
|
let imgTemplate = item.image_url ?? "";
|
|
@@ -326,6 +332,7 @@ class _StringImageMessagePromptTemplate extends BaseMessagePromptTemplate {
|
|
|
326
332
|
template: imgTemplate,
|
|
327
333
|
inputVariables,
|
|
328
334
|
templateFormat: additionalOptions?.templateFormat,
|
|
335
|
+
additionalContentFields: item,
|
|
329
336
|
});
|
|
330
337
|
}
|
|
331
338
|
else if (typeof imgTemplate === "object") {
|
|
@@ -346,6 +353,7 @@ class _StringImageMessagePromptTemplate extends BaseMessagePromptTemplate {
|
|
|
346
353
|
template: imgTemplate,
|
|
347
354
|
inputVariables,
|
|
348
355
|
templateFormat: additionalOptions?.templateFormat,
|
|
356
|
+
additionalContentFields: item,
|
|
349
357
|
});
|
|
350
358
|
}
|
|
351
359
|
else {
|
|
@@ -379,13 +387,31 @@ class _StringImageMessagePromptTemplate extends BaseMessagePromptTemplate {
|
|
|
379
387
|
// eslint-disable-next-line no-instanceof/no-instanceof
|
|
380
388
|
if (prompt instanceof BaseStringPromptTemplate) {
|
|
381
389
|
const formatted = await prompt.format(inputs);
|
|
382
|
-
|
|
390
|
+
let additionalContentFields;
|
|
391
|
+
if ("additionalContentFields" in prompt) {
|
|
392
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
393
|
+
additionalContentFields = prompt.additionalContentFields;
|
|
394
|
+
}
|
|
395
|
+
content.push({
|
|
396
|
+
...additionalContentFields,
|
|
397
|
+
type: "text",
|
|
398
|
+
text: formatted,
|
|
399
|
+
});
|
|
383
400
|
/** @TODO replace this */
|
|
384
401
|
// eslint-disable-next-line no-instanceof/no-instanceof
|
|
385
402
|
}
|
|
386
403
|
else if (prompt instanceof ImagePromptTemplate) {
|
|
387
404
|
const formatted = await prompt.format(inputs);
|
|
388
|
-
|
|
405
|
+
let additionalContentFields;
|
|
406
|
+
if ("additionalContentFields" in prompt) {
|
|
407
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
408
|
+
additionalContentFields = prompt.additionalContentFields;
|
|
409
|
+
}
|
|
410
|
+
content.push({
|
|
411
|
+
...additionalContentFields,
|
|
412
|
+
type: "image_url",
|
|
413
|
+
image_url: formatted,
|
|
414
|
+
});
|
|
389
415
|
}
|
|
390
416
|
}
|
|
391
417
|
return this.createMessage(content);
|
|
@@ -480,10 +506,10 @@ function _coerceMessagePromptTemplateLike(messagePromptTemplateLike, extra) {
|
|
|
480
506
|
// Assuming message.content is an array of complex objects, transform it.
|
|
481
507
|
templateData = message.content.map((item) => {
|
|
482
508
|
if ("text" in item) {
|
|
483
|
-
return { text: item.text };
|
|
509
|
+
return { ...item, text: item.text };
|
|
484
510
|
}
|
|
485
511
|
else if ("image_url" in item) {
|
|
486
|
-
return { image_url: item.image_url };
|
|
512
|
+
return { ...item, image_url: item.image_url };
|
|
487
513
|
}
|
|
488
514
|
else {
|
|
489
515
|
return item;
|
package/dist/prompts/image.cjs
CHANGED
|
@@ -37,9 +37,22 @@ class ImagePromptTemplate extends base_js_1.BasePromptTemplate {
|
|
|
37
37
|
writable: true,
|
|
38
38
|
value: true
|
|
39
39
|
});
|
|
40
|
+
/**
|
|
41
|
+
* Additional fields which should be included inside
|
|
42
|
+
* the message content array if using a complex message
|
|
43
|
+
* content.
|
|
44
|
+
*/
|
|
45
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
46
|
+
Object.defineProperty(this, "additionalContentFields", {
|
|
47
|
+
enumerable: true,
|
|
48
|
+
configurable: true,
|
|
49
|
+
writable: true,
|
|
50
|
+
value: void 0
|
|
51
|
+
});
|
|
40
52
|
this.template = input.template;
|
|
41
53
|
this.templateFormat = input.templateFormat ?? this.templateFormat;
|
|
42
54
|
this.validateTemplate = input.validateTemplate ?? this.validateTemplate;
|
|
55
|
+
this.additionalContentFields = input.additionalContentFields;
|
|
43
56
|
if (this.validateTemplate) {
|
|
44
57
|
let totalInputVariables = this.inputVariables;
|
|
45
58
|
if (this.partialVariables) {
|
package/dist/prompts/image.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { MessageContentComplex } from "../messages/index.js";
|
|
1
2
|
import { ImagePromptValue, ImageContent } from "../prompt_values.js";
|
|
2
3
|
import type { InputValues, PartialValues } from "../utils/types/index.js";
|
|
3
4
|
import { BasePromptTemplate, BasePromptTemplateInput, TypedPromptInputValues } from "./base.js";
|
|
@@ -23,6 +24,12 @@ export interface ImagePromptTemplateInput<RunInput extends InputValues = any, Pa
|
|
|
23
24
|
* @defaultValue `true`
|
|
24
25
|
*/
|
|
25
26
|
validateTemplate?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Additional fields which should be included inside
|
|
29
|
+
* the message content array if using a complex message
|
|
30
|
+
* content.
|
|
31
|
+
*/
|
|
32
|
+
additionalContentFields?: MessageContentComplex;
|
|
26
33
|
}
|
|
27
34
|
/**
|
|
28
35
|
* An image prompt template for a multimodal model.
|
|
@@ -33,6 +40,12 @@ export declare class ImagePromptTemplate<RunInput extends InputValues = any, Par
|
|
|
33
40
|
template: Record<string, unknown>;
|
|
34
41
|
templateFormat: TemplateFormat;
|
|
35
42
|
validateTemplate: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Additional fields which should be included inside
|
|
45
|
+
* the message content array if using a complex message
|
|
46
|
+
* content.
|
|
47
|
+
*/
|
|
48
|
+
additionalContentFields?: MessageContentComplex;
|
|
36
49
|
constructor(input: ImagePromptTemplateInput<RunInput, PartialVariableName>);
|
|
37
50
|
_getPromptType(): "prompt";
|
|
38
51
|
/**
|
package/dist/prompts/image.js
CHANGED
|
@@ -34,9 +34,22 @@ export class ImagePromptTemplate extends BasePromptTemplate {
|
|
|
34
34
|
writable: true,
|
|
35
35
|
value: true
|
|
36
36
|
});
|
|
37
|
+
/**
|
|
38
|
+
* Additional fields which should be included inside
|
|
39
|
+
* the message content array if using a complex message
|
|
40
|
+
* content.
|
|
41
|
+
*/
|
|
42
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
43
|
+
Object.defineProperty(this, "additionalContentFields", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
configurable: true,
|
|
46
|
+
writable: true,
|
|
47
|
+
value: void 0
|
|
48
|
+
});
|
|
37
49
|
this.template = input.template;
|
|
38
50
|
this.templateFormat = input.templateFormat ?? this.templateFormat;
|
|
39
51
|
this.validateTemplate = input.validateTemplate ?? this.validateTemplate;
|
|
52
|
+
this.additionalContentFields = input.additionalContentFields;
|
|
40
53
|
if (this.validateTemplate) {
|
|
41
54
|
let totalInputVariables = this.inputVariables;
|
|
42
55
|
if (this.partialVariables) {
|
package/dist/prompts/prompt.cjs
CHANGED
|
@@ -44,6 +44,18 @@ class PromptTemplate extends string_js_1.BaseStringPromptTemplate {
|
|
|
44
44
|
writable: true,
|
|
45
45
|
value: true
|
|
46
46
|
});
|
|
47
|
+
/**
|
|
48
|
+
* Additional fields which should be included inside
|
|
49
|
+
* the message content array if using a complex message
|
|
50
|
+
* content.
|
|
51
|
+
*/
|
|
52
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
53
|
+
Object.defineProperty(this, "additionalContentFields", {
|
|
54
|
+
enumerable: true,
|
|
55
|
+
configurable: true,
|
|
56
|
+
writable: true,
|
|
57
|
+
value: void 0
|
|
58
|
+
});
|
|
47
59
|
// If input is mustache and validateTemplate is not defined, set it to false
|
|
48
60
|
if (input.templateFormat === "mustache" &&
|
|
49
61
|
input.validateTemplate === undefined) {
|
package/dist/prompts/prompt.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { BasePromptTemplateInput, TypedPromptInputValues } from "./base.js"
|
|
|
3
3
|
import { type TemplateFormat } from "./template.js";
|
|
4
4
|
import type { SerializedPromptTemplate } from "./serde.js";
|
|
5
5
|
import type { InputValues, PartialValues } from "../utils/types/index.js";
|
|
6
|
-
import { MessageContent } from "../messages/index.js";
|
|
6
|
+
import { MessageContent, MessageContentComplex } from "../messages/index.js";
|
|
7
7
|
/**
|
|
8
8
|
* Inputs to create a {@link PromptTemplate}
|
|
9
9
|
* @augments BasePromptTemplateInput
|
|
@@ -23,6 +23,12 @@ export interface PromptTemplateInput<RunInput extends InputValues = any, Partial
|
|
|
23
23
|
* @defaultValue `true`
|
|
24
24
|
*/
|
|
25
25
|
validateTemplate?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Additional fields which should be included inside
|
|
28
|
+
* the message content array if using a complex message
|
|
29
|
+
* content.
|
|
30
|
+
*/
|
|
31
|
+
additionalContentFields?: MessageContentComplex;
|
|
26
32
|
}
|
|
27
33
|
type NonAlphanumeric = " " | "\t" | "\n" | "\r" | '"' | "'" | "{" | "[" | "(" | "`" | ":" | ";";
|
|
28
34
|
/**
|
|
@@ -55,6 +61,12 @@ export declare class PromptTemplate<RunInput extends InputValues = any, PartialV
|
|
|
55
61
|
template: MessageContent;
|
|
56
62
|
templateFormat: TemplateFormat;
|
|
57
63
|
validateTemplate: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Additional fields which should be included inside
|
|
66
|
+
* the message content array if using a complex message
|
|
67
|
+
* content.
|
|
68
|
+
*/
|
|
69
|
+
additionalContentFields?: MessageContentComplex;
|
|
58
70
|
constructor(input: PromptTemplateInput<RunInput, PartialVariableName>);
|
|
59
71
|
_getPromptType(): "prompt";
|
|
60
72
|
/**
|
package/dist/prompts/prompt.js
CHANGED
|
@@ -41,6 +41,18 @@ export class PromptTemplate extends BaseStringPromptTemplate {
|
|
|
41
41
|
writable: true,
|
|
42
42
|
value: true
|
|
43
43
|
});
|
|
44
|
+
/**
|
|
45
|
+
* Additional fields which should be included inside
|
|
46
|
+
* the message content array if using a complex message
|
|
47
|
+
* content.
|
|
48
|
+
*/
|
|
49
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
50
|
+
Object.defineProperty(this, "additionalContentFields", {
|
|
51
|
+
enumerable: true,
|
|
52
|
+
configurable: true,
|
|
53
|
+
writable: true,
|
|
54
|
+
value: void 0
|
|
55
|
+
});
|
|
44
56
|
// If input is mustache and validateTemplate is not defined, set it to false
|
|
45
57
|
if (input.templateFormat === "mustache" &&
|
|
46
58
|
input.validateTemplate === undefined) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@langchain/core",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.27",
|
|
4
4
|
"description": "Core LangChain.js abstractions and schemas",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"@jest/globals": "^29.5.0",
|
|
58
|
-
"@langchain/scripts": "
|
|
58
|
+
"@langchain/scripts": "^0.0.21",
|
|
59
59
|
"@swc/core": "^1.3.90",
|
|
60
60
|
"@swc/jest": "^0.2.29",
|
|
61
61
|
"@types/decamelize": "^1.2.0",
|