@promptbook/openai 0.44.0-9 → 0.45.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.
Files changed (58) hide show
  1. package/README.md +743 -2
  2. package/esm/index.es.js +10 -3
  3. package/esm/index.es.js.map +1 -1
  4. package/esm/typings/_packages/utils.index.d.ts +4 -2
  5. package/esm/typings/conversion/promptbookStringToJson.d.ts +2 -2
  6. package/esm/typings/execution/ExecutionTools.d.ts +3 -3
  7. package/esm/typings/execution/NaturalExecutionTools.d.ts +2 -2
  8. package/esm/typings/execution/ScriptExecutionTools.d.ts +2 -2
  9. package/esm/typings/execution/UserInterfaceTools.d.ts +1 -1
  10. package/esm/typings/execution/plugins/natural-execution-tools/langtail/LangtailExecutionTools.d.ts +10 -0
  11. package/esm/typings/execution/plugins/natural-execution-tools/mocked/fakeTextToExpectations.d.ts +6 -2
  12. package/esm/typings/execution/plugins/natural-execution-tools/openai/OpenAiExecutionTools.d.ts +5 -0
  13. package/esm/typings/execution/plugins/natural-execution-tools/openai/OpenAiExecutionToolsOptions.d.ts +7 -7
  14. package/esm/typings/execution/plugins/natural-execution-tools/remote/RemoteNaturalExecutionToolsOptions.d.ts +1 -1
  15. package/esm/typings/execution/plugins/script-execution-tools/javascript/JavascriptExecutionToolsOptions.d.ts +5 -1
  16. package/esm/typings/execution/plugins/script-execution-tools/javascript/utils/unknownToString.d.ts +7 -0
  17. package/esm/typings/execution/plugins/user-interface-execution-tools/callback/CallbackInterfaceToolsOptions.d.ts +3 -3
  18. package/esm/typings/execution/translation/automatic-translate/automatic-translators/AutomaticTranslator.d.ts +1 -1
  19. package/esm/typings/library/PromptbookLibrary.d.ts +1 -1
  20. package/esm/typings/types/ExecutionTypes.d.ts +1 -1
  21. package/esm/typings/types/ModelRequirements.d.ts +1 -1
  22. package/esm/typings/types/Prompt.d.ts +5 -0
  23. package/esm/typings/types/PromptbookJson/PromptTemplateJson.d.ts +6 -5
  24. package/esm/typings/types/PromptbookJson/PromptTemplateParameterJson.d.ts +1 -1
  25. package/esm/typings/types/PromptbookJson/PromptbookJson.d.ts +3 -3
  26. package/esm/typings/types/ScriptLanguage.d.ts +1 -1
  27. package/esm/typings/types/TaskProgress.d.ts +2 -2
  28. package/esm/typings/types/execution-report/ExecutionReportStringOptions.d.ts +1 -1
  29. package/esm/typings/utils/markdown/extractAllBlocksFromMarkdown.d.ts +1 -1
  30. package/package.json +3 -3
  31. package/umd/index.umd.js +10 -3
  32. package/umd/index.umd.js.map +1 -1
  33. package/umd/typings/_packages/utils.index.d.ts +4 -2
  34. package/umd/typings/conversion/promptbookStringToJson.d.ts +2 -2
  35. package/umd/typings/execution/ExecutionTools.d.ts +3 -3
  36. package/umd/typings/execution/NaturalExecutionTools.d.ts +2 -2
  37. package/umd/typings/execution/ScriptExecutionTools.d.ts +2 -2
  38. package/umd/typings/execution/UserInterfaceTools.d.ts +1 -1
  39. package/umd/typings/execution/plugins/natural-execution-tools/langtail/LangtailExecutionTools.d.ts +10 -0
  40. package/umd/typings/execution/plugins/natural-execution-tools/mocked/fakeTextToExpectations.d.ts +6 -2
  41. package/umd/typings/execution/plugins/natural-execution-tools/openai/OpenAiExecutionTools.d.ts +5 -0
  42. package/umd/typings/execution/plugins/natural-execution-tools/openai/OpenAiExecutionToolsOptions.d.ts +7 -7
  43. package/umd/typings/execution/plugins/natural-execution-tools/remote/RemoteNaturalExecutionToolsOptions.d.ts +1 -1
  44. package/umd/typings/execution/plugins/script-execution-tools/javascript/JavascriptExecutionToolsOptions.d.ts +5 -1
  45. package/umd/typings/execution/plugins/script-execution-tools/javascript/utils/unknownToString.d.ts +7 -0
  46. package/umd/typings/execution/plugins/user-interface-execution-tools/callback/CallbackInterfaceToolsOptions.d.ts +3 -3
  47. package/umd/typings/execution/translation/automatic-translate/automatic-translators/AutomaticTranslator.d.ts +1 -1
  48. package/umd/typings/library/PromptbookLibrary.d.ts +1 -1
  49. package/umd/typings/types/ExecutionTypes.d.ts +1 -1
  50. package/umd/typings/types/ModelRequirements.d.ts +1 -1
  51. package/umd/typings/types/Prompt.d.ts +5 -0
  52. package/umd/typings/types/PromptbookJson/PromptTemplateJson.d.ts +6 -5
  53. package/umd/typings/types/PromptbookJson/PromptTemplateParameterJson.d.ts +1 -1
  54. package/umd/typings/types/PromptbookJson/PromptbookJson.d.ts +3 -3
  55. package/umd/typings/types/ScriptLanguage.d.ts +1 -1
  56. package/umd/typings/types/TaskProgress.d.ts +2 -2
  57. package/umd/typings/types/execution-report/ExecutionReportStringOptions.d.ts +1 -1
  58. package/umd/typings/utils/markdown/extractAllBlocksFromMarkdown.d.ts +1 -1
