@promptbook/cli 0.69.0-13 → 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
package/esm/index.es.js
CHANGED
|
@@ -21,7 +21,7 @@ import OpenAI from 'openai';
|
|
|
21
21
|
/**
|
|
22
22
|
* The version of the Promptbook library
|
|
23
23
|
*/
|
|
24
|
-
var PROMPTBOOK_VERSION = '0.69.0-
|
|
24
|
+
var PROMPTBOOK_VERSION = '0.69.0-14';
|
|
25
25
|
// TODO: !!!! List here all the versions and annotate + put into script
|
|
26
26
|
|
|
27
27
|
/*! *****************************************************************************
|
|
@@ -1062,7 +1062,7 @@ function forEachAsync(array, options, callbackfunction) {
|
|
|
1062
1062
|
});
|
|
1063
1063
|
}
|
|
1064
1064
|
|
|
1065
|
-
var PipelineCollection = [{title:"Prepare Knowledge from Markdown",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-from-markdown.ptbk.md",promptbookVersion:"0.69.0-
|
|
1065
|
+
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"}];
|
|
1066
1066
|
|
|
1067
1067
|
/**
|
|
1068
1068
|
* This error indicates that the promptbook in a markdown format cannot be parsed into a valid promptbook object
|
|
@@ -1489,7 +1489,7 @@ function validatePipelineCore(pipeline) {
|
|
|
1489
1489
|
}
|
|
1490
1490
|
}
|
|
1491
1491
|
/**
|
|
1492
|
-
* TODO:
|
|
1492
|
+
* TODO: !!!!! [🧞♀️] Do not allow joker + foreach
|
|
1493
1493
|
* TODO: [🧠] Work with promptbookVersion
|
|
1494
1494
|
* TODO: Use here some json-schema, Zod or something similar and change it to:
|
|
1495
1495
|
* > /**
|
|
@@ -2285,9 +2285,10 @@ var MultipleLlmExecutionTools = /** @class */ (function () {
|
|
|
2285
2285
|
});
|
|
2286
2286
|
Object.defineProperty(MultipleLlmExecutionTools.prototype, "description", {
|
|
2287
2287
|
get: function () {
|
|
2288
|
-
return this.llmExecutionTools
|
|
2289
|
-
|
|
2290
|
-
.
|
|
2288
|
+
return this.llmExecutionTools.map(function (_a, index) {
|
|
2289
|
+
var title = _a.title;
|
|
2290
|
+
return "".concat(index + 1, ") `").concat(title, "`");
|
|
2291
|
+
}).join('\n');
|
|
2291
2292
|
},
|
|
2292
2293
|
enumerable: false,
|
|
2293
2294
|
configurable: true
|
|
@@ -2485,7 +2486,7 @@ var MultipleLlmExecutionTools = /** @class */ (function () {
|
|
|
2485
2486
|
throw new PipelineExecutionError("You have not provided any `LlmExecutionTools`");
|
|
2486
2487
|
}
|
|
2487
2488
|
else {
|
|
2488
|
-
throw new PipelineExecutionError(spaceTrim$1(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.
|
|
2489
|
+
throw new PipelineExecutionError(spaceTrim$1(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 "); }));
|
|
2489
2490
|
}
|
|
2490
2491
|
}
|
|
2491
2492
|
});
|
|
@@ -5918,7 +5919,7 @@ var foreachCommandParser = {
|
|
|
5918
5919
|
/**
|
|
5919
5920
|
* Link to discussion
|
|
5920
5921
|
*/
|
|
5921
|
-
documentationUrl: 'https://github.com/webgptorg/promptbook/discussions
|
|
5922
|
+
documentationUrl: 'https://github.com/webgptorg/promptbook/discussions/148',
|
|
5922
5923
|
/**
|
|
5923
5924
|
* Example usages of the FOREACH command
|
|
5924
5925
|
*/
|
|
@@ -5926,7 +5927,6 @@ var foreachCommandParser = {
|
|
|
5926
5927
|
'FOREACH Text Line `{customers}` -> `{customer}`',
|
|
5927
5928
|
'FOR Csv Row `{customers}` -> `{firstName}`, `{lastName}`',
|
|
5928
5929
|
'EACH Csv Cell `{customers}` -> `{cell}`',
|
|
5929
|
-
// <- TODO: [🍭] !!!!!! More
|
|
5930
5930
|
],
|
|
5931
5931
|
/**
|
|
5932
5932
|
* Parses the FOREACH command
|
|
@@ -5941,7 +5941,6 @@ var foreachCommandParser = {
|
|
|
5941
5941
|
return __spreadArray([formatDefinition.formatName], __read((formatDefinition.aliases || [])), false).includes(formatName);
|
|
5942
5942
|
});
|
|
5943
5943
|
if (formatDefinition === undefined) {
|
|
5944
|
-
console.info({ args: args, formatName: formatName });
|
|
5945
5944
|
throw new ParseError(spaceTrim$1(function (block) { return "\n Unsupported format \"".concat(formatName, "\"\n\n Available formats:\n ").concat(block(FORMAT_DEFINITIONS.map(function (formatDefinition) { return formatDefinition.formatName; })
|
|
5946
5945
|
.map(function (formatName) { return "- ".concat(formatName); })
|
|
5947
5946
|
.join('\n')), "\n "); }));
|
|
@@ -5951,7 +5950,6 @@ var foreachCommandParser = {
|
|
|
5951
5950
|
return __spreadArray([subvalueDefinition.subvalueName], __read((subvalueDefinition.aliases || [])), false).includes(cellName);
|
|
5952
5951
|
});
|
|
5953
5952
|
if (subvalueDefinition === undefined) {
|
|
5954
|
-
console.info({ args: args, cellName: cellName });
|
|
5955
5953
|
throw new ParseError(spaceTrim$1(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
|
|
5956
5954
|
.map(function (subvalueDefinition) { return subvalueDefinition.subvalueName; })
|
|
5957
5955
|
.map(function (subvalueName) { return "- ".concat(subvalueName); })
|
|
@@ -5959,14 +5957,12 @@ var foreachCommandParser = {
|
|
|
5959
5957
|
// <- TODO: [🏢] List all supported cell names for the format
|
|
5960
5958
|
}
|
|
5961
5959
|
if (assignSign !== '->') {
|
|
5962
|
-
console.info({ args: args, assignSign: assignSign });
|
|
5963
5960
|
throw new ParseError("FOREACH command must have '->' to assign the value to the parameter");
|
|
5964
5961
|
}
|
|
5965
|
-
// TODO:
|
|
5962
|
+
// TODO: !!! Replace with propper parameter name validation `validateParameterName`
|
|
5966
5963
|
if ((parameterNameWrapped === null || parameterNameWrapped === void 0 ? void 0 : parameterNameWrapped.substring(0, 1)) !== '{' ||
|
|
5967
5964
|
(parameterNameWrapped === null || parameterNameWrapped === void 0 ? void 0 : parameterNameWrapped.substring(parameterNameWrapped.length - 1, parameterNameWrapped.length)) !== '}') {
|
|
5968
|
-
|
|
5969
|
-
throw new ParseError("!!!!!! 1 Here will be error (with rules and precise error) from validateParameterName");
|
|
5965
|
+
throw new ParseError("Invalid parameter name \"".concat(parameterNameWrapped, "\" - must be wrapped in curly brackets: {parameterName}"));
|
|
5970
5966
|
}
|
|
5971
5967
|
var parameterName = parameterNameWrapped.substring(1, parameterNameWrapped.length - 1);
|
|
5972
5968
|
var subparameterNames = args
|
|
@@ -5995,7 +5991,7 @@ var foreachCommandParser = {
|
|
|
5995
5991
|
// TODO: !!!!!! Detect double use
|
|
5996
5992
|
// TODO: !!!!!! Detect usage with JOKER and don't allow it
|
|
5997
5993
|
$templateJson.foreach = { formatName: formatName, cellName: cellName, parameterName: parameterName, subparameterNames: subparameterNames };
|
|
5998
|
-
keepUnused($pipelineJson); // <- TODO:
|
|
5994
|
+
keepUnused($pipelineJson); // <- TODO: [🧠] Maybe register subparameter from foreach into parameters of the pipeline
|
|
5999
5995
|
// Note: [🍭] FOREACH apply has some sideeffects on different places in codebase
|
|
6000
5996
|
},
|
|
6001
5997
|
/**
|
|
@@ -6018,7 +6014,6 @@ var foreachCommandParser = {
|
|
|
6018
6014
|
},
|
|
6019
6015
|
};
|
|
6020
6016
|
/**
|
|
6021
|
-
* TODO: !!!!!! Remove console logs
|
|
6022
6017
|
* TODO: [🧠][🦥] Better (less confusing) name for "cell" / "subvalue" / "subparameter"
|
|
6023
6018
|
* TODO: [🍭] !!!!!! Make .ptbk.md file with examples of the FOREACH command and also with wrong parsing and logic
|
|
6024
6019
|
*/
|