Skip to content

Latest commit

 

History

History
366 lines (248 loc) · 13.2 KB

CHANGELOG.md

File metadata and controls

366 lines (248 loc) · 13.2 KB

⌚ Changelog

Released versions

0.20.0 (2023-12-29)

  • Change keyword USE to MODEL VARIANT
  • Allow to specify exact model eg. MODEL NAME gpt-4-1106-preview

0.20.1 (2024-01-15)

  • Add postprocessing function trimEndOfCodeBlock

0.20.2 (2024-01-16)

  • replaceParameters works with inlined JSONs

0.23.0 (2024-01-25)

  • You are able to send markdown code block in prompts (without traces of escaping)
  • Postprocessing function trimEndOfCodeBlock is not working with escaped code blocks JUST with markdown code blocks
  • Rename extractBlocksFromMarkdown to extractAllBlocksFromMarkdown

0.24.0 (2024-01-25)

  • Add postprocessing function trimCodeBlock
  • Add EXPECT command to promptbooks
  • Add ExecutionReport
  • Add parseNumber utility function
  • PtbkExecutor returns richer result and does not throw, just returns isSuccessful=false, You can use assertsExecutionSuccessful utility function to check if the execution was successful
  • Add assertsExecutionSuccessful utility function

0.25.0 (2024-02-03)

  • CreatePtbkExecutorSettings are not mandatory anymore

0.26.0 (2024-02-03)

  • Add EXPECT JSON command to promptbooks
  • Split internal representation EXPECT into EXPECT_AMOUNT and EXPECT_FORMAT

0.27.0 (2024-02-03)

Moving logic from promptbookStringToJson to createPtbkExecutor

  • Allow postprocessing and expectations in all execution types
  • Postprocessing is happening before checking expectations
  • In PromptbookJson postprocessing is represented internally in each PromptTemplateJson not as separate PromptTemplateJson
  • Introduce ExpectError
  • Rename maxNaturalExecutionAttempts to maxExecutionAttempts (because now it is not just for natural execution)
  • If title in promptbook contains emojis, pass it innto report
  • Fix description in report
  • Asking user infinite times for input if the input not matches the expectations

0.28.0 (2024-02-05)

Better execution report in markdown format

  • Add JOKER {foo} as a way how to skip part of the promptbook
  • Split UserInterfaceToolsPromptDialogOptions.prompt into promptTitle and promptMessage
  • Add UserInterfaceToolsPromptDialogOptions.priority
  • Add timing information to report
  • Maximum must be higher than minimum in EXPECT statement
  • Maximum 0 is not valid, should be at least 1 in EXPECT statement

0.29.0 (2024-02-06)

  • Allow to use custom postprocessing functions
  • Allow async postprocessing functions

0.30.0 (2024-02-09)

  • Remove Promptbook (just using JSON PromptbookJson format)
    • CreatePtbkExecutorOptions has PromptbookJson
  • Promptbooks are executed in parallel
    • PromptTemplateJson contains dependentParameterNames
    • validatePromptbookJson is checking for circular dependencies
    • Test that joker is one of the dependent parameters

0.31.0 (2024-02-12)

Better execution reports

  • Filter out voids in executionReportJsonToString
  • Add timing information to ExecutionReportJson (In both text and chart format)
  • Add money cost information to ExecutionReportJson (In both text and chart format)
  • Escape code blocks in markdown
  • Do not export replaceParameters utility function

0.32.0 (2024-02-12)

Export less functions from @promptbook/utils

0.33.0 (Skipped)

Iterating over parameters

  • Parameters can be both string and Array<string>
    • Array<string> will itterate over all values
    • You can use postprocessing functions or EXECUTE SCRIPT to split string into array and vice versa

0.34.0 (2024-02-19)

  • Do not remove emojis or formatting from task title in progress

0.35.0 (2024-03-01)

  • You can use prettifyMarkdown for postprocessing

0.35.1 (2024-03-06)

  • Add Mermaid graph to sample promptbooks
  • Fix spelling errors in OpenAI error messages

0.36.0 (2024-03-06)