@@ -1,3 +1,4 @@
1
+ import { spaceTrim } from 'spacetrim';
1
2
  import { prettifyPromptbookString } from '../conversion/prettify/prettifyPromptbookString';
2
3
  import { parseNumber } from '../conversion/utils/parseNumber';
3
4
  import { assertsExecutionSuccessful } from '../execution/assertsExecutionSuccessful';
@@ -44,17 +45,18 @@ import { unwrapResult } from '../utils/unwrapResult';
44
45
  export { assertsExecutionSuccessful, checkExpectations, executionReportJsonToString, ExecutionReportStringOptions, ExecutionReportStringOptionsDefaults, extractAllBlocksFromMarkdown, // <- [🌻]
45
46
  extractAllListItemsFromMarkdown, extractBlock, // <- [🌻]
46
47
  extractOneBlockFromMarkdown, isPassingExpectations, isValidJsonString, parseNumber, // <- [🌻]
47
- prettifyPromptbookString, removeContentComments, removeEmojis, removeMarkdownFormatting, removeQuotes, replaceParameters, trimCodeBlock, trimEndOfCodeBlock, unwrapResult, };
48
+ prettifyPromptbookString, removeContentComments, removeEmojis, removeMarkdownFormatting, removeQuotes, replaceParameters, spaceTrim, trimCodeBlock, trimEndOfCodeBlock, unwrapResult, };
48
49
  export { countCharacters, countLines, countPages, countParagraphs, countSentences, CountUtils, countWords };
49
50
  export { splitIntoSentences };
50
51
  export declare const normalizeTo: {
51
52
  camelCase: typeof normalizeTo_camelCase;
52
53
  PascalCase: typeof normalizeTo_PascalCase;
53
- 'SCREAMING-CASE': typeof normalizeTo_SCREAMING_CASE;
54
+ SCREAMING_CASE: typeof normalizeTo_SCREAMING_CASE;
54
55
  snake_case: typeof normalizeTo_snake_case;
55
56
  'kebab-case': typeof normalizeToKebabCase;
56
57
  };
57
58
  export { capitalize, decapitalize, DIACRITIC_VARIANTS_LETTERS, IKeywords, isValidKeyword, nameToUriPart, nameToUriParts, normalizeTo_camelCase, normalizeTo_PascalCase, normalizeTo_SCREAMING_CASE, normalizeTo_snake_case, normalizeToKebabCase, normalizeWhitespaces, parseKeywords, parseKeywordsFromString, removeDiacritics, searchKeywords, string_keyword, };
58
59
  /**
59
60
  * TODO: [🧠] Maybe create some indipendent package like `markdown-tools` from both here exported and @private utilities
61
+ * Note: [🕙] It does not make sence to have simple lower / UPPER case normalization
60
62
  */
