langchain 0.0.90 → 0.0.91
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/llms/ai21.cjs +1 -1
- package/dist/llms/ai21.js +1 -1
- package/dist/prompts/base.d.ts +1 -0
- package/dist/prompts/chat.d.ts +2 -1
- package/dist/prompts/index.cjs +3 -1
- package/dist/prompts/index.d.ts +1 -0
- package/dist/prompts/index.js +1 -0
- package/dist/prompts/pipeline.cjs +76 -0
- package/dist/prompts/pipeline.d.ts +24 -0
- package/dist/prompts/pipeline.js +72 -0
- package/package.json +1 -1
package/dist/llms/ai21.cjs
CHANGED
|
@@ -163,7 +163,7 @@ class AI21 extends base_js_1.LLM {
|
|
|
163
163
|
"Content-Type": "application/json",
|
|
164
164
|
};
|
|
165
165
|
const data = { prompt, stopSequences: stop, ...this.defaultParams };
|
|
166
|
-
const responseData = await this.caller.callWithOptions({
|
|
166
|
+
const responseData = await this.caller.callWithOptions({}, async () => {
|
|
167
167
|
const response = await fetch(url, {
|
|
168
168
|
method: "POST",
|
|
169
169
|
headers,
|
package/dist/llms/ai21.js
CHANGED
|
@@ -160,7 +160,7 @@ export class AI21 extends LLM {
|
|
|
160
160
|
"Content-Type": "application/json",
|
|
161
161
|
};
|
|
162
162
|
const data = { prompt, stopSequences: stop, ...this.defaultParams };
|
|
163
|
-
const responseData = await this.caller.callWithOptions({
|
|
163
|
+
const responseData = await this.caller.callWithOptions({}, async () => {
|
|
164
164
|
const response = await fetch(url, {
|
|
165
165
|
method: "POST",
|
|
166
166
|
headers,
|
package/dist/prompts/base.d.ts
CHANGED
|
@@ -27,6 +27,7 @@ export interface BasePromptTemplateInput {
|
|
|
27
27
|
* string prompt given a set of input values.
|
|
28
28
|
*/
|
|
29
29
|
export declare abstract class BasePromptTemplate implements BasePromptTemplateInput {
|
|
30
|
+
PromptValueReturnType: BasePromptValue;
|
|
30
31
|
inputVariables: string[];
|
|
31
32
|
outputParser?: BaseOutputParser;
|
|
32
33
|
partialVariables?: InputValues;
|
package/dist/prompts/chat.d.ts
CHANGED
|
@@ -26,10 +26,11 @@ export declare abstract class BaseMessageStringPromptTemplate extends BaseMessag
|
|
|
26
26
|
formatMessages(values: InputValues): Promise<BaseChatMessage[]>;
|
|
27
27
|
}
|
|
28
28
|
export declare abstract class BaseChatPromptTemplate extends BasePromptTemplate {
|
|
29
|
+
PromptValueReturnType: ChatPromptValue;
|
|
29
30
|
constructor(input: BasePromptTemplateInput);
|
|
30
31
|
abstract formatMessages(values: InputValues): Promise<BaseChatMessage[]>;
|
|
31
32
|
format(values: InputValues): Promise<string>;
|
|
32
|
-
formatPromptValue(values: InputValues): Promise<
|
|
33
|
+
formatPromptValue(values: InputValues): Promise<ChatPromptValue>;
|
|
33
34
|
}
|
|
34
35
|
export declare class ChatMessagePromptTemplate extends BaseMessageStringPromptTemplate {
|
|
35
36
|
role: string;
|
package/dist/prompts/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.checkValidTemplate = exports.renderTemplate = exports.parseTemplate = exports.BaseChatPromptTemplate = exports.MessagesPlaceholder = exports.ChatMessagePromptTemplate = exports.SystemMessagePromptTemplate = exports.AIMessagePromptTemplate = exports.HumanMessagePromptTemplate = exports.ChatPromptTemplate = exports.FewShotPromptTemplate = exports.SemanticSimilarityExampleSelector = exports.LengthBasedExampleSelector = exports.isLLM = exports.isChatModel = exports.ConditionalPromptSelector = exports.BasePromptSelector = exports.PromptTemplate = exports.BaseStringPromptTemplate = exports.StringPromptValue = exports.BasePromptTemplate = exports.BaseExampleSelector = void 0;
|
|
3
|
+
exports.PipelinePromptTemplate = exports.checkValidTemplate = exports.renderTemplate = exports.parseTemplate = exports.BaseChatPromptTemplate = exports.MessagesPlaceholder = exports.ChatMessagePromptTemplate = exports.SystemMessagePromptTemplate = exports.AIMessagePromptTemplate = exports.HumanMessagePromptTemplate = exports.ChatPromptTemplate = exports.FewShotPromptTemplate = exports.SemanticSimilarityExampleSelector = exports.LengthBasedExampleSelector = exports.isLLM = exports.isChatModel = exports.ConditionalPromptSelector = exports.BasePromptSelector = exports.PromptTemplate = exports.BaseStringPromptTemplate = exports.StringPromptValue = exports.BasePromptTemplate = exports.BaseExampleSelector = void 0;
|
|
4
4
|
var base_js_1 = require("./base.cjs");
|
|
5
5
|
Object.defineProperty(exports, "BaseExampleSelector", { enumerable: true, get: function () { return base_js_1.BaseExampleSelector; } });
|
|
6
6
|
Object.defineProperty(exports, "BasePromptTemplate", { enumerable: true, get: function () { return base_js_1.BasePromptTemplate; } });
|
|
@@ -31,3 +31,5 @@ var template_js_1 = require("./template.cjs");
|
|
|
31
31
|
Object.defineProperty(exports, "parseTemplate", { enumerable: true, get: function () { return template_js_1.parseTemplate; } });
|
|
32
32
|
Object.defineProperty(exports, "renderTemplate", { enumerable: true, get: function () { return template_js_1.renderTemplate; } });
|
|
33
33
|
Object.defineProperty(exports, "checkValidTemplate", { enumerable: true, get: function () { return template_js_1.checkValidTemplate; } });
|
|
34
|
+
var pipeline_js_1 = require("./pipeline.cjs");
|
|
35
|
+
Object.defineProperty(exports, "PipelinePromptTemplate", { enumerable: true, get: function () { return pipeline_js_1.PipelinePromptTemplate; } });
|
package/dist/prompts/index.d.ts
CHANGED
|
@@ -7,3 +7,4 @@ export { FewShotPromptTemplate, FewShotPromptTemplateInput, } from "./few_shot.j
|
|
|
7
7
|
export { ChatPromptTemplate, HumanMessagePromptTemplate, AIMessagePromptTemplate, SystemMessagePromptTemplate, ChatMessagePromptTemplate, MessagesPlaceholder, BaseChatPromptTemplate, } from "./chat.js";
|
|
8
8
|
export { SerializedPromptTemplate, SerializedBasePromptTemplate, SerializedFewShotTemplate, SerializedMessagePromptTemplate, SerializedChatPromptTemplate, } from "./serde.js";
|
|
9
9
|
export { parseTemplate, renderTemplate, checkValidTemplate, TemplateFormat, } from "./template.js";
|
|
10
|
+
export { PipelinePromptParams, PipelinePromptTemplate, PipelinePromptTemplateInput, } from "./pipeline.js";
|
package/dist/prompts/index.js
CHANGED
|
@@ -6,3 +6,4 @@ export { SemanticSimilarityExampleSelector, } from "./selectors/SemanticSimilari
|
|
|
6
6
|
export { FewShotPromptTemplate, } from "./few_shot.js";
|
|
7
7
|
export { ChatPromptTemplate, HumanMessagePromptTemplate, AIMessagePromptTemplate, SystemMessagePromptTemplate, ChatMessagePromptTemplate, MessagesPlaceholder, BaseChatPromptTemplate, } from "./chat.js";
|
|
8
8
|
export { parseTemplate, renderTemplate, checkValidTemplate, } from "./template.js";
|
|
9
|
+
export { PipelinePromptTemplate, } from "./pipeline.js";
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PipelinePromptTemplate = void 0;
|
|
4
|
+
const base_js_1 = require("./base.cjs");
|
|
5
|
+
const chat_js_1 = require("./chat.cjs");
|
|
6
|
+
class PipelinePromptTemplate extends base_js_1.BasePromptTemplate {
|
|
7
|
+
constructor(input) {
|
|
8
|
+
super({ ...input, inputVariables: [] });
|
|
9
|
+
Object.defineProperty(this, "pipelinePrompts", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
configurable: true,
|
|
12
|
+
writable: true,
|
|
13
|
+
value: void 0
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(this, "finalPrompt", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
configurable: true,
|
|
18
|
+
writable: true,
|
|
19
|
+
value: void 0
|
|
20
|
+
});
|
|
21
|
+
this.pipelinePrompts = input.pipelinePrompts;
|
|
22
|
+
this.finalPrompt = input.finalPrompt;
|
|
23
|
+
this.inputVariables = this.computeInputValues();
|
|
24
|
+
}
|
|
25
|
+
computeInputValues() {
|
|
26
|
+
const intermediateValues = this.pipelinePrompts.map((pipelinePrompt) => pipelinePrompt.name);
|
|
27
|
+
const inputValues = this.pipelinePrompts
|
|
28
|
+
.map((pipelinePrompt) => pipelinePrompt.prompt.inputVariables.filter((inputValue) => !intermediateValues.includes(inputValue)))
|
|
29
|
+
.flat();
|
|
30
|
+
return [...new Set(inputValues)];
|
|
31
|
+
}
|
|
32
|
+
static extractRequiredInputValues(allValues, requiredValueNames) {
|
|
33
|
+
return requiredValueNames.reduce((requiredValues, valueName) => {
|
|
34
|
+
// eslint-disable-next-line no-param-reassign
|
|
35
|
+
requiredValues[valueName] = allValues[valueName];
|
|
36
|
+
return requiredValues;
|
|
37
|
+
}, {});
|
|
38
|
+
}
|
|
39
|
+
async formatPipelinePrompts(values) {
|
|
40
|
+
const allValues = await this.mergePartialAndUserVariables(values);
|
|
41
|
+
for (const { name: pipelinePromptName, prompt: pipelinePrompt } of this
|
|
42
|
+
.pipelinePrompts) {
|
|
43
|
+
const pipelinePromptInputValues = PipelinePromptTemplate.extractRequiredInputValues(allValues, pipelinePrompt.inputVariables);
|
|
44
|
+
// eslint-disable-next-line no-instanceof/no-instanceof
|
|
45
|
+
if (pipelinePrompt instanceof chat_js_1.ChatPromptTemplate) {
|
|
46
|
+
allValues[pipelinePromptName] = await pipelinePrompt.formatMessages(pipelinePromptInputValues);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
allValues[pipelinePromptName] = await pipelinePrompt.format(pipelinePromptInputValues);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return PipelinePromptTemplate.extractRequiredInputValues(allValues, this.finalPrompt.inputVariables);
|
|
53
|
+
}
|
|
54
|
+
async formatPromptValue(values) {
|
|
55
|
+
return this.finalPrompt.formatPromptValue(await this.formatPipelinePrompts(values));
|
|
56
|
+
}
|
|
57
|
+
async format(values) {
|
|
58
|
+
return this.finalPrompt.format(await this.formatPipelinePrompts(values));
|
|
59
|
+
}
|
|
60
|
+
async partial(values) {
|
|
61
|
+
const promptDict = { ...this };
|
|
62
|
+
promptDict.inputVariables = this.inputVariables.filter((iv) => !(iv in values));
|
|
63
|
+
promptDict.partialVariables = {
|
|
64
|
+
...(this.partialVariables ?? {}),
|
|
65
|
+
...values,
|
|
66
|
+
};
|
|
67
|
+
return new PipelinePromptTemplate(promptDict);
|
|
68
|
+
}
|
|
69
|
+
serialize() {
|
|
70
|
+
throw new Error("Not implemented.");
|
|
71
|
+
}
|
|
72
|
+
_getPromptType() {
|
|
73
|
+
return "pipeline";
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.PipelinePromptTemplate = PipelinePromptTemplate;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { InputValues, PartialValues } from "../schema/index.js";
|
|
2
|
+
import { BasePromptTemplate, BasePromptTemplateInput } from "./base.js";
|
|
3
|
+
import { SerializedBasePromptTemplate } from "./serde.js";
|
|
4
|
+
export type PipelinePromptParams<PromptTemplateType extends BasePromptTemplate> = {
|
|
5
|
+
name: string;
|
|
6
|
+
prompt: PromptTemplateType;
|
|
7
|
+
};
|
|
8
|
+
export type PipelinePromptTemplateInput<PromptTemplateType extends BasePromptTemplate> = Omit<BasePromptTemplateInput, "inputVariables"> & {
|
|
9
|
+
pipelinePrompts: PipelinePromptParams<PromptTemplateType>[];
|
|
10
|
+
finalPrompt: PromptTemplateType;
|
|
11
|
+
};
|
|
12
|
+
export declare class PipelinePromptTemplate<PromptTemplateType extends BasePromptTemplate> extends BasePromptTemplate {
|
|
13
|
+
pipelinePrompts: PipelinePromptParams<PromptTemplateType>[];
|
|
14
|
+
finalPrompt: PromptTemplateType;
|
|
15
|
+
constructor(input: PipelinePromptTemplateInput<PromptTemplateType>);
|
|
16
|
+
protected computeInputValues(): string[];
|
|
17
|
+
protected static extractRequiredInputValues(allValues: InputValues, requiredValueNames: string[]): InputValues;
|
|
18
|
+
protected formatPipelinePrompts(values: InputValues): Promise<InputValues>;
|
|
19
|
+
formatPromptValue(values: InputValues): Promise<PromptTemplateType["PromptValueReturnType"]>;
|
|
20
|
+
format(values: InputValues): Promise<string>;
|
|
21
|
+
partial(values: PartialValues): Promise<PipelinePromptTemplate<PromptTemplateType>>;
|
|
22
|
+
serialize(): SerializedBasePromptTemplate;
|
|
23
|
+
_getPromptType(): string;
|
|
24
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { BasePromptTemplate } from "./base.js";
|
|
2
|
+
import { ChatPromptTemplate } from "./chat.js";
|
|
3
|
+
export class PipelinePromptTemplate extends BasePromptTemplate {
|
|
4
|
+
constructor(input) {
|
|
5
|
+
super({ ...input, inputVariables: [] });
|
|
6
|
+
Object.defineProperty(this, "pipelinePrompts", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
configurable: true,
|
|
9
|
+
writable: true,
|
|
10
|
+
value: void 0
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(this, "finalPrompt", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
configurable: true,
|
|
15
|
+
writable: true,
|
|
16
|
+
value: void 0
|
|
17
|
+
});
|
|
18
|
+
this.pipelinePrompts = input.pipelinePrompts;
|
|
19
|
+
this.finalPrompt = input.finalPrompt;
|
|
20
|
+
this.inputVariables = this.computeInputValues();
|
|
21
|
+
}
|
|
22
|
+
computeInputValues() {
|
|
23
|
+
const intermediateValues = this.pipelinePrompts.map((pipelinePrompt) => pipelinePrompt.name);
|
|
24
|
+
const inputValues = this.pipelinePrompts
|
|
25
|
+
.map((pipelinePrompt) => pipelinePrompt.prompt.inputVariables.filter((inputValue) => !intermediateValues.includes(inputValue)))
|
|
26
|
+
.flat();
|
|
27
|
+
return [...new Set(inputValues)];
|
|
28
|
+
}
|
|
29
|
+
static extractRequiredInputValues(allValues, requiredValueNames) {
|
|
30
|
+
return requiredValueNames.reduce((requiredValues, valueName) => {
|
|
31
|
+
// eslint-disable-next-line no-param-reassign
|
|
32
|
+
requiredValues[valueName] = allValues[valueName];
|
|
33
|
+
return requiredValues;
|
|
34
|
+
}, {});
|
|
35
|
+
}
|
|
36
|
+
async formatPipelinePrompts(values) {
|
|
37
|
+
const allValues = await this.mergePartialAndUserVariables(values);
|
|
38
|
+
for (const { name: pipelinePromptName, prompt: pipelinePrompt } of this
|
|
39
|
+
.pipelinePrompts) {
|
|
40
|
+
const pipelinePromptInputValues = PipelinePromptTemplate.extractRequiredInputValues(allValues, pipelinePrompt.inputVariables);
|
|
41
|
+
// eslint-disable-next-line no-instanceof/no-instanceof
|
|
42
|
+
if (pipelinePrompt instanceof ChatPromptTemplate) {
|
|
43
|
+
allValues[pipelinePromptName] = await pipelinePrompt.formatMessages(pipelinePromptInputValues);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
allValues[pipelinePromptName] = await pipelinePrompt.format(pipelinePromptInputValues);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return PipelinePromptTemplate.extractRequiredInputValues(allValues, this.finalPrompt.inputVariables);
|
|
50
|
+
}
|
|
51
|
+
async formatPromptValue(values) {
|
|
52
|
+
return this.finalPrompt.formatPromptValue(await this.formatPipelinePrompts(values));
|
|
53
|
+
}
|
|
54
|
+
async format(values) {
|
|
55
|
+
return this.finalPrompt.format(await this.formatPipelinePrompts(values));
|
|
56
|
+
}
|
|
57
|
+
async partial(values) {
|
|
58
|
+
const promptDict = { ...this };
|
|
59
|
+
promptDict.inputVariables = this.inputVariables.filter((iv) => !(iv in values));
|
|
60
|
+
promptDict.partialVariables = {
|
|
61
|
+
...(this.partialVariables ?? {}),
|
|
62
|
+
...values,
|
|
63
|
+
};
|
|
64
|
+
return new PipelinePromptTemplate(promptDict);
|
|
65
|
+
}
|
|
66
|
+
serialize() {
|
|
67
|
+
throw new Error("Not implemented.");
|
|
68
|
+
}
|
|
69
|
+
_getPromptType() {
|
|
70
|
+
return "pipeline";
|
|
71
|
+
}
|
|
72
|
+
}
|