Cleanup and renaming

  • Cleanup the project
  • Do not export unused types from @promptbook/types
  • Rename "Prompt template pipelines" to more meaningful "Promptbooks"
  • Remove DEFAULT_MODEL_REQUIREMENTS - You need to explicitly specify the requirements
  • Rename PromptTemplatePipelineLibrary -> PromptbookLibrary
  • Rename RemoteServerOptions.ptbkLibrary -> library
  • Add RemoteServerOptions.ptbkNames
  • Rename RemoteServerOptions.getPtp -> getPtbkByName
  • Do not use shortcut "Ptbk" but full "Promptbook" name in the code, classes, methods, etc.
  • Change command PTBK_URL to PROMPTBOOK_URL (but keep backward compatibility and preserve alias PTBK)
  • Change command PTBK_NAME to PROMPTBOOK_NAME (but keep backward compatibility and preserve alias PTBK)
  • Rename runRemoteServer -> startRemoteServer and return Destroyable object

0.37.0 (2024-03-08)

Explicit output parameters

  • Every promptbook has to have OUTPUT PARAMETER property in header

0.38.0 (2024-03-09)

Remove "I" prefix from interfaces and change interfaces to types.

  • Rename IAutomaticTranslator -> AutomaticTranslator
  • Rename ITranslatorOptions -> TranslatorOptions
  • Rename IGoogleAutomaticTranslatorOptions -> GoogleAutomaticTranslatorOptions
  • Rename ILindatAutomaticTranslatorOptions -> LindatAutomaticTranslatorOptions
  • Remove unused IPersonProfile
  • Remove unused ILicense
  • Remove unused IRepository

Note: Keeping "I" prefix in internal tooling like IEntity, IExecCommandOptions, IExecCommandOptions Note: Also keeping stuff imported from external libraries like IDestroyable

0.39.0 (2024-03-09)

Working on Promptbook Library. Identify promptbooks by URL.

  • Change PromptbookLibrary class to interface
  • Add SimplePromptbookLibrary class which implements PromptbookLibrary
  • Rename PromptbookLibrary.promptbookNames to PromptbookLibrary.promptbookUrls
  • Remove PromptbookLibrary.createExecutor to separate responsibility
  • Make more renamings and reorganizations in PromptbookLibrary
  • Make PromptbookLibrary.listPromptbooks async method
  • Make PromptbookLibrary.getPromptbookByUrl async method

0.40.0 (2024-03-10)

Multiple factories for PromptbookLibrary, Custom errors, enhance templating

  • Throwing NotFoundError
  • Throwing PromptbookSyntaxError
  • Throwing PromptbookLogicError
  • Throwing PromptbookExecutionError
  • Throwing PromptbookReferenceError
  • Throwing UnexepctedError
  • Preserve col-chars in multi-line templates, See more in replaceParameters unit test
  • Change static methods of PromptbookLibrary to standalone functions
  • Static method createPromptbookLibraryFromSources receives spreaded arguments Array instead of Record
  • Add factory function createPromptbookLibraryFromPromise

0.41.0 (2024-03-23)

More options to create PromptbookLibrary

  • Utility createPromptbookLibraryFromDirectory
  • Utility createPromptbookLibraryFromUrl
  • Add extractBlock to build-in functions
  • Remove problematic usage of chalk and use colors instead
  • Export replaceParameters from @promptbook/utils

0.42.0 (2024-03-24)

Better logo and branding of Promptbook.

0.43.0 (2024-03-26)

CLI utils exported from @promptbook/cli

After install you can use promptbook command in terminal:

npm i @promptbook/utils
npx promptbook prettify promptbook/**/*.ptbk.md

0.44.0 (2024-04-26)

  • Lower bundle size
  • Normalization library n12 is not used and all its functions are bringed to @promptbook/utils
  • Better error names
  • Better error used
  • Make ExpectError private
  • @promptbook/core is not be peer dependency of @promptbook/utils
  • Rename expectAmount in json to expectations
  • Expectations are passed into prompt object and used in natural tools
  • Add MockedFackedLlmExecutionTools
  • Add utils checkExpectations and isPassingExpectations
  • Better error messages from JavascriptEvalExecutionTools
  • Each exported NPM package has full README
  • spaceTrim is re-exported from @promptbook/utils

0.45.0 (2024-04-27)

More direct usage of OpenAI API, Refactoring

  • Pass directly Open AI otpions to OpenAiExecutionTools
    • Change openAiApiKey -> apiKey when creating new OpenAiExecutionTools
  • Change all import statements to import type when importing just types

0.46.0 (2024-04-28)

Reorganize packages

