@promptbook/cli 0.61.0-28 → 0.61.0-30
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/esm/index.es.js +34 -32
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/execution/PipelineExecutor.d.ts +16 -4
- package/esm/typings/src/execution/createPipelineExecutor.d.ts +10 -2
- package/esm/typings/src/types/execution-report/ExecutionReportJson.d.ts +1 -1
- package/package.json +2 -2
- package/umd/index.umd.js +34 -32
- package/umd/index.umd.js.map +1 -1
- package/umd/typings/src/execution/PipelineExecutor.d.ts +16 -4
- package/umd/typings/src/execution/createPipelineExecutor.d.ts +10 -2
- package/umd/typings/src/types/execution-report/ExecutionReportJson.d.ts +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Promisable } from 'type-fest';
|
|
2
|
+
import type { PipelineJson } from '../types/PipelineJson/PipelineJson';
|
|
2
3
|
import { PipelineExecutionError } from '../errors/PipelineExecutionError';
|
|
3
4
|
import type { TaskProgress } from '../types/TaskProgress';
|
|
4
5
|
import type { ExecutionReportJson } from '../types/execution-report/ExecutionReportJson';
|
|
@@ -10,6 +11,8 @@ import type { PromptResultUsage } from './PromptResultUsage';
|
|
|
10
11
|
*
|
|
11
12
|
* It can be created with `createPipelineExecutor` function.
|
|
12
13
|
*
|
|
14
|
+
* @@@ almost-JSON (what about errors)
|
|
15
|
+
*
|
|
13
16
|
* @see https://github.com/webgptorg/promptbook#executor
|
|
14
17
|
*/
|
|
15
18
|
export type PipelineExecutor = {
|
|
@@ -17,8 +20,16 @@ export type PipelineExecutor = {
|
|
|
17
20
|
};
|
|
18
21
|
/**
|
|
19
22
|
* @@@
|
|
23
|
+
*
|
|
24
|
+
* @@@ almost-JSON (what about errors)
|
|
20
25
|
*/
|
|
21
26
|
export type PipelineExecutorResult = {
|
|
27
|
+
/**
|
|
28
|
+
* Result parameters of the execution
|
|
29
|
+
*
|
|
30
|
+
* Note: If the execution was not successful, there are only some of the result parameters
|
|
31
|
+
*/
|
|
32
|
+
readonly outputParameters: Parameters;
|
|
22
33
|
/**
|
|
23
34
|
* Whether the execution was successful, details are aviable in `executionReport`
|
|
24
35
|
*/
|
|
@@ -40,13 +51,14 @@ export type PipelineExecutorResult = {
|
|
|
40
51
|
*/
|
|
41
52
|
readonly executionReport: ExecutionReportJson;
|
|
42
53
|
/**
|
|
43
|
-
*
|
|
54
|
+
* The prepared pipeline that was used for the execution
|
|
44
55
|
*
|
|
45
|
-
* Note: If
|
|
56
|
+
* Note: If you called `createPipelineExecutor` with fully prepared pipeline, this is the same object as this pipeline
|
|
57
|
+
* If you passed not fully prepared pipeline, this is same pipeline but fully prepared
|
|
46
58
|
*/
|
|
47
|
-
readonly
|
|
59
|
+
readonly preparedPipeline: PipelineJson;
|
|
48
60
|
};
|
|
49
61
|
/**
|
|
50
62
|
* TODO: [🧠] Should this file be in /execution or /types folder?
|
|
51
|
-
* TODO: [💷] `assertsExecutionSuccessful` should be the method of `PipelineExecutor` result
|
|
63
|
+
* TODO: [💷] `assertsExecutionSuccessful` should be the method of `PipelineExecutor` result - BUT maybe NOT?
|
|
52
64
|
*/
|
|
@@ -20,6 +20,16 @@ type CreatePipelineExecutorSettings = {
|
|
|
20
20
|
* @default false
|
|
21
21
|
*/
|
|
22
22
|
readonly isVerbose?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* If you pass fully prepared pipeline, this does not matter
|
|
25
|
+
*
|
|
26
|
+
* Otherwise:
|
|
27
|
+
* If false or not set, warning is shown when pipeline is not prepared
|
|
28
|
+
* If true, warning is suppressed
|
|
29
|
+
*
|
|
30
|
+
* @default false
|
|
31
|
+
*/
|
|
32
|
+
readonly isNotPreparedWarningSupressed?: boolean;
|
|
23
33
|
};
|
|
24
34
|
/**
|
|
25
35
|
* Options for `createPipelineExecutor`
|
|
@@ -47,8 +57,6 @@ interface CreatePipelineExecutorOptions {
|
|
|
47
57
|
export declare function createPipelineExecutor(options: CreatePipelineExecutorOptions): PipelineExecutor;
|
|
48
58
|
export {};
|
|
49
59
|
/**
|
|
50
|
-
* TODO: !!!!! return `preparedPipeline` from execution
|
|
51
|
-
* TODO: !!!!! `isNotPreparedWarningSupressed`
|
|
52
60
|
* TODO: Use isVerbose here (not only pass to `preparePipeline`)
|
|
53
61
|
* TODO: [🪂] Use maxParallelCount here (not only pass to `preparePipeline`)
|
|
54
62
|
* TODO: [♈] Probbably move expectations from templates to parameters
|
|
@@ -41,7 +41,7 @@ export type ExecutionReportJson = {
|
|
|
41
41
|
/**
|
|
42
42
|
* The prompt wich was executed
|
|
43
43
|
*/
|
|
44
|
-
readonly prompt: Omit<Prompt, 'pipelineUrl'
|
|
44
|
+
readonly prompt: Omit<Prompt, 'pipelineUrl'>;
|
|
45
45
|
/**
|
|
46
46
|
* Result of the prompt execution (if not failed during LLM execution)
|
|
47
47
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promptbook/cli",
|
|
3
|
-
"version": "0.61.0-
|
|
3
|
+
"version": "0.61.0-30",
|
|
4
4
|
"description": "Supercharge your use of large language models",
|
|
5
5
|
"private": false,
|
|
6
6
|
"sideEffects": false,
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
}
|
|
55
55
|
],
|
|
56
56
|
"peerDependencies": {
|
|
57
|
-
"@promptbook/core": "0.61.0-
|
|
57
|
+
"@promptbook/core": "0.61.0-30"
|
|
58
58
|
},
|
|
59
59
|
"main": "./umd/index.umd.js",
|
|
60
60
|
"module": "./esm/index.es.js",
|
package/umd/index.umd.js
CHANGED
|
@@ -154,7 +154,7 @@
|
|
|
154
154
|
/**
|
|
155
155
|
* The version of the Promptbook library
|
|
156
156
|
*/
|
|
157
|
-
var PROMPTBOOK_VERSION = '0.61.0-
|
|
157
|
+
var PROMPTBOOK_VERSION = '0.61.0-29';
|
|
158
158
|
// TODO: !!!! List here all the versions and annotate + put into script
|
|
159
159
|
|
|
160
160
|
/**
|
|
@@ -751,7 +751,7 @@
|
|
|
751
751
|
});
|
|
752
752
|
}
|
|
753
753
|
|
|
754
|
-
var PipelineCollection = [{title:"Prepare Knowledge from Markdown",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-from-markdown.ptbk.md",promptbookVersion:"0.61.0-
|
|
754
|
+
var PipelineCollection = [{title:"Prepare Knowledge from Markdown",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-from-markdown.ptbk.md",promptbookVersion:"0.61.0-29",parameters:[{name:"knowledgeContent",description:"Markdown document content",isInput:true,isOutput:false},{name:"knowledgePieces",description:"The knowledge JSON object",isInput:false,isOutput:true}],promptTemplates:[{blockType:"PROMPT_TEMPLATE",name:"knowledge",title:"Knowledge",modelRequirements:{modelVariant:"CHAT",modelName:"claude-3-opus-20240229"},content:"You are experienced data researcher, extract the important knowledge from the document.\n\n# Rules\n\n- Make pieces of information concise, clear, and easy to understand\n- One piece of information should be approximately 1 paragraph\n- Divide the paragraphs by markdown horizontal lines ---\n- Omit irrelevant information\n- Group redundant information\n- Write just extracted information, nothing else\n\n# The document\n\nTake information from this document:\n\n> {knowledgeContent}",dependentParameterNames:["knowledgeContent"],resultingParameterName:"knowledgePieces"}],knowledgeSources:[],knowledgePieces:[],personas:[],preparations:[{id:1,promptbookVersion:"0.61.0-29",modelUsage:{price:{value:0},input:{tokensCount:{value:0},charactersCount:{value:0},wordsCount:{value:0},sentencesCount:{value:0},linesCount:{value:0},paragraphsCount:{value:0},pagesCount:{value:0}},output:{tokensCount:{value:0},charactersCount:{value:0},wordsCount:{value:0},sentencesCount:{value:0},linesCount:{value:0},paragraphsCount:{value:0},pagesCount:{value:0}}}}],sourceFile:"./promptbook-collection/prepare-knowledge-from-markdown.ptbk.md"},{title:"Prepare Keywords",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-keywords.ptbk.md",promptbookVersion:"0.61.0-29",parameters:[{name:"knowledgePieceContent",description:"The content",isInput:true,isOutput:false},{name:"keywords",description:"Keywords separated by comma",isInput:false,isOutput:true}],promptTemplates:[{blockType:"PROMPT_TEMPLATE",name:"knowledge",title:"Knowledge",modelRequirements:{modelVariant:"CHAT",modelName:"claude-3-opus-20240229"},content:"You are experienced data researcher, detect the important keywords in the document.\n\n# Rules\n\n- Write just keywords separated by comma\n\n# The document\n\nTake information from this document:\n\n> {knowledgePieceContent}",dependentParameterNames:["knowledgePieceContent"],resultingParameterName:"keywords"}],knowledgeSources:[],knowledgePieces:[],personas:[],preparations:[{id:1,promptbookVersion:"0.61.0-29",modelUsage:{price:{value:0},input:{tokensCount:{value:0},charactersCount:{value:0},wordsCount:{value:0},sentencesCount:{value:0},linesCount:{value:0},paragraphsCount:{value:0},pagesCount:{value:0}},output:{tokensCount:{value:0},charactersCount:{value:0},wordsCount:{value:0},sentencesCount:{value:0},linesCount:{value:0},paragraphsCount:{value:0},pagesCount:{value:0}}}}],sourceFile:"./promptbook-collection/prepare-knowledge-keywords.ptbk.md"},{title:"Prepare Title",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-title.ptbk.md",promptbookVersion:"0.61.0-29",parameters:[{name:"knowledgePieceContent",description:"The content",isInput:true,isOutput:false},{name:"title",description:"The title of the document",isInput:false,isOutput:true}],promptTemplates:[{blockType:"PROMPT_TEMPLATE",name:"knowledge",title:"Knowledge",modelRequirements:{modelVariant:"CHAT",modelName:"claude-3-opus-20240229"},content:"You are experienced content creator, write best title for the document.\n\n# Rules\n\n- Write just title, nothing else\n- Title should be concise and clear\n- Write maximum 5 words for the title\n\n# The document\n\n> {knowledgePieceContent}",expectations:{words:{min:1,max:8}},dependentParameterNames:["knowledgePieceContent"],resultingParameterName:"title"}],knowledgeSources:[],knowledgePieces:[],personas:[],preparations:[{id:1,promptbookVersion:"0.61.0-29",modelUsage:{price:{value:0},input:{tokensCount:{value:0},charactersCount:{value:0},wordsCount:{value:0},sentencesCount:{value:0},linesCount:{value:0},paragraphsCount:{value:0},pagesCount:{value:0}},output:{tokensCount:{value:0},charactersCount:{value:0},wordsCount:{value:0},sentencesCount:{value:0},linesCount:{value:0},paragraphsCount:{value:0},pagesCount:{value:0}}}}],sourceFile:"./promptbook-collection/prepare-knowledge-title.ptbk.md"},{title:"Prepare Keywords",pipelineUrl:"https://promptbook.studio/promptbook/prepare-persona.ptbk.md",promptbookVersion:"0.61.0-29",parameters:[{name:"availableModelNames",description:"List of available model names separated by comma (,)",isInput:true,isOutput:false},{name:"personaDescription",description:"Description of the persona",isInput:true,isOutput:false},{name:"modelRequirements",description:"Specific requirements for the model",isInput:false,isOutput:true}],promptTemplates:[{blockType:"PROMPT_TEMPLATE",name:"make-model-requirements",title:"Make modelRequirements",modelRequirements:{modelVariant:"CHAT",modelName:"gpt-4-turbo"},content:"You are experienced AI engineer, you need to create virtual assistant.\nWrite\n\n## Sample\n\n```json\n{\n\"modelName\": \"gpt-4o\",\n\"systemMessage\": \"You are experienced AI engineer and helpfull assistant.\",\n\"temperature\": 0.7\n}\n```\n\n## Instructions\n\n### Option `modelName`\n\nPick from the following models:\n\n- {availableModelNames}\n\n### Option `systemMessage`\n\nThe system message is used to communicate instructions or provide context to the model at the beginning of a conversation. It is displayed in a different format compared to user messages, helping the model understand its role in the conversation. The system message typically guides the model's behavior, sets the tone, or specifies desired output from the model. By utilizing the system message effectively, users can steer the model towards generating more accurate and relevant responses.\n\nFor example:\n\n> You are an experienced AI engineer and helpful assistant.\n\n> You are a friendly and knowledgeable chatbot.\n\n### Option `temperature`\n\nThe sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use log probability to automatically increase the temperature until certain thresholds are hit.\n\nYou can pick a value between 0 and 2. For example:\n\n- `0.1`: Low temperature, extremely conservative and deterministic\n- `0.5`: Medium temperature, balanced between conservative and creative\n- `1.0`: High temperature, creative and bit random\n- `1.5`: Very high temperature, extremely creative and often chaotic and unpredictable\n- `2.0`: Maximum temperature, completely random and unpredictable, for some extreme creative use cases\n\n# The assistant\n\nTake this description of the persona:\n\n> {personaDescription}",expectFormat:"JSON",dependentParameterNames:["availableModelNames","personaDescription"],resultingParameterName:"modelRequirements"}],knowledgeSources:[],knowledgePieces:[],personas:[],preparations:[{id:1,promptbookVersion:"0.61.0-29",modelUsage:{price:{value:0},input:{tokensCount:{value:0},charactersCount:{value:0},wordsCount:{value:0},sentencesCount:{value:0},linesCount:{value:0},paragraphsCount:{value:0},pagesCount:{value:0}},output:{tokensCount:{value:0},charactersCount:{value:0},wordsCount:{value:0},sentencesCount:{value:0},linesCount:{value:0},paragraphsCount:{value:0},pagesCount:{value:0}}}}],sourceFile:"./promptbook-collection/prepare-persona.ptbk.md"}];
|
|
755
755
|
|
|
756
756
|
/**
|
|
757
757
|
* This error indicates that the promptbook in a markdown format cannot be parsed into a valid promptbook object
|
|
@@ -2480,17 +2480,16 @@
|
|
|
2480
2480
|
*/
|
|
2481
2481
|
function createPipelineExecutor(options) {
|
|
2482
2482
|
var _this = this;
|
|
2483
|
-
var
|
|
2484
|
-
var _b = settings.maxExecutionAttempts, maxExecutionAttempts = _b === void 0 ? MAX_EXECUTION_ATTEMPTS : _b, _c = settings.maxParallelCount, maxParallelCount = _c === void 0 ? MAX_PARALLEL_COUNT : _c, _d = settings.isVerbose, isVerbose = _d === void 0 ? false : _d;
|
|
2485
|
-
validatePipeline(
|
|
2483
|
+
var pipeline = options.pipeline, tools = options.tools, _a = options.settings, settings = _a === void 0 ? {} : _a;
|
|
2484
|
+
var _b = settings.maxExecutionAttempts, maxExecutionAttempts = _b === void 0 ? MAX_EXECUTION_ATTEMPTS : _b, _c = settings.maxParallelCount, maxParallelCount = _c === void 0 ? MAX_PARALLEL_COUNT : _c, _d = settings.isVerbose, isVerbose = _d === void 0 ? false : _d, _e = settings.isNotPreparedWarningSupressed, isNotPreparedWarningSupressed = _e === void 0 ? false : _e;
|
|
2485
|
+
validatePipeline(pipeline);
|
|
2486
2486
|
var llmTools = joinLlmExecutionTools.apply(void 0, __spreadArray([], __read(arrayableToArray(tools.llm)), false));
|
|
2487
|
-
var
|
|
2488
|
-
if (isPipelinePrepared(
|
|
2489
|
-
|
|
2487
|
+
var preparedPipeline;
|
|
2488
|
+
if (isPipelinePrepared(pipeline)) {
|
|
2489
|
+
preparedPipeline = pipeline;
|
|
2490
2490
|
}
|
|
2491
|
-
else {
|
|
2492
|
-
|
|
2493
|
-
console.warn(spaceTrim.spaceTrim("\n Pipeline ".concat(rawPipeline.pipelineUrl || rawPipeline.sourceFile || rawPipeline.title, " is not prepared\n\n ").concat(rawPipeline.sourceFile, "\n\n It will be prepared ad-hoc before the first execution\n But it is recommended to prepare the pipeline during collection preparation\n\n @see more at https://ptbk.io/prepare-pipeline\n ")));
|
|
2491
|
+
else if (isNotPreparedWarningSupressed !== true) {
|
|
2492
|
+
console.warn(spaceTrim.spaceTrim("\n Pipeline ".concat(pipeline.pipelineUrl || pipeline.sourceFile || pipeline.title, " is not prepared\n\n ").concat(pipeline.sourceFile, "\n\n It will be prepared ad-hoc before the first execution and **returned as `preparedPipeline` in `PipelineExecutorResult`**\n But it is recommended to prepare the pipeline during collection preparation\n\n @see more at https://ptbk.io/prepare-pipeline\n ")));
|
|
2494
2493
|
}
|
|
2495
2494
|
var pipelineExecutor = function (inputParameters, onProgress) { return __awaiter(_this, void 0, void 0, function () {
|
|
2496
2495
|
// TODO: !!! Extract to separate functions and files - ALL FUNCTIONS BELOW
|
|
@@ -2507,9 +2506,9 @@
|
|
|
2507
2506
|
template) {
|
|
2508
2507
|
return __awaiter(this, void 0, void 0, function () {
|
|
2509
2508
|
return __generator(this, function (_a) {
|
|
2510
|
-
// TODO: [♨] Implement Better - use real index and keyword search
|
|
2509
|
+
// TODO: [♨] Implement Better - use real index and keyword search from `template` and {samples}
|
|
2511
2510
|
TODO_USE(template);
|
|
2512
|
-
return [2 /*return*/,
|
|
2511
|
+
return [2 /*return*/, preparedPipeline.knowledgePieces.map(function (_a) {
|
|
2513
2512
|
var content = _a.content;
|
|
2514
2513
|
return "- ".concat(content);
|
|
2515
2514
|
}).join('\n')];
|
|
@@ -2582,7 +2581,7 @@
|
|
|
2582
2581
|
case 0:
|
|
2583
2582
|
name = "pipeline-executor-frame-".concat(currentTemplate.name);
|
|
2584
2583
|
title = currentTemplate.title;
|
|
2585
|
-
priority =
|
|
2584
|
+
priority = preparedPipeline.promptTemplates.length - preparedPipeline.promptTemplates.indexOf(currentTemplate);
|
|
2586
2585
|
if (!onProgress /* <- [3] */) return [3 /*break*/, 2]; /* <- [3] */
|
|
2587
2586
|
return [4 /*yield*/, onProgress({
|
|
2588
2587
|
name: name,
|
|
@@ -2686,13 +2685,13 @@
|
|
|
2686
2685
|
case 7:
|
|
2687
2686
|
prompt = {
|
|
2688
2687
|
title: currentTemplate.title,
|
|
2689
|
-
pipelineUrl: "".concat(
|
|
2690
|
-
?
|
|
2688
|
+
pipelineUrl: "".concat(preparedPipeline.pipelineUrl
|
|
2689
|
+
? preparedPipeline.pipelineUrl
|
|
2691
2690
|
: 'anonymous' /* <- TODO: [🧠] How to deal with anonymous pipelines, do here some auto-url like SHA-256 based ad-hoc identifier? */, "#").concat(currentTemplate.name),
|
|
2692
2691
|
parameters: parameters,
|
|
2693
2692
|
content: preparedContent,
|
|
2694
2693
|
modelRequirements: currentTemplate.modelRequirements,
|
|
2695
|
-
expectations: __assign(__assign({}, (
|
|
2694
|
+
expectations: __assign(__assign({}, (preparedPipeline.personas.find(function (_a) {
|
|
2696
2695
|
var name = _a.name;
|
|
2697
2696
|
return name === currentTemplate.personaName;
|
|
2698
2697
|
}) || {})), currentTemplate.expectations),
|
|
@@ -2984,7 +2983,7 @@
|
|
|
2984
2983
|
) {
|
|
2985
2984
|
// TODO: [🧠] Maybe put other blockTypes into report
|
|
2986
2985
|
executionReport.promptExecutions.push({
|
|
2987
|
-
prompt: __assign(
|
|
2986
|
+
prompt: __assign({}, prompt),
|
|
2988
2987
|
result: result || undefined,
|
|
2989
2988
|
error: expectError || undefined,
|
|
2990
2989
|
});
|
|
@@ -3025,7 +3024,7 @@
|
|
|
3025
3024
|
var outputParameters = {};
|
|
3026
3025
|
try {
|
|
3027
3026
|
// Note: Filter ONLY output parameters
|
|
3028
|
-
for (var _b = __values(
|
|
3027
|
+
for (var _b = __values(preparedPipeline.parameters.filter(function (_a) {
|
|
3029
3028
|
var isOutput = _a.isOutput;
|
|
3030
3029
|
return isOutput;
|
|
3031
3030
|
})), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
@@ -3052,29 +3051,29 @@
|
|
|
3052
3051
|
return __generator(this, function (_g) {
|
|
3053
3052
|
switch (_g.label) {
|
|
3054
3053
|
case 0:
|
|
3055
|
-
if (!(
|
|
3056
|
-
return [4 /*yield*/, preparePipeline(
|
|
3054
|
+
if (!(preparedPipeline === undefined)) return [3 /*break*/, 2];
|
|
3055
|
+
return [4 /*yield*/, preparePipeline(pipeline, {
|
|
3057
3056
|
llmTools: llmTools,
|
|
3058
3057
|
isVerbose: isVerbose,
|
|
3059
3058
|
maxParallelCount: maxParallelCount,
|
|
3060
3059
|
})];
|
|
3061
3060
|
case 1:
|
|
3062
|
-
|
|
3061
|
+
preparedPipeline = _g.sent();
|
|
3063
3062
|
_g.label = 2;
|
|
3064
3063
|
case 2:
|
|
3065
3064
|
errors = [];
|
|
3066
3065
|
warnings = [];
|
|
3067
3066
|
executionReport = {
|
|
3068
|
-
pipelineUrl:
|
|
3069
|
-
title:
|
|
3067
|
+
pipelineUrl: preparedPipeline.pipelineUrl,
|
|
3068
|
+
title: preparedPipeline.title,
|
|
3070
3069
|
promptbookUsedVersion: PROMPTBOOK_VERSION,
|
|
3071
|
-
promptbookRequestedVersion:
|
|
3072
|
-
description:
|
|
3070
|
+
promptbookRequestedVersion: preparedPipeline.promptbookVersion,
|
|
3071
|
+
description: preparedPipeline.description,
|
|
3073
3072
|
promptExecutions: [],
|
|
3074
3073
|
};
|
|
3075
3074
|
try {
|
|
3076
3075
|
// Note: Check that all input input parameters are defined
|
|
3077
|
-
for (_a = __values(
|
|
3076
|
+
for (_a = __values(preparedPipeline.parameters.filter(function (_a) {
|
|
3078
3077
|
var isInput = _a.isInput;
|
|
3079
3078
|
return isInput;
|
|
3080
3079
|
})), _b = _a.next(); !_b.done; _b = _a.next()) {
|
|
@@ -3089,6 +3088,7 @@
|
|
|
3089
3088
|
executionReport: executionReport,
|
|
3090
3089
|
outputParameters: {},
|
|
3091
3090
|
usage: ZERO_USAGE,
|
|
3091
|
+
preparedPipeline: preparedPipeline,
|
|
3092
3092
|
})];
|
|
3093
3093
|
}
|
|
3094
3094
|
}
|
|
@@ -3101,7 +3101,7 @@
|
|
|
3101
3101
|
finally { if (e_1) throw e_1.error; }
|
|
3102
3102
|
}
|
|
3103
3103
|
_loop_1 = function (parameterName) {
|
|
3104
|
-
var parameter =
|
|
3104
|
+
var parameter = preparedPipeline.parameters.find(function (_a) {
|
|
3105
3105
|
var name = _a.name;
|
|
3106
3106
|
return name === parameterName;
|
|
3107
3107
|
});
|
|
@@ -3118,6 +3118,7 @@
|
|
|
3118
3118
|
executionReport: executionReport,
|
|
3119
3119
|
outputParameters: {},
|
|
3120
3120
|
usage: ZERO_USAGE,
|
|
3121
|
+
preparedPipeline: preparedPipeline,
|
|
3121
3122
|
}) };
|
|
3122
3123
|
}
|
|
3123
3124
|
};
|
|
@@ -3141,7 +3142,7 @@
|
|
|
3141
3142
|
_g.label = 3;
|
|
3142
3143
|
case 3:
|
|
3143
3144
|
_g.trys.push([3, 8, , 9]);
|
|
3144
|
-
resovedParameterNames_1 =
|
|
3145
|
+
resovedParameterNames_1 = preparedPipeline.parameters
|
|
3145
3146
|
.filter(function (_a) {
|
|
3146
3147
|
var isInput = _a.isInput;
|
|
3147
3148
|
return isInput;
|
|
@@ -3150,7 +3151,7 @@
|
|
|
3150
3151
|
var name = _a.name;
|
|
3151
3152
|
return name;
|
|
3152
3153
|
});
|
|
3153
|
-
unresovedTemplates_1 = __spreadArray([], __read(
|
|
3154
|
+
unresovedTemplates_1 = __spreadArray([], __read(preparedPipeline.promptTemplates), false);
|
|
3154
3155
|
resolving_1 = [];
|
|
3155
3156
|
loopLimit = LOOP_LIMIT;
|
|
3156
3157
|
_loop_2 = function () {
|
|
@@ -3227,6 +3228,7 @@
|
|
|
3227
3228
|
usage: usage_1,
|
|
3228
3229
|
executionReport: executionReport,
|
|
3229
3230
|
outputParameters: outputParameters_1,
|
|
3231
|
+
preparedPipeline: preparedPipeline,
|
|
3230
3232
|
})];
|
|
3231
3233
|
case 9:
|
|
3232
3234
|
usage = addUsage.apply(void 0, __spreadArray([], __read(executionReport.promptExecutions.map(function (_a) {
|
|
@@ -3241,6 +3243,7 @@
|
|
|
3241
3243
|
usage: usage,
|
|
3242
3244
|
executionReport: executionReport,
|
|
3243
3245
|
outputParameters: outputParameters,
|
|
3246
|
+
preparedPipeline: preparedPipeline,
|
|
3244
3247
|
})];
|
|
3245
3248
|
}
|
|
3246
3249
|
});
|
|
@@ -3248,8 +3251,6 @@
|
|
|
3248
3251
|
return pipelineExecutor;
|
|
3249
3252
|
}
|
|
3250
3253
|
/**
|
|
3251
|
-
* TODO: !!!!! return `preparedPipeline` from execution
|
|
3252
|
-
* TODO: !!!!! `isNotPreparedWarningSupressed`
|
|
3253
3254
|
* TODO: Use isVerbose here (not only pass to `preparePipeline`)
|
|
3254
3255
|
* TODO: [🪂] Use maxParallelCount here (not only pass to `preparePipeline`)
|
|
3255
3256
|
* TODO: [♈] Probbably move expectations from templates to parameters
|
|
@@ -3309,6 +3310,7 @@
|
|
|
3309
3310
|
outputParameters = result.outputParameters;
|
|
3310
3311
|
knowledgePiecesRaw = outputParameters.knowledgePieces;
|
|
3311
3312
|
knowledgeTextPieces = (knowledgePiecesRaw || '').split('\n---\n');
|
|
3313
|
+
// <- TODO: !!!!! Smarter split and filter out empty pieces
|
|
3312
3314
|
if (isVerbose) {
|
|
3313
3315
|
console.info('knowledgeTextPieces:', knowledgeTextPieces);
|
|
3314
3316
|
}
|