@promptbook/cli 0.69.0-14 → 0.69.0-15
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 +12 -17
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/collection/constructors/createCollectionFromDirectory.test.d.ts +1 -0
- package/esm/typings/src/commands/FOREACH/ForeachCommand.d.ts +1 -1
- package/esm/typings/src/commands/FOREACH/foreachCommandParser.d.ts +0 -1
- package/esm/typings/src/conversion/validation/validatePipeline.d.ts +1 -1
- package/package.json +1 -1
- package/umd/index.umd.js +12 -17
- package/umd/index.umd.js.map +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ForeachJson } from './ForeachJson';
|
|
2
2
|
/**
|
|
3
|
-
* Parsed FOREACH command
|
|
3
|
+
* Parsed FOREACH command which is used to iterate over a table of values
|
|
4
4
|
*
|
|
5
5
|
* @see ./foreachCommandParser.ts for more details
|
|
6
6
|
* @private within the commands folder
|
|
@@ -10,7 +10,6 @@ import type { ForeachCommand } from './ForeachCommand';
|
|
|
10
10
|
*/
|
|
11
11
|
export declare const foreachCommandParser: PipelineTemplateCommandParser<ForeachCommand>;
|
|
12
12
|
/**
|
|
13
|
-
* TODO: !!!!!! Remove console logs
|
|
14
13
|
* TODO: [🧠][🦥] Better (less confusing) name for "cell" / "subvalue" / "subparameter"
|
|
15
14
|
* TODO: [🍭] !!!!!! Make .ptbk.md file with examples of the FOREACH command and also with wrong parsing and logic
|
|
16
15
|
*/
|
|
@@ -20,7 +20,7 @@ export declare function validatePipeline(pipeline: PipelineJson): PipelineJson;
|
|
|
20
20
|
*/
|
|
21
21
|
export declare function validatePipelineCore(pipeline: PipelineJson): void;
|
|
22
22
|
/**
|
|
23
|
-
* TODO:
|
|
23
|
+
* TODO: !!!!! [🧞♀️] Do not allow joker + foreach
|
|
24
24
|
* TODO: [🧠] Work with promptbookVersion
|
|
25
25
|
* TODO: Use here some json-schema, Zod or something similar and change it to:
|
|
26
26
|
* > /**
|
package/package.json
CHANGED
package/umd/index.umd.js
CHANGED
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
/**
|
|
40
40
|
* The version of the Promptbook library
|
|
41
41
|
*/
|
|
42
|
-
var PROMPTBOOK_VERSION = '0.69.0-
|
|
42
|
+
var PROMPTBOOK_VERSION = '0.69.0-14';
|
|
43
43
|
// TODO: !!!! List here all the versions and annotate + put into script
|
|
44
44
|
|
|
45
45
|
/*! *****************************************************************************
|
|
@@ -1080,7 +1080,7 @@
|
|
|
1080
1080
|
});
|
|
1081
1081
|
}
|
|
1082
1082
|
|
|
1083
|
-
var PipelineCollection = [{title:"Prepare Knowledge from Markdown",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-from-markdown.ptbk.md",promptbookVersion:"0.69.0-
|
|
1083
|
+
var PipelineCollection = [{title:"Prepare Knowledge from Markdown",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-from-markdown.ptbk.md",promptbookVersion:"0.69.0-14",parameters:[{name:"knowledgeContent",description:"Markdown document content",isInput:true,isOutput:false},{name:"knowledgePieces",description:"The knowledge JSON object",isInput:false,isOutput:true}],templates:[{templateType:"PROMPT_TEMPLATE",name:"knowledge",title:"Knowledge",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}",resultingParameterName:"knowledgePieces",dependentParameterNames:["knowledgeContent"]}],knowledgeSources:[],knowledgePieces:[],personas:[],preparations:[],sourceFile:"./promptbook-collection/prepare-knowledge-from-markdown.ptbk.md"},{title:"Prepare Keywords",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-keywords.ptbk.md",promptbookVersion:"0.69.0-14",parameters:[{name:"knowledgePieceContent",description:"The content",isInput:true,isOutput:false},{name:"keywords",description:"Keywords separated by comma",isInput:false,isOutput:true}],templates:[{templateType:"PROMPT_TEMPLATE",name:"knowledge",title:"Knowledge",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}",resultingParameterName:"keywords",dependentParameterNames:["knowledgePieceContent"]}],knowledgeSources:[],knowledgePieces:[],personas:[],preparations:[],sourceFile:"./promptbook-collection/prepare-knowledge-keywords.ptbk.md"},{title:"Prepare Title",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-title.ptbk.md",promptbookVersion:"0.69.0-14",parameters:[{name:"knowledgePieceContent",description:"The content",isInput:true,isOutput:false},{name:"title",description:"The title of the document",isInput:false,isOutput:true}],templates:[{templateType:"PROMPT_TEMPLATE",name:"knowledge",title:"Knowledge",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}",resultingParameterName:"title",expectations:{words:{min:1,max:8}},dependentParameterNames:["knowledgePieceContent"]}],knowledgeSources:[],knowledgePieces:[],personas:[],preparations:[],sourceFile:"./promptbook-collection/prepare-knowledge-title.ptbk.md"},{title:"Prepare Keywords",pipelineUrl:"https://promptbook.studio/promptbook/prepare-persona.ptbk.md",promptbookVersion:"0.69.0-14",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}],templates:[{templateType:"PROMPT_TEMPLATE",name:"make-model-requirements",title:"Make modelRequirements",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- Your output format is JSON object\n- Write just the JSON object, no other text should be present\n- It contains the following keys:\n - `modelName`: The name of the model to use\n - `systemMessage`: The system message to provide context to the model\n - `temperature`: The sampling temperature to use\n\n### Key `modelName`\n\nPick from the following models:\n\n- {availableModelNames}\n\n### Key `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### Key `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}",resultingParameterName:"modelRequirements",format:"JSON",dependentParameterNames:["availableModelNames","personaDescription"]}],knowledgeSources:[],knowledgePieces:[],personas:[],preparations:[],sourceFile:"./promptbook-collection/prepare-persona.ptbk.md"}];
|
|
1084
1084
|
|
|
1085
1085
|
/**
|
|
1086
1086
|
* This error indicates that the promptbook in a markdown format cannot be parsed into a valid promptbook object
|
|
@@ -1507,7 +1507,7 @@
|
|
|
1507
1507
|
}
|
|
1508
1508
|
}
|
|
1509
1509
|
/**
|
|
1510
|
-
* TODO:
|
|
1510
|
+
* TODO: !!!!! [🧞♀️] Do not allow joker + foreach
|
|
1511
1511
|
* TODO: [🧠] Work with promptbookVersion
|
|
1512
1512
|
* TODO: Use here some json-schema, Zod or something similar and change it to:
|
|
1513
1513
|
* > /**
|
|
@@ -2303,9 +2303,10 @@
|
|
|
2303
2303
|
});
|
|
2304
2304
|
Object.defineProperty(MultipleLlmExecutionTools.prototype, "description", {
|
|
2305
2305
|
get: function () {
|
|
2306
|
-
return this.llmExecutionTools
|
|
2307
|
-
|
|
2308
|
-
.
|
|
2306
|
+
return this.llmExecutionTools.map(function (_a, index) {
|
|
2307
|
+
var title = _a.title;
|
|
2308
|
+
return "".concat(index + 1, ") `").concat(title, "`");
|
|
2309
|
+
}).join('\n');
|
|
2309
2310
|
},
|
|
2310
2311
|
enumerable: false,
|
|
2311
2312
|
configurable: true
|
|
@@ -2503,7 +2504,7 @@
|
|
|
2503
2504
|
throw new PipelineExecutionError("You have not provided any `LlmExecutionTools`");
|
|
2504
2505
|
}
|
|
2505
2506
|
else {
|
|
2506
|
-
throw new PipelineExecutionError(spaceTrim__default["default"](function (block) { return "\n You have not provided any `LlmExecutionTools` that support model variant \"".concat(prompt.modelRequirements.modelVariant, "\"\n\n Available `LlmExecutionTools`:\n ").concat(block(_this.
|
|
2507
|
+
throw new PipelineExecutionError(spaceTrim__default["default"](function (block) { return "\n You have not provided any `LlmExecutionTools` that support model variant \"".concat(prompt.modelRequirements.modelVariant, "\"\n\n Available `LlmExecutionTools`:\n ").concat(block(_this.description), "\n\n "); }));
|
|
2507
2508
|
}
|
|
2508
2509
|
}
|
|
2509
2510
|
});
|
|
@@ -5936,7 +5937,7 @@
|
|
|
5936
5937
|
/**
|
|
5937
5938
|
* Link to discussion
|
|
5938
5939
|
*/
|
|
5939
|
-
documentationUrl: 'https://github.com/webgptorg/promptbook/discussions
|
|
5940
|
+
documentationUrl: 'https://github.com/webgptorg/promptbook/discussions/148',
|
|
5940
5941
|
/**
|
|
5941
5942
|
* Example usages of the FOREACH command
|
|
5942
5943
|
*/
|
|
@@ -5944,7 +5945,6 @@
|
|
|
5944
5945
|
'FOREACH Text Line `{customers}` -> `{customer}`',
|
|
5945
5946
|
'FOR Csv Row `{customers}` -> `{firstName}`, `{lastName}`',
|
|
5946
5947
|
'EACH Csv Cell `{customers}` -> `{cell}`',
|
|
5947
|
-
// <- TODO: [🍭] !!!!!! More
|
|
5948
5948
|
],
|
|
5949
5949
|
/**
|
|
5950
5950
|
* Parses the FOREACH command
|
|
@@ -5959,7 +5959,6 @@
|
|
|
5959
5959
|
return __spreadArray([formatDefinition.formatName], __read((formatDefinition.aliases || [])), false).includes(formatName);
|
|
5960
5960
|
});
|
|
5961
5961
|
if (formatDefinition === undefined) {
|
|
5962
|
-
console.info({ args: args, formatName: formatName });
|
|
5963
5962
|
throw new ParseError(spaceTrim__default["default"](function (block) { return "\n Unsupported format \"".concat(formatName, "\"\n\n Available formats:\n ").concat(block(FORMAT_DEFINITIONS.map(function (formatDefinition) { return formatDefinition.formatName; })
|
|
5964
5963
|
.map(function (formatName) { return "- ".concat(formatName); })
|
|
5965
5964
|
.join('\n')), "\n "); }));
|
|
@@ -5969,7 +5968,6 @@
|
|
|
5969
5968
|
return __spreadArray([subvalueDefinition.subvalueName], __read((subvalueDefinition.aliases || [])), false).includes(cellName);
|
|
5970
5969
|
});
|
|
5971
5970
|
if (subvalueDefinition === undefined) {
|
|
5972
|
-
console.info({ args: args, cellName: cellName });
|
|
5973
5971
|
throw new ParseError(spaceTrim__default["default"](function (block) { return "\n Unsupported cell name \"".concat(cellName, "\" for format \"").concat(formatName, "\"\n\n Available cell names for format \"").concat(formatDefinition.formatName, "\":\n ").concat(block(formatDefinition.subvalueDefinitions
|
|
5974
5972
|
.map(function (subvalueDefinition) { return subvalueDefinition.subvalueName; })
|
|
5975
5973
|
.map(function (subvalueName) { return "- ".concat(subvalueName); })
|
|
@@ -5977,14 +5975,12 @@
|
|
|
5977
5975
|
// <- TODO: [🏢] List all supported cell names for the format
|
|
5978
5976
|
}
|
|
5979
5977
|
if (assignSign !== '->') {
|
|
5980
|
-
console.info({ args: args, assignSign: assignSign });
|
|
5981
5978
|
throw new ParseError("FOREACH command must have '->' to assign the value to the parameter");
|
|
5982
5979
|
}
|
|
5983
|
-
// TODO:
|
|
5980
|
+
// TODO: !!! Replace with propper parameter name validation `validateParameterName`
|
|
5984
5981
|
if ((parameterNameWrapped === null || parameterNameWrapped === void 0 ? void 0 : parameterNameWrapped.substring(0, 1)) !== '{' ||
|
|
5985
5982
|
(parameterNameWrapped === null || parameterNameWrapped === void 0 ? void 0 : parameterNameWrapped.substring(parameterNameWrapped.length - 1, parameterNameWrapped.length)) !== '}') {
|
|
5986
|
-
|
|
5987
|
-
throw new ParseError("!!!!!! 1 Here will be error (with rules and precise error) from validateParameterName");
|
|
5983
|
+
throw new ParseError("Invalid parameter name \"".concat(parameterNameWrapped, "\" - must be wrapped in curly brackets: {parameterName}"));
|
|
5988
5984
|
}
|
|
5989
5985
|
var parameterName = parameterNameWrapped.substring(1, parameterNameWrapped.length - 1);
|
|
5990
5986
|
var subparameterNames = args
|
|
@@ -6013,7 +6009,7 @@
|
|
|
6013
6009
|
// TODO: !!!!!! Detect double use
|
|
6014
6010
|
// TODO: !!!!!! Detect usage with JOKER and don't allow it
|
|
6015
6011
|
$templateJson.foreach = { formatName: formatName, cellName: cellName, parameterName: parameterName, subparameterNames: subparameterNames };
|
|
6016
|
-
keepUnused($pipelineJson); // <- TODO:
|
|
6012
|
+
keepUnused($pipelineJson); // <- TODO: [🧠] Maybe register subparameter from foreach into parameters of the pipeline
|
|
6017
6013
|
// Note: [🍭] FOREACH apply has some sideeffects on different places in codebase
|
|
6018
6014
|
},
|
|
6019
6015
|
/**
|
|
@@ -6036,7 +6032,6 @@
|
|
|
6036
6032
|
},
|
|
6037
6033
|
};
|
|
6038
6034
|
/**
|
|
6039
|
-
* TODO: !!!!!! Remove console logs
|
|
6040
6035
|
* TODO: [🧠][🦥] Better (less confusing) name for "cell" / "subvalue" / "subparameter"
|
|
6041
6036
|
* TODO: [🍭] !!!!!! Make .ptbk.md file with examples of the FOREACH command and also with wrong parsing and logic
|
|
6042
6037
|
*/
|