@@ -1,5 +1,5 @@
1
- import { PromptbookJson } from '../types/PromptbookJson/PromptbookJson';
2
- import { PromptbookString } from '../types/PromptbookString';
1
+ import type { PromptbookJson } from '../types/PromptbookJson/PromptbookJson';
2
+ import type { PromptbookString } from '../types/PromptbookString';
3
3
  /**
4
4
  * Parse promptbook from string format to JSON format
5
5
  *
@@ -1,6 +1,6 @@
1
- import { NaturalExecutionTools } from './NaturalExecutionTools';
2
- import { ScriptExecutionTools } from './ScriptExecutionTools';
3
- import { UserInterfaceTools } from './UserInterfaceTools';
1
+ import type { NaturalExecutionTools } from './NaturalExecutionTools';
2
+ import type { ScriptExecutionTools } from './ScriptExecutionTools';
3
+ import type { UserInterfaceTools } from './UserInterfaceTools';
4
4
  /**
5
5
  * All the tools needed to execute prompts (template pipelines).
6
6
  *
@@ -1,5 +1,5 @@
1
- import { Prompt } from '../types/Prompt';
2
- import { PromptChatResult, PromptCompletionResult } from './PromptResult';
1
+ import type { Prompt } from '../types/Prompt';
2
+ import type { PromptChatResult, PromptCompletionResult } from './PromptResult';
3
3
  /**
4
4
  * Vontainer for all the tools needed to execute prompts to large language models like GPT-4
5
5
  * On its interface it exposes common methods for prompt execution.
@@ -1,5 +1,5 @@
1
- import { string_name, string_script } from '.././types/typeAliases';
2
- import { ScriptLanguage } from '../types/ScriptLanguage';
1
+ import type { string_name, string_script } from '.././types/typeAliases';
2
+ import type { ScriptLanguage } from '../types/ScriptLanguage';
3
3
  /**
4
4
  * Represents all the tools needed to EXECUTE SCRIPTs
5
5
  *
@@ -1,4 +1,4 @@
1
- import { number_integer, number_positive } from '../types/typeAliases';
1
+ import type { number_integer, number_positive } from '../types/typeAliases';
2
2
  /**
3
3
  * Represents all the tools needed to interact with the user.
4
4
  *
@@ -0,0 +1,10 @@
1
+ import type { NaturalExecutionTools } from '../../../NaturalExecutionTools';
2
+ import { OpenAiExecutionTools } from '../openai/OpenAiExecutionTools';
3
+ /**
4
+ * Execution Tools for calling OpenAI API.
5
+ */
6
+ export declare class LangtailExecutionTools extends OpenAiExecutionTools implements NaturalExecutionTools {
7
+ }
8
+ /**
9
+ * TODO: !!! Make lib which exports this
10
+ */
@@ -1,11 +1,15 @@
1
1
  import type { Expectations } from '../../../../types/PromptbookJson/PromptTemplateJson';
2
+ import { PostprocessingFunction } from '../../script-execution-tools/javascript/JavascriptExecutionToolsOptions';
2
3
  /**
3
4
  * Gets the expectations and creates a fake text that meets the expectations
4
5
  *
6
+ * Note: You can provide postprocessing functions to modify the text before checking the expectations
7
+ * The result will be the text BEFORE the postprocessing
8
+ *
5
9
  * @private internal util for MockedFackedNaturalExecutionTools
6
10
  */
7
- export declare function $fakeTextToExpectations(expectations: Expectations): string;
11
+ export declare function $fakeTextToExpectations(expectations: Expectations, postprocessing?: Array<PostprocessingFunction>): Promise<string>;
8
12
  /**
9
- * TODO: Implement better
13
+ * TODO: Implement better - create FakeLLM from this
10
14
  * TODO: [💝] Unite object for expecting amount and format - use here also a format
11
15
  */
@@ -11,6 +11,11 @@ export declare class OpenAiExecutionTools implements NaturalExecutionTools {
11
11
  * OpenAI API client.
12
12
  */
13
13
  private readonly openai;
14
+ /**
15
+ * Creates OpenAI Execution Tools.
16
+ *
17
+ * @param options which are relevant are directly passed to the OpenAI client
18
+ */
14
19
  constructor(options: OpenAiExecutionToolsOptions);
15
20
  /**
16
21
  * Calls OpenAI API to use a chat model.
@@ -1,13 +1,13 @@
1
- import { string_token } from '../../../.././types/typeAliases';
2
- import { CommonExecutionToolsOptions } from '../../../CommonExecutionToolsOptions';
1
+ import type { ClientOptions } from 'openai';
2
+ import type { string_token } from '../../../.././types/typeAliases';
3
+ import type { CommonExecutionToolsOptions } from '../../../CommonExecutionToolsOptions';
3
4
  /**
4
5
  * Options for OpenAiExecutionTools
6
+ *
7
+ * This extends OpenAI's `ClientOptions` with are directly passed to the OpenAI client.
8
+ * Rest is used by the `OpenAiExecutionTools`.
5
9
  */
6
- export type OpenAiExecutionToolsOptions = CommonExecutionToolsOptions & {
7
- /**
8
- * OpenAI API key
9
- */
10
- openAiApiKey: string_token;
10
+ export type OpenAiExecutionToolsOptions = CommonExecutionToolsOptions & ClientOptions & {
11
11
  /**
12
12
  * A unique identifier representing your end-user, which can help OpenAI to monitor
13
13
  * and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).
@@ -1,5 +1,5 @@
1
1
  import type { client_id, string_uri } from '../../../.././types/typeAliases';
2
- import { CommonExecutionToolsOptions } from '../../../CommonExecutionToolsOptions';
2
+ import type { CommonExecutionToolsOptions } from '../../../CommonExecutionToolsOptions';
3
3
  /**
4
4
  * Options for RemoteNaturalExecutionTools
5
5
  */
@@ -15,8 +15,12 @@ export type JavascriptExecutionToolsOptions = CommonExecutionToolsOptions & {
15
15
  * Note: There are also some built-in functions available:
16
16
  * @see ./JavascriptEvalExecutionTools.ts
17
17
  */
18
- functions?: Record<string_javascript_name, ((value: string) => Promisable<string>) | Function>;
18
+ functions?: Record<string_javascript_name, PostprocessingFunction>;
19
19
  };
20
+ /**
21
+ * Function that can be used to postprocess the output of the LLM
22
+ */
23
+ export type PostprocessingFunction = ((value: string) => Promisable<string>) | Function;
20
24
  /**
21
25
  * TODO: [🧠][💙] Distinct between options passed into ExecutionTools and to ExecutionTools.execute
22
26
  */
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Converts anything to string that can be used for debugging and logging
3
+ *
4
+ * @param value String value for logging
5
+ * @private Internal util
6
+ */
7
+ export declare function unknownToString(value: unknown): string;
@@ -1,6 +1,6 @@
1
- import { Promisable } from 'type-fest';
2
- import { CommonExecutionToolsOptions } from '../../../CommonExecutionToolsOptions';
3
- import { UserInterfaceToolsPromptDialogOptions } from '../../../UserInterfaceTools';
1
+ import type { Promisable } from 'type-fest';
2
+ import type { CommonExecutionToolsOptions } from '../../../CommonExecutionToolsOptions';
3
+ import type { UserInterfaceToolsPromptDialogOptions } from '../../../UserInterfaceTools';
4
4
  /**
5
5
  * Options for CallbackInterfaceTools
6
6
  */
@@ -1,4 +1,4 @@
1
- import { Promisable } from 'type-fest';
1
+ import type { Promisable } from 'type-fest';
2
2
  export type AutomaticTranslator = {
3
3
  translate(message: string): Promisable<string>;
4
4
  };
@@ -1,4 +1,4 @@
1
- import { Promisable } from 'type-fest';
1
+ import type { Promisable } from 'type-fest';
2
2
  import type { Prompt } from '../types/Prompt';
3
3
  import type { PromptbookJson } from '../types/PromptbookJson/PromptbookJson';
4
4
  import type { string_promptbook_url } from '../types/typeAliases';
@@ -1,4 +1,4 @@
1
- import { TupleToUnion } from 'type-fest';
1
+ import type { TupleToUnion } from 'type-fest';
2
2
  /**
3
3
  * Execution type describes the way how the block is executed
4
4
  *
@@ -1,4 +1,4 @@
1
- import { string_model_name } from './typeAliases';
1
+ import type { string_model_name } from './typeAliases';
2
2
  export declare const MODEL_VARIANTS: readonly ["COMPLETION", "CHAT"];
3
3
  /**
4
4
  * Model variant describes the very general type of the model
@@ -1,4 +1,5 @@
1
1
  import type { string_name, string_prompt, string_promptbook_url_with_hashtemplate, string_title } from '.././types/typeAliases';
2
+ import type { PostprocessingFunction } from '../execution/plugins/script-execution-tools/javascript/JavascriptExecutionToolsOptions';
2
3
  import type { ModelRequirements } from './ModelRequirements';
3
4
  import type { Expectations } from './PromptbookJson/PromptTemplateJson';
4
5
  /**
@@ -24,6 +25,10 @@ export type Prompt = {
24
25
  * Requirements for the model
25
26
  */
26
27
  readonly modelRequirements: ModelRequirements;
28
+ /**
29
+ * List of postprocessing steps that are executed after the prompt
30
+ */
31
+ readonly postprocessing?: Array<PostprocessingFunction>;
27
32
  /**
28
33
  * Expectations for the answer
29
34
  *
@@ -1,8 +1,8 @@
1
- import { ExpectFormatCommand } from '../Command';
2
- import { ExecutionType } from '../ExecutionTypes';
3
- import { ModelRequirements } from '../ModelRequirements';
4
- import { ScriptLanguage } from '../ScriptLanguage';
5
- import { number_integer, number_positive_or_zero, string_javascript, string_javascript_name, string_markdown, string_name, string_prompt, string_template } from '../typeAliases';
1
+ import type { ExpectFormatCommand } from '../Command';
2
+ import type { ExecutionType } from '../ExecutionTypes';
3
+ import type { ModelRequirements } from '../ModelRequirements';
4
+ import type { ScriptLanguage } from '../ScriptLanguage';
5
+ import type { number_integer, number_positive_or_zero, string_javascript, string_javascript_name, string_markdown, string_name, string_prompt, string_template } from '../typeAliases';
6
6
  /**
7
7
  * Describes one prompt template in the promptbook
8
8
  */
@@ -121,6 +121,7 @@ interface PromptTemplateJsonCommon {
121
121
  * Expect this format of the answer
122
122
  *
123
123
  * Note: Expectations are performed after all postprocessing steps
124
+ * @deprecated [💝]
124
125
  */
125
126
  readonly expectFormat?: ExpectFormatCommand['format'];
126
127
  /**
@@ -1,4 +1,4 @@
1
- import { string_name } from '../typeAliases';
1
+ import type { string_name } from '../typeAliases';
2
2
  /**
3
3
  * Describes one parameter of the promptbook
4
4
  */
@@ -1,6 +1,6 @@
1
- import { string_promptbook_url, string_version } from '../typeAliases';
2
- import { PromptTemplateJson } from './PromptTemplateJson';
3
- import { PromptTemplateParameterJson } from './PromptTemplateParameterJson';
1
+ import type { string_promptbook_url, string_version } from '../typeAliases';
2
+ import type { PromptTemplateJson } from './PromptTemplateJson';
3
+ import type { PromptTemplateParameterJson } from './PromptTemplateParameterJson';
4
4
  /**
5
5
  * Promptbook is the **core concept of this library**.
6
6
  * It represents a series of prompt templates chained together to form a pipeline / one big prompt template with input and result parameters.
@@ -1,4 +1,4 @@
1
- import { TupleToUnion } from 'type-fest';
1
+ import type { TupleToUnion } from 'type-fest';
2
2
  /**
3
3
  * Supported script languages
4
4
  */
@@ -1,5 +1,5 @@
1
- import { ExecutionType } from './ExecutionTypes';
2
- import { string_markdown_text, string_name } from './typeAliases';
1
+ import type { ExecutionType } from './ExecutionTypes';
2
+ import type { string_markdown_text, string_name } from './typeAliases';
3
3
  /**
4
4
  * TaskProgress represents the progress of a Promptbook execution.
5
5
  */
@@ -1,4 +1,4 @@
1
- import { number_percent } from '../typeAliases';
1
+ import type { number_percent } from '../typeAliases';
2
2
  /**
3
3
  * Options for generating an execution report string
4
4
  */
@@ -1,4 +1,4 @@
1
- import { string_markdown } from '../../types/typeAliases';
1
+ import type { string_markdown } from '../../types/typeAliases';
2
2
  /**
3
3
  * Single code block inside markdown.
4
4
  */