@promptbook/node 0.68.0-1 → 0.68.0-2
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/README.md +2 -2
- package/esm/index.es.js +15 -15
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/commands/EXPECT/ExpectCommand.d.ts +1 -1
- package/esm/typings/src/commands/_common/types/Command.d.ts +1 -1
- package/esm/typings/src/conversion/prettify/renderPipelineMermaidOptions.d.ts +1 -1
- package/esm/typings/src/conversion/utils/extractParameterNamesFromTemplate.d.ts +1 -1
- package/esm/typings/src/conversion/utils/renameParameter.d.ts +2 -2
- package/esm/typings/src/conversion/validation/_importPipeline.d.ts +1 -1
- package/esm/typings/src/prepare/prepareTemplates.d.ts +1 -1
- package/esm/typings/src/types/PipelineJson/PipelineJson.d.ts +3 -3
- package/esm/typings/src/types/PipelineJson/TemplateJsonCommon.d.ts +9 -9
- package/esm/typings/src/types/PipelineString.d.ts +1 -1
- package/esm/typings/src/types/execution-report/ExecutionReportJson.d.ts +1 -1
- package/package.json +2 -2
- package/umd/index.umd.js +15 -15
- package/umd/index.umd.js.map +1 -1
package/README.md
CHANGED
|
@@ -289,7 +289,7 @@ flowchart LR
|
|
|
289
289
|
end;
|
|
290
290
|
```
|
|
291
291
|
|
|
292
|
-
- [More template samples](./samples/
|
|
292
|
+
- [More template samples](./samples/pipelines/)
|
|
293
293
|
- [Read more about `.ptbk.md` file format here](https://github.com/webgptorg/promptbook/discussions/categories/concepts?discussions_q=is%3Aopen+label%3A.ptbk.md+category%3AConcepts)
|
|
294
294
|
|
|
295
295
|
_Note: We are using [postprocessing functions](#postprocessing-functions) like `unwrapResult` that can be used to postprocess the result._
|
|
@@ -406,7 +406,7 @@ If you have a question [start a discussion](https://github.com/webgptorg/promptb
|
|
|
406
406
|
|
|
407
407
|
### Why not just use the OpenAI SDK / Anthropic Claude SDK / ...?
|
|
408
408
|
|
|
409
|
-
Different levels of abstraction. OpenAI library is for direct use of OpenAI API. This library is for a higher level of abstraction. It
|
|
409
|
+
Different levels of abstraction. OpenAI library is for direct use of OpenAI API. This library is for a higher level of abstraction. It define pipelines that are independent of the underlying library, LLM model, or even LLM provider.
|
|
410
410
|
|
|
411
411
|
### How is it different from the Langchain library?
|
|
412
412
|
|
package/esm/index.es.js
CHANGED
|
@@ -14,7 +14,7 @@ import * as dotenv from 'dotenv';
|
|
|
14
14
|
/**
|
|
15
15
|
* The version of the Promptbook library
|
|
16
16
|
*/
|
|
17
|
-
var PROMPTBOOK_VERSION = '0.68.0-
|
|
17
|
+
var PROMPTBOOK_VERSION = '0.68.0-1';
|
|
18
18
|
// TODO: !!!! List here all the versions and annotate + put into script
|
|
19
19
|
|
|
20
20
|
/*! *****************************************************************************
|
|
@@ -874,7 +874,7 @@ function forEachAsync(array, options, callbackfunction) {
|
|
|
874
874
|
});
|
|
875
875
|
}
|
|
876
876
|
|
|
877
|
-
var PipelineCollection = [{title:"Prepare Knowledge from Markdown",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-from-markdown.ptbk.md",promptbookVersion:"0.68.0-
|
|
877
|
+
var PipelineCollection = [{title:"Prepare Knowledge from Markdown",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-from-markdown.ptbk.md",promptbookVersion:"0.68.0-1",parameters:[{name:"knowledgeContent",description:"Markdown document content",isInput:true,isOutput:false},{name:"knowledgePieces",description:"The knowledge JSON object",isInput:false,isOutput:true}],templates:[{blockType:"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.68.0-1",parameters:[{name:"knowledgePieceContent",description:"The content",isInput:true,isOutput:false},{name:"keywords",description:"Keywords separated by comma",isInput:false,isOutput:true}],templates:[{blockType:"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.68.0-1",parameters:[{name:"knowledgePieceContent",description:"The content",isInput:true,isOutput:false},{name:"title",description:"The title of the document",isInput:false,isOutput:true}],templates:[{blockType:"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.68.0-1",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:[{blockType:"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"}];
|
|
878
878
|
|
|
879
879
|
/**
|
|
880
880
|
* This error indicates that the promptbook in a markdown format cannot be parsed into a valid promptbook object
|
|
@@ -1125,7 +1125,7 @@ function validatePipeline(pipeline) {
|
|
|
1125
1125
|
// Note: Testing that parameter is either input or result of some template
|
|
1126
1126
|
if (!parameter.isInput &&
|
|
1127
1127
|
!pipeline.templates.some(function (template) { return template.resultingParameterName === parameter.name; })) {
|
|
1128
|
-
throw new PipelineLogicError(spaceTrim(function (block) { return "\n Parameter {".concat(parameter.name, "} is declared but not defined\n\n You can do one of these:\n
|
|
1128
|
+
throw new PipelineLogicError(spaceTrim(function (block) { return "\n Parameter {".concat(parameter.name, "} is declared but not defined\n\n You can do one of these:\n 1) Remove declaration of {").concat(parameter.name, "}\n 2) Add template that results in -> {").concat(parameter.name, "}\n\n ").concat(block(pipelineIdentification), "\n "); }));
|
|
1129
1129
|
}
|
|
1130
1130
|
};
|
|
1131
1131
|
try {
|
|
@@ -2068,7 +2068,7 @@ function extractVariables(script) {
|
|
|
2068
2068
|
*/
|
|
2069
2069
|
|
|
2070
2070
|
/**
|
|
2071
|
-
* Parses the
|
|
2071
|
+
* Parses the template and returns the set of all used parameters
|
|
2072
2072
|
*
|
|
2073
2073
|
* @param template the template with used parameters
|
|
2074
2074
|
* @returns the set of parameter names
|
|
@@ -3231,7 +3231,7 @@ function createPipelineExecutor(options) {
|
|
|
3231
3231
|
throw new PipelineExecutionError(spaceTrim(function (block) { return "\n No script execution tools are available\n\n ".concat(block(pipelineIdentification), "\n "); }));
|
|
3232
3232
|
}
|
|
3233
3233
|
if (!currentTemplate.contentLanguage) {
|
|
3234
|
-
throw new PipelineExecutionError(spaceTrim(function (block) { return "\n Script language is not defined for
|
|
3234
|
+
throw new PipelineExecutionError(spaceTrim(function (block) { return "\n Script language is not defined for SCRIPT TEMPLATE \"".concat(currentTemplate.name, "\"\n\n ").concat(block(pipelineIdentification), "\n "); }));
|
|
3235
3235
|
}
|
|
3236
3236
|
// TODO: DRY [1]
|
|
3237
3237
|
scriptPipelineExecutionErrors = [];
|
|
@@ -4576,7 +4576,7 @@ var blockCommandParser = {
|
|
|
4576
4576
|
$applyToTemplateJson: function (command, $templateJson, $pipelineJson) {
|
|
4577
4577
|
// TODO: !!!!!! Test multiple / no block type
|
|
4578
4578
|
if ($templateJson.isBlockTypeSet === true) {
|
|
4579
|
-
throw new ParseError("Block type is already defined in the
|
|
4579
|
+
throw new ParseError(spaceTrim$1("\n Block type is already defined in the template.\n It can be defined only once.\n "));
|
|
4580
4580
|
}
|
|
4581
4581
|
$templateJson.isBlockTypeSet = true;
|
|
4582
4582
|
// TODO: !!!!!! Rearrange better - but at bottom and unwrap from function
|
|
@@ -4756,7 +4756,7 @@ var expectCommandParser = {
|
|
|
4756
4756
|
/**
|
|
4757
4757
|
* Description of the FORMAT command
|
|
4758
4758
|
*/
|
|
4759
|
-
description: spaceTrim$1("\n Expect command describes the desired output of the
|
|
4759
|
+
description: spaceTrim$1("\n Expect command describes the desired output of the template (after post-processing)\n It can set limits for the maximum/minimum length of the output, measured in characters, words, sentences, paragraphs or some other shape of the output.\n "),
|
|
4760
4760
|
/**
|
|
4761
4761
|
* Link to discussion
|
|
4762
4762
|
*/
|
|
@@ -4991,7 +4991,7 @@ var formatCommandParser = {
|
|
|
4991
4991
|
/**
|
|
4992
4992
|
* Description of the FORMAT command
|
|
4993
4993
|
*/
|
|
4994
|
-
description: spaceTrim$1("\n Format command describes the desired output of the
|
|
4994
|
+
description: spaceTrim$1("\n Format command describes the desired output of the template (after post-processing)\n It can set limits for the maximum/minimum length of the output, measured in characters, words, sentences, paragraphs or some other shape of the output.\n "),
|
|
4995
4995
|
/**
|
|
4996
4996
|
* Link to discussion
|
|
4997
4997
|
*/
|
|
@@ -5065,7 +5065,7 @@ var jokerCommandParser = {
|
|
|
5065
5065
|
/**
|
|
5066
5066
|
* Description of the JOKER command
|
|
5067
5067
|
*/
|
|
5068
|
-
description: "Joker parameter is used instead of executing the
|
|
5068
|
+
description: "Joker parameter is used instead of executing the template result if jokers value meets the expectations requirements",
|
|
5069
5069
|
/**
|
|
5070
5070
|
* Link to discussion
|
|
5071
5071
|
*/
|
|
@@ -5144,7 +5144,7 @@ var modelCommandParser = {
|
|
|
5144
5144
|
/**
|
|
5145
5145
|
* Description of the MODEL command
|
|
5146
5146
|
*/
|
|
5147
|
-
description: "Tells which
|
|
5147
|
+
description: "Tells which `modelRequirements` (for example which model) to use for the prompt template execution",
|
|
5148
5148
|
/**
|
|
5149
5149
|
* Link to discussion
|
|
5150
5150
|
*/
|
|
@@ -5276,7 +5276,7 @@ var parameterCommandParser = {
|
|
|
5276
5276
|
/**
|
|
5277
5277
|
* Description of the PARAMETER command
|
|
5278
5278
|
*/
|
|
5279
|
-
description: "Describes one parameter of the
|
|
5279
|
+
description: "Describes one parameter of the template",
|
|
5280
5280
|
/**
|
|
5281
5281
|
* Link to discussion
|
|
5282
5282
|
*/
|
|
@@ -5718,7 +5718,7 @@ var urlCommandParser = {
|
|
|
5718
5718
|
spaceTrim(
|
|
5719
5719
|
`
|
|
5720
5720
|
URL must not contain hash
|
|
5721
|
-
Hash is used for identification of the
|
|
5721
|
+
Hash is used for identification of the template in the pipeline
|
|
5722
5722
|
`,
|
|
5723
5723
|
),
|
|
5724
5724
|
);
|
|
@@ -6618,7 +6618,7 @@ function pipelineStringToJsonSync(pipelineString) {
|
|
|
6618
6618
|
}
|
|
6619
6619
|
var _loop_2 = function (section) {
|
|
6620
6620
|
var e_3, _d;
|
|
6621
|
-
// TODO: Parse
|
|
6621
|
+
// TODO: Parse template description (the content out of the codeblock and lists)
|
|
6622
6622
|
var listItems_2 = extractAllListItemsFromMarkdown(section.content);
|
|
6623
6623
|
var _e = extractOneBlockFromMarkdown(section.content), language = _e.language, content = _e.content;
|
|
6624
6624
|
// TODO: [🎾][1] DRY description
|
|
@@ -6705,7 +6705,7 @@ function pipelineStringToJsonSync(pipelineString) {
|
|
|
6705
6705
|
// TODO: [🍧] !!!!!! Should be done in BLOCK command
|
|
6706
6706
|
if ($templateJson.blockType === 'SCRIPT_TEMPLATE') {
|
|
6707
6707
|
if (!language) {
|
|
6708
|
-
throw new ParseError(spaceTrim(function (block) { return "\n You must specify the language of the script in the
|
|
6708
|
+
throw new ParseError(spaceTrim(function (block) { return "\n You must specify the language of the script in the SCRIPT TEMPLATE\n\n ".concat(block(getPipelineIdentification()), "\n "); }));
|
|
6709
6709
|
}
|
|
6710
6710
|
if (!SUPPORTED_SCRIPT_LANGUAGES.includes(language)) {
|
|
6711
6711
|
throw new ParseError(spaceTrim(function (block) { return "\n Script language ".concat(language, " is not supported.\n\n Supported languages are:\n ").concat(block(SUPPORTED_SCRIPT_LANGUAGES.join(', ')), "\n\n "); }));
|
|
@@ -6724,7 +6724,7 @@ function pipelineStringToJsonSync(pipelineString) {
|
|
|
6724
6724
|
(block) => `
|
|
6725
6725
|
Model requirements are defined for the block type ${
|
|
6726
6726
|
$templateJson.blockType
|
|
6727
|
-
} which is not a
|
|
6727
|
+
} which is not a PROMPT TEMPLATE
|
|
6728
6728
|
|
|
6729
6729
|
This should be avoided by the \`modelCommandParser\`
|
|
6730
6730
|
|