@promptbook/types 0.69.0-0 → 0.69.0-10
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 +17 -57
- package/esm/typings/src/_packages/core.index.d.ts +5 -1
- package/esm/typings/src/_packages/types.index.d.ts +8 -0
- package/esm/typings/src/_packages/utils.index.d.ts +4 -4
- package/esm/typings/src/commands/FOREACH/ForeachCommand.d.ts +2 -6
- package/esm/typings/src/commands/FOREACH/ForeachJson.d.ts +26 -0
- package/esm/typings/src/commands/FOREACH/foreachCommand.test.d.ts +3 -0
- package/esm/typings/src/commands/FOREACH/foreachCommandParser.d.ts +2 -1
- package/esm/typings/src/commands/_common/types/CommandParser.d.ts +4 -4
- package/esm/typings/src/config.d.ts +7 -1
- package/esm/typings/src/conversion/prettify/renderPipelineMermaidOptions.d.ts +3 -0
- package/esm/typings/src/conversion/utils/extractParameterNamesFromTemplate.d.ts +2 -1
- package/esm/typings/src/conversion/validation/validatePipeline.d.ts +5 -0
- package/esm/typings/src/execution/PipelineExecutorResult.d.ts +5 -3
- package/esm/typings/src/execution/createPipelineExecutor/$OngoingTemplateResult.d.ts +21 -0
- package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorOptions.d.ts +20 -0
- package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorSettings.d.ts +33 -0
- package/esm/typings/src/execution/createPipelineExecutor/00-createPipelineExecutor.d.ts +10 -0
- package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +55 -0
- package/esm/typings/src/execution/createPipelineExecutor/20-executeTemplate.d.ts +62 -0
- package/esm/typings/src/execution/createPipelineExecutor/30-executeFormatCells.d.ts +21 -0
- package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +74 -0
- package/esm/typings/src/execution/createPipelineExecutor/filterJustOutputParameters.d.ts +34 -0
- package/esm/typings/src/execution/createPipelineExecutor/getContextForTemplate.d.ts +10 -0
- package/esm/typings/src/execution/createPipelineExecutor/getKnowledgeForTemplate.d.ts +27 -0
- package/esm/typings/src/execution/createPipelineExecutor/getReservedParametersForTemplate.d.ts +30 -0
- package/esm/typings/src/execution/createPipelineExecutor/getSamplesForTemplate.d.ts +10 -0
- package/esm/typings/src/execution/utils/checkExpectations.d.ts +2 -0
- package/esm/typings/src/execution/utils/usageToHuman.d.ts +3 -4
- package/esm/typings/src/formats/_common/FormatDefinition.d.ts +9 -12
- package/esm/typings/src/formats/_common/FormatSubvalueDefinition.d.ts +30 -0
- package/esm/typings/src/formats/csv/{ListFormatDefinition.d.ts → CsvFormatDefinition.d.ts} +3 -2
- package/esm/typings/src/formats/index.d.ts +1 -1
- package/esm/typings/src/formats/json/JsonFormatDefinition.d.ts +1 -1
- package/esm/typings/src/formats/text/TextFormatDefinition.d.ts +17 -0
- package/esm/typings/src/formats/xml/XmlFormatDefinition.d.ts +1 -1
- package/esm/typings/src/types/PipelineJson/ParameterJson.d.ts +1 -0
- package/esm/typings/src/types/PipelineJson/TemplateJsonCommon.d.ts +5 -0
- package/esm/typings/src/types/execution-report/ExecutionReportJson.d.ts +3 -0
- package/esm/typings/src/utils/expectation-counters/index.d.ts +3 -0
- package/esm/typings/src/utils/{extractParameterNames.d.ts → parameters/extractParameterNames.d.ts} +2 -2
- package/esm/typings/src/utils/parameters/mapAvailableToExpectedParameters.d.ts +27 -0
- package/esm/typings/src/utils/{replaceParameters.d.ts → parameters/replaceParameters.d.ts} +2 -2
- package/esm/typings/src/utils/validators/parameterName/validateParameterName.d.ts +10 -0
- package/esm/typings/src/utils/validators/parameterName/validateParameterName.test.d.ts +1 -0
- package/package.json +2 -2
- package/esm/typings/src/execution/createPipelineExecutor.d.ts +0 -72
- package/esm/typings/src/formats/list/ListFormatDefinition.d.ts +0 -16
- /package/esm/typings/src/utils/{extractParameterNames.test.d.ts → parameters/extractParameterNames.test.d.ts} +0 -0
- /package/esm/typings/src/{execution/utils/usageToHuman.test.d.ts → utils/parameters/mapAvailableToExpectedParameters.test.d.ts} +0 -0
- /package/esm/typings/src/utils/{replaceParameters.test.d.ts → parameters/replaceParameters.test.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -65,13 +65,15 @@ Rest of the documentation is common for **entire promptbook ecosystem**:
|
|
|
65
65
|
|
|
66
66
|
## 🤍 The Promptbook Whitepaper
|
|
67
67
|
|
|
68
|
+
|
|
69
|
+
|
|
68
70
|
If you have a simple, single prompt for ChatGPT, GPT-4, Anthropic Claude, Google Gemini, Llama 2, or whatever, it doesn't matter how you integrate it. Whether it's calling a REST API directly, using the SDK, hardcoding the prompt into the source code, or importing a text file, the process remains the same.
|
|
69
71
|
|
|
70
72
|
But often you will struggle with the limitations of LLMs, such as hallucinations, off-topic responses, poor quality output, language drift, word repetition repetition repetition repetition or misuse, lack of context, or just plain w𝒆𝐢rd responses. When this happens, you generally have three options:
|
|
71
73
|
|
|
72
74
|
1. **Fine-tune** the model to your specifications or even train your own.
|
|
73
75
|
2. **Prompt-engineer** the prompt to the best shape you can achieve.
|
|
74
|
-
3.
|
|
76
|
+
3. Orchestrate **multiple prompts** in a [pipeline](https://github.com/webgptorg/promptbook/discussions/64) to get the best result.
|
|
75
77
|
|
|
76
78
|
In all of these situations, but especially in 3., the Promptbook library can make your life easier.
|
|
77
79
|
|
|
@@ -83,7 +85,9 @@ In all of these situations, but especially in 3., the Promptbook library can mak
|
|
|
83
85
|
- Promptbook has built in versioning. You can test multiple **A/B versions** of pipelines and see which one works best.
|
|
84
86
|
- Promptbook is designed to do [**RAG** (Retrieval-Augmented Generation)](https://github.com/webgptorg/promptbook/discussions/41) and other advanced techniques. You can use **knowledge** to improve the quality of the output.
|
|
85
87
|
|
|
86
|
-
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
## 🧔 Pipeline _(for prompt-engeneers)_
|
|
87
91
|
|
|
88
92
|
**P**romp**t** **b**oo**k** markdown file (or `.ptbk.md` file) is document that describes a **pipeline** - a series of prompts that are chained together to form somewhat reciepe for transforming natural language input.
|
|
89
93
|
|
|
@@ -400,6 +404,8 @@ The following glossary is used to clarify certain concepts:
|
|
|
400
404
|
- When you want to **version** your prompts and **test multiple versions**
|
|
401
405
|
- When you want to **log** the execution of prompts and backtrace the issues
|
|
402
406
|
|
|
407
|
+
[See more](https://github.com/webgptorg/promptbook/discussions/111)
|
|
408
|
+
|
|
403
409
|
### ➖ When not to use
|
|
404
410
|
|
|
405
411
|
- When you have already implemented single simple prompt and it works fine for your job
|
|
@@ -409,6 +415,8 @@ The following glossary is used to clarify certain concepts:
|
|
|
409
415
|
- When your main focus is on something other than text - like images, audio, video, spreadsheets _(other media types may be added in the future, [see discussion](https://github.com/webgptorg/promptbook/discussions/103))_
|
|
410
416
|
- When you need to use recursion _([see the discussion](https://github.com/webgptorg/promptbook/discussions/38))_
|
|
411
417
|
|
|
418
|
+
[See more](https://github.com/webgptorg/promptbook/discussions/112)
|
|
419
|
+
|
|
412
420
|
## 🐜 Known issues
|
|
413
421
|
|
|
414
422
|
- [🤸♂️ Iterations not working yet](https://github.com/webgptorg/promptbook/discussions/55)
|
|
@@ -421,63 +429,15 @@ The following glossary is used to clarify certain concepts:
|
|
|
421
429
|
|
|
422
430
|
## ❔ FAQ
|
|
423
431
|
|
|
424
|
-
|
|
425
|
-
|
|
426
432
|
If you have a question [start a discussion](https://github.com/webgptorg/promptbook/discussions/), [open an issue](https://github.com/webgptorg/promptbook/issues) or [write me an email](https://www.pavolhejny.com/contact).
|
|
427
433
|
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
We are considering creating a bridge/converter between these two libraries.
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
### Promptbooks vs. OpenAI`s GPTs
|
|
441
|
-
|
|
442
|
-
GPTs are chat assistants that can be assigned to specific tasks and materials. But they are still chat assistants. Promptbooks are a way to orchestrate many more predefined tasks to have much tighter control over the process. Promptbooks are not a good technology for creating human-like chatbots, GPTs are not a good technology for creating outputs with specific requirements.
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
### Where should I store my promptbooks?
|
|
459
|
-
|
|
460
|
-
If you use raw SDKs, you just put prompts in the sourcecode, mixed in with typescript, javascript, python or whatever programming language you use.
|
|
461
|
-
|
|
462
|
-
If you use promptbooks, you can store them in several places, each with its own advantages and disadvantages:
|
|
463
|
-
|
|
464
|
-
1. As **source code**, typically git-committed. In this case you can use the versioning system and the promptbooks will be tightly coupled with the version of the application. You still get the power of promptbooks, as you separate the concerns of the prompt-engineer and the programmer.
|
|
465
|
-
|
|
466
|
-
2. As data in a **database** In this case, promptbooks are like posts / articles on the blog. They can be modified independently of the application. You don't need to redeploy the application to change the promptbooks. You can have multiple versions of promptbooks for each user. You can have a web interface for non-programmers to create and modify promptbooks. But you lose the versioning system and you still have to consider the interface between the promptbooks and the application _(= input and output parameters)_.
|
|
467
|
-
|
|
468
|
-
3. In a **configuration** in environment variables. This is a good way to store promptbooks if you have an application with multiple deployments and you want to have different but simple promptbooks for each deployment and you don't need to change them often.
|
|
469
|
-
|
|
470
|
-
### What should I do when I need same promptbook in multiple human languages?
|
|
471
|
-
|
|
472
|
-
A single promptbook can be written for several _(human)_ languages at once. However, we recommend that you have separate promptbooks for each language.
|
|
473
|
-
|
|
474
|
-
In large language models, you will get better results if you have prompts in the same language as the user input.
|
|
475
|
-
|
|
476
|
-
The best way to manage this is to have suffixed promptbooks like `write-website-content.en.ptbk.md` and `write-website-content.cs.ptbk.md` for each supported language.
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
434
|
+
- [❔ Why not just use the OpenAI SDK / Anthropic Claude SDK / ...?](https://github.com/webgptorg/promptbook/discussions/114)
|
|
435
|
+
- [❔ How is it different from the OpenAI`s GPTs?](https://github.com/webgptorg/promptbook/discussions/118)
|
|
436
|
+
- [❔ How is it different from the Langchain?](https://github.com/webgptorg/promptbook/discussions/115)
|
|
437
|
+
- [❔ How is it different from the DSPy?](https://github.com/webgptorg/promptbook/discussions/117)
|
|
438
|
+
- [❔ How is it different from _anything_?](https://github.com/webgptorg/promptbook/discussions?discussions_q=is%3Aopen+label%3A%22Promptbook+vs%22)
|
|
439
|
+
- [❔ Is Promptbook using RAG _(Retrieval-Augmented Generation)_?](https://github.com/webgptorg/promptbook/discussions/123)
|
|
440
|
+
- [❔ Is Promptbook using function calling?](https://github.com/webgptorg/promptbook/discussions/124)
|
|
481
441
|
|
|
482
442
|
## ⌚ Changelog
|
|
483
443
|
|
|
@@ -38,13 +38,15 @@ import { PipelineLogicError } from '../errors/PipelineLogicError';
|
|
|
38
38
|
import { PipelineUrlError } from '../errors/PipelineUrlError';
|
|
39
39
|
import { UnexpectedError } from '../errors/UnexpectedError';
|
|
40
40
|
import { assertsExecutionSuccessful } from '../execution/assertsExecutionSuccessful';
|
|
41
|
-
import { createPipelineExecutor } from '../execution/createPipelineExecutor';
|
|
41
|
+
import { createPipelineExecutor } from '../execution/createPipelineExecutor/00-createPipelineExecutor';
|
|
42
42
|
import { embeddingVectorToString } from '../execution/embeddingVectorToString';
|
|
43
43
|
import { ZERO_USAGE } from '../execution/utils/addUsage';
|
|
44
44
|
import { addUsage } from '../execution/utils/addUsage';
|
|
45
45
|
import { isPassingExpectations } from '../execution/utils/checkExpectations';
|
|
46
46
|
import { usageToHuman } from '../execution/utils/usageToHuman';
|
|
47
47
|
import { usageToWorktime } from '../execution/utils/usageToWorktime';
|
|
48
|
+
import { CsvFormatDefinition } from '../formats/csv/CsvFormatDefinition';
|
|
49
|
+
import { TextFormatDefinition } from '../formats/text/TextFormatDefinition';
|
|
48
50
|
import { CallbackInterfaceTools } from '../knowledge/dialogs/callback/CallbackInterfaceTools';
|
|
49
51
|
import type { CallbackInterfaceToolsOptions } from '../knowledge/dialogs/callback/CallbackInterfaceToolsOptions';
|
|
50
52
|
import { prepareKnowledgePieces } from '../knowledge/prepare-knowledge/_common/prepareKnowledgePieces';
|
|
@@ -118,6 +120,8 @@ export { addUsage };
|
|
|
118
120
|
export { isPassingExpectations };
|
|
119
121
|
export { usageToHuman };
|
|
120
122
|
export { usageToWorktime };
|
|
123
|
+
export { CsvFormatDefinition };
|
|
124
|
+
export { TextFormatDefinition };
|
|
121
125
|
export { CallbackInterfaceTools };
|
|
122
126
|
export type { CallbackInterfaceToolsOptions };
|
|
123
127
|
export { prepareKnowledgePieces };
|
|
@@ -7,6 +7,7 @@ import type { PipelineTemplateCommandParser } from '../commands/_common/types/Co
|
|
|
7
7
|
import type { CommandParserInput } from '../commands/_common/types/CommandParser';
|
|
8
8
|
import type { CommandUsagePlace } from '../commands/_common/types/CommandUsagePlaces';
|
|
9
9
|
import type { ExpectCommand } from '../commands/EXPECT/ExpectCommand';
|
|
10
|
+
import type { ForeachJson } from '../commands/FOREACH/ForeachJson';
|
|
10
11
|
import type { FormatCommand } from '../commands/FORMAT/FormatCommand';
|
|
11
12
|
import type { TemplateType } from '../commands/TEMPLATE/TemplateTypes';
|
|
12
13
|
import type { PipelineStringToJsonOptions } from '../conversion/pipelineStringToJson';
|
|
@@ -15,6 +16,8 @@ import type { renderPipelineMermaidOptions } from '../conversion/prettify/render
|
|
|
15
16
|
import type { ErrorJson } from '../errors/utils/ErrorJson';
|
|
16
17
|
import type { AvailableModel } from '../execution/AvailableModel';
|
|
17
18
|
import type { CommonExecutionToolsOptions } from '../execution/CommonExecutionToolsOptions';
|
|
19
|
+
import type { CreatePipelineExecutorOptions } from '../execution/createPipelineExecutor/00-CreatePipelineExecutorOptions';
|
|
20
|
+
import type { CreatePipelineExecutorSettings } from '../execution/createPipelineExecutor/00-CreatePipelineExecutorSettings';
|
|
18
21
|
import type { EmbeddingVector } from '../execution/EmbeddingVector';
|
|
19
22
|
import type { ExecutionTools } from '../execution/ExecutionTools';
|
|
20
23
|
import type { LlmExecutionTools } from '../execution/LlmExecutionTools';
|
|
@@ -32,6 +35,7 @@ import type { ScriptExecutionToolsExecuteOptions } from '../execution/ScriptExec
|
|
|
32
35
|
import type { UncertainNumber } from '../execution/UncertainNumber';
|
|
33
36
|
import type { UserInterfaceTools } from '../execution/UserInterfaceTools';
|
|
34
37
|
import type { UserInterfaceToolsPromptDialogOptions } from '../execution/UserInterfaceTools';
|
|
38
|
+
import type { FormatSubvalueDefinition } from '../formats/_common/FormatSubvalueDefinition';
|
|
35
39
|
import type { CallbackInterfaceToolsOptions } from '../knowledge/dialogs/callback/CallbackInterfaceToolsOptions';
|
|
36
40
|
import type { LlmToolsConfiguration } from '../llm-providers/_common/LlmToolsConfiguration';
|
|
37
41
|
import type { LlmToolsMetadata } from '../llm-providers/_common/LlmToolsMetadata';
|
|
@@ -232,6 +236,7 @@ export type { PipelineTemplateCommandParser };
|
|
|
232
236
|
export type { CommandParserInput };
|
|
233
237
|
export type { CommandUsagePlace };
|
|
234
238
|
export type { ExpectCommand };
|
|
239
|
+
export type { ForeachJson };
|
|
235
240
|
export type { FormatCommand };
|
|
236
241
|
export type { TemplateType };
|
|
237
242
|
export type { PipelineStringToJsonOptions };
|
|
@@ -240,6 +245,8 @@ export type { renderPipelineMermaidOptions };
|
|
|
240
245
|
export type { ErrorJson };
|
|
241
246
|
export type { AvailableModel };
|
|
242
247
|
export type { CommonExecutionToolsOptions };
|
|
248
|
+
export type { CreatePipelineExecutorOptions };
|
|
249
|
+
export type { CreatePipelineExecutorSettings };
|
|
243
250
|
export type { EmbeddingVector };
|
|
244
251
|
export type { ExecutionTools };
|
|
245
252
|
export type { LlmExecutionTools };
|
|
@@ -257,6 +264,7 @@ export type { ScriptExecutionToolsExecuteOptions };
|
|
|
257
264
|
export type { UncertainNumber };
|
|
258
265
|
export type { UserInterfaceTools };
|
|
259
266
|
export type { UserInterfaceToolsPromptDialogOptions };
|
|
267
|
+
export type { FormatSubvalueDefinition };
|
|
260
268
|
export type { CallbackInterfaceToolsOptions };
|
|
261
269
|
export type { LlmToolsConfiguration };
|
|
262
270
|
export type { LlmToolsMetadata };
|
|
@@ -20,7 +20,6 @@ import { splitIntoSentences } from '../utils/expectation-counters/countSentences
|
|
|
20
20
|
import { countSentences } from '../utils/expectation-counters/countSentences';
|
|
21
21
|
import { countWords } from '../utils/expectation-counters/countWords';
|
|
22
22
|
import { CountUtils } from '../utils/expectation-counters/index';
|
|
23
|
-
import { extractParameterNames } from '../utils/extractParameterNames';
|
|
24
23
|
import { capitalize } from '../utils/normalization/capitalize';
|
|
25
24
|
import { decapitalize } from '../utils/normalization/decapitalize';
|
|
26
25
|
import { DIACRITIC_VARIANTS_LETTERS } from '../utils/normalization/DIACRITIC_VARIANTS_LETTERS';
|
|
@@ -43,11 +42,12 @@ import { parseKeywords } from '../utils/normalization/parseKeywords';
|
|
|
43
42
|
import { parseKeywordsFromString } from '../utils/normalization/parseKeywordsFromString';
|
|
44
43
|
import { removeDiacritics } from '../utils/normalization/removeDiacritics';
|
|
45
44
|
import { searchKeywords } from '../utils/normalization/searchKeywords';
|
|
45
|
+
import { extractParameterNames } from '../utils/parameters/extractParameterNames';
|
|
46
|
+
import { replaceParameters } from '../utils/parameters/replaceParameters';
|
|
46
47
|
import { parseNumber } from '../utils/parseNumber';
|
|
47
48
|
import { $randomSeed } from '../utils/random/$randomSeed';
|
|
48
49
|
import { removeEmojis } from '../utils/removeEmojis';
|
|
49
50
|
import { removeQuotes } from '../utils/removeQuotes';
|
|
50
|
-
import { replaceParameters } from '../utils/replaceParameters';
|
|
51
51
|
import { $deepFreeze } from '../utils/serialization/$deepFreeze';
|
|
52
52
|
import { checkSerializableAsJson } from '../utils/serialization/checkSerializableAsJson';
|
|
53
53
|
import { clonePipeline } from '../utils/serialization/clonePipeline';
|
|
@@ -91,7 +91,6 @@ export { splitIntoSentences };
|
|
|
91
91
|
export { countSentences };
|
|
92
92
|
export { countWords };
|
|
93
93
|
export { CountUtils };
|
|
94
|
-
export { extractParameterNames };
|
|
95
94
|
export { capitalize };
|
|
96
95
|
export { decapitalize };
|
|
97
96
|
export { DIACRITIC_VARIANTS_LETTERS };
|
|
@@ -114,11 +113,12 @@ export { parseKeywords };
|
|
|
114
113
|
export { parseKeywordsFromString };
|
|
115
114
|
export { removeDiacritics };
|
|
116
115
|
export { searchKeywords };
|
|
116
|
+
export { extractParameterNames };
|
|
117
|
+
export { replaceParameters };
|
|
117
118
|
export { parseNumber };
|
|
118
119
|
export { $randomSeed };
|
|
119
120
|
export { removeEmojis };
|
|
120
121
|
export { removeQuotes };
|
|
121
|
-
export { replaceParameters };
|
|
122
122
|
export { $deepFreeze };
|
|
123
123
|
export { checkSerializableAsJson };
|
|
124
124
|
export { clonePipeline };
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { TODO_string } from '../../utils/organization/TODO_string';
|
|
1
|
+
import type { ForeachJson } from './ForeachJson';
|
|
3
2
|
/**
|
|
4
3
|
* Parsed FOREACH command <- Write [🍭] !!!!!!
|
|
5
4
|
*
|
|
@@ -8,7 +7,4 @@ import type { TODO_string } from '../../utils/organization/TODO_string';
|
|
|
8
7
|
*/
|
|
9
8
|
export type ForeachCommand = {
|
|
10
9
|
readonly type: 'FOREACH';
|
|
11
|
-
|
|
12
|
-
cellName: TODO_string;
|
|
13
|
-
parameterName: string_parameter_name;
|
|
14
|
-
};
|
|
10
|
+
} & ForeachJson;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { string_parameter_name } from '../../types/typeAliases';
|
|
2
|
+
import type { TODO_string } from '../../utils/organization/TODO_string';
|
|
3
|
+
/**
|
|
4
|
+
* @@@
|
|
5
|
+
*/
|
|
6
|
+
export type ForeachJson = {
|
|
7
|
+
/**
|
|
8
|
+
* @@@
|
|
9
|
+
*/
|
|
10
|
+
readonly formatName: TODO_string;
|
|
11
|
+
/**
|
|
12
|
+
* @@@
|
|
13
|
+
*/
|
|
14
|
+
readonly cellName: TODO_string;
|
|
15
|
+
/**
|
|
16
|
+
* @@@
|
|
17
|
+
*/
|
|
18
|
+
readonly parameterName: string_parameter_name;
|
|
19
|
+
/**
|
|
20
|
+
* @@@
|
|
21
|
+
*/
|
|
22
|
+
readonly subparameterNames: Array<string_parameter_name>;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* TODO: [🧠][🦥] Better (less confusing) name for "cell" / "subvalue" / "subparameter"
|
|
26
|
+
*/
|
|
@@ -10,6 +10,7 @@ import type { ForeachCommand } from './ForeachCommand';
|
|
|
10
10
|
*/
|
|
11
11
|
export declare const foreachCommandParser: PipelineTemplateCommandParser<ForeachCommand>;
|
|
12
12
|
/**
|
|
13
|
-
* TODO: !!!!!!
|
|
13
|
+
* TODO: !!!!!! Remove console logs
|
|
14
|
+
* TODO: [🧠][🦥] Better (less confusing) name for "cell" / "subvalue" / "subparameter"
|
|
14
15
|
* TODO: [🍭] !!!!!! Make .ptbk.md file with examples of the FOREACH command and also with wrong parsing and logic
|
|
15
16
|
*/
|
|
@@ -156,28 +156,28 @@ export type CommandParserInput = {
|
|
|
156
156
|
* @@@
|
|
157
157
|
*
|
|
158
158
|
* @example 'promptbook version 0.62.0'
|
|
159
|
-
* @example 'FOREACH
|
|
159
|
+
* @example 'FOREACH Text Line `{customers}` -> `{customer}`'
|
|
160
160
|
*/
|
|
161
161
|
readonly raw: string_markdown_text;
|
|
162
162
|
/**
|
|
163
163
|
* @@@
|
|
164
164
|
*
|
|
165
165
|
* @example '0.62.0'
|
|
166
|
-
* @example 'List Line -> `{customer}`'
|
|
166
|
+
* @example 'List Line `{customers}` -> `{customer}`'
|
|
167
167
|
*/
|
|
168
168
|
readonly rawArgs: string_markdown_text;
|
|
169
169
|
/**
|
|
170
170
|
* @@@
|
|
171
171
|
*
|
|
172
172
|
* @example 'PROMPTBOOK_VERSION_0_62_0'
|
|
173
|
-
* @example '
|
|
173
|
+
* @example 'FOREACH_LIST_LINE_CUSTOMERS_CUSTOMER'
|
|
174
174
|
*/
|
|
175
175
|
readonly normalized: string_name & string_SCREAMING_CASE;
|
|
176
176
|
/**
|
|
177
177
|
* @@@
|
|
178
178
|
*
|
|
179
179
|
* @example [ '0.62.0' ]
|
|
180
|
-
* @example [ 'List', 'Line', '', '{customer}' ]
|
|
180
|
+
* @example [ 'List', 'Line', '{customers}', '', '{customer}' ]
|
|
181
181
|
*/
|
|
182
182
|
readonly args: Array<string_name>;
|
|
183
183
|
};
|
|
@@ -148,7 +148,13 @@ export declare const IS_VERBOSE = false;
|
|
|
148
148
|
*
|
|
149
149
|
* @private within the repository
|
|
150
150
|
*/
|
|
151
|
-
export declare const
|
|
151
|
+
export declare const IS_COST_PREVENTED: boolean;
|
|
152
|
+
/**
|
|
153
|
+
* @@@
|
|
154
|
+
*
|
|
155
|
+
* @private within the repository
|
|
156
|
+
*/
|
|
157
|
+
export declare const IS_PIPELINE_LOGIC_VALIDATED: boolean;
|
|
152
158
|
/**
|
|
153
159
|
* TODO: [🧠][🧜♂️] Maybe join remoteUrl and path into single value
|
|
154
160
|
*/
|
|
@@ -22,6 +22,9 @@ export type renderPipelineMermaidOptions = {
|
|
|
22
22
|
*/
|
|
23
23
|
export declare function renderPromptbookMermaid(pipelineJson: PipelineJson, options?: renderPipelineMermaidOptions): string;
|
|
24
24
|
/**
|
|
25
|
+
* TODO: !!!!!! FOREACH in mermaid graph
|
|
26
|
+
* TODO: !!!!!! Knowledge in mermaid graph
|
|
27
|
+
* TODO: !!!!!! Personas in mermaid graph
|
|
25
28
|
* TODO: Maybe use some Mermaid package instead of string templating
|
|
26
29
|
* TODO: [🕌] When more than 2 functionalities, split into separate functions
|
|
27
30
|
*/
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ReadonlyDeep } from 'type-fest';
|
|
1
2
|
import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
|
|
2
3
|
import type { string_parameter_name } from '../../types/typeAliases';
|
|
3
4
|
/**
|
|
@@ -8,7 +9,7 @@ import type { string_parameter_name } from '../../types/typeAliases';
|
|
|
8
9
|
* @throws {ParseError} if the script is invalid
|
|
9
10
|
* @public exported from `@promptbook/utils`
|
|
10
11
|
*/
|
|
11
|
-
export declare function extractParameterNamesFromTemplate(template: Pick<TemplateJson, 'title' | 'description' | 'templateType' | 'content' | 'preparedContent' | 'jokerParameterNames'
|
|
12
|
+
export declare function extractParameterNamesFromTemplate(template: ReadonlyDeep<Pick<TemplateJson, 'title' | 'description' | 'templateType' | 'content' | 'preparedContent' | 'jokerParameterNames' | 'foreach'>>): Set<string_parameter_name>;
|
|
12
13
|
/**
|
|
13
14
|
* TODO: [🔣] If script require contentLanguage
|
|
14
15
|
*/
|
|
@@ -16,6 +16,11 @@ import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
|
|
|
16
16
|
*/
|
|
17
17
|
export declare function validatePipeline(pipeline: PipelineJson): PipelineJson;
|
|
18
18
|
/**
|
|
19
|
+
* @private internal function for `validatePipeline`
|
|
20
|
+
*/
|
|
21
|
+
export declare function validatePipelineCore(pipeline: PipelineJson): void;
|
|
22
|
+
/**
|
|
23
|
+
* TODO: !!!!!! [🧞♀️] Do not allow joker + foreach
|
|
19
24
|
* TODO: [🧠] Work with promptbookVersion
|
|
20
25
|
* TODO: Use here some json-schema, Zod or something similar and change it to:
|
|
21
26
|
* > /**
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { ReadonlyDeep } from 'type-fest';
|
|
2
|
+
import type { ErrorJson } from '../errors/utils/ErrorJson';
|
|
1
3
|
import type { ExecutionReportJson } from '../types/execution-report/ExecutionReportJson';
|
|
2
|
-
import type { Parameters } from '../types/typeAliases';
|
|
3
4
|
import type { PipelineJson } from '../types/PipelineJson/PipelineJson';
|
|
4
|
-
import type {
|
|
5
|
+
import type { Parameters } from '../types/typeAliases';
|
|
5
6
|
import type { PromptResultUsage } from './PromptResultUsage';
|
|
6
7
|
/**
|
|
7
8
|
* @@@
|
|
@@ -41,9 +42,10 @@ export type PipelineExecutorResult = {
|
|
|
41
42
|
* Note: If you called `createPipelineExecutor` with fully prepared pipeline, this is the same object as this pipeline
|
|
42
43
|
* If you passed not fully prepared pipeline, this is same pipeline but fully prepared
|
|
43
44
|
*/
|
|
44
|
-
readonly preparedPipeline: PipelineJson
|
|
45
|
+
readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
|
|
45
46
|
};
|
|
46
47
|
/**
|
|
48
|
+
* TODO: !!!!!! Maybe add ReadonlyDeep< to all
|
|
47
49
|
* TODO: [🧠] Should this file be in /execution or /types folder?
|
|
48
50
|
* TODO: [🧠] Maybe constrain `ErrorJson` -> `ErrorJson & { name: 'PipelineExecutionError' | 'Error' }`
|
|
49
51
|
*/
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ExpectError } from '../../errors/ExpectError';
|
|
2
|
+
import type { Prompt } from '../../types/Prompt';
|
|
3
|
+
import type { ChatPromptResult } from '../PromptResult';
|
|
4
|
+
import type { CompletionPromptResult } from '../PromptResult';
|
|
5
|
+
import type { EmbeddingPromptResult } from '../PromptResult';
|
|
6
|
+
import type { PromptResult } from '../PromptResult';
|
|
7
|
+
/**
|
|
8
|
+
* @@@
|
|
9
|
+
*
|
|
10
|
+
* @private internal utility of `createPipelineExecutor`
|
|
11
|
+
*/
|
|
12
|
+
export type $OngoingTemplateResult = {
|
|
13
|
+
$prompt?: Prompt;
|
|
14
|
+
$chatResult?: ChatPromptResult;
|
|
15
|
+
$completionResult?: CompletionPromptResult;
|
|
16
|
+
$embeddingResult?: EmbeddingPromptResult;
|
|
17
|
+
$result: PromptResult | null;
|
|
18
|
+
$resultString: string | null;
|
|
19
|
+
$expectError: ExpectError | null;
|
|
20
|
+
$scriptPipelineExecutionErrors: Array<Error>;
|
|
21
|
+
};
|
package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorOptions.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
|
|
2
|
+
import type { ExecutionTools } from '../ExecutionTools';
|
|
3
|
+
import type { CreatePipelineExecutorSettings } from './00-CreatePipelineExecutorSettings';
|
|
4
|
+
/**
|
|
5
|
+
* Options for `createPipelineExecutor`
|
|
6
|
+
*/
|
|
7
|
+
export interface CreatePipelineExecutorOptions {
|
|
8
|
+
/**
|
|
9
|
+
* The pipeline to be executed
|
|
10
|
+
*/
|
|
11
|
+
readonly pipeline: PipelineJson;
|
|
12
|
+
/**
|
|
13
|
+
* The execution tools to be used during the execution of the pipeline
|
|
14
|
+
*/
|
|
15
|
+
readonly tools: ExecutionTools;
|
|
16
|
+
/**
|
|
17
|
+
* Optional settings for the pipeline executor
|
|
18
|
+
*/
|
|
19
|
+
readonly settings?: Partial<CreatePipelineExecutorSettings>;
|
|
20
|
+
}
|
package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorSettings.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export type CreatePipelineExecutorSettings = {
|
|
2
|
+
/**
|
|
3
|
+
* When executor does not satisfy expectations it will be retried this amount of times
|
|
4
|
+
*
|
|
5
|
+
* @default MAX_EXECUTION_ATTEMPTS
|
|
6
|
+
*/
|
|
7
|
+
readonly maxExecutionAttempts: number;
|
|
8
|
+
/**
|
|
9
|
+
* Maximum number of tasks running in parallel
|
|
10
|
+
*
|
|
11
|
+
* @default MAX_PARALLEL_COUNT
|
|
12
|
+
*/
|
|
13
|
+
readonly maxParallelCount: number;
|
|
14
|
+
/**
|
|
15
|
+
* If true, the preparation logs additional information
|
|
16
|
+
*
|
|
17
|
+
* @default false
|
|
18
|
+
*/
|
|
19
|
+
readonly isVerbose: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* If you pass fully prepared pipeline, this does not matter
|
|
22
|
+
*
|
|
23
|
+
* Otherwise:
|
|
24
|
+
* If false or not set, warning is shown when pipeline is not prepared
|
|
25
|
+
* If true, warning is suppressed
|
|
26
|
+
*
|
|
27
|
+
* @default false
|
|
28
|
+
*/
|
|
29
|
+
readonly isNotPreparedWarningSupressed: boolean;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* TODO: [🤹♂️] More granular setting for limits of execution + better waiting for queue
|
|
33
|
+
*/
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { PipelineExecutor } from '../PipelineExecutor';
|
|
2
|
+
import type { CreatePipelineExecutorOptions } from './00-CreatePipelineExecutorOptions';
|
|
3
|
+
/**
|
|
4
|
+
* Creates executor function from pipeline and execution tools.
|
|
5
|
+
*
|
|
6
|
+
* @returns The executor function
|
|
7
|
+
* @throws {PipelineLogicError} on logical error in the pipeline
|
|
8
|
+
* @public exported from `@promptbook/core`
|
|
9
|
+
*/
|
|
10
|
+
export declare function createPipelineExecutor(options: CreatePipelineExecutorOptions): PipelineExecutor;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { Promisable, ReadonlyDeep } from 'type-fest';
|
|
2
|
+
import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
|
|
3
|
+
import type { TaskProgress } from '../../types/TaskProgress';
|
|
4
|
+
import type { Parameters } from '../../types/typeAliases';
|
|
5
|
+
import type { ExecutionTools } from '../ExecutionTools';
|
|
6
|
+
import type { PipelineExecutorResult } from '../PipelineExecutorResult';
|
|
7
|
+
import type { CreatePipelineExecutorSettings } from './00-CreatePipelineExecutorSettings';
|
|
8
|
+
/**
|
|
9
|
+
* @@@
|
|
10
|
+
*
|
|
11
|
+
* @private internal type of `executePipelinex`
|
|
12
|
+
*/
|
|
13
|
+
type ExecutePipelineOptions = {
|
|
14
|
+
/**
|
|
15
|
+
* @@@
|
|
16
|
+
*/
|
|
17
|
+
readonly inputParameters: Readonly<Parameters>;
|
|
18
|
+
/**
|
|
19
|
+
* @@@
|
|
20
|
+
*/
|
|
21
|
+
readonly tools: ExecutionTools;
|
|
22
|
+
/**
|
|
23
|
+
* @@@
|
|
24
|
+
*/
|
|
25
|
+
readonly onProgress?: (taskProgress: TaskProgress) => Promisable<void>;
|
|
26
|
+
/**
|
|
27
|
+
* @@@
|
|
28
|
+
*/
|
|
29
|
+
readonly pipeline: PipelineJson;
|
|
30
|
+
/**
|
|
31
|
+
* @@@
|
|
32
|
+
*/
|
|
33
|
+
readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
|
|
34
|
+
/**
|
|
35
|
+
* @@@
|
|
36
|
+
*/
|
|
37
|
+
readonly setPreparedPipeline: (preparedPipeline: ReadonlyDeep<PipelineJson>) => void;
|
|
38
|
+
/**
|
|
39
|
+
* @@@
|
|
40
|
+
*/
|
|
41
|
+
readonly pipelineIdentification: string;
|
|
42
|
+
/**
|
|
43
|
+
* Settings for the pipeline executor
|
|
44
|
+
*/
|
|
45
|
+
readonly settings: CreatePipelineExecutorSettings;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* @@@
|
|
49
|
+
*
|
|
50
|
+
* Note: This is not a `PipelineExecutor` (which is binded with one exact pipeline), but a utility function of `createPipelineExecutor` which creates `PipelineExecutor`
|
|
51
|
+
*
|
|
52
|
+
* @private internal utility of `createPipelineExecutor`
|
|
53
|
+
*/
|
|
54
|
+
export declare function executePipeline(options: ExecutePipelineOptions): Promise<PipelineExecutorResult>;
|
|
55
|
+
export {};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Promisable, ReadonlyDeep } from 'type-fest';
|
|
2
|
+
import { MultipleLlmExecutionTools } from '../../llm-providers/multiple/MultipleLlmExecutionTools';
|
|
3
|
+
import type { ExecutionReportJson } from '../../types/execution-report/ExecutionReportJson';
|
|
4
|
+
import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
|
|
5
|
+
import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
|
|
6
|
+
import type { TaskProgress } from '../../types/TaskProgress';
|
|
7
|
+
import type { Parameters } from '../../types/typeAliases';
|
|
8
|
+
import type { ExecutionTools } from '../ExecutionTools';
|
|
9
|
+
import type { CreatePipelineExecutorSettings } from './00-CreatePipelineExecutorSettings';
|
|
10
|
+
/**
|
|
11
|
+
* @@@
|
|
12
|
+
*
|
|
13
|
+
* @private internal type of `executeTemplate`
|
|
14
|
+
*/
|
|
15
|
+
type executeSingleTemplateOptions = {
|
|
16
|
+
/**
|
|
17
|
+
* @@@
|
|
18
|
+
*/
|
|
19
|
+
readonly currentTemplate: ReadonlyDeep<TemplateJson>;
|
|
20
|
+
/**
|
|
21
|
+
* @@@
|
|
22
|
+
*/
|
|
23
|
+
readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
|
|
24
|
+
/**
|
|
25
|
+
* @@@
|
|
26
|
+
*/
|
|
27
|
+
readonly parametersToPass: Readonly<Parameters>;
|
|
28
|
+
/**
|
|
29
|
+
* @@@
|
|
30
|
+
*/
|
|
31
|
+
readonly tools: Omit<ExecutionTools, 'llm'>;
|
|
32
|
+
/**
|
|
33
|
+
* @@@
|
|
34
|
+
*/
|
|
35
|
+
readonly llmTools: MultipleLlmExecutionTools;
|
|
36
|
+
/**
|
|
37
|
+
* @@@
|
|
38
|
+
*/
|
|
39
|
+
readonly onProgress: (taskProgress: TaskProgress) => Promisable<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Settings for the pipeline executor
|
|
42
|
+
*/
|
|
43
|
+
readonly settings: CreatePipelineExecutorSettings;
|
|
44
|
+
/**
|
|
45
|
+
* @@@
|
|
46
|
+
*/
|
|
47
|
+
readonly $executionReport: ExecutionReportJson;
|
|
48
|
+
/**
|
|
49
|
+
* @@@
|
|
50
|
+
*/
|
|
51
|
+
readonly pipelineIdentification: string;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* @@@
|
|
55
|
+
*
|
|
56
|
+
* @private internal utility of `createPipelineExecutor`
|
|
57
|
+
*/
|
|
58
|
+
export declare function executeTemplate(options: executeSingleTemplateOptions): Promise<Readonly<Parameters>>;
|
|
59
|
+
export {};
|
|
60
|
+
/**
|
|
61
|
+
* TODO: [🤹♂️]
|
|
62
|
+
*/
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { TODO_any } from '../../utils/organization/TODO_any';
|
|
2
|
+
import type { ExecuteAttemptsOptions } from './40-executeAttempts';
|
|
3
|
+
/**
|
|
4
|
+
* @@@
|
|
5
|
+
*
|
|
6
|
+
* @private internal type of `executeFormatCells`
|
|
7
|
+
*/
|
|
8
|
+
type ExecuteFormatCellsOptions = ExecuteAttemptsOptions;
|
|
9
|
+
/**
|
|
10
|
+
* @@@
|
|
11
|
+
*
|
|
12
|
+
* @private internal utility of `createPipelineExecutor`
|
|
13
|
+
*/
|
|
14
|
+
export declare function executeFormatCells(options: ExecuteFormatCellsOptions): Promise<TODO_any>;
|
|
15
|
+
export {};
|
|
16
|
+
/**
|
|
17
|
+
* TODO: !!!!!! Make pipelineIdentification more precise
|
|
18
|
+
* TODO: !!!!!! How FOREACH execution looks in the report
|
|
19
|
+
* TODO: [🧠][🦥] Better (less confusing) name for "cell" / "subvalue" / "subparameter"
|
|
20
|
+
* TODO: []
|
|
21
|
+
*/
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { ReadonlyDeep } from 'type-fest';
|
|
2
|
+
import { MultipleLlmExecutionTools } from '../../llm-providers/multiple/MultipleLlmExecutionTools';
|
|
3
|
+
import type { ExecutionReportJson } from '../../types/execution-report/ExecutionReportJson';
|
|
4
|
+
import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
|
|
5
|
+
import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
|
|
6
|
+
import type { Parameters } from '../../types/typeAliases';
|
|
7
|
+
import type { string_parameter_name } from '../../types/typeAliases';
|
|
8
|
+
import type { TODO_string } from '../../utils/organization/TODO_string';
|
|
9
|
+
import type { ExecutionTools } from '../ExecutionTools';
|
|
10
|
+
import type { CreatePipelineExecutorSettings } from './00-CreatePipelineExecutorSettings';
|
|
11
|
+
/**
|
|
12
|
+
* @@@
|
|
13
|
+
*
|
|
14
|
+
* @private internal type of `executeAttempts`
|
|
15
|
+
*/
|
|
16
|
+
export type ExecuteAttemptsOptions = {
|
|
17
|
+
/**
|
|
18
|
+
* @@@
|
|
19
|
+
*/
|
|
20
|
+
readonly jokerParameterNames: Readonly<Array<string_parameter_name>>;
|
|
21
|
+
/**
|
|
22
|
+
* @@@
|
|
23
|
+
*/
|
|
24
|
+
readonly priority: number;
|
|
25
|
+
/**
|
|
26
|
+
* @@@
|
|
27
|
+
*/
|
|
28
|
+
readonly maxAttempts: number;
|
|
29
|
+
/**
|
|
30
|
+
* @@@
|
|
31
|
+
*/
|
|
32
|
+
readonly preparedContent: TODO_string;
|
|
33
|
+
/**
|
|
34
|
+
* @@@
|
|
35
|
+
*/
|
|
36
|
+
readonly parameters: ReadonlyDeep<Parameters>;
|
|
37
|
+
/**
|
|
38
|
+
* @@@
|
|
39
|
+
*/
|
|
40
|
+
readonly template: ReadonlyDeep<TemplateJson>;
|
|
41
|
+
/**
|
|
42
|
+
* @@@
|
|
43
|
+
*/
|
|
44
|
+
readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
|
|
45
|
+
/**
|
|
46
|
+
* @@@
|
|
47
|
+
*/
|
|
48
|
+
readonly tools: Omit<ExecutionTools, 'llm'>;
|
|
49
|
+
/**
|
|
50
|
+
* @@@
|
|
51
|
+
*/
|
|
52
|
+
readonly llmTools: MultipleLlmExecutionTools;
|
|
53
|
+
/**
|
|
54
|
+
* Settings for the pipeline executor
|
|
55
|
+
*/
|
|
56
|
+
readonly settings: CreatePipelineExecutorSettings;
|
|
57
|
+
/**
|
|
58
|
+
* @@@
|
|
59
|
+
*/
|
|
60
|
+
readonly $executionReport: ExecutionReportJson;
|
|
61
|
+
/**
|
|
62
|
+
* @@@
|
|
63
|
+
*/
|
|
64
|
+
readonly pipelineIdentification: string;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* @@@
|
|
68
|
+
*
|
|
69
|
+
* @private internal utility of `createPipelineExecutor`
|
|
70
|
+
*/
|
|
71
|
+
export declare function executeAttempts(options: ExecuteAttemptsOptions): Promise<TODO_string>;
|
|
72
|
+
/**
|
|
73
|
+
* TODO: Break into smaller functions
|
|
74
|
+
*/
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { ReadonlyDeep } from 'type-fest';
|
|
2
|
+
import { PipelineExecutionError } from '../../errors/PipelineExecutionError';
|
|
3
|
+
import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
|
|
4
|
+
import type { Parameters } from '../../types/typeAliases';
|
|
5
|
+
/**
|
|
6
|
+
* @@@
|
|
7
|
+
*
|
|
8
|
+
* @private internal type of `createPipelineExecutor`
|
|
9
|
+
*/
|
|
10
|
+
type FilterJustOutputParametersOptions = {
|
|
11
|
+
/**
|
|
12
|
+
* @@@
|
|
13
|
+
*/
|
|
14
|
+
readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
|
|
15
|
+
/**
|
|
16
|
+
* @@@
|
|
17
|
+
*/
|
|
18
|
+
readonly parametersToPass: Readonly<Parameters>;
|
|
19
|
+
/**
|
|
20
|
+
* @@@
|
|
21
|
+
*/
|
|
22
|
+
readonly $warnings: PipelineExecutionError[];
|
|
23
|
+
/**
|
|
24
|
+
* @@@
|
|
25
|
+
*/
|
|
26
|
+
readonly pipelineIdentification: string;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* @@@
|
|
30
|
+
*
|
|
31
|
+
* @private internal utility of `createPipelineExecutor`
|
|
32
|
+
*/
|
|
33
|
+
export declare function filterJustOutputParameters(options: FilterJustOutputParametersOptions): Parameters;
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ReadonlyDeep } from 'type-fest';
|
|
2
|
+
import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
|
|
3
|
+
import type { string_markdown } from '../../types/typeAliases';
|
|
4
|
+
import type { string_parameter_value } from '../../types/typeAliases';
|
|
5
|
+
/**
|
|
6
|
+
* @@@
|
|
7
|
+
*
|
|
8
|
+
* @private internal utility of `createPipelineExecutor`
|
|
9
|
+
*/
|
|
10
|
+
export declare function getContextForTemplate(template: ReadonlyDeep<TemplateJson>): Promise<string_parameter_value & string_markdown>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ReadonlyDeep } from 'type-fest';
|
|
2
|
+
import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
|
|
3
|
+
import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
|
|
4
|
+
import type { string_markdown } from '../../types/typeAliases';
|
|
5
|
+
import type { string_parameter_value } from '../../types/typeAliases';
|
|
6
|
+
/**
|
|
7
|
+
* @@@
|
|
8
|
+
*
|
|
9
|
+
* @private internal type of `getKnowledgeForTemplate`
|
|
10
|
+
*/
|
|
11
|
+
type GetKnowledgeForTemplateOptions = {
|
|
12
|
+
/**
|
|
13
|
+
* @@@
|
|
14
|
+
*/
|
|
15
|
+
readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
|
|
16
|
+
/**
|
|
17
|
+
* @@@
|
|
18
|
+
*/
|
|
19
|
+
readonly template: ReadonlyDeep<TemplateJson>;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* @@@
|
|
23
|
+
*
|
|
24
|
+
* @private internal utility of `createPipelineExecutor`
|
|
25
|
+
*/
|
|
26
|
+
export declare function getKnowledgeForTemplate(options: GetKnowledgeForTemplateOptions): Promise<string_parameter_value & string_markdown>;
|
|
27
|
+
export {};
|
package/esm/typings/src/execution/createPipelineExecutor/getReservedParametersForTemplate.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ReadonlyDeep } from 'type-fest';
|
|
2
|
+
import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
|
|
3
|
+
import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
|
|
4
|
+
import type { ReservedParameters } from '../../types/typeAliases';
|
|
5
|
+
/**
|
|
6
|
+
* @@@
|
|
7
|
+
*
|
|
8
|
+
* @private internal type of `getReservedParametersForTemplate`
|
|
9
|
+
*/
|
|
10
|
+
type GetReservedParametersForTemplateOptions = {
|
|
11
|
+
/**
|
|
12
|
+
* @@@
|
|
13
|
+
*/
|
|
14
|
+
readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
|
|
15
|
+
/**
|
|
16
|
+
* @@@
|
|
17
|
+
*/
|
|
18
|
+
readonly template: ReadonlyDeep<TemplateJson>;
|
|
19
|
+
/**
|
|
20
|
+
* @@@
|
|
21
|
+
*/
|
|
22
|
+
readonly pipelineIdentification: string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* @@@
|
|
26
|
+
*
|
|
27
|
+
* @private internal utility of `createPipelineExecutor`
|
|
28
|
+
*/
|
|
29
|
+
export declare function getReservedParametersForTemplate(options: GetReservedParametersForTemplateOptions): Promise<Readonly<ReservedParameters>>;
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ReadonlyDeep } from 'type-fest';
|
|
2
|
+
import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
|
|
3
|
+
import type { string_markdown } from '../../types/typeAliases';
|
|
4
|
+
import type { string_parameter_value } from '../../types/typeAliases';
|
|
5
|
+
/**
|
|
6
|
+
* @@@
|
|
7
|
+
*
|
|
8
|
+
* @private internal utility of `createPipelineExecutor`
|
|
9
|
+
*/
|
|
10
|
+
export declare function getSamplesForTemplate(template: ReadonlyDeep<TemplateJson>): Promise<string_parameter_value & string_markdown>;
|
|
@@ -24,4 +24,6 @@ export declare function checkExpectations(expectations: Expectations, value: str
|
|
|
24
24
|
export declare function isPassingExpectations(expectations: Expectations, value: string): boolean;
|
|
25
25
|
/**
|
|
26
26
|
* TODO: [💝] Unite object for expecting amount and format
|
|
27
|
+
* TODO: [🧠][🤠] This should be part of `TextFormatDefinition`
|
|
28
|
+
* Note: [💝] and [🤠] are interconnected together
|
|
27
29
|
*/
|
|
@@ -7,11 +7,10 @@ import type { PromptResultUsage } from '../PromptResultUsage';
|
|
|
7
7
|
*/
|
|
8
8
|
export declare function usageToHuman(usage: PromptResultUsage): string_markdown;
|
|
9
9
|
/**
|
|
10
|
-
* TODO: Use "$1" not "1 USD"
|
|
11
|
-
* TODO: Use markdown formatting like "Cost approximately **$1**"
|
|
12
|
-
* TODO: Report in minutes, seconds, days NOT 0.1 hours
|
|
10
|
+
* TODO: [🍓][🧞♂️] Use "$1" not "1 USD"
|
|
11
|
+
* TODO: [🍓][🧞♂️] Use markdown formatting like "Cost approximately **$1**"
|
|
12
|
+
* TODO: [🍓][🧞♂️] Report in minutes, seconds, days NOT 0.1 hours
|
|
13
13
|
* TODO: [🧠] Maybe make from `uncertainNumberToHuman` separate exported utility
|
|
14
|
-
* TODO: When negligible usage, report "Negligible" or just don't report it
|
|
15
14
|
* TODO: [🧠] Maybe use "~" instead of "approximately"
|
|
16
15
|
* TODO: [🏛] Maybe make some markdown builder
|
|
17
16
|
*/
|
|
@@ -1,22 +1,24 @@
|
|
|
1
|
+
import type { string_SCREAMING_CASE } from '../../utils/normalization/normalizeTo_SCREAMING_CASE';
|
|
1
2
|
import type { string_mime_type } from '../../types/typeAliases';
|
|
2
3
|
import type { string_name } from '../../types/typeAliases';
|
|
4
|
+
import type { FormatSubvalueDefinition } from './FormatSubvalueDefinition';
|
|
3
5
|
/**
|
|
4
6
|
* A format definition is a set of functions that define how to validate, heal and convert response from LLM
|
|
5
7
|
*
|
|
6
8
|
* @see https://github.com/webgptorg/promptbook/discussions/36
|
|
7
9
|
* @private still in development [🏢]
|
|
8
10
|
*/
|
|
9
|
-
export type FormatDefinition<TValue extends TPartialValue, TPartialValue extends string, TSchema
|
|
11
|
+
export type FormatDefinition<TValue extends TPartialValue, TPartialValue extends string, TSchema> = {
|
|
10
12
|
/**
|
|
11
13
|
* The name of the format used in .ptbk.md files
|
|
12
14
|
*
|
|
13
15
|
* @sample "JSON"
|
|
14
16
|
*/
|
|
15
|
-
readonly
|
|
17
|
+
readonly formatName: string_name & string_SCREAMING_CASE;
|
|
16
18
|
/**
|
|
17
|
-
* Aliases for the
|
|
19
|
+
* Aliases for the `formatName`
|
|
18
20
|
*/
|
|
19
|
-
readonly aliases?: Array<string_name>;
|
|
21
|
+
readonly aliases?: Array<string_name & string_SCREAMING_CASE>;
|
|
20
22
|
/**
|
|
21
23
|
* The mime type of the format (if any)
|
|
22
24
|
*
|
|
@@ -51,17 +53,12 @@ export type FormatDefinition<TValue extends TPartialValue, TPartialValue extends
|
|
|
51
53
|
*/
|
|
52
54
|
heal(value: string, scheme?: TSchema): TValue;
|
|
53
55
|
/**
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
* Note: This is useful when you want to combine format expectations with counting words, characters,...
|
|
57
|
-
*
|
|
58
|
-
* @param value The value to check, for example "{\"name\": "John Smith"}"
|
|
59
|
-
* @param schema Optional schema
|
|
60
|
-
* @example "{\"name\": "John Smith"}" -> ["John Smith"]
|
|
56
|
+
* @@@
|
|
61
57
|
*/
|
|
62
|
-
|
|
58
|
+
readonly subvalueDefinitions: Array<FormatSubvalueDefinition<TValue>>;
|
|
63
59
|
};
|
|
64
60
|
/**
|
|
61
|
+
* TODO: [🧠][🦥] Better (less confusing) name for "cell" / "subvalue" / "subparameter"
|
|
65
62
|
* TODO: [♏] Add some prepare hook to modify prompt according to the format
|
|
66
63
|
* TODO: [🍓]`name` and `aliases` should be UPPERCASE only and interpreted as case-insensitive (via normalization)
|
|
67
64
|
* TODO: [🍓][👨⚖️] Compute TPartialValue dynamically - PartialString<TValue>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Promisable } from 'type-fest';
|
|
2
|
+
import type { string_SCREAMING_CASE } from '../../utils/normalization/normalizeTo_SCREAMING_CASE';
|
|
3
|
+
import type { Parameters } from '../../types/typeAliases';
|
|
4
|
+
import type { string_name } from '../../types/typeAliases';
|
|
5
|
+
/**
|
|
6
|
+
* @@@
|
|
7
|
+
*/
|
|
8
|
+
export type FormatSubvalueDefinition<TValue extends string> = {
|
|
9
|
+
/**
|
|
10
|
+
* The name of the format used in .ptbk.md files
|
|
11
|
+
*
|
|
12
|
+
* @sample "CELL"
|
|
13
|
+
*/
|
|
14
|
+
readonly subvalueName: string_name & string_SCREAMING_CASE;
|
|
15
|
+
/**
|
|
16
|
+
* Aliases for the `subvalueName`
|
|
17
|
+
*/
|
|
18
|
+
readonly aliases?: Array<string_name & string_SCREAMING_CASE>;
|
|
19
|
+
/**
|
|
20
|
+
* Maps values
|
|
21
|
+
*
|
|
22
|
+
* For example, if you have a JSON object and you want to map all values to uppercase
|
|
23
|
+
* Or iterate over all CSV cells @@@
|
|
24
|
+
*/
|
|
25
|
+
mapValues(value: TValue, mapCallback: (subvalues: Parameters, index: number) => Promisable<string>): Promise<string>;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* TODO: [🧠][🦥] Better (less confusing) name for "cell" / "subvalue" / "subparameter"
|
|
29
|
+
* Note: [👩🏾🤝🧑🏽]
|
|
30
|
+
*/
|
|
@@ -2,13 +2,14 @@ import type { FormatDefinition } from '../_common/FormatDefinition';
|
|
|
2
2
|
/**
|
|
3
3
|
* Definition for CSV spreadsheet
|
|
4
4
|
*
|
|
5
|
-
* @
|
|
5
|
+
* @public exported from `@promptbook/core`
|
|
6
|
+
* <- TODO: [🏢] Export from package `@promptbook/csv`
|
|
6
7
|
*/
|
|
7
8
|
export declare const CsvFormatDefinition: FormatDefinition<string, string, object>;
|
|
8
9
|
/**
|
|
9
10
|
* TODO: [🍓] In `CsvFormatDefinition` implement simple `isValid`
|
|
10
11
|
* TODO: [🍓] In `CsvFormatDefinition` implement partial `canBeValid`
|
|
11
12
|
* TODO: [🍓] In `CsvFormatDefinition` implement `heal
|
|
12
|
-
* TODO: [🍓] In `CsvFormatDefinition` implement `
|
|
13
|
+
* TODO: [🍓] In `CsvFormatDefinition` implement `subvalueDefinitions`
|
|
13
14
|
* TODO: [🏢] Allow to expect something inside CSV objects and other formats
|
|
14
15
|
*/
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @private internal index of `...` <- TODO [🏢]
|
|
5
5
|
*/
|
|
6
|
-
export declare const FORMAT_DEFINITIONS: import("./_common/FormatDefinition").FormatDefinition<string, string, object>
|
|
6
|
+
export declare const FORMAT_DEFINITIONS: readonly [import("./_common/FormatDefinition").FormatDefinition<string, string, object>, import("./_common/FormatDefinition").FormatDefinition<string, string, object>, import("./_common/FormatDefinition").FormatDefinition<string, string, never>, import("./_common/FormatDefinition").FormatDefinition<string, string, object>];
|
|
@@ -13,6 +13,6 @@ export declare const JsonFormatDefinition: FormatDefinition<string, string, obje
|
|
|
13
13
|
* TODO: [🍓] In `JsonFormatDefinition` implement simple `isValid`
|
|
14
14
|
* TODO: [🍓] In `JsonFormatDefinition` implement partial `canBeValid`
|
|
15
15
|
* TODO: [🍓] In `JsonFormatDefinition` implement `heal
|
|
16
|
-
* TODO: [🍓] In `JsonFormatDefinition` implement `
|
|
16
|
+
* TODO: [🍓] In `JsonFormatDefinition` implement `subvalueDefinitions`
|
|
17
17
|
* TODO: [🏢] Allow to expect something inside JSON objects and other formats
|
|
18
18
|
*/
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { FormatDefinition } from '../_common/FormatDefinition';
|
|
2
|
+
/**
|
|
3
|
+
* Definition for any text - this will be always valid
|
|
4
|
+
*
|
|
5
|
+
* Note: This is not useful for validation, but for splitting and mapping with `subvalueDefinitions`
|
|
6
|
+
*
|
|
7
|
+
* @public exported from `@promptbook/core`
|
|
8
|
+
*/
|
|
9
|
+
export declare const TextFormatDefinition: FormatDefinition<string, string, never>;
|
|
10
|
+
/**
|
|
11
|
+
* TODO: [🧠][🤠] Here should be all words, characters, lines, paragraphs, pages aviable as subvalues
|
|
12
|
+
* TODO: [🍓] In `TextFormatDefinition` implement simple `isValid`
|
|
13
|
+
* TODO: [🍓] In `TextFormatDefinition` implement partial `canBeValid`
|
|
14
|
+
* TODO: [🍓] In `TextFormatDefinition` implement `heal
|
|
15
|
+
* TODO: [🍓] In `TextFormatDefinition` implement `subvalueDefinitions`
|
|
16
|
+
* TODO: [🏢] Allow to expect something inside each item of list and other formats
|
|
17
|
+
*/
|
|
@@ -13,6 +13,6 @@ export declare const XmlFormatDefinition: FormatDefinition<string, string, objec
|
|
|
13
13
|
* TODO: [🍓] In `XmlFormatDefinition` implement simple `isValid`
|
|
14
14
|
* TODO: [🍓] In `XmlFormatDefinition` implement partial `canBeValid`
|
|
15
15
|
* TODO: [🍓] In `XmlFormatDefinition` implement `heal
|
|
16
|
-
* TODO: [🍓] In `XmlFormatDefinition` implement `
|
|
16
|
+
* TODO: [🍓] In `XmlFormatDefinition` implement `subvalueDefinitions`
|
|
17
17
|
* TODO: [🏢] Allow to expect something inside XML and other formats
|
|
18
18
|
*/
|
|
@@ -33,6 +33,7 @@ export type ParameterJson = {
|
|
|
33
33
|
readonly sampleValues?: Array<string_parameter_value>;
|
|
34
34
|
};
|
|
35
35
|
/**
|
|
36
|
+
* TODO: [🧠] !!!!!! Should be here registered subparameter from foreach or not?
|
|
36
37
|
* TODO: [♈] Probbably move expectations from templates to parameters
|
|
37
38
|
* TODO: [🍙] Make some standard order of json properties
|
|
38
39
|
*/
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ForeachJson } from '../../commands/FOREACH/ForeachJson';
|
|
1
2
|
import type { FormatCommand } from '../../commands/FORMAT/FormatCommand';
|
|
2
3
|
import type { TemplateType } from '../../commands/TEMPLATE/TemplateTypes';
|
|
3
4
|
import type { string_javascript } from '../typeAliases';
|
|
@@ -42,6 +43,10 @@ export interface TemplateJsonCommon {
|
|
|
42
43
|
* @see https://github.com/webgptorg/promptbook/discussions/66
|
|
43
44
|
*/
|
|
44
45
|
readonly jokerParameterNames?: Array<string_parameter_name>;
|
|
46
|
+
/**
|
|
47
|
+
* @@@
|
|
48
|
+
*/
|
|
49
|
+
readonly foreach?: ForeachJson;
|
|
45
50
|
/**
|
|
46
51
|
* Type of the execution
|
|
47
52
|
* This determines if the template is send to LLM, user or some scripting evaluation
|
|
@@ -6,3 +6,6 @@ import type { ExpectationUnit } from '../../types/PipelineJson/Expectations';
|
|
|
6
6
|
* @public exported from `@promptbook/utils`
|
|
7
7
|
*/
|
|
8
8
|
export declare const CountUtils: Record<ExpectationUnit, (text: string) => ExpectationAmount>;
|
|
9
|
+
/**
|
|
10
|
+
* TODO: [🧠][🤠] This should be probbably as part of `TextFormatDefinition`
|
|
11
|
+
*/
|
package/esm/typings/src/utils/{extractParameterNames.d.ts → parameters/extractParameterNames.d.ts}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { string_parameter_name } from '
|
|
2
|
-
import type { string_template } from '
|
|
1
|
+
import type { string_parameter_name } from '../../types/typeAliases';
|
|
2
|
+
import type { string_template } from '../../types/typeAliases';
|
|
3
3
|
/**
|
|
4
4
|
* Parses the template and returns the list of all parameter names
|
|
5
5
|
*
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { string_parameter_name } from '../../types/typeAliases';
|
|
2
|
+
import type { string_parameter_value } from '../../types/typeAliases';
|
|
3
|
+
/**
|
|
4
|
+
* @@@
|
|
5
|
+
*/
|
|
6
|
+
type MakeapAvailableToExpectedParametersOptions = {
|
|
7
|
+
/**
|
|
8
|
+
* @@@
|
|
9
|
+
*/
|
|
10
|
+
readonly expectedParameters: Readonly<Record<string_parameter_name, null>>;
|
|
11
|
+
/**
|
|
12
|
+
* @@@
|
|
13
|
+
*/
|
|
14
|
+
readonly availableParameters: Readonly<Record<string_parameter_name, string_parameter_value>>;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Maps available parameters to expected parameters
|
|
18
|
+
*
|
|
19
|
+
* The strategy is:
|
|
20
|
+
* 1) @@@
|
|
21
|
+
* 2) @@@
|
|
22
|
+
*
|
|
23
|
+
* @throws {PipelineExecutionError} @@@
|
|
24
|
+
* @private within the repository used in `createPipelineExecutor`
|
|
25
|
+
*/
|
|
26
|
+
export declare function mapAvailableToExpectedParameters(options: MakeapAvailableToExpectedParametersOptions): Readonly<Record<string_parameter_name, string_parameter_value>>;
|
|
27
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Parameters } from '
|
|
2
|
-
import type { string_template } from '
|
|
1
|
+
import type { Parameters } from '../../types/typeAliases';
|
|
2
|
+
import type { string_template } from '../../types/typeAliases';
|
|
3
3
|
/**
|
|
4
4
|
* Replaces parameters in template with values from parameters object
|
|
5
5
|
*
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { string_parameter_name } from '../../../types/typeAliases';
|
|
2
|
+
/**
|
|
3
|
+
* Function `validateParameterName` will @@@
|
|
4
|
+
*
|
|
5
|
+
* @param parameterName @@@
|
|
6
|
+
* @returns @@@
|
|
7
|
+
* @throws {ParseError} @@@
|
|
8
|
+
* @private within the repository
|
|
9
|
+
*/
|
|
10
|
+
export declare function validateParameterName(parameterName: string): string_parameter_name;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promptbook/types",
|
|
3
|
-
"version": "0.69.0-
|
|
3
|
+
"version": "0.69.0-10",
|
|
4
4
|
"description": "Supercharge your use of large language models",
|
|
5
5
|
"private": false,
|
|
6
6
|
"sideEffects": false,
|
|
@@ -45,6 +45,6 @@
|
|
|
45
45
|
],
|
|
46
46
|
"typings": "./esm/typings/src/_packages/types.index.d.ts",
|
|
47
47
|
"peerDependencies": {
|
|
48
|
-
"@promptbook/core": "0.69.0-
|
|
48
|
+
"@promptbook/core": "0.69.0-10"
|
|
49
49
|
}
|
|
50
50
|
}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import type { PipelineJson } from '../types/PipelineJson/PipelineJson';
|
|
2
|
-
import type { ExecutionTools } from './ExecutionTools';
|
|
3
|
-
import type { PipelineExecutor } from './PipelineExecutor';
|
|
4
|
-
type CreatePipelineExecutorSettings = {
|
|
5
|
-
/**
|
|
6
|
-
* When executor does not satisfy expectations it will be retried this amount of times
|
|
7
|
-
*
|
|
8
|
-
* @default MAX_EXECUTION_ATTEMPTS
|
|
9
|
-
*/
|
|
10
|
-
readonly maxExecutionAttempts?: number;
|
|
11
|
-
/**
|
|
12
|
-
* Maximum number of tasks running in parallel
|
|
13
|
-
*
|
|
14
|
-
* @default MAX_PARALLEL_COUNT
|
|
15
|
-
*/
|
|
16
|
-
readonly maxParallelCount?: number;
|
|
17
|
-
/**
|
|
18
|
-
* If true, the preparation logs additional information
|
|
19
|
-
*
|
|
20
|
-
* @default false
|
|
21
|
-
*/
|
|
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;
|
|
33
|
-
};
|
|
34
|
-
/**
|
|
35
|
-
* Options for `createPipelineExecutor`
|
|
36
|
-
*/
|
|
37
|
-
interface CreatePipelineExecutorOptions {
|
|
38
|
-
/**
|
|
39
|
-
* The pipeline to be executed
|
|
40
|
-
*/
|
|
41
|
-
readonly pipeline: PipelineJson;
|
|
42
|
-
/**
|
|
43
|
-
* The execution tools to be used during the execution of the pipeline
|
|
44
|
-
*/
|
|
45
|
-
readonly tools: ExecutionTools;
|
|
46
|
-
/**
|
|
47
|
-
* Optional settings for the pipeline executor
|
|
48
|
-
*/
|
|
49
|
-
readonly settings?: Partial<CreatePipelineExecutorSettings>;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Creates executor function from pipeline and execution tools.
|
|
53
|
-
*
|
|
54
|
-
* @returns The executor function
|
|
55
|
-
* @throws {PipelineLogicError} on logical error in the pipeline
|
|
56
|
-
* @public exported from `@promptbook/core`
|
|
57
|
-
*/
|
|
58
|
-
export declare function createPipelineExecutor(options: CreatePipelineExecutorOptions): PipelineExecutor;
|
|
59
|
-
export {};
|
|
60
|
-
/**
|
|
61
|
-
* TODO: !!! Identify not only pipeline BUT exact template ${block(pipelineIdentification)}
|
|
62
|
-
* TODO: Use isVerbose here (not only pass to `preparePipeline`)
|
|
63
|
-
* TODO: [🧠][🌳] Use here `countTotalUsage` and put preparation and prepared pipiline to report
|
|
64
|
-
* TODO: [🪂] Use maxParallelCount here (not only pass to `preparePipeline`)
|
|
65
|
-
* TODO: [♈] Probbably move expectations from templates to parameters
|
|
66
|
-
* TODO: [🧠] When not meet expectations in DIALOG_TEMPLATE, make some way to tell the user
|
|
67
|
-
* TODO: [👧] Strongly type the executors to avoid need of remove nullables whtn noUncheckedIndexedAccess in tsconfig.json
|
|
68
|
-
* Note: CreatePipelineExecutorOptions are just connected to PipelineExecutor so do not extract to types folder
|
|
69
|
-
* TODO: [🧠][3] transparent = (report intermediate parameters) / opaque execution = (report only output parameters) progress reporting mode
|
|
70
|
-
* TODO: [🛠] Actions, instruments (and maybe knowledge) => Functions and tools
|
|
71
|
-
* TODO: [🧠][💷] `assertsExecutionSuccessful` should be the method of `PipelineExecutor` result BUT maybe NOT to preserve pure JSON object
|
|
72
|
-
*/
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { FormatDefinition } from '../_common/FormatDefinition';
|
|
2
|
-
/**
|
|
3
|
-
* Definition for list of multiple items
|
|
4
|
-
*
|
|
5
|
-
* Note: list is just a string with multiple lines or multiple items separated by comma
|
|
6
|
-
*
|
|
7
|
-
* @private still in development [🏢]
|
|
8
|
-
*/
|
|
9
|
-
export declare const ListFormatDefinition: FormatDefinition<string, string, object>;
|
|
10
|
-
/**
|
|
11
|
-
* TODO: [🍓] In `ListFormatDefinition` implement simple `isValid`
|
|
12
|
-
* TODO: [🍓] In `ListFormatDefinition` implement partial `canBeValid`
|
|
13
|
-
* TODO: [🍓] In `ListFormatDefinition` implement `heal
|
|
14
|
-
* TODO: [🍓] In `ListFormatDefinition` implement `extractValues`
|
|
15
|
-
* TODO: [🏢] Allow to expect something inside each item of list and other formats
|
|
16
|
-
*/
|
|
File without changes
|
|
File without changes
|
|
File without changes
|