@promptbook/openai 0.72.0-3 → 0.72.0-30
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 +84 -67
- package/esm/index.es.js +148 -37
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/_packages/browser.index.d.ts +3 -1
- package/esm/typings/src/_packages/cli.index.d.ts +20 -0
- package/esm/typings/src/_packages/core.index.d.ts +56 -28
- package/esm/typings/src/_packages/documents.index.d.ts +8 -0
- package/esm/typings/src/_packages/legacy-documents.index.d.ts +8 -0
- package/esm/typings/src/_packages/markdown-utils.index.d.ts +6 -0
- package/esm/typings/src/_packages/node.index.d.ts +18 -6
- package/esm/typings/src/_packages/pdf.index.d.ts +8 -0
- package/esm/typings/src/_packages/types.index.d.ts +57 -33
- package/esm/typings/src/_packages/utils.index.d.ts +2 -2
- package/esm/typings/src/_packages/website-crawler.index.d.ts +8 -0
- package/esm/typings/src/cli/cli-commands/about.d.ts +1 -1
- package/esm/typings/src/cli/cli-commands/hello.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/make.d.ts +1 -1
- package/esm/typings/src/cli/cli-commands/prettify.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/test-command.d.ts +13 -0
- package/esm/typings/src/cli/main.d.ts +1 -1
- package/esm/typings/src/cli/promptbookCli.d.ts +1 -1
- 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/createCollectionFromDirectory.d.ts +11 -6
- 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/collection/constructors/createCollectionFromUrl.d.ts +1 -1
- package/esm/typings/src/commands/EXPECT/expectCommandParser.d.ts +1 -1
- package/esm/typings/src/commands/FOREACH/ForeachJson.d.ts +5 -1
- package/esm/typings/src/commands/FOREACH/foreachCommandParser.d.ts +1 -1
- package/esm/typings/src/commands/FORMAT/formatCommandParser.d.ts +1 -1
- package/esm/typings/src/commands/JOKER/jokerCommandParser.d.ts +1 -1
- package/esm/typings/src/commands/KNOWLEDGE/knowledgeCommandParser.d.ts +1 -1
- package/esm/typings/src/commands/KNOWLEDGE/utils/sourceContentToName.d.ts +11 -0
- package/esm/typings/src/commands/KNOWLEDGE/utils/sourceContentToName.test.d.ts +4 -0
- package/esm/typings/src/commands/MODEL/modelCommandParser.d.ts +1 -1
- package/esm/typings/src/commands/PARAMETER/parameterCommandParser.d.ts +1 -1
- package/esm/typings/src/commands/PERSONA/personaCommandParser.d.ts +1 -1
- package/esm/typings/src/commands/POSTPROCESS/postprocessCommandParser.d.ts +1 -1
- package/esm/typings/src/commands/PROMPTBOOK_VERSION/promptbookVersionCommandParser.d.ts +1 -1
- package/esm/typings/src/commands/TEMPLATE/templateCommandParser.d.ts +1 -1
- package/esm/typings/src/commands/URL/urlCommandParser.d.ts +1 -1
- package/esm/typings/src/commands/X_ACTION/actionCommandParser.d.ts +1 -1
- package/esm/typings/src/commands/X_INSTRUMENT/instrumentCommandParser.d.ts +1 -1
- package/esm/typings/src/commands/_BOILERPLATE/boilerplateCommandParser.d.ts +1 -1
- package/esm/typings/src/commands/_common/types/CommandParser.d.ts +5 -5
- package/esm/typings/src/config.d.ts +35 -12
- package/esm/typings/src/conversion/pipelineStringToJson.d.ts +4 -15
- package/esm/typings/src/conversion/pipelineStringToJsonSync.d.ts +1 -1
- package/esm/typings/src/conversion/validation/_importPipeline.d.ts +1 -1
- package/esm/typings/src/conversion/validation/validatePipeline.d.ts +5 -5
- package/esm/typings/src/{knowledge/dialogs → dialogs}/callback/CallbackInterfaceTools.d.ts +2 -2
- package/esm/typings/src/{knowledge/dialogs → dialogs}/callback/CallbackInterfaceToolsOptions.d.ts +3 -3
- package/esm/typings/src/{knowledge/dialogs → dialogs}/simple-prompt/SimplePromptInterfaceTools.d.ts +6 -6
- package/esm/typings/src/errors/AbstractFormatError.d.ts +11 -0
- package/esm/typings/src/errors/KnowledgeScrapeError.d.ts +9 -0
- package/esm/typings/src/errors/MissingToolsError.d.ts +9 -0
- 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/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/{CommonExecutionToolsOptions.d.ts → CommonToolsOptions.d.ts} +1 -1
- 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 +35 -9
- package/esm/typings/src/execution/FilesystemTools.d.ts +9 -0
- package/esm/typings/src/execution/LlmExecutionTools.d.ts +2 -2
- package/esm/typings/src/execution/PipelineExecutor.d.ts +1 -0
- 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 +31 -5
- package/esm/typings/src/execution/createPipelineExecutor/00-createPipelineExecutor.d.ts +3 -0
- package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +6 -12
- package/esm/typings/src/execution/createPipelineExecutor/20-executeTemplate.d.ts +7 -18
- package/esm/typings/src/execution/createPipelineExecutor/{30-executeFormatCells.d.ts → 30-executeFormatSubvalues.d.ts} +2 -6
- package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +9 -19
- package/esm/typings/src/execution/embeddingVectorToString.d.ts +1 -1
- package/esm/typings/src/execution/translation/automatic-translate/automatic-translators/LindatAutomaticTranslator.d.ts +11 -3
- package/esm/typings/src/execution/translation/automatic-translate/translateMessages.d.ts +4 -0
- package/esm/typings/src/execution/utils/$provideExecutionToolsForNode.d.ts +13 -0
- package/esm/typings/src/execution/utils/addUsage.d.ts +1 -1
- package/esm/typings/src/execution/utils/forEachAsync.d.ts +2 -1
- package/esm/typings/src/formats/_common/FormatDefinition.d.ts +2 -2
- package/esm/typings/src/formats/_common/FormatSubvalueDefinition.d.ts +3 -2
- package/esm/typings/src/formats/csv/CsvFormatError.d.ts +10 -0
- package/esm/typings/src/llm-providers/_common/{$llmToolsMetadataRegister.d.ts → register/$llmToolsMetadataRegister.d.ts} +4 -1
- package/esm/typings/src/llm-providers/_common/{$llmToolsRegister.d.ts → register/$llmToolsRegister.d.ts} +5 -2
- package/esm/typings/src/llm-providers/_common/{createLlmToolsFromConfigurationFromEnv.d.ts → register/$provideLlmToolsConfigurationFromEnv.d.ts} +3 -3
- package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsForCli.d.ts +15 -0
- package/esm/typings/src/llm-providers/_common/{getLlmToolsForTestingAndScriptsAndPlayground.d.ts → register/$provideLlmToolsForTestingAndScriptsAndPlayground.d.ts} +4 -3
- package/esm/typings/src/llm-providers/_common/{createLlmToolsFromEnv.d.ts → register/$provideLlmToolsFromEnv.d.ts} +6 -5
- package/esm/typings/src/llm-providers/_common/{$registeredLlmToolsMessage.d.ts → register/$registeredLlmToolsMessage.d.ts} +5 -2
- package/esm/typings/src/llm-providers/_common/{LlmToolsConfiguration.d.ts → register/LlmToolsConfiguration.d.ts} +6 -5
- package/esm/typings/src/llm-providers/_common/{LlmToolsMetadata.d.ts → register/LlmToolsMetadata.d.ts} +5 -4
- package/esm/typings/src/llm-providers/_common/{LlmToolsOptions.d.ts → register/LlmToolsOptions.d.ts} +4 -1
- package/esm/typings/src/llm-providers/_common/{createLlmToolsFromConfiguration.d.ts → register/createLlmToolsFromConfiguration.d.ts} +12 -4
- 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 +5 -5
- package/esm/typings/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +1 -1
- package/esm/typings/src/llm-providers/anthropic-claude/playground/playground.d.ts +3 -2
- package/esm/typings/src/llm-providers/anthropic-claude/register-configuration.d.ts +4 -3
- package/esm/typings/src/llm-providers/anthropic-claude/register-constructor.d.ts +4 -3
- package/esm/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionTools.d.ts +7 -1
- package/esm/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionToolsOptions.d.ts +4 -3
- package/esm/typings/src/llm-providers/azure-openai/playground/playground.d.ts +1 -0
- package/esm/typings/src/llm-providers/azure-openai/register-configuration.d.ts +4 -3
- package/esm/typings/src/llm-providers/azure-openai/register-constructor.d.ts +4 -3
- package/esm/typings/src/llm-providers/langtail/LangtailExecutionTools.d.ts +1 -1
- package/esm/typings/src/llm-providers/langtail/playground/playground.d.ts +3 -0
- package/esm/typings/src/llm-providers/mocked/$fakeTextToExpectations.d.ts +1 -1
- package/esm/typings/src/llm-providers/mocked/MockedEchoLlmExecutionTools.d.ts +4 -4
- package/esm/typings/src/llm-providers/mocked/MockedFackedLlmExecutionTools.d.ts +4 -4
- package/esm/typings/src/llm-providers/multiple/MultipleLlmExecutionTools.d.ts +4 -4
- package/esm/typings/src/llm-providers/multiple/joinLlmExecutionTools.d.ts +1 -1
- package/esm/typings/src/llm-providers/multiple/playground/playground.d.ts +3 -0
- package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +1 -2
- package/esm/typings/src/llm-providers/openai/OpenAiExecutionTools.d.ts +2 -2
- package/esm/typings/src/llm-providers/openai/OpenAiExecutionToolsOptions.d.ts +4 -4
- package/esm/typings/src/llm-providers/openai/openai-models.d.ts +1 -1
- package/esm/typings/src/llm-providers/openai/playground/playground.d.ts +2 -1
- package/esm/typings/src/llm-providers/openai/register-configuration.d.ts +5 -4
- package/esm/typings/src/llm-providers/openai/register-constructor.d.ts +5 -4
- 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 +16 -7
- 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 +7 -13
- 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 +11 -16
- package/esm/typings/src/llm-providers/remote/interfaces/RemoteServerOptions.d.ts +24 -9
- package/esm/typings/src/llm-providers/remote/playground/playground.d.ts +3 -0
- package/esm/typings/src/llm-providers/remote/startRemoteServer.d.ts +1 -1
- package/esm/typings/src/personas/preparePersona.d.ts +3 -2
- package/esm/typings/src/prepare/PrepareAndScrapeOptions.d.ts +49 -0
- package/esm/typings/src/prepare/preparePipeline.d.ts +3 -2
- package/esm/typings/src/prepare/prepareTemplates.d.ts +4 -3
- package/esm/typings/src/scrapers/_common/Converter.d.ts +22 -0
- package/esm/typings/src/scrapers/_common/Scraper.d.ts +59 -0
- package/esm/typings/src/scrapers/_common/ScraperIntermediateSource.d.ts +11 -0
- package/esm/typings/src/{knowledge/prepare-knowledge → scrapers}/_common/prepareKnowledgePieces.d.ts +5 -4
- package/esm/typings/src/scrapers/_common/register/$provideFilesystemForNode.d.ts +11 -0
- package/esm/typings/src/scrapers/_common/register/$provideScrapersForBrowser.d.ts +12 -0
- package/esm/typings/src/scrapers/_common/register/$provideScrapersForNode.d.ts +15 -0
- package/esm/typings/src/scrapers/_common/register/$registeredScrapersMessage.d.ts +12 -0
- package/esm/typings/src/scrapers/_common/register/$scrapersMetadataRegister.d.ts +13 -0
- package/esm/typings/src/scrapers/_common/register/$scrapersRegister.d.ts +13 -0
- package/esm/typings/src/scrapers/_common/register/ScraperAndConverterMetadata.d.ts +41 -0
- package/esm/typings/src/scrapers/_common/register/ScraperConstructor.d.ts +12 -0
- package/esm/typings/src/scrapers/_common/utils/getScraperIntermediateSource.d.ts +34 -0
- package/esm/typings/src/scrapers/_common/utils/getScraperIntermediateSource.test.d.ts +4 -0
- package/esm/typings/src/scrapers/_common/utils/makeKnowledgeSourceHandler.d.ts +11 -0
- package/esm/typings/src/scrapers/document/DocumentScraper.d.ts +43 -0
- package/esm/typings/src/scrapers/document/DocumentScraper.test.d.ts +4 -0
- package/esm/typings/src/scrapers/document/createDocumentScraper.d.ts +20 -0
- package/esm/typings/src/scrapers/document/playground/document-scraper-playground.d.ts +5 -0
- package/esm/typings/src/scrapers/document/register-constructor.d.ts +13 -0
- package/esm/typings/src/scrapers/document/register-metadata.d.ts +24 -0
- package/esm/typings/src/scrapers/document-legacy/LegacyDocumentScraper.d.ts +43 -0
- package/esm/typings/src/scrapers/document-legacy/LegacyDocumentScraper.test.d.ts +4 -0
- package/esm/typings/src/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +20 -0
- package/esm/typings/src/scrapers/document-legacy/playground/legacy-document-scraper-playground.d.ts +5 -0
- package/esm/typings/src/scrapers/document-legacy/register-constructor.d.ts +13 -0
- package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +24 -0
- package/esm/typings/src/scrapers/markdown/MarkdownScraper.d.ts +29 -0
- package/esm/typings/src/scrapers/markdown/createMarkdownScraper.d.ts +20 -0
- package/esm/typings/src/scrapers/markdown/playground/markdown-scraper-playground.d.ts +5 -0
- package/esm/typings/src/scrapers/markdown/register-constructor.d.ts +13 -0
- package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +24 -0
- package/esm/typings/src/scrapers/pdf/PdfScraper.d.ts +40 -0
- package/esm/typings/src/scrapers/pdf/createPdfScraper.d.ts +20 -0
- package/esm/typings/src/scrapers/pdf/playground/pdf-scraper-playground.d.ts +5 -0
- package/esm/typings/src/scrapers/pdf/register-constructor.d.ts +13 -0
- package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +24 -0
- package/esm/typings/src/scrapers/website/WebsiteScraper.d.ts +50 -0
- package/esm/typings/src/scrapers/website/createWebsiteScraper.d.ts +20 -0
- package/esm/typings/src/scrapers/website/playground/website-scraper-playground.d.ts +5 -0
- package/esm/typings/src/scrapers/website/register-constructor.d.ts +13 -0
- package/esm/typings/src/scrapers/website/register-metadata.d.ts +24 -0
- package/esm/typings/src/scrapers/website/utils/createShowdownConverter.d.ts +7 -0
- package/esm/typings/src/scripting/javascript/JavascriptExecutionToolsOptions.d.ts +2 -2
- package/esm/typings/src/scripting/javascript/utils/preserve.d.ts +1 -1
- package/esm/typings/src/scripting/python/PythonExecutionTools.d.ts +3 -3
- package/esm/typings/src/scripting/typescript/TypescriptExecutionTools.d.ts +3 -3
- package/esm/typings/src/storage/{files-storage/FilesStorage.d.ts → file-cache-storage/FileCacheStorage.d.ts} +7 -5
- package/esm/typings/src/storage/file-cache-storage/FileCacheStorageOptions.d.ts +10 -0
- package/esm/typings/src/storage/{files-storage → file-cache-storage}/utils/nameToSubfolderPath.d.ts +2 -2
- package/esm/typings/src/storage/local-storage/getLocalStorage.d.ts +1 -1
- package/esm/typings/src/storage/local-storage/getSessionStorage.d.ts +1 -1
- package/esm/typings/src/storage/{utils → memory/utils}/PrefixStorage.d.ts +1 -1
- package/esm/typings/src/storage/{utils → memory/utils}/makePromptbookStorageFromWebStorage.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 +10 -3
- package/esm/typings/src/types/PipelineJson/ParameterJson.d.ts +1 -1
- package/esm/typings/src/types/PipelineJson/PersonaJson.d.ts +1 -1
- package/esm/typings/src/types/PipelineJson/PipelineJson.d.ts +2 -2
- 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 -4
- package/esm/typings/src/types/execution-report/executionReportJsonToString.d.ts +2 -1
- package/esm/typings/src/types/typeAliases.d.ts +27 -20
- package/esm/typings/src/utils/$Register.d.ts +20 -7
- 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 +14 -0
- package/esm/typings/src/utils/execCommand/$execCommands.d.ts +17 -0
- package/esm/typings/src/utils/execCommand/ExecCommandOptions.d.ts +19 -0
- package/esm/typings/src/utils/execCommand/execCommand.test.d.ts +1 -0
- package/esm/typings/src/utils/execCommand/execCommandNormalizeOptions.d.ts +10 -0
- package/esm/typings/src/utils/execCommand/execCommandNormalizeOptions.test.d.ts +1 -0
- package/esm/typings/src/utils/expectation-counters/countSentences.d.ts +1 -1
- package/esm/typings/src/utils/files/extensionToMimeType.d.ts +8 -0
- package/esm/typings/src/utils/files/extensionToMimeType.test.d.ts +1 -0
- package/esm/typings/src/utils/files/getFileExtension.d.ts +8 -0
- package/esm/typings/src/utils/files/getFileExtension.test.d.ts +1 -0
- package/esm/typings/src/utils/files/isDirectoryExisting.d.ts +14 -0
- package/esm/typings/src/utils/files/isDirectoryExisting.test.d.ts +1 -0
- package/esm/typings/src/utils/files/isExecutable.d.ts +11 -0
- package/esm/typings/src/utils/files/isFileExisting.d.ts +13 -0
- package/esm/typings/src/utils/files/isFileExisting.test.d.ts +1 -0
- package/esm/typings/src/utils/files/listAllFiles.d.ts +17 -0
- package/esm/typings/src/utils/files/listAllFiles.test.d.ts +1 -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/esm/typings/src/utils/validators/filePath/isValidFilePath.d.ts +2 -2
- package/package.json +5 -4
- package/umd/index.umd.js +148 -37
- package/umd/index.umd.js.map +1 -1
- package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorSettings.d.ts +0 -40
- package/esm/typings/src/knowledge/prepare-knowledge/_common/Scraper.d.ts +0 -37
- package/esm/typings/src/knowledge/prepare-knowledge/markdown/playground/markdown-knowledge-playground.d.ts +0 -2
- package/esm/typings/src/knowledge/prepare-knowledge/markdown/prepareKnowledgeFromMarkdown.d.ts +0 -14
- package/esm/typings/src/knowledge/prepare-knowledge/pdf/prepareKnowledgeFromPdf.d.ts +0 -15
- package/esm/typings/src/llm-providers/_common/getLlmToolsForCli.d.ts +0 -22
- package/esm/typings/src/prepare/PrepareOptions.d.ts +0 -22
- package/esm/typings/src/storage/files-storage/FilesStorageOptions.d.ts +0 -10
- package/esm/typings/src/utils/files/$isDirectoryExisting.d.ts +0 -15
- package/esm/typings/src/utils/files/$isFileExisting.d.ts +0 -14
- package/esm/typings/src/utils/files/$listAllFiles.d.ts +0 -17
- /package/esm/typings/src/{knowledge/dialogs → dialogs}/user-interface-execution-tools.test.d.ts +0 -0
- /package/esm/typings/src/{knowledge/prepare-knowledge/_common/prepareKnowledgePieces.test.d.ts → executables/apps/locateLibreoffice.test.d.ts} +0 -0
- /package/esm/typings/src/{knowledge/prepare-knowledge/pdf/prepareKnowledgeFromPdf.test.d.ts → executables/apps/locatePandoc.test.d.ts} +0 -0
- /package/esm/typings/src/{storage/files-storage/utils/nameToSubfolderPath.test.d.ts → executables/locateApp.test.d.ts} +0 -0
- /package/esm/typings/src/{utils/files/$isDirectoryExisting.test.d.ts → scrapers/_common/prepareKnowledgePieces.test.d.ts} +0 -0
- /package/esm/typings/src/{knowledge/prepare-knowledge/markdown/prepareKnowledgeFromMarkdown.test.d.ts → scrapers/markdown/MarkdownScraper.test.d.ts} +0 -0
- /package/esm/typings/src/{utils/files/$isFileExisting.test.d.ts → scrapers/website/utils/createShowdownConverter.test.d.ts} +0 -0
- /package/esm/typings/src/{utils/files/$listAllFiles.test.d.ts → storage/file-cache-storage/utils/nameToSubfolderPath.test.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
#  Promptbook
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Build responsible, controlled and transparent applications on top of LLM models!
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
@@ -20,6 +20,12 @@ Supercharge your use of large language models
|
|
|
20
20
|
|
|
21
21
|
- ✨ **Support of [OpenAI o1 model](https://openai.com/o1/)**
|
|
22
22
|
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
<blockquote style="color: #ff8811">
|
|
26
|
+
<b>⚠ Warning:</b> This is a pre-release version of the library. It is not yet ready for production use. Please look at <a href="https://www.npmjs.com/package/@promptbook/core?activeTab=versions">latest stable release</a>.
|
|
27
|
+
</blockquote>
|
|
28
|
+
|
|
23
29
|
## 📦 Package `@promptbook/openai`
|
|
24
30
|
|
|
25
31
|
- Promptbooks are [divided into several](#-packages) packages, all are published from [single monorepo](https://github.com/webgptorg/promptbook).
|
|
@@ -41,31 +47,37 @@ npm install @promptbook/openai
|
|
|
41
47
|
|
|
42
48
|
```typescript
|
|
43
49
|
import { createPipelineExecutor, assertsExecutionSuccessful } from '@promptbook/core';
|
|
44
|
-
import {
|
|
50
|
+
import {
|
|
51
|
+
createCollectionFromDirectory,
|
|
52
|
+
$provideExecutionToolsForNode,
|
|
53
|
+
$provideFilesystemForNode,
|
|
54
|
+
} from '@promptbook/node';
|
|
45
55
|
import { JavascriptExecutionTools } from '@promptbook/execute-javascript';
|
|
46
56
|
import { OpenAiExecutionTools } from '@promptbook/openai';
|
|
47
57
|
|
|
58
|
+
// ▶ Prepare tools
|
|
59
|
+
const fs = $provideFilesystemForNode();
|
|
60
|
+
const llm = new OpenAiExecutionTools(
|
|
61
|
+
// <- TODO: [🧱] Implement in a functional (not new Class) way
|
|
62
|
+
{
|
|
63
|
+
isVerbose: true,
|
|
64
|
+
apiKey: process.env.OPENAI_API_KEY,
|
|
65
|
+
},
|
|
66
|
+
);
|
|
67
|
+
const executables = await $provideExecutablesForNode();
|
|
68
|
+
const tools = {
|
|
69
|
+
llm,
|
|
70
|
+
fs,
|
|
71
|
+
scrapers: await $provideScrapersForNode({ fs, llm, executables }),
|
|
72
|
+
script: [new JavascriptExecutionTools()],
|
|
73
|
+
};
|
|
74
|
+
|
|
48
75
|
// ▶ Create whole pipeline collection
|
|
49
|
-
const collection = await createCollectionFromDirectory('./promptbook-collection');
|
|
76
|
+
const collection = await createCollectionFromDirectory('./promptbook-collection', tools);
|
|
50
77
|
|
|
51
78
|
// ▶ Get single Pipeline
|
|
52
79
|
const pipeline = await collection.getPipelineByUrl(`https://promptbook.studio/my-collection/write-article.ptbk.md`);
|
|
53
80
|
|
|
54
|
-
// ▶ Prepare tools
|
|
55
|
-
const tools = {
|
|
56
|
-
llm: new OpenAiExecutionTools(
|
|
57
|
-
// <- TODO: [🧱] Implement in a functional (not new Class) way
|
|
58
|
-
{
|
|
59
|
-
isVerbose: true,
|
|
60
|
-
apiKey: process.env.OPENAI_API_KEY,
|
|
61
|
-
},
|
|
62
|
-
),
|
|
63
|
-
script: [
|
|
64
|
-
new JavascriptExecutionTools(),
|
|
65
|
-
// <- TODO: [🧱] Implement in a functional (not new Class) way
|
|
66
|
-
],
|
|
67
|
-
};
|
|
68
|
-
|
|
69
81
|
// ▶ Create executor - the function that will execute the Pipeline
|
|
70
82
|
const pipelineExecutor = createPipelineExecutor({ pipeline, tools });
|
|
71
83
|
|
|
@@ -85,34 +97,29 @@ console.info(outputParameters);
|
|
|
85
97
|
|
|
86
98
|
## 🤺 Usage with OpenAI`s Assistants (GPTs)
|
|
87
99
|
|
|
88
|
-
|
|
89
|
-
|
|
100
|
+
> TODO: Write a guide how to use OpenAI's Assistants with Promptbook
|
|
101
|
+
|
|
102
|
+
|
|
90
103
|
|
|
91
104
|
## 🧙♂️ Connect to LLM providers automatically
|
|
92
105
|
|
|
93
|
-
You can just use `
|
|
106
|
+
You can just use `$provideExecutionToolsForNode` function to create all required tools from environment variables like `OPENAI_API_KEY` and `ANTHROPIC_CLAUDE_API_KEY` automatically.
|
|
94
107
|
|
|
95
108
|
```typescript
|
|
96
109
|
import { createPipelineExecutor, createCollectionFromDirectory, assertsExecutionSuccessful } from '@promptbook/core';
|
|
97
110
|
import { JavascriptExecutionTools } from '@promptbook/execute-javascript';
|
|
98
|
-
import {
|
|
111
|
+
import { $provideExecutionToolsForNode } from '@promptbook/node';
|
|
112
|
+
import { $provideFilesystemForNode } from '@promptbook/node';
|
|
113
|
+
|
|
114
|
+
// ▶ Prepare tools
|
|
115
|
+
const tools = await $provideExecutionToolsForNode();
|
|
99
116
|
|
|
100
117
|
// ▶ Create whole pipeline collection
|
|
101
|
-
const collection = await createCollectionFromDirectory('./promptbook-collection');
|
|
118
|
+
const collection = await createCollectionFromDirectory('./promptbook-collection', tools);
|
|
102
119
|
|
|
103
120
|
// ▶ Get single Pipeline
|
|
104
121
|
const pipeline = await collection.getPipelineByUrl(`https://promptbook.studio/my-collection/write-article.ptbk.md`);
|
|
105
122
|
|
|
106
|
-
// ▶ Prepare multiple tools
|
|
107
|
-
const tools = {
|
|
108
|
-
// Note: 🧙♂️ Just call `createLlmToolsFromEnv` to automatically connect to all configured providers
|
|
109
|
-
llm: createLlmToolsFromEnv(),
|
|
110
|
-
script: [
|
|
111
|
-
new JavascriptExecutionTools(),
|
|
112
|
-
// <- TODO: [🧱] Implement in a functional (not new Class) way
|
|
113
|
-
],
|
|
114
|
-
};
|
|
115
|
-
|
|
116
123
|
// ▶ Create executor - the function that will execute the Pipeline
|
|
117
124
|
const pipelineExecutor = createPipelineExecutor({ pipeline, tools });
|
|
118
125
|
|
|
@@ -136,50 +143,56 @@ You can use multiple LLM providers in one Promptbook execution. The best model w
|
|
|
136
143
|
|
|
137
144
|
```typescript
|
|
138
145
|
import { createPipelineExecutor, assertsExecutionSuccessful } from '@promptbook/core';
|
|
139
|
-
import {
|
|
146
|
+
import {
|
|
147
|
+
createCollectionFromDirectory,
|
|
148
|
+
$provideExecutionToolsForNode,
|
|
149
|
+
$provideFilesystemForNode,
|
|
150
|
+
} from '@promptbook/node';
|
|
140
151
|
import { JavascriptExecutionTools } from '@promptbook/execute-javascript';
|
|
141
152
|
import { OpenAiExecutionTools } from '@promptbook/openai';
|
|
142
153
|
import { AnthropicClaudeExecutionTools } from '@promptbook/anthropic-claude';
|
|
143
154
|
import { AzureOpenAiExecutionTools } from '@promptbook/azure-openai';
|
|
144
155
|
|
|
156
|
+
// ▶ Prepare multiple tools
|
|
157
|
+
const fs = $provideFilesystemForNode();
|
|
158
|
+
const llm = [
|
|
159
|
+
// Note: You can use multiple LLM providers in one Promptbook execution.
|
|
160
|
+
// The best model will be chosen automatically according to the prompt and the model's capabilities.
|
|
161
|
+
new OpenAiExecutionTools(
|
|
162
|
+
// <- TODO: [🧱] Implement in a functional (not new Class) way
|
|
163
|
+
{
|
|
164
|
+
apiKey: process.env.OPENAI_API_KEY,
|
|
165
|
+
},
|
|
166
|
+
),
|
|
167
|
+
new AnthropicClaudeExecutionTools(
|
|
168
|
+
// <- TODO: [🧱] Implement in a functional (not new Class) way
|
|
169
|
+
{
|
|
170
|
+
apiKey: process.env.ANTHROPIC_CLAUDE_API_KEY,
|
|
171
|
+
},
|
|
172
|
+
),
|
|
173
|
+
new AzureOpenAiExecutionTools(
|
|
174
|
+
// <- TODO: [🧱] Implement in a functional (not new Class) way
|
|
175
|
+
{
|
|
176
|
+
resourceName: process.env.AZUREOPENAI_RESOURCE_NAME,
|
|
177
|
+
deploymentName: process.env.AZUREOPENAI_DEPLOYMENT_NAME,
|
|
178
|
+
apiKey: process.env.AZUREOPENAI_API_KEY,
|
|
179
|
+
},
|
|
180
|
+
),
|
|
181
|
+
];
|
|
182
|
+
const executables = await $provideExecutablesForNode();
|
|
183
|
+
const tools = {
|
|
184
|
+
llm,
|
|
185
|
+
fs,
|
|
186
|
+
scrapers: await $provideScrapersForNode({ fs, llm, executables }),
|
|
187
|
+
script: [new JavascriptExecutionTools()],
|
|
188
|
+
};
|
|
189
|
+
|
|
145
190
|
// ▶ Create whole pipeline collection
|
|
146
|
-
const collection = await createCollectionFromDirectory('./promptbook-collection');
|
|
191
|
+
const collection = await createCollectionFromDirectory('./promptbook-collection', tools);
|
|
147
192
|
|
|
148
193
|
// ▶ Get single Pipeline
|
|
149
194
|
const pipeline = await collection.getPipelineByUrl(`https://promptbook.studio/my-collection/write-article.ptbk.md`);
|
|
150
195
|
|
|
151
|
-
// ▶ Prepare multiple tools
|
|
152
|
-
const tools = {
|
|
153
|
-
llm: [
|
|
154
|
-
// Note: You can use multiple LLM providers in one Promptbook execution.
|
|
155
|
-
// The best model will be chosen automatically according to the prompt and the model's capabilities.
|
|
156
|
-
new OpenAiExecutionTools(
|
|
157
|
-
// <- TODO: [🧱] Implement in a functional (not new Class) way
|
|
158
|
-
{
|
|
159
|
-
apiKey: process.env.OPENAI_API_KEY,
|
|
160
|
-
},
|
|
161
|
-
),
|
|
162
|
-
new AnthropicClaudeExecutionTools(
|
|
163
|
-
// <- TODO: [🧱] Implement in a functional (not new Class) way
|
|
164
|
-
{
|
|
165
|
-
apiKey: process.env.ANTHROPIC_CLAUDE_API_KEY,
|
|
166
|
-
},
|
|
167
|
-
),
|
|
168
|
-
new AzureOpenAiExecutionTools(
|
|
169
|
-
// <- TODO: [🧱] Implement in a functional (not new Class) way
|
|
170
|
-
{
|
|
171
|
-
resourceName: process.env.AZUREOPENAI_RESOURCE_NAME,
|
|
172
|
-
deploymentName: process.env.AZUREOPENAI_DEPLOYMENT_NAME,
|
|
173
|
-
apiKey: process.env.AZUREOPENAI_API_KEY,
|
|
174
|
-
},
|
|
175
|
-
),
|
|
176
|
-
],
|
|
177
|
-
script: [
|
|
178
|
-
new JavascriptExecutionTools(),
|
|
179
|
-
// <- TODO: [🧱] Implement in a functional (not new Class) way
|
|
180
|
-
],
|
|
181
|
-
};
|
|
182
|
-
|
|
183
196
|
// ▶ Create executor - the function that will execute the Pipeline
|
|
184
197
|
const pipelineExecutor = createPipelineExecutor({ pipeline, tools });
|
|
185
198
|
|
|
@@ -495,6 +508,10 @@ Or you can install them separately:
|
|
|
495
508
|
- **[@promptbook/fake-llm](https://www.npmjs.com/package/@promptbook/fake-llm)** - Mocked execution tools for testing the library and saving the tokens
|
|
496
509
|
- **[@promptbook/remote-client](https://www.npmjs.com/package/@promptbook/remote-client)** - Remote client for remote execution of promptbooks
|
|
497
510
|
- **[@promptbook/remote-server](https://www.npmjs.com/package/@promptbook/remote-server)** - Remote server for remote execution of promptbooks
|
|
511
|
+
- **[@promptbook/pdf](https://www.npmjs.com/package/@promptbook/pdf)** - Read knowledge from `.pdf` documents
|
|
512
|
+
- **[@promptbook/documents](https://www.npmjs.com/package/@promptbook/documents)** - Read knowledge from documents like `.docx`, `.odt`,…
|
|
513
|
+
- **[@promptbook/legacy-documents](https://www.npmjs.com/package/@promptbook/legacy-documents)** - Read knowledge from legacy documents like `.doc`, `.rtf`,…
|
|
514
|
+
- **[@promptbook/website-crawler](https://www.npmjs.com/package/@promptbook/website-crawler)** - Crawl knowledge from the web
|
|
498
515
|
- **[@promptbook/types](https://www.npmjs.com/package/@promptbook/types)** - Just typescript types used in the library
|
|
499
516
|
- **[@promptbook/cli](https://www.npmjs.com/package/@promptbook/cli)** - Command line interface utilities for promptbooks
|
|
500
517
|
|
package/esm/index.es.js
CHANGED
|
@@ -6,8 +6,8 @@ import OpenAI from 'openai';
|
|
|
6
6
|
/**
|
|
7
7
|
* The version of the Promptbook library
|
|
8
8
|
*/
|
|
9
|
-
var PROMPTBOOK_VERSION = '0.72.0-
|
|
10
|
-
// TODO:[main] !!!! List here all the versions and annotate + put into script
|
|
9
|
+
var PROMPTBOOK_VERSION = '0.72.0-29';
|
|
10
|
+
// TODO: [main] !!!! List here all the versions and annotate + put into script
|
|
11
11
|
|
|
12
12
|
/*! *****************************************************************************
|
|
13
13
|
Copyright (c) Microsoft Corporation.
|
|
@@ -1278,7 +1278,7 @@ var OPENAI_MODELS = $asDeeplyFrozenSerializableJson('OPENAI_MODELS', [
|
|
|
1278
1278
|
prompt: computeUsage("$5.00 / 1M tokens"),
|
|
1279
1279
|
output: computeUsage("$15.00 / 1M tokens"),
|
|
1280
1280
|
},
|
|
1281
|
-
//TODO:[main]
|
|
1281
|
+
//TODO: [main] !!! Add gpt-4o-mini-2024-07-18 and all others to be up to date
|
|
1282
1282
|
},
|
|
1283
1283
|
/**/
|
|
1284
1284
|
/**/
|
|
@@ -1308,7 +1308,7 @@ var OPENAI_MODELS = $asDeeplyFrozenSerializableJson('OPENAI_MODELS', [
|
|
|
1308
1308
|
modelVariant: 'CHAT',
|
|
1309
1309
|
modelTitle: 'o1-preview-2024-09-12',
|
|
1310
1310
|
modelName: 'o1-preview-2024-09-12',
|
|
1311
|
-
// <- TODO:[main]
|
|
1311
|
+
// <- TODO: [main] !!! Some better system to organize theese date suffixes and versions
|
|
1312
1312
|
pricing: {
|
|
1313
1313
|
prompt: computeUsage("$15.00 / 1M tokens"),
|
|
1314
1314
|
output: computeUsage("$60.00 / 1M tokens"),
|
|
@@ -1413,7 +1413,6 @@ var OpenAiExecutionTools = /** @class */ (function () {
|
|
|
1413
1413
|
* @param options which are relevant are directly passed to the OpenAI client
|
|
1414
1414
|
*/
|
|
1415
1415
|
function OpenAiExecutionTools(options) {
|
|
1416
|
-
if (options === void 0) { options = {}; }
|
|
1417
1416
|
this.options = options;
|
|
1418
1417
|
/**
|
|
1419
1418
|
* OpenAI API client.
|
|
@@ -1441,8 +1440,8 @@ var OpenAiExecutionTools = /** @class */ (function () {
|
|
|
1441
1440
|
if (this.client === null) {
|
|
1442
1441
|
openAiOptions = __assign({}, this.options);
|
|
1443
1442
|
delete openAiOptions.isVerbose;
|
|
1444
|
-
delete openAiOptions.
|
|
1445
|
-
this.client = new OpenAI(
|
|
1443
|
+
delete openAiOptions.userId;
|
|
1444
|
+
this.client = new OpenAI(openAiOptions);
|
|
1446
1445
|
}
|
|
1447
1446
|
return [2 /*return*/, this.client];
|
|
1448
1447
|
});
|
|
@@ -1489,10 +1488,12 @@ var OpenAiExecutionTools = /** @class */ (function () {
|
|
|
1489
1488
|
* Calls OpenAI API to use a chat model.
|
|
1490
1489
|
*/
|
|
1491
1490
|
OpenAiExecutionTools.prototype.callChatModel = function (prompt) {
|
|
1491
|
+
var _a;
|
|
1492
1492
|
return __awaiter(this, void 0, void 0, function () {
|
|
1493
1493
|
var content, parameters, modelRequirements, format, client, modelName, modelSettings, rawPromptContent, rawRequest, start, complete, rawResponse, resultContent, usage;
|
|
1494
|
-
|
|
1495
|
-
|
|
1494
|
+
var _this = this;
|
|
1495
|
+
return __generator(this, function (_b) {
|
|
1496
|
+
switch (_b.label) {
|
|
1496
1497
|
case 0:
|
|
1497
1498
|
if (this.options.isVerbose) {
|
|
1498
1499
|
console.info('💬 OpenAI callChatModel call', { prompt: prompt });
|
|
@@ -1500,7 +1501,7 @@ var OpenAiExecutionTools = /** @class */ (function () {
|
|
|
1500
1501
|
content = prompt.content, parameters = prompt.parameters, modelRequirements = prompt.modelRequirements, format = prompt.format;
|
|
1501
1502
|
return [4 /*yield*/, this.getClient()];
|
|
1502
1503
|
case 1:
|
|
1503
|
-
client =
|
|
1504
|
+
client = _b.sent();
|
|
1504
1505
|
// TODO: [☂] Use here more modelRequirements
|
|
1505
1506
|
if (modelRequirements.modelVariant !== 'CHAT') {
|
|
1506
1507
|
throw new PipelineExecutionError('Use callChatModel only for CHAT variant');
|
|
@@ -1532,14 +1533,19 @@ var OpenAiExecutionTools = /** @class */ (function () {
|
|
|
1532
1533
|
role: 'user',
|
|
1533
1534
|
content: rawPromptContent,
|
|
1534
1535
|
},
|
|
1535
|
-
], false), user: this.options.
|
|
1536
|
+
], false), user: (_a = this.options.userId) === null || _a === void 0 ? void 0 : _a.toString() });
|
|
1536
1537
|
start = getCurrentIsoDate();
|
|
1537
1538
|
if (this.options.isVerbose) {
|
|
1538
1539
|
console.info(colors.bgWhite('rawRequest'), JSON.stringify(rawRequest, null, 4));
|
|
1539
1540
|
}
|
|
1540
|
-
return [4 /*yield*/, client.chat.completions.create(rawRequest)
|
|
1541
|
+
return [4 /*yield*/, client.chat.completions.create(rawRequest).catch(function (error) {
|
|
1542
|
+
if (_this.options.isVerbose) {
|
|
1543
|
+
console.info(colors.bgRed('error'), error);
|
|
1544
|
+
}
|
|
1545
|
+
throw error;
|
|
1546
|
+
})];
|
|
1541
1547
|
case 2:
|
|
1542
|
-
rawResponse =
|
|
1548
|
+
rawResponse = _b.sent();
|
|
1543
1549
|
if (this.options.isVerbose) {
|
|
1544
1550
|
console.info(colors.bgWhite('rawResponse'), JSON.stringify(rawResponse, null, 4));
|
|
1545
1551
|
}
|
|
@@ -1578,10 +1584,12 @@ var OpenAiExecutionTools = /** @class */ (function () {
|
|
|
1578
1584
|
* Calls OpenAI API to use a complete model.
|
|
1579
1585
|
*/
|
|
1580
1586
|
OpenAiExecutionTools.prototype.callCompletionModel = function (prompt) {
|
|
1587
|
+
var _a;
|
|
1581
1588
|
return __awaiter(this, void 0, void 0, function () {
|
|
1582
1589
|
var content, parameters, modelRequirements, client, modelName, modelSettings, rawPromptContent, rawRequest, start, complete, rawResponse, resultContent, usage;
|
|
1583
|
-
|
|
1584
|
-
|
|
1590
|
+
var _this = this;
|
|
1591
|
+
return __generator(this, function (_b) {
|
|
1592
|
+
switch (_b.label) {
|
|
1585
1593
|
case 0:
|
|
1586
1594
|
if (this.options.isVerbose) {
|
|
1587
1595
|
console.info('🖋 OpenAI callCompletionModel call', { prompt: prompt });
|
|
@@ -1589,7 +1597,7 @@ var OpenAiExecutionTools = /** @class */ (function () {
|
|
|
1589
1597
|
content = prompt.content, parameters = prompt.parameters, modelRequirements = prompt.modelRequirements;
|
|
1590
1598
|
return [4 /*yield*/, this.getClient()];
|
|
1591
1599
|
case 1:
|
|
1592
|
-
client =
|
|
1600
|
+
client = _b.sent();
|
|
1593
1601
|
// TODO: [☂] Use here more modelRequirements
|
|
1594
1602
|
if (modelRequirements.modelVariant !== 'COMPLETION') {
|
|
1595
1603
|
throw new PipelineExecutionError('Use callCompletionModel only for COMPLETION variant');
|
|
@@ -1604,14 +1612,19 @@ var OpenAiExecutionTools = /** @class */ (function () {
|
|
|
1604
1612
|
// <- Note: [🧆]
|
|
1605
1613
|
};
|
|
1606
1614
|
rawPromptContent = replaceParameters(content, __assign(__assign({}, parameters), { modelName: modelName }));
|
|
1607
|
-
rawRequest = __assign(__assign({}, modelSettings), { prompt: rawPromptContent, user: this.options.
|
|
1615
|
+
rawRequest = __assign(__assign({}, modelSettings), { prompt: rawPromptContent, user: (_a = this.options.userId) === null || _a === void 0 ? void 0 : _a.toString() });
|
|
1608
1616
|
start = getCurrentIsoDate();
|
|
1609
1617
|
if (this.options.isVerbose) {
|
|
1610
1618
|
console.info(colors.bgWhite('rawRequest'), JSON.stringify(rawRequest, null, 4));
|
|
1611
1619
|
}
|
|
1612
|
-
return [4 /*yield*/, client.completions.create(rawRequest)
|
|
1620
|
+
return [4 /*yield*/, client.completions.create(rawRequest).catch(function (error) {
|
|
1621
|
+
if (_this.options.isVerbose) {
|
|
1622
|
+
console.info(colors.bgRed('error'), error);
|
|
1623
|
+
}
|
|
1624
|
+
throw error;
|
|
1625
|
+
})];
|
|
1613
1626
|
case 2:
|
|
1614
|
-
rawResponse =
|
|
1627
|
+
rawResponse = _b.sent();
|
|
1615
1628
|
if (this.options.isVerbose) {
|
|
1616
1629
|
console.info(colors.bgWhite('rawResponse'), JSON.stringify(rawResponse, null, 4));
|
|
1617
1630
|
}
|
|
@@ -1649,6 +1662,7 @@ var OpenAiExecutionTools = /** @class */ (function () {
|
|
|
1649
1662
|
OpenAiExecutionTools.prototype.callEmbeddingModel = function (prompt) {
|
|
1650
1663
|
return __awaiter(this, void 0, void 0, function () {
|
|
1651
1664
|
var content, parameters, modelRequirements, client, modelName, rawPromptContent, rawRequest, start, complete, rawResponse, resultContent, usage;
|
|
1665
|
+
var _this = this;
|
|
1652
1666
|
return __generator(this, function (_a) {
|
|
1653
1667
|
switch (_a.label) {
|
|
1654
1668
|
case 0:
|
|
@@ -1673,7 +1687,12 @@ var OpenAiExecutionTools = /** @class */ (function () {
|
|
|
1673
1687
|
if (this.options.isVerbose) {
|
|
1674
1688
|
console.info(colors.bgWhite('rawRequest'), JSON.stringify(rawRequest, null, 4));
|
|
1675
1689
|
}
|
|
1676
|
-
return [4 /*yield*/, client.embeddings.create(rawRequest)
|
|
1690
|
+
return [4 /*yield*/, client.embeddings.create(rawRequest).catch(function (error) {
|
|
1691
|
+
if (_this.options.isVerbose) {
|
|
1692
|
+
console.info(colors.bgRed('error'), error);
|
|
1693
|
+
}
|
|
1694
|
+
throw error;
|
|
1695
|
+
})];
|
|
1677
1696
|
case 2:
|
|
1678
1697
|
rawResponse = _a.sent();
|
|
1679
1698
|
if (this.options.isVerbose) {
|
|
@@ -1826,14 +1845,13 @@ var OpenAiAssistantExecutionTools = /** @class */ (function (_super) {
|
|
|
1826
1845
|
}
|
|
1827
1846
|
rawPromptContent = replaceParameters(content, __assign(__assign({}, parameters), { modelName: 'assistant' }));
|
|
1828
1847
|
rawRequest = {
|
|
1829
|
-
// [👨👨👧👧] ...modelSettings,
|
|
1830
|
-
|
|
1831
|
-
|
|
1848
|
+
// TODO: [👨👨👧👧] ...modelSettings,
|
|
1849
|
+
// TODO: [👨👨👧👧][🧠] What about system message for assistants, does it make sence - combination of OpenAI assistants with Promptbook Personas
|
|
1850
|
+
assistant_id: this.assistantId,
|
|
1832
1851
|
thread: {
|
|
1833
1852
|
messages: [
|
|
1834
|
-
// TODO: !!!!!!
|
|
1835
|
-
|
|
1836
|
-
{ role: 'user', content: 'What is the meaning of life? I want breathtaking speech.' },
|
|
1853
|
+
// TODO: [🗯] !!!!!! Allow threads to be passed
|
|
1854
|
+
{ role: 'user', content: rawPromptContent },
|
|
1837
1855
|
],
|
|
1838
1856
|
},
|
|
1839
1857
|
// !!!!!! user: this.options.user,
|
|
@@ -1859,7 +1877,7 @@ var OpenAiAssistantExecutionTools = /** @class */ (function (_super) {
|
|
|
1859
1877
|
messageDelta.content[0].type === 'text') {
|
|
1860
1878
|
console.info('messageDelta', (_a = messageDelta.content[0].text) === null || _a === void 0 ? void 0 : _a.value);
|
|
1861
1879
|
}
|
|
1862
|
-
// TODO:
|
|
1880
|
+
// <- TODO: [🐚] Make streaming and running tasks working
|
|
1863
1881
|
});
|
|
1864
1882
|
stream.on('messageCreated', function (message) {
|
|
1865
1883
|
if (_this.options.isVerbose) {
|
|
@@ -1891,14 +1909,16 @@ var OpenAiAssistantExecutionTools = /** @class */ (function (_super) {
|
|
|
1891
1909
|
// eslint-disable-next-line prefer-const
|
|
1892
1910
|
complete = getCurrentIsoDate();
|
|
1893
1911
|
usage = UNCERTAIN_USAGE;
|
|
1894
|
-
// TODO:
|
|
1912
|
+
// <- TODO: [🥘] Compute real usage for assistant
|
|
1913
|
+
// ?> const usage = computeOpenAiUsage(content, resultContent || '', rawResponse);
|
|
1895
1914
|
if (resultContent === null) {
|
|
1896
1915
|
throw new PipelineExecutionError('No response message from OpenAI');
|
|
1897
1916
|
}
|
|
1898
1917
|
return [2 /*return*/, $asDeeplyFrozenSerializableJson('OpenAiAssistantExecutionTools ChatPromptResult', {
|
|
1899
1918
|
content: resultContent,
|
|
1900
1919
|
modelName: 'assistant',
|
|
1901
|
-
//
|
|
1920
|
+
// <- TODO: [🥘] Detect used model in assistant
|
|
1921
|
+
// ?> model: rawResponse.model || modelName,
|
|
1902
1922
|
timing: {
|
|
1903
1923
|
start: start,
|
|
1904
1924
|
complete: complete,
|
|
@@ -1916,7 +1936,6 @@ var OpenAiAssistantExecutionTools = /** @class */ (function (_super) {
|
|
|
1916
1936
|
return OpenAiAssistantExecutionTools;
|
|
1917
1937
|
}(OpenAiExecutionTools));
|
|
1918
1938
|
/**
|
|
1919
|
-
* TODO: !!!!!! DO not use colors - can be used in browser
|
|
1920
1939
|
* TODO: [🧠][🧙♂️] Maybe there can be some wizzard for thoose who want to use just OpenAI
|
|
1921
1940
|
* TODO: Maybe make custom OpenAiError
|
|
1922
1941
|
* TODO: [🧠][🈁] Maybe use `isDeterministic` from options
|
|
@@ -1974,6 +1993,85 @@ function $getGlobalScope() {
|
|
|
1974
1993
|
return Function('return this')();
|
|
1975
1994
|
}
|
|
1976
1995
|
|
|
1996
|
+
/**
|
|
1997
|
+
* @@@
|
|
1998
|
+
*
|
|
1999
|
+
* @param text @@@
|
|
2000
|
+
* @returns @@@
|
|
2001
|
+
* @example 'HELLO_WORLD'
|
|
2002
|
+
* @example 'I_LOVE_PROMPTBOOK'
|
|
2003
|
+
* @public exported from `@promptbook/utils`
|
|
2004
|
+
*/
|
|
2005
|
+
function normalizeTo_SCREAMING_CASE(text) {
|
|
2006
|
+
var e_1, _a;
|
|
2007
|
+
var charType;
|
|
2008
|
+
var lastCharType = 'OTHER';
|
|
2009
|
+
var normalizedName = '';
|
|
2010
|
+
try {
|
|
2011
|
+
for (var text_1 = __values(text), text_1_1 = text_1.next(); !text_1_1.done; text_1_1 = text_1.next()) {
|
|
2012
|
+
var char = text_1_1.value;
|
|
2013
|
+
var normalizedChar = void 0;
|
|
2014
|
+
if (/^[a-z]$/.test(char)) {
|
|
2015
|
+
charType = 'LOWERCASE';
|
|
2016
|
+
normalizedChar = char.toUpperCase();
|
|
2017
|
+
}
|
|
2018
|
+
else if (/^[A-Z]$/.test(char)) {
|
|
2019
|
+
charType = 'UPPERCASE';
|
|
2020
|
+
normalizedChar = char;
|
|
2021
|
+
}
|
|
2022
|
+
else if (/^[0-9]$/.test(char)) {
|
|
2023
|
+
charType = 'NUMBER';
|
|
2024
|
+
normalizedChar = char;
|
|
2025
|
+
}
|
|
2026
|
+
else {
|
|
2027
|
+
charType = 'OTHER';
|
|
2028
|
+
normalizedChar = '_';
|
|
2029
|
+
}
|
|
2030
|
+
if (charType !== lastCharType &&
|
|
2031
|
+
!(lastCharType === 'UPPERCASE' && charType === 'LOWERCASE') &&
|
|
2032
|
+
!(lastCharType === 'NUMBER') &&
|
|
2033
|
+
!(charType === 'NUMBER')) {
|
|
2034
|
+
normalizedName += '_';
|
|
2035
|
+
}
|
|
2036
|
+
normalizedName += normalizedChar;
|
|
2037
|
+
lastCharType = charType;
|
|
2038
|
+
}
|
|
2039
|
+
}
|
|
2040
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
2041
|
+
finally {
|
|
2042
|
+
try {
|
|
2043
|
+
if (text_1_1 && !text_1_1.done && (_a = text_1.return)) _a.call(text_1);
|
|
2044
|
+
}
|
|
2045
|
+
finally { if (e_1) throw e_1.error; }
|
|
2046
|
+
}
|
|
2047
|
+
normalizedName = normalizedName.replace(/_+/g, '_');
|
|
2048
|
+
normalizedName = normalizedName.replace(/_?\/_?/g, '/');
|
|
2049
|
+
normalizedName = normalizedName.replace(/^_/, '');
|
|
2050
|
+
normalizedName = normalizedName.replace(/_$/, '');
|
|
2051
|
+
return normalizedName;
|
|
2052
|
+
}
|
|
2053
|
+
/**
|
|
2054
|
+
* TODO: Tests
|
|
2055
|
+
* > expect(encodeRoutePath({ uriId: 'VtG7sR9rRJqwNEdM2', name: 'Moje tabule' })).toEqual('/VtG7sR9rRJqwNEdM2/Moje tabule');
|
|
2056
|
+
* > expect(encodeRoutePath({ uriId: 'VtG7sR9rRJqwNEdM2', name: 'ěščřžžýáíúů' })).toEqual('/VtG7sR9rRJqwNEdM2/escrzyaieuu');
|
|
2057
|
+
* > expect(encodeRoutePath({ uriId: 'VtG7sR9rRJqwNEdM2', name: ' ahoj ' })).toEqual('/VtG7sR9rRJqwNEdM2/ahoj');
|
|
2058
|
+
* > expect(encodeRoutePath({ uriId: 'VtG7sR9rRJqwNEdM2', name: ' ahoj_ahojAhoj ahoj ' })).toEqual('/VtG7sR9rRJqwNEdM2/ahoj-ahoj-ahoj-ahoj');
|
|
2059
|
+
* TODO: [🌺] Use some intermediate util splitWords
|
|
2060
|
+
*/
|
|
2061
|
+
|
|
2062
|
+
/**
|
|
2063
|
+
* @@@
|
|
2064
|
+
*
|
|
2065
|
+
* @param text @@@
|
|
2066
|
+
* @returns @@@
|
|
2067
|
+
* @example 'hello_world'
|
|
2068
|
+
* @example 'i_love_promptbook'
|
|
2069
|
+
* @public exported from `@promptbook/utils`
|
|
2070
|
+
*/
|
|
2071
|
+
function normalizeTo_snake_case(text) {
|
|
2072
|
+
return normalizeTo_SCREAMING_CASE(text).toLowerCase();
|
|
2073
|
+
}
|
|
2074
|
+
|
|
1977
2075
|
/**
|
|
1978
2076
|
* Register is @@@
|
|
1979
2077
|
*
|
|
@@ -1982,9 +2080,9 @@ function $getGlobalScope() {
|
|
|
1982
2080
|
* @private internal utility, exported are only signleton instances of this class
|
|
1983
2081
|
*/
|
|
1984
2082
|
var $Register = /** @class */ (function () {
|
|
1985
|
-
function $Register(
|
|
1986
|
-
this.
|
|
1987
|
-
storageName = "_promptbook_".concat(
|
|
2083
|
+
function $Register(registerName) {
|
|
2084
|
+
this.registerName = registerName;
|
|
2085
|
+
var storageName = "_promptbook_".concat(normalizeTo_snake_case(registerName));
|
|
1988
2086
|
var globalScope = $getGlobalScope();
|
|
1989
2087
|
if (globalScope[storageName] === undefined) {
|
|
1990
2088
|
globalScope[storageName] = [];
|
|
@@ -1995,11 +2093,10 @@ var $Register = /** @class */ (function () {
|
|
|
1995
2093
|
this.storage = globalScope[storageName];
|
|
1996
2094
|
}
|
|
1997
2095
|
$Register.prototype.list = function () {
|
|
1998
|
-
// <- TODO: ReadonlyDeep<
|
|
2096
|
+
// <- TODO: ReadonlyDeep<ReadonlyArray<TRegistered>>
|
|
1999
2097
|
return this.storage;
|
|
2000
2098
|
};
|
|
2001
2099
|
$Register.prototype.register = function (registered) {
|
|
2002
|
-
// <- TODO: What to return here
|
|
2003
2100
|
var packageName = registered.packageName, className = registered.className;
|
|
2004
2101
|
var existingRegistrationIndex = this.storage.findIndex(function (item) { return item.packageName === packageName && item.className === className; });
|
|
2005
2102
|
var existingRegistration = this.storage[existingRegistrationIndex];
|
|
@@ -2009,6 +2106,17 @@ var $Register = /** @class */ (function () {
|
|
|
2009
2106
|
else {
|
|
2010
2107
|
this.storage[existingRegistrationIndex] = registered;
|
|
2011
2108
|
}
|
|
2109
|
+
return {
|
|
2110
|
+
registerName: this.registerName,
|
|
2111
|
+
packageName: packageName,
|
|
2112
|
+
className: className,
|
|
2113
|
+
get isDestroyed() {
|
|
2114
|
+
return false;
|
|
2115
|
+
},
|
|
2116
|
+
destroy: function () {
|
|
2117
|
+
throw new NotYetImplementedError("Registration to ".concat(this.registerName, " is permanent in this version of Promptbook"));
|
|
2118
|
+
},
|
|
2119
|
+
};
|
|
2012
2120
|
};
|
|
2013
2121
|
return $Register;
|
|
2014
2122
|
}());
|
|
@@ -2021,11 +2129,14 @@ var $Register = /** @class */ (function () {
|
|
|
2021
2129
|
* @public exported from `@promptbook/core`
|
|
2022
2130
|
*/
|
|
2023
2131
|
var $llmToolsRegister = new $Register('llm_execution_tools_constructors');
|
|
2132
|
+
/**
|
|
2133
|
+
* TODO: [®] DRY Register logic
|
|
2134
|
+
*/
|
|
2024
2135
|
|
|
2025
2136
|
/**
|
|
2026
|
-
*
|
|
2137
|
+
* Registration of LLM provider
|
|
2027
2138
|
*
|
|
2028
|
-
*
|
|
2139
|
+
* Warning: This is not useful for the end user, it is just a side effect of the mechanism that handles all available LLM tools
|
|
2029
2140
|
*
|
|
2030
2141
|
* @public exported from `@promptbook/openai`
|
|
2031
2142
|
* @public exported from `@promptbook/cli`
|