@promptbook/remote-server 0.72.0-0 → 0.72.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 +5 -6
- package/esm/index.es.js +18 -7
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/_packages/cli.index.d.ts +4 -0
- package/esm/typings/src/_packages/core.index.d.ts +11 -1
- package/esm/typings/src/_packages/openai.index.d.ts +4 -0
- package/esm/typings/src/_packages/types.index.d.ts +12 -0
- package/esm/typings/src/_packages/utils.index.d.ts +4 -4
- package/esm/typings/src/commands/FOREACH/ForeachCommand.d.ts +3 -2
- package/esm/typings/src/commands/FOREACH/ForeachJson.d.ts +23 -0
- package/esm/typings/src/commands/FOREACH/foreachCommandParser.d.ts +1 -1
- package/esm/typings/src/commands/_common/types/CommandParser.d.ts +16 -1
- package/esm/typings/src/config.d.ts +14 -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 +9 -8
- package/esm/typings/src/execution/createPipelineExecutor/$OngoingTemplateResult.d.ts +45 -0
- package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorOptions.d.ts +20 -0
- package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorSettings.d.ts +40 -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 +19 -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 +14 -15
- package/esm/typings/src/formats/_common/FormatSubvalueDefinition.d.ts +30 -0
- package/esm/typings/src/formats/csv/{ListFormatDefinition.d.ts → CsvFormatDefinition.d.ts} +6 -3
- package/esm/typings/src/formats/csv/CsvSettings.d.ts +13 -0
- package/esm/typings/src/formats/index.d.ts +1 -1
- package/esm/typings/src/formats/json/JsonFormatDefinition.d.ts +4 -3
- package/esm/typings/src/formats/text/TextFormatDefinition.d.ts +19 -0
- package/esm/typings/src/formats/xml/XmlFormatDefinition.d.ts +4 -3
- package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +1 -1
- package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionToolsOptions.d.ts +1 -1
- package/esm/typings/src/llm-providers/openai/OpenAiExecutionTools.d.ts +9 -0
- package/esm/typings/src/llm-providers/openai/createOpenAiAssistantExecutionTools.d.ts +15 -0
- package/esm/typings/src/llm-providers/openai/register-configuration.d.ts +9 -0
- package/esm/typings/src/llm-providers/openai/register-constructor.d.ts +9 -0
- 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/organization/{f.d.ts → empty_object.d.ts} +5 -1
- package/esm/typings/src/utils/organization/just_empty_object.d.ts +12 -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 +17 -13
- package/umd/index.umd.js +18 -7
- package/umd/index.umd.js.map +1 -1
- 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
|
@@ -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
|
* @@@
|
|
@@ -14,7 +15,7 @@ export type PipelineExecutorResult = {
|
|
|
14
15
|
*
|
|
15
16
|
* Note: If the execution was not successful, there are only some of the result parameters
|
|
16
17
|
*/
|
|
17
|
-
readonly outputParameters: Parameters
|
|
18
|
+
readonly outputParameters: Readonly<Parameters>;
|
|
18
19
|
/**
|
|
19
20
|
* Whether the execution was successful, details are aviable in `executionReport`
|
|
20
21
|
*/
|
|
@@ -22,26 +23,26 @@ export type PipelineExecutorResult = {
|
|
|
22
23
|
/**
|
|
23
24
|
* Added usage of whole execution, detailed usage is aviable in `executionReport`
|
|
24
25
|
*/
|
|
25
|
-
readonly usage: PromptResultUsage
|
|
26
|
+
readonly usage: ReadonlyDeep<PromptResultUsage>;
|
|
26
27
|
/**
|
|
27
28
|
* Errors that occured during the execution, details are aviable in `executionReport`
|
|
28
29
|
*/
|
|
29
|
-
readonly errors: Array<ErrorJson
|
|
30
|
+
readonly errors: ReadonlyDeep<Array<ErrorJson>>;
|
|
30
31
|
/**
|
|
31
32
|
* Warnings that occured during the execution, details are aviable in `executionReport`
|
|
32
33
|
*/
|
|
33
|
-
readonly warnings: Array<ErrorJson
|
|
34
|
+
readonly warnings: ReadonlyDeep<Array<ErrorJson>>;
|
|
34
35
|
/**
|
|
35
36
|
* The report of the execution with all details
|
|
36
37
|
*/
|
|
37
|
-
readonly executionReport: ExecutionReportJson
|
|
38
|
+
readonly executionReport: ReadonlyDeep<ExecutionReportJson>;
|
|
38
39
|
/**
|
|
39
40
|
* The prepared pipeline that was used for the execution
|
|
40
41
|
*
|
|
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
|
/**
|
|
47
48
|
* TODO: [🧠] Should this file be in /execution or /types folder?
|
|
@@ -0,0 +1,45 @@
|
|
|
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
|
+
/**
|
|
14
|
+
* @@@
|
|
15
|
+
*/
|
|
16
|
+
$prompt?: Prompt;
|
|
17
|
+
/**
|
|
18
|
+
* @@@
|
|
19
|
+
*/
|
|
20
|
+
$chatResult?: ChatPromptResult;
|
|
21
|
+
/**
|
|
22
|
+
* @@@
|
|
23
|
+
*/
|
|
24
|
+
$completionResult?: CompletionPromptResult;
|
|
25
|
+
/**
|
|
26
|
+
* @@@
|
|
27
|
+
*/
|
|
28
|
+
$embeddingResult?: EmbeddingPromptResult;
|
|
29
|
+
/**
|
|
30
|
+
* @@@
|
|
31
|
+
*/
|
|
32
|
+
$result: PromptResult | null;
|
|
33
|
+
/**
|
|
34
|
+
* @@@
|
|
35
|
+
*/
|
|
36
|
+
$resultString: string | null;
|
|
37
|
+
/**
|
|
38
|
+
* @@@
|
|
39
|
+
*/
|
|
40
|
+
$expectError: ExpectError | null;
|
|
41
|
+
/**
|
|
42
|
+
* @@@
|
|
43
|
+
*/
|
|
44
|
+
$scriptPipelineExecutionErrors: Array<Error>;
|
|
45
|
+
};
|
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,40 @@
|
|
|
1
|
+
import type { CsvSettings } from '../../formats/csv/CsvSettings';
|
|
2
|
+
export type CreatePipelineExecutorSettings = {
|
|
3
|
+
/**
|
|
4
|
+
* When executor does not satisfy expectations it will be retried this amount of times
|
|
5
|
+
*
|
|
6
|
+
* @default MAX_EXECUTION_ATTEMPTS
|
|
7
|
+
*/
|
|
8
|
+
readonly maxExecutionAttempts: number;
|
|
9
|
+
/**
|
|
10
|
+
* Maximum number of tasks running in parallel
|
|
11
|
+
*
|
|
12
|
+
* @default MAX_PARALLEL_COUNT
|
|
13
|
+
*/
|
|
14
|
+
readonly maxParallelCount: number;
|
|
15
|
+
/**
|
|
16
|
+
* If true, the preparation logs additional information
|
|
17
|
+
*
|
|
18
|
+
* @default false
|
|
19
|
+
*/
|
|
20
|
+
readonly isVerbose: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Settings for CSV format
|
|
23
|
+
*
|
|
24
|
+
* @default DEFAULT_CSV_SETTINGS
|
|
25
|
+
*/
|
|
26
|
+
readonly csvSettings: CsvSettings;
|
|
27
|
+
/**
|
|
28
|
+
* If you pass fully prepared pipeline, this does not matter
|
|
29
|
+
*
|
|
30
|
+
* Otherwise:
|
|
31
|
+
* If false or not set, warning is shown when pipeline is not prepared
|
|
32
|
+
* If true, warning is suppressed
|
|
33
|
+
*
|
|
34
|
+
* @default false
|
|
35
|
+
*/
|
|
36
|
+
readonly isNotPreparedWarningSupressed: boolean;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* TODO: [🤹♂️] More granular setting for limits of execution + better waiting for queue
|
|
40
|
+
*/
|
|
@@ -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
|
+
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,19 @@
|
|
|
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
|
+
*/
|
|
@@ -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: Readonly<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,27 @@
|
|
|
1
1
|
import type { string_mime_type } from '../../types/typeAliases';
|
|
2
2
|
import type { string_name } from '../../types/typeAliases';
|
|
3
|
+
import type { string_SCREAMING_CASE } from '../../utils/normalization/normalizeTo_SCREAMING_CASE';
|
|
4
|
+
import type { empty_object } from '../../utils/organization/empty_object';
|
|
5
|
+
import type { FormatSubvalueDefinition } from './FormatSubvalueDefinition';
|
|
3
6
|
/**
|
|
4
7
|
* A format definition is a set of functions that define how to validate, heal and convert response from LLM
|
|
5
8
|
*
|
|
9
|
+
* @@@ Describe setting vs schema
|
|
10
|
+
*
|
|
6
11
|
* @see https://github.com/webgptorg/promptbook/discussions/36
|
|
7
12
|
* @private still in development [🏢]
|
|
8
13
|
*/
|
|
9
|
-
export type FormatDefinition<TValue extends TPartialValue, TPartialValue extends string, TSchema extends
|
|
14
|
+
export type FormatDefinition<TValue extends TPartialValue, TPartialValue extends string, TSettings extends empty_object, TSchema extends empty_object> = {
|
|
10
15
|
/**
|
|
11
16
|
* The name of the format used in .ptbk.md files
|
|
12
17
|
*
|
|
13
18
|
* @sample "JSON"
|
|
14
19
|
*/
|
|
15
|
-
readonly
|
|
20
|
+
readonly formatName: string_name & string_SCREAMING_CASE;
|
|
16
21
|
/**
|
|
17
|
-
* Aliases for the
|
|
22
|
+
* Aliases for the `formatName`
|
|
18
23
|
*/
|
|
19
|
-
readonly aliases?: Array<string_name>;
|
|
24
|
+
readonly aliases?: Array<string_name & string_SCREAMING_CASE>;
|
|
20
25
|
/**
|
|
21
26
|
* The mime type of the format (if any)
|
|
22
27
|
*
|
|
@@ -29,7 +34,7 @@ export type FormatDefinition<TValue extends TPartialValue, TPartialValue extends
|
|
|
29
34
|
* @param value The value to check, for example "{\"foo\": true}"
|
|
30
35
|
* @param schema Optional schema to do extra validation
|
|
31
36
|
*/
|
|
32
|
-
isValid(value: string, schema?: TSchema): value is TValue;
|
|
37
|
+
isValid(value: string, settings?: TSettings, schema?: TSchema): value is TValue;
|
|
33
38
|
/**
|
|
34
39
|
* Check if a first part of a value is valid
|
|
35
40
|
*
|
|
@@ -38,7 +43,7 @@ export type FormatDefinition<TValue extends TPartialValue, TPartialValue extends
|
|
|
38
43
|
* @param partialValue Partial value to check, for example "{\"foo\": t"
|
|
39
44
|
* @param schema Optional schema to do extra validation
|
|
40
45
|
*/
|
|
41
|
-
canBeValid(partialValue: string, schema?: TSchema): partialValue is TPartialValue;
|
|
46
|
+
canBeValid(partialValue: string, settings?: TSettings, schema?: TSchema): partialValue is TPartialValue;
|
|
42
47
|
/**
|
|
43
48
|
* Heal a value to make it valid if possible
|
|
44
49
|
*
|
|
@@ -49,17 +54,11 @@ export type FormatDefinition<TValue extends TPartialValue, TPartialValue extends
|
|
|
49
54
|
* @param scheme
|
|
50
55
|
* @throws {Error} If the value cannot be healed
|
|
51
56
|
*/
|
|
52
|
-
heal(value: string, scheme?: TSchema): TValue;
|
|
57
|
+
heal(value: string, settings?: TSettings, scheme?: TSchema): TValue;
|
|
53
58
|
/**
|
|
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"]
|
|
59
|
+
* @@@
|
|
61
60
|
*/
|
|
62
|
-
|
|
61
|
+
readonly subvalueDefinitions: Array<FormatSubvalueDefinition<TValue, TSettings>>;
|
|
63
62
|
};
|
|
64
63
|
/**
|
|
65
64
|
* TODO: [♏] Add some prepare hook to modify prompt according to the format
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Promisable } from 'type-fest';
|
|
2
|
+
import type { Parameters } from '../../types/typeAliases';
|
|
3
|
+
import type { string_name } from '../../types/typeAliases';
|
|
4
|
+
import type { string_SCREAMING_CASE } from '../../utils/normalization/normalizeTo_SCREAMING_CASE';
|
|
5
|
+
import type { empty_object } from '../../utils/organization/empty_object';
|
|
6
|
+
/**
|
|
7
|
+
* @@@
|
|
8
|
+
*/
|
|
9
|
+
export type FormatSubvalueDefinition<TValue extends string, TSettings extends empty_object> = {
|
|
10
|
+
/**
|
|
11
|
+
* The name of the format used in .ptbk.md files
|
|
12
|
+
*
|
|
13
|
+
* @sample "CELL"
|
|
14
|
+
*/
|
|
15
|
+
readonly subvalueName: string_name & string_SCREAMING_CASE;
|
|
16
|
+
/**
|
|
17
|
+
* Aliases for the `subvalueName`
|
|
18
|
+
*/
|
|
19
|
+
readonly aliases?: Array<string_name & string_SCREAMING_CASE>;
|
|
20
|
+
/**
|
|
21
|
+
* Maps values
|
|
22
|
+
*
|
|
23
|
+
* For example, if you have a JSON object and you want to map all values to uppercase
|
|
24
|
+
* Or iterate over all CSV cells @@@
|
|
25
|
+
*/
|
|
26
|
+
mapValues(value: TValue, settings: TSettings, mapCallback: (subvalues: Parameters, index: number) => Promisable<string>): Promise<string>;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Note: [👩🏾🤝🧑🏽]
|
|
30
|
+
*/
|