@promptbook/openai 0.72.0-9 → 0.73.0
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 +43 -256
- package/esm/index.es.js +26 -25
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/_packages/core.index.d.ts +24 -18
- package/esm/typings/src/_packages/node.index.d.ts +2 -0
- package/esm/typings/src/_packages/types.index.d.ts +18 -12
- package/esm/typings/src/_packages/utils.index.d.ts +2 -2
- package/esm/typings/src/collection/PipelineCollection.d.ts +1 -1
- package/esm/typings/src/collection/SimplePipelineCollection.d.ts +2 -2
- package/esm/typings/src/collection/collectionToJson.d.ts +1 -1
- package/esm/typings/src/collection/constructors/createCollectionFromJson.d.ts +1 -1
- package/esm/typings/src/collection/constructors/createCollectionFromPromise.d.ts +1 -1
- package/esm/typings/src/commands/TEMPLATE/TemplateTypes.d.ts +1 -1
- package/esm/typings/src/commands/_common/types/CommandParser.d.ts +5 -5
- package/esm/typings/src/config.d.ts +22 -15
- package/esm/typings/src/conversion/prettify/renderPipelineMermaidOptions.d.ts +3 -3
- package/esm/typings/src/conversion/utils/stringifyPipelineJson.d.ts +1 -1
- package/esm/typings/src/conversion/validation/_importPipeline.d.ts +1 -1
- package/esm/typings/src/conversion/validation/validatePipeline.d.ts +2 -2
- package/esm/typings/src/executables/$provideExecutablesForNode.d.ts +12 -0
- package/esm/typings/src/executables/apps/locateLibreoffice.d.ts +11 -0
- package/esm/typings/src/executables/apps/locatePandoc.d.ts +11 -0
- package/esm/typings/src/executables/locateApp.d.ts +33 -0
- package/esm/typings/src/executables/locateApp.test.d.ts +1 -0
- package/esm/typings/src/executables/platforms/locateAppOnLinux.d.ts +12 -0
- package/esm/typings/src/executables/platforms/locateAppOnMacOs.d.ts +12 -0
- package/esm/typings/src/executables/platforms/locateAppOnWindows.d.ts +12 -0
- package/esm/typings/src/execution/EmbeddingVector.d.ts +1 -1
- package/esm/typings/src/execution/Executables.d.ts +18 -0
- package/esm/typings/src/execution/ExecutionTools.d.ts +9 -3
- package/esm/typings/src/execution/FilesystemTools.d.ts +1 -1
- package/esm/typings/src/execution/LlmExecutionTools.d.ts +2 -2
- package/esm/typings/src/execution/PipelineExecutorResult.d.ts +2 -2
- package/esm/typings/src/execution/assertsExecutionSuccessful.d.ts +3 -2
- package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorOptions.d.ts +29 -6
- package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +2 -11
- package/esm/typings/src/execution/createPipelineExecutor/20-executeTemplate.d.ts +4 -13
- package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +9 -14
- package/esm/typings/src/execution/createPipelineExecutor/{getSamplesForTemplate.d.ts → getExamplesForTemplate.d.ts} +1 -1
- package/esm/typings/src/execution/translation/automatic-translate/automatic-translators/LindatAutomaticTranslator.d.ts +11 -3
- package/esm/typings/src/execution/utils/addUsage.d.ts +1 -1
- package/esm/typings/src/execution/utils/forEachAsync.d.ts +1 -1
- package/esm/typings/src/formats/_common/FormatDefinition.d.ts +4 -4
- package/esm/typings/src/formats/_common/FormatSubvalueDefinition.d.ts +3 -3
- package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsForCli.d.ts +2 -2
- package/esm/typings/src/llm-providers/_common/register/LlmToolsConfiguration.d.ts +1 -1
- package/esm/typings/src/llm-providers/_common/register/createLlmToolsFromConfiguration.d.ts +7 -0
- package/esm/typings/src/llm-providers/_common/utils/cache/CacheLlmToolsOptions.d.ts +4 -1
- package/esm/typings/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionTools.d.ts +1 -1
- package/esm/typings/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionToolsOptions.d.ts +2 -2
- package/esm/typings/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +1 -1
- package/esm/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionTools.d.ts +1 -1
- package/esm/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionToolsOptions.d.ts +2 -1
- package/esm/typings/src/llm-providers/langtail/LangtailExecutionTools.d.ts +1 -1
- package/esm/typings/src/llm-providers/mocked/$fakeTextToExpectations.d.ts +1 -1
- package/esm/typings/src/llm-providers/mocked/MockedEchoLlmExecutionTools.d.ts +1 -1
- package/esm/typings/src/llm-providers/mocked/MockedFackedLlmExecutionTools.d.ts +1 -1
- package/esm/typings/src/llm-providers/multiple/MultipleLlmExecutionTools.d.ts +4 -5
- package/esm/typings/src/llm-providers/multiple/joinLlmExecutionTools.d.ts +1 -1
- package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +0 -1
- package/esm/typings/src/llm-providers/openai/OpenAiExecutionTools.d.ts +2 -2
- package/esm/typings/src/llm-providers/openai/OpenAiExecutionToolsOptions.d.ts +2 -2
- package/esm/typings/src/llm-providers/openai/openai-models.d.ts +1 -1
- package/esm/typings/src/llm-providers/remote/RemoteLlmExecutionTools.d.ts +4 -4
- package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_ListModels_Request.d.ts +15 -6
- package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_ListModels_Response.d.ts +4 -4
- package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_Prompt_Request.d.ts +6 -12
- package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_Prompt_Response.d.ts +3 -3
- package/esm/typings/src/llm-providers/remote/interfaces/RemoteLlmExecutionToolsOptions.d.ts +9 -14
- package/esm/typings/src/llm-providers/remote/interfaces/RemoteServerOptions.d.ts +23 -8
- package/esm/typings/src/llm-providers/remote/startRemoteServer.d.ts +1 -1
- package/esm/typings/src/personas/preparePersona.d.ts +1 -1
- package/esm/typings/src/prepare/PrepareAndScrapeOptions.d.ts +4 -23
- package/esm/typings/src/prepare/isPipelinePrepared.d.ts +2 -2
- package/esm/typings/src/prepare/prepareTemplates.d.ts +2 -2
- package/esm/typings/src/scrapers/_common/Scraper.d.ts +2 -9
- package/esm/typings/src/scrapers/_common/prepareKnowledgePieces.d.ts +1 -1
- package/esm/typings/src/scrapers/_common/register/$provideScrapersForBrowser.d.ts +2 -2
- package/esm/typings/src/scrapers/_common/register/$provideScrapersForNode.d.ts +2 -2
- package/esm/typings/src/scrapers/_common/register/ScraperAndConverterMetadata.d.ts +2 -2
- package/esm/typings/src/scrapers/_common/utils/getScraperIntermediateSource.d.ts +2 -2
- package/esm/typings/src/scrapers/_common/utils/makeKnowledgeSourceHandler.d.ts +1 -1
- package/esm/typings/src/scrapers/document/DocumentScraper.d.ts +2 -2
- package/esm/typings/src/scrapers/document/DocumentScraper.test.d.ts +1 -1
- package/esm/typings/src/scrapers/document/createDocumentScraper.d.ts +1 -1
- package/esm/typings/src/scrapers/document/register-metadata.d.ts +1 -1
- package/esm/typings/src/scrapers/document-legacy/LegacyDocumentScraper.d.ts +3 -3
- package/esm/typings/src/scrapers/document-legacy/LegacyDocumentScraper.test.d.ts +1 -1
- package/esm/typings/src/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +1 -1
- package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +1 -1
- package/esm/typings/src/scrapers/markdown/MarkdownScraper.d.ts +1 -1
- package/esm/typings/src/scrapers/markdown/MarkdownScraper.test.d.ts +1 -1
- package/esm/typings/src/scrapers/markdown/createMarkdownScraper.d.ts +1 -1
- package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +1 -1
- package/esm/typings/src/scrapers/pdf/PdfScraper.d.ts +2 -2
- package/esm/typings/src/scrapers/pdf/createPdfScraper.d.ts +1 -1
- package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +1 -1
- package/esm/typings/src/scrapers/website/WebsiteScraper.d.ts +6 -3
- package/esm/typings/src/scrapers/website/createWebsiteScraper.d.ts +1 -1
- package/esm/typings/src/scrapers/website/register-metadata.d.ts +1 -1
- package/esm/typings/src/scrapers/website/utils/createShowdownConverter.d.ts +7 -0
- package/esm/typings/src/scrapers/website/utils/createShowdownConverter.test.d.ts +1 -0
- package/esm/typings/src/scripting/javascript/utils/preserve.d.ts +1 -1
- package/esm/typings/src/storage/file-cache-storage/utils/nameToSubfolderPath.d.ts +1 -1
- package/esm/typings/src/types/Arrayable.d.ts +1 -1
- package/esm/typings/src/types/IntermediateFilesStrategy.d.ts +7 -0
- package/esm/typings/src/types/PipelineJson/KnowledgePieceJson.d.ts +4 -4
- package/esm/typings/src/types/PipelineJson/KnowledgeSourceJson.d.ts +1 -1
- package/esm/typings/src/types/PipelineJson/ParameterJson.d.ts +2 -2
- package/esm/typings/src/types/PipelineJson/PersonaJson.d.ts +1 -1
- package/esm/typings/src/types/PipelineJson/PreparationJson.d.ts +1 -1
- package/esm/typings/src/types/PipelineJson/TemplateJsonCommon.d.ts +2 -2
- package/esm/typings/src/types/Prompt.d.ts +2 -1
- package/esm/typings/src/types/execution-report/ExecutionReportJson.d.ts +1 -1
- package/esm/typings/src/types/typeAliases.d.ts +11 -8
- package/esm/typings/src/utils/$Register.d.ts +1 -1
- package/esm/typings/src/utils/FromtoItems.d.ts +1 -1
- package/esm/typings/src/utils/arrayableToArray.d.ts +1 -1
- package/esm/typings/src/utils/emojis.d.ts +1 -1
- package/esm/typings/src/utils/execCommand/$execCommand.d.ts +4 -2
- package/esm/typings/src/utils/execCommand/$execCommandNormalizeOptions.d.ts +12 -0
- package/esm/typings/src/utils/execCommand/$execCommands.d.ts +1 -0
- package/esm/typings/src/utils/execCommand/ExecCommandOptions.d.ts +45 -0
- package/esm/typings/src/utils/expectation-counters/countSentences.d.ts +1 -1
- package/esm/typings/src/utils/files/isExecutable.d.ts +11 -0
- package/esm/typings/src/utils/markdown/extractAllBlocksFromMarkdown.d.ts +1 -1
- package/esm/typings/src/utils/markdown/splitMarkdownIntoSections.d.ts +1 -1
- package/esm/typings/src/utils/normalization/IKeywords.d.ts +2 -2
- package/esm/typings/src/utils/normalization/parseKeywords.d.ts +2 -2
- package/esm/typings/src/utils/normalization/parseKeywordsFromString.d.ts +2 -2
- package/esm/typings/src/utils/normalization/searchKeywords.d.ts +2 -2
- package/esm/typings/src/utils/organization/TODO_USE.d.ts +1 -1
- package/esm/typings/src/utils/organization/keepUnused.d.ts +1 -1
- package/esm/typings/src/utils/random/$randomSeed.d.ts +1 -1
- package/esm/typings/src/utils/sets/intersection.d.ts +1 -1
- package/esm/typings/src/utils/sets/union.d.ts +1 -1
- package/esm/typings/src/utils/unwrapResult.d.ts +4 -4
- package/package.json +6 -4
- package/umd/index.umd.js +26 -25
- package/umd/index.umd.js.map +1 -1
- package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorSettings.d.ts +0 -29
- package/esm/typings/src/scrapers/website/utils/markdownConverter.d.ts +0 -12
- package/esm/typings/src/utils/execCommand/IExecCommandOptions.d.ts +0 -23
- package/esm/typings/src/utils/execCommand/execCommandNormalizeOptions.d.ts +0 -10
- /package/esm/typings/src/{scrapers/website/WebsiteScraper.test.d.ts → executables/apps/locateLibreoffice.test.d.ts} +0 -0
- /package/esm/typings/src/{scrapers/website/utils/markdownConverter.test.d.ts → executables/apps/locatePandoc.test.d.ts} +0 -0
|
@@ -350,12 +350,6 @@ export type string_uri = string;
|
|
|
350
350
|
* For example `"9SeSQTupmQHwuSrLi"`
|
|
351
351
|
*/
|
|
352
352
|
export type string_uri_part = string;
|
|
353
|
-
/**
|
|
354
|
-
* Semantic helper, ID of the board used in URL and API
|
|
355
|
-
*
|
|
356
|
-
* For example `"9SeSQTupmQHwuSrLi"` <- TODO: !! Update
|
|
357
|
-
*/
|
|
358
|
-
export type string_uriid = string_uri_part;
|
|
359
353
|
/**
|
|
360
354
|
* Semantic helper
|
|
361
355
|
*
|
|
@@ -399,9 +393,17 @@ export type string_uuid = string & {
|
|
|
399
393
|
readonly _type: 'uuid';
|
|
400
394
|
};
|
|
401
395
|
/**
|
|
402
|
-
*
|
|
396
|
+
* Application identifier
|
|
397
|
+
*
|
|
398
|
+
* @@@
|
|
399
|
+
*/
|
|
400
|
+
export type string_app_id = id;
|
|
401
|
+
/**
|
|
402
|
+
* End user identifier
|
|
403
|
+
*
|
|
404
|
+
* @@@
|
|
403
405
|
*/
|
|
404
|
-
export type string_user_id =
|
|
406
|
+
export type string_user_id = id;
|
|
405
407
|
/**
|
|
406
408
|
* Semantic helper
|
|
407
409
|
*
|
|
@@ -523,6 +525,7 @@ export type string_javascript_name = string;
|
|
|
523
525
|
* Semantic helper; For example "unwrapResult" or "spaceTrim"
|
|
524
526
|
*/
|
|
525
527
|
export type string_postprocessing_function_name = string;
|
|
528
|
+
export type id = string | number;
|
|
526
529
|
export type string_token = string;
|
|
527
530
|
export type string_license_token = string_token;
|
|
528
531
|
export type string_password = string;
|
|
@@ -34,6 +34,6 @@ export declare class $Register<TRegistered extends Registered> {
|
|
|
34
34
|
private readonly registerName;
|
|
35
35
|
private readonly storage;
|
|
36
36
|
constructor(registerName: string_name);
|
|
37
|
-
list():
|
|
37
|
+
list(): ReadonlyArray<TRegistered>;
|
|
38
38
|
register(registered: TRegistered): Registration;
|
|
39
39
|
}
|
|
@@ -8,4 +8,4 @@ import type { Arrayable } from '../types/Arrayable';
|
|
|
8
8
|
*
|
|
9
9
|
* @private internal utility
|
|
10
10
|
*/
|
|
11
|
-
export declare function arrayableToArray<TItem>(input?: Arrayable<TItem>):
|
|
11
|
+
export declare function arrayableToArray<TItem>(input?: Arrayable<TItem>): ReadonlyArray<TItem>;
|
|
@@ -8,7 +8,7 @@ import type { string_char_emoji } from '../types/typeAliasEmoji';
|
|
|
8
8
|
* @private within the repository
|
|
9
9
|
* @deprecated Use /\p{Extended_Pictographic}/ instead
|
|
10
10
|
*/
|
|
11
|
-
export declare const EMOJIS_IN_CATEGORIES: Record<string,
|
|
11
|
+
export declare const EMOJIS_IN_CATEGORIES: Record<string, ReadonlyArray<string_char_emoji>>;
|
|
12
12
|
/**
|
|
13
13
|
*
|
|
14
14
|
* All possible emoji chars like "🍆", "🍡", "🍤"...
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ExecCommandOptions } from './ExecCommandOptions';
|
|
2
2
|
/**
|
|
3
3
|
* Run one command in a shell
|
|
4
4
|
*
|
|
5
|
+
*
|
|
5
6
|
* Note: There are 2 similar functions in the codebase:
|
|
6
7
|
* - `$execCommand` which runs a single command
|
|
7
8
|
* - `$execCommands` which runs multiple commands
|
|
9
|
+
* Note: `$` is used to indicate that this function is not a pure function - it runs a command in a shell
|
|
8
10
|
*
|
|
9
11
|
* @public exported from `@promptbook/node`
|
|
10
12
|
*/
|
|
11
|
-
export declare function $execCommand(options:
|
|
13
|
+
export declare function $execCommand(options: ExecCommandOptions): Promise<string>;
|
|
12
14
|
/**
|
|
13
15
|
* Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
|
|
14
16
|
*/
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ExecCommandOptions } from './ExecCommandOptions';
|
|
2
|
+
import type { ExecCommandOptionsAdvanced } from './ExecCommandOptions';
|
|
3
|
+
/**
|
|
4
|
+
* Normalize options for `execCommand` and `execCommands`
|
|
5
|
+
*
|
|
6
|
+
* Note: `$` is used to indicate that this function behaves differently according to `process.platform`
|
|
7
|
+
*
|
|
8
|
+
* @private internal utility of `execCommand` and `execCommands`
|
|
9
|
+
*/
|
|
10
|
+
export declare function $execCommandNormalizeOptions(options: ExecCommandOptions): Pick<ExecCommandOptionsAdvanced, 'command' | 'args' | 'cwd' | 'crashOnError' | 'timeout' | 'isVerbose'> & {
|
|
11
|
+
humanReadableCommand: string;
|
|
12
|
+
};
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Note: There are 2 similar functions in the codebase:
|
|
5
5
|
* - `$execCommand` which runs a single command
|
|
6
6
|
* - `$execCommands` which runs multiple commands
|
|
7
|
+
* Note: `$` is used to indicate that this function is not a pure function - it runs a commands in a shell
|
|
7
8
|
*
|
|
8
9
|
* @public exported from `@promptbook/node`
|
|
9
10
|
*/
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated Use sth from type-fest or move this to type helpers
|
|
3
|
+
*/
|
|
4
|
+
type RequiredAndOptional<TBase, TRequired extends keyof TBase, TOptional extends keyof TBase> = Pick<TBase, TRequired> & Partial<Pick<TBase, TOptional>>;
|
|
5
|
+
/**
|
|
6
|
+
* Simple options for `execCommand`
|
|
7
|
+
*/
|
|
8
|
+
export type ExecCommandOptions = string | RequiredAndOptional<ExecCommandOptionsAdvanced, 'command', 'args' | 'cwd' | 'crashOnError' | 'timeout' | 'isVerbose'>;
|
|
9
|
+
/**
|
|
10
|
+
* Advanced options for `execCommand`
|
|
11
|
+
*/
|
|
12
|
+
export type ExecCommandOptionsAdvanced = {
|
|
13
|
+
/**
|
|
14
|
+
* Command to run
|
|
15
|
+
*/
|
|
16
|
+
readonly command: string;
|
|
17
|
+
/**
|
|
18
|
+
* Arguments for the command
|
|
19
|
+
*/
|
|
20
|
+
readonly args: string[];
|
|
21
|
+
/**
|
|
22
|
+
* Current working directory
|
|
23
|
+
*
|
|
24
|
+
* @default process.cwd()
|
|
25
|
+
*/
|
|
26
|
+
readonly cwd: string;
|
|
27
|
+
/**
|
|
28
|
+
* If `true` then the command will throw an error if the return code is not `0`
|
|
29
|
+
*/
|
|
30
|
+
readonly crashOnError: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Timeout in milliseconds
|
|
33
|
+
*/
|
|
34
|
+
readonly timeout: number;
|
|
35
|
+
/**
|
|
36
|
+
* If `true` then the command and entire CLI output will be logged to the console
|
|
37
|
+
*
|
|
38
|
+
* @default false
|
|
39
|
+
*/
|
|
40
|
+
readonly isVerbose?: boolean;
|
|
41
|
+
};
|
|
42
|
+
export {};
|
|
43
|
+
/**
|
|
44
|
+
* TODO: [⏳] Make DEFAULT_TIMEOUT_MS as global constant
|
|
45
|
+
*/
|
|
@@ -4,7 +4,7 @@ import type { ExpectationAmount } from '../../types/PipelineJson/Expectations';
|
|
|
4
4
|
*
|
|
5
5
|
* @public exported from `@promptbook/utils`
|
|
6
6
|
*/
|
|
7
|
-
export declare function splitIntoSentences(text: string):
|
|
7
|
+
export declare function splitIntoSentences(text: string): ReadonlyArray<string>;
|
|
8
8
|
/**
|
|
9
9
|
* Counts number of sentences in the text
|
|
10
10
|
*
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { FilesystemTools } from '../../execution/FilesystemTools';
|
|
2
|
+
/**
|
|
3
|
+
* Checks if the file is executable
|
|
4
|
+
*
|
|
5
|
+
* @private within the repository
|
|
6
|
+
*/
|
|
7
|
+
export declare function isExecutable(path: string, fs: FilesystemTools): Promise<boolean>;
|
|
8
|
+
/**
|
|
9
|
+
* Note: Not [~🟢~] because it is not directly dependent on `fs
|
|
10
|
+
* TODO: [🖇] What about symlinks?
|
|
11
|
+
*/
|
|
@@ -30,7 +30,7 @@ export type CodeBlock = {
|
|
|
30
30
|
* @throws {ParseError} if block is not closed properly
|
|
31
31
|
* @public exported from `@promptbook/markdown-utils`
|
|
32
32
|
*/
|
|
33
|
-
export declare function extractAllBlocksFromMarkdown(markdown: string_markdown):
|
|
33
|
+
export declare function extractAllBlocksFromMarkdown(markdown: string_markdown): ReadonlyArray<CodeBlock>;
|
|
34
34
|
/**
|
|
35
35
|
* TODO: Maybe name for `blockNotation` instead of '```' and '>'
|
|
36
36
|
*/
|
|
@@ -5,7 +5,7 @@ import type { string_markdown_section } from '../../types/typeAliases';
|
|
|
5
5
|
*
|
|
6
6
|
* @public exported from `@promptbook/markdown-utils`
|
|
7
7
|
*/
|
|
8
|
-
export declare function splitMarkdownIntoSections(markdown: string_markdown):
|
|
8
|
+
export declare function splitMarkdownIntoSections(markdown: string_markdown): ReadonlyArray<string_markdown_section>;
|
|
9
9
|
/**
|
|
10
10
|
* TODO: [🏛] This can be part of markdown builder
|
|
11
11
|
* Note: [🕞] In past (commit 42086e1603cbed506482997c00a8ee979af0a247) there was much more
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Semantic helper
|
|
3
3
|
*
|
|
4
4
|
* Keyword is string without diacritics in lowercase [a-z1-9]
|
|
5
|
-
* Words are splitted between multiple keywords @see
|
|
5
|
+
* Words are splitted between multiple keywords @see Keywords
|
|
6
6
|
*
|
|
7
7
|
* For example `"keyword"`
|
|
8
8
|
*
|
|
@@ -15,7 +15,7 @@ export type string_keyword = string;
|
|
|
15
15
|
*
|
|
16
16
|
* @public exported from `@promptbook/utils`
|
|
17
17
|
*/
|
|
18
|
-
export type
|
|
18
|
+
export type Keywords = Set<string_keyword>;
|
|
19
19
|
/**
|
|
20
20
|
* TODO: [🌮] Keywords with weight
|
|
21
21
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { really_unknown } from '../organization/really_unknown';
|
|
2
|
-
import type {
|
|
2
|
+
import type { Keywords } from './IKeywords';
|
|
3
3
|
/**
|
|
4
4
|
* Parses keywords from any object and recursively walks through
|
|
5
5
|
*
|
|
@@ -9,7 +9,7 @@ import type { IKeywords } from './IKeywords';
|
|
|
9
9
|
* @returns {Set} of keywords without diacritics in lowercase
|
|
10
10
|
* @public exported from `@promptbook/utils`
|
|
11
11
|
*/
|
|
12
|
-
export declare function parseKeywords(input: really_unknown):
|
|
12
|
+
export declare function parseKeywords(input: really_unknown): Keywords;
|
|
13
13
|
/**
|
|
14
14
|
* Note: Not using spread in input param because of keeping second parameter for options
|
|
15
15
|
* TODO: [🌺] Use some intermediate util splitWords
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Keywords } from './IKeywords';
|
|
2
2
|
/**
|
|
3
3
|
* Parses keywords from a string
|
|
4
4
|
*
|
|
@@ -6,4 +6,4 @@ import type { IKeywords } from './IKeywords';
|
|
|
6
6
|
* @returns {Set} of keywords without diacritics in lowercase
|
|
7
7
|
* @public exported from `@promptbook/utils`
|
|
8
8
|
*/
|
|
9
|
-
export declare function parseKeywordsFromString(input: string):
|
|
9
|
+
export declare function parseKeywordsFromString(input: string): Keywords;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Keywords } from './IKeywords';
|
|
2
2
|
/**
|
|
3
3
|
* @@@
|
|
4
4
|
*
|
|
@@ -7,4 +7,4 @@ import type { IKeywords } from './IKeywords';
|
|
|
7
7
|
* @returns
|
|
8
8
|
* @public exported from `@promptbook/utils`
|
|
9
9
|
*/
|
|
10
|
-
export declare function searchKeywords(haystack:
|
|
10
|
+
export declare function searchKeywords(haystack: Keywords, needle: Keywords): boolean;
|
|
@@ -13,4 +13,4 @@ import type { really_any } from './really_any';
|
|
|
13
13
|
* @returns void
|
|
14
14
|
* @private within the repository
|
|
15
15
|
*/
|
|
16
|
-
export declare function keepUnused<TTypeToKeep1 = really_any, TTypeToKeep2 = really_any, TTypeToKeep3 = really_any>(...valuesToKeep:
|
|
16
|
+
export declare function keepUnused<TTypeToKeep1 = really_any, TTypeToKeep2 = really_any, TTypeToKeep3 = really_any>(...valuesToKeep: ReadonlyArray<really_any>): void;
|
|
@@ -3,7 +3,7 @@ import type { number_seed } from '../../types/typeAliases';
|
|
|
3
3
|
* Generates random seed
|
|
4
4
|
*
|
|
5
5
|
* Note: `$` is used to indicate that this function is not a pure function - it is not deterministic
|
|
6
|
-
* Warning: This function is
|
|
6
|
+
* Warning: This function is NOT cryptographically secure (it uses Math.random internally)
|
|
7
7
|
* @public exported from `@promptbook/utils`
|
|
8
8
|
*/
|
|
9
9
|
export declare function $randomSeed(): number_seed;
|
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
* @deprecated use new javascript set methods instead @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set
|
|
5
5
|
* @public exported from `@promptbook/utils`
|
|
6
6
|
*/
|
|
7
|
-
export declare function intersection<TItem>(...sets:
|
|
7
|
+
export declare function intersection<TItem>(...sets: ReadonlyArray<Set<TItem>>): Set<TItem>;
|
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
* @deprecated use new javascript set methods instead @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set
|
|
5
5
|
* @public exported from `@promptbook/utils`
|
|
6
6
|
*/
|
|
7
|
-
export declare function union<TItem>(...sets:
|
|
7
|
+
export declare function union<TItem>(...sets: ReadonlyArray<Set<TItem>>): Set<TItem>;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Additional options for `unwrapResult`
|
|
3
3
|
*/
|
|
4
|
-
|
|
4
|
+
type UnwrapResultOptions = {
|
|
5
5
|
/**
|
|
6
6
|
* If true, the text is trimmed before processing
|
|
7
7
|
*/
|
|
8
|
-
isTrimmed?: boolean;
|
|
8
|
+
readonly isTrimmed?: boolean;
|
|
9
9
|
/**
|
|
10
10
|
* If true, the introduce sentence is removed
|
|
11
11
|
*
|
|
@@ -15,8 +15,8 @@ interface UnwrapResultOptions {
|
|
|
15
15
|
*
|
|
16
16
|
* @default true
|
|
17
17
|
*/
|
|
18
|
-
isIntroduceSentenceRemoved?: boolean;
|
|
19
|
-
}
|
|
18
|
+
readonly isIntroduceSentenceRemoved?: boolean;
|
|
19
|
+
};
|
|
20
20
|
/**
|
|
21
21
|
* Removes quotes and optional introduce text from a string
|
|
22
22
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promptbook/openai",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.73.0",
|
|
4
4
|
"description": "Supercharge your use of large language models",
|
|
5
5
|
"private": false,
|
|
6
6
|
"sideEffects": false,
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"contributors": [
|
|
12
12
|
"Pavol Hejný <me@pavolhejny.com> (https://www.pavolhejny.com/)"
|
|
13
13
|
],
|
|
14
|
+
"todo-0": "TODO: [❇️] Make better list of keywords",
|
|
14
15
|
"keywords": [
|
|
15
16
|
"ai",
|
|
16
17
|
"llm",
|
|
@@ -30,7 +31,8 @@
|
|
|
30
31
|
"o1",
|
|
31
32
|
"o1-mini",
|
|
32
33
|
"o1-preview",
|
|
33
|
-
"anthropic"
|
|
34
|
+
"anthropic",
|
|
35
|
+
"LLMOps"
|
|
34
36
|
],
|
|
35
37
|
"license": "CC-BY-4.0",
|
|
36
38
|
"bugs": {
|
|
@@ -51,11 +53,11 @@
|
|
|
51
53
|
"module": "./esm/index.es.js",
|
|
52
54
|
"typings": "./esm/typings/src/_packages/openai.index.d.ts",
|
|
53
55
|
"peerDependencies": {
|
|
54
|
-
"@promptbook/core": "0.
|
|
56
|
+
"@promptbook/core": "0.73.0"
|
|
55
57
|
},
|
|
56
58
|
"dependencies": {
|
|
57
59
|
"colors": "1.4.0",
|
|
58
60
|
"openai": "4.63.0",
|
|
59
|
-
"spacetrim": "0.11.
|
|
61
|
+
"spacetrim": "0.11.59"
|
|
60
62
|
}
|
|
61
63
|
}
|
package/umd/index.umd.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
/**
|
|
15
15
|
* The version of the Promptbook library
|
|
16
16
|
*/
|
|
17
|
-
var PROMPTBOOK_VERSION = '0.72.0
|
|
17
|
+
var PROMPTBOOK_VERSION = '0.72.0';
|
|
18
18
|
// TODO: [main] !!!! List here all the versions and annotate + put into script
|
|
19
19
|
|
|
20
20
|
/*! *****************************************************************************
|
|
@@ -463,10 +463,10 @@
|
|
|
463
463
|
'content',
|
|
464
464
|
'context',
|
|
465
465
|
'knowledge',
|
|
466
|
-
'
|
|
466
|
+
'examples',
|
|
467
467
|
'modelName',
|
|
468
468
|
'currentDate',
|
|
469
|
-
// <- TODO:
|
|
469
|
+
// <- TODO: list here all command names
|
|
470
470
|
// <- TODO: Add more like 'date', 'modelName',...
|
|
471
471
|
// <- TODO: Add [emoji] + instructions ACRY when adding new reserved parameter
|
|
472
472
|
]);
|
|
@@ -1421,7 +1421,6 @@
|
|
|
1421
1421
|
* @param options which are relevant are directly passed to the OpenAI client
|
|
1422
1422
|
*/
|
|
1423
1423
|
function OpenAiExecutionTools(options) {
|
|
1424
|
-
if (options === void 0) { options = {}; }
|
|
1425
1424
|
this.options = options;
|
|
1426
1425
|
/**
|
|
1427
1426
|
* OpenAI API client.
|
|
@@ -1449,8 +1448,8 @@
|
|
|
1449
1448
|
if (this.client === null) {
|
|
1450
1449
|
openAiOptions = __assign({}, this.options);
|
|
1451
1450
|
delete openAiOptions.isVerbose;
|
|
1452
|
-
delete openAiOptions.
|
|
1453
|
-
this.client = new OpenAI__default["default"](
|
|
1451
|
+
delete openAiOptions.userId;
|
|
1452
|
+
this.client = new OpenAI__default["default"](openAiOptions);
|
|
1454
1453
|
}
|
|
1455
1454
|
return [2 /*return*/, this.client];
|
|
1456
1455
|
});
|
|
@@ -1497,11 +1496,12 @@
|
|
|
1497
1496
|
* Calls OpenAI API to use a chat model.
|
|
1498
1497
|
*/
|
|
1499
1498
|
OpenAiExecutionTools.prototype.callChatModel = function (prompt) {
|
|
1499
|
+
var _a;
|
|
1500
1500
|
return __awaiter(this, void 0, void 0, function () {
|
|
1501
1501
|
var content, parameters, modelRequirements, format, client, modelName, modelSettings, rawPromptContent, rawRequest, start, complete, rawResponse, resultContent, usage;
|
|
1502
1502
|
var _this = this;
|
|
1503
|
-
return __generator(this, function (
|
|
1504
|
-
switch (
|
|
1503
|
+
return __generator(this, function (_b) {
|
|
1504
|
+
switch (_b.label) {
|
|
1505
1505
|
case 0:
|
|
1506
1506
|
if (this.options.isVerbose) {
|
|
1507
1507
|
console.info('💬 OpenAI callChatModel call', { prompt: prompt });
|
|
@@ -1509,7 +1509,7 @@
|
|
|
1509
1509
|
content = prompt.content, parameters = prompt.parameters, modelRequirements = prompt.modelRequirements, format = prompt.format;
|
|
1510
1510
|
return [4 /*yield*/, this.getClient()];
|
|
1511
1511
|
case 1:
|
|
1512
|
-
client =
|
|
1512
|
+
client = _b.sent();
|
|
1513
1513
|
// TODO: [☂] Use here more modelRequirements
|
|
1514
1514
|
if (modelRequirements.modelVariant !== 'CHAT') {
|
|
1515
1515
|
throw new PipelineExecutionError('Use callChatModel only for CHAT variant');
|
|
@@ -1541,7 +1541,7 @@
|
|
|
1541
1541
|
role: 'user',
|
|
1542
1542
|
content: rawPromptContent,
|
|
1543
1543
|
},
|
|
1544
|
-
], false), user: this.options.
|
|
1544
|
+
], false), user: (_a = this.options.userId) === null || _a === void 0 ? void 0 : _a.toString() });
|
|
1545
1545
|
start = getCurrentIsoDate();
|
|
1546
1546
|
if (this.options.isVerbose) {
|
|
1547
1547
|
console.info(colors__default["default"].bgWhite('rawRequest'), JSON.stringify(rawRequest, null, 4));
|
|
@@ -1553,7 +1553,7 @@
|
|
|
1553
1553
|
throw error;
|
|
1554
1554
|
})];
|
|
1555
1555
|
case 2:
|
|
1556
|
-
rawResponse =
|
|
1556
|
+
rawResponse = _b.sent();
|
|
1557
1557
|
if (this.options.isVerbose) {
|
|
1558
1558
|
console.info(colors__default["default"].bgWhite('rawResponse'), JSON.stringify(rawResponse, null, 4));
|
|
1559
1559
|
}
|
|
@@ -1592,11 +1592,12 @@
|
|
|
1592
1592
|
* Calls OpenAI API to use a complete model.
|
|
1593
1593
|
*/
|
|
1594
1594
|
OpenAiExecutionTools.prototype.callCompletionModel = function (prompt) {
|
|
1595
|
+
var _a;
|
|
1595
1596
|
return __awaiter(this, void 0, void 0, function () {
|
|
1596
1597
|
var content, parameters, modelRequirements, client, modelName, modelSettings, rawPromptContent, rawRequest, start, complete, rawResponse, resultContent, usage;
|
|
1597
1598
|
var _this = this;
|
|
1598
|
-
return __generator(this, function (
|
|
1599
|
-
switch (
|
|
1599
|
+
return __generator(this, function (_b) {
|
|
1600
|
+
switch (_b.label) {
|
|
1600
1601
|
case 0:
|
|
1601
1602
|
if (this.options.isVerbose) {
|
|
1602
1603
|
console.info('🖋 OpenAI callCompletionModel call', { prompt: prompt });
|
|
@@ -1604,7 +1605,7 @@
|
|
|
1604
1605
|
content = prompt.content, parameters = prompt.parameters, modelRequirements = prompt.modelRequirements;
|
|
1605
1606
|
return [4 /*yield*/, this.getClient()];
|
|
1606
1607
|
case 1:
|
|
1607
|
-
client =
|
|
1608
|
+
client = _b.sent();
|
|
1608
1609
|
// TODO: [☂] Use here more modelRequirements
|
|
1609
1610
|
if (modelRequirements.modelVariant !== 'COMPLETION') {
|
|
1610
1611
|
throw new PipelineExecutionError('Use callCompletionModel only for COMPLETION variant');
|
|
@@ -1619,7 +1620,7 @@
|
|
|
1619
1620
|
// <- Note: [🧆]
|
|
1620
1621
|
};
|
|
1621
1622
|
rawPromptContent = replaceParameters(content, __assign(__assign({}, parameters), { modelName: modelName }));
|
|
1622
|
-
rawRequest = __assign(__assign({}, modelSettings), { prompt: rawPromptContent, user: this.options.
|
|
1623
|
+
rawRequest = __assign(__assign({}, modelSettings), { prompt: rawPromptContent, user: (_a = this.options.userId) === null || _a === void 0 ? void 0 : _a.toString() });
|
|
1623
1624
|
start = getCurrentIsoDate();
|
|
1624
1625
|
if (this.options.isVerbose) {
|
|
1625
1626
|
console.info(colors__default["default"].bgWhite('rawRequest'), JSON.stringify(rawRequest, null, 4));
|
|
@@ -1631,7 +1632,7 @@
|
|
|
1631
1632
|
throw error;
|
|
1632
1633
|
})];
|
|
1633
1634
|
case 2:
|
|
1634
|
-
rawResponse =
|
|
1635
|
+
rawResponse = _b.sent();
|
|
1635
1636
|
if (this.options.isVerbose) {
|
|
1636
1637
|
console.info(colors__default["default"].bgWhite('rawResponse'), JSON.stringify(rawResponse, null, 4));
|
|
1637
1638
|
}
|
|
@@ -1857,17 +1858,16 @@
|
|
|
1857
1858
|
assistant_id: this.assistantId,
|
|
1858
1859
|
thread: {
|
|
1859
1860
|
messages: [
|
|
1860
|
-
// TODO:
|
|
1861
|
+
// TODO: [🗯] !! Allow threads to be passed
|
|
1861
1862
|
{ role: 'user', content: rawPromptContent },
|
|
1862
1863
|
],
|
|
1863
1864
|
},
|
|
1864
|
-
//
|
|
1865
|
+
// <- TODO: Add user identification here> user: this.options.user,
|
|
1865
1866
|
};
|
|
1866
1867
|
start = getCurrentIsoDate();
|
|
1867
1868
|
if (this.options.isVerbose) {
|
|
1868
1869
|
console.info(colors__default["default"].bgWhite('rawRequest'), JSON.stringify(rawRequest, null, 4));
|
|
1869
1870
|
}
|
|
1870
|
-
console.log('!!!!!! OpenAI client', client);
|
|
1871
1871
|
return [4 /*yield*/, client.beta.threads.createAndRunStream(rawRequest)];
|
|
1872
1872
|
case 2:
|
|
1873
1873
|
stream = _g.sent();
|
|
@@ -1885,7 +1885,7 @@
|
|
|
1885
1885
|
messageDelta.content[0].type === 'text') {
|
|
1886
1886
|
console.info('messageDelta', (_a = messageDelta.content[0].text) === null || _a === void 0 ? void 0 : _a.value);
|
|
1887
1887
|
}
|
|
1888
|
-
// TODO:
|
|
1888
|
+
// <- TODO: [🐚] Make streaming and running tasks working
|
|
1889
1889
|
});
|
|
1890
1890
|
stream.on('messageCreated', function (message) {
|
|
1891
1891
|
if (_this.options.isVerbose) {
|
|
@@ -1913,18 +1913,20 @@
|
|
|
1913
1913
|
throw new PipelineExecutionError("There is NOT 'text' BUT ".concat((_b = rawResponse[0].content[0]) === null || _b === void 0 ? void 0 : _b.type, " finalMessages content type from OpenAI"));
|
|
1914
1914
|
}
|
|
1915
1915
|
resultContent = (_c = rawResponse[0].content[0]) === null || _c === void 0 ? void 0 : _c.text.value;
|
|
1916
|
-
// <- TODO:
|
|
1916
|
+
// <- TODO: [🧠] There are also annotations, maybe use them
|
|
1917
1917
|
// eslint-disable-next-line prefer-const
|
|
1918
1918
|
complete = getCurrentIsoDate();
|
|
1919
1919
|
usage = UNCERTAIN_USAGE;
|
|
1920
|
-
// TODO:
|
|
1920
|
+
// <- TODO: [🥘] Compute real usage for assistant
|
|
1921
|
+
// ?> const usage = computeOpenAiUsage(content, resultContent || '', rawResponse);
|
|
1921
1922
|
if (resultContent === null) {
|
|
1922
1923
|
throw new PipelineExecutionError('No response message from OpenAI');
|
|
1923
1924
|
}
|
|
1924
1925
|
return [2 /*return*/, $asDeeplyFrozenSerializableJson('OpenAiAssistantExecutionTools ChatPromptResult', {
|
|
1925
1926
|
content: resultContent,
|
|
1926
1927
|
modelName: 'assistant',
|
|
1927
|
-
//
|
|
1928
|
+
// <- TODO: [🥘] Detect used model in assistant
|
|
1929
|
+
// ?> model: rawResponse.model || modelName,
|
|
1928
1930
|
timing: {
|
|
1929
1931
|
start: start,
|
|
1930
1932
|
complete: complete,
|
|
@@ -1942,7 +1944,6 @@
|
|
|
1942
1944
|
return OpenAiAssistantExecutionTools;
|
|
1943
1945
|
}(OpenAiExecutionTools));
|
|
1944
1946
|
/**
|
|
1945
|
-
* TODO: !!!!!! DO not use colors - can be used in browser
|
|
1946
1947
|
* TODO: [🧠][🧙♂️] Maybe there can be some wizzard for thoose who want to use just OpenAI
|
|
1947
1948
|
* TODO: Maybe make custom OpenAiError
|
|
1948
1949
|
* TODO: [🧠][🈁] Maybe use `isDeterministic` from options
|
|
@@ -2100,7 +2101,7 @@
|
|
|
2100
2101
|
this.storage = globalScope[storageName];
|
|
2101
2102
|
}
|
|
2102
2103
|
$Register.prototype.list = function () {
|
|
2103
|
-
// <- TODO: ReadonlyDeep<
|
|
2104
|
+
// <- TODO: ReadonlyDeep<ReadonlyArray<TRegistered>>
|
|
2104
2105
|
return this.storage;
|
|
2105
2106
|
};
|
|
2106
2107
|
$Register.prototype.register = function (registered) {
|