💡 Now you can just install promptbook or ptbk as alias for everything

  • New package promptbook as a link to all other packages
  • New package ptbk as an alias to promptbook
  • New package @promptbook/mock
    • Move there MockedEchoLlmExecutionTools and MockedFackedLlmExecutionTools from @promptbook/core
  • New package @promptbook/langtail to prepare for Langtail integration

0.47.0 (2024-05-02)

Tools refactoring

  • Rename "natural" -> "llm"
  • Allow to pass multiple llm into ExecutionTools container
  • Export renderPromptbookMermaid through @promptbook/utils

0.48.0 and 0.49.0 (2024-05-08)

Better utilities (for Promptbase app)

  • Add reverse utility the promptbookJsonToString
  • Allow to put link callback into renderPromptbookMermaid
  • Better prompt template identification
  • Add function titleToName exported from @promptbook/utils
  • Add function renameParameter exported from @promptbook/utils
  • Rename "Script Template" to just "Script"

0.50.0 (2024-05-17)

Was accidentally released as earlier, re-released fully completed as 0.51.0

0.51.0 (2024-05-24)

Add new OpenaAI models gpt-4o and gpt-4o-2024-05-13

  • Add model gpt-4o
  • Add model gpt-4o-2024-05-13
  • Classes that implements LlmExecutionTools must expose compatible models
  • List OpenAI models dynamically
  • All GPT models have pricing information
  • Export OPENAI_MODELS from @promptbook/openai
  • Export types LlmTemplateJson, SimpleTemplateJson, ScriptJson, PromptDialogJson, Expectations from @promptbook/types
  • ModelRequirements.modelName is not required anymore
  • PromptbookExecutor does not require onProgress anymore
  • ExecutionTools does not require userInterface anymore, when not set, the user interface is disabled and promptbook which requires user interaction will fail
  • Export extractParameters, extractVariables and extractParametersFromPromptTemplate from @promptbook/utils
  • Add and export set operations difference, intersection and union from @promptbook/utils
  • Export POSTPROCESSING_FUNCTIONS from @promptbook/execute-javascript

In pre-release

0.52.0 (2024-05-24)

Add support for Claude \ Anthropic models via package @promptbook/anthropic-claude and add Azure OpenAI models via package @promptbook/azure-openai

  • Export MultipleLlmExecutionTools from @promptbook/core
  • Always use "modelName" not just "model"
  • Standartization of model providers
  • Delete @promptbook/wizzard
  • Move assertsExecutionSuccessful,checkExpectations,executionReportJsonToString,ExecutionReportStringOptions,ExecutionReportStringOptionsDefaults,isPassingExpectations,prettifyPromptbookString from @promptbook/utils to @promptbook/core

In prepare

0..0 (2024-0-)

Better expectation format in PromptbookJson

0..0 (2024-0-)

Allow to split parameters into multiple values and iterate over them

0..0 (2024-0-)

  • Allow to specify model creativity eg. MODEL CREATIVITY EXTREME

0..0 (2024-0-)

Better script execution

  • Gettings rid of JavascriptEvalExecutionTools and implement propper isolated script execution in JavascriptExecutionTools
  • List all default postprocessing functions in @promptbook/utils README
  • Implement PythonExecutionTools for executing Python scripts

0..0 (2024-0-)

More options to create PromptbookLibrary

0..0 (2024-0-)

Intagration with Langtail

0..0 (2024-0-)

  • TODO: Add splitInto functions to @promptbook/utils besides all the count functions

  • Add countCharacters -> splitIntoCharacters

  • Add countLines -> splitIntoLines

  • Add countPages -> splitIntoPages

  • Add countParagraphs -> splitIntoParagraphs

  • Add countSentences -> splitIntoSentences

  • Add CountUtils -> splitIntoUtils

  • Add countWords -> splitIntoWords

0..0 (2024-0-)

More expect variations

  • Add command EXPECT "..." <-[🥤]
  • Add command EXPECT /.../i <-[🥤]
  • Add command EXPECT "...{foo}..." <-[🥤]
  • Add command EXPECT /...{foo}.../i <-[🥤]
  • Add command EXPECT JSON ARRAY and EXPECT JSON OBJECT (In future this will be suggar code for EXPECT JSON SCHEMA) <-[🥤]

Upcomming features

  • When postprocessing fails, retry in same way as failed expectations
  • When making next attempt for PROMPT DIALOG, preserve the previous user input <-[🌹]

1.0.0 Release

Across the repository there are marked [🍓] places that are required to be done before 1.0.0 release