Skip to content

Latest commit

 

History

History
562 lines (419 loc) · 38.1 KB

CHANGELOG.md

File metadata and controls

562 lines (419 loc) · 38.1 KB

Changelog

All notable changes to this project will be documented in this file.

This project adheres to Semantic Versioning.

Note

We have updated our changelog format!

The changes related to the Colang language and runtime have moved to CHANGELOG-Colang file.

[0.12.0] - 2025-02-26

🚀 Features

  • Support Output Rails Streaming (#966, #1003)
  • Add unified output mapping for actions (#965)
  • Add output rails support to activefence integration (#940)
  • Add Prompt Security integration (#920)
  • Add pii masking capability to PrivateAI integration (#901)
  • Add embedding_params to BasicEmbeddingsIndex (#898)
  • Add score threshold to AnalyzerEngine (#845)

🐛 Bug Fixes

  • Fix dependency resolution issues in AlignScore Dockerfile(#1002, #982)
  • Fix JailbreakDetect docker files(#981, #1001)
  • Fix TypeError from attempting to unpack already-unpacked dictionary. (#959)
  • Fix token stats usage in LLM call info. (#953)
  • Handle unescaped quotes in generate_value using safe_eval (#946)
  • Handle non-relative file paths (#897)
  • Set workdir to models and specify entrypoint explicitly (#1001).

📚 Documentation

  • Output streaming (#976)
  • Fix typos with oauthtoken (#957)
  • Fix broken link in prompt security (#978)
  • Update advanced user guides per v0.11.1 doc release (#937)

⚙️ Miscellaneous Tasks

  • Tolerate prompt in code blocks (#1004)
  • Update YAML indent to use two spaces (#1009)

[0.11.1] - 2025-01-16

Added

  • ContentSafety: Add ContentSafety NIM connector (#930) by @prasoonvarshney
  • TopicControl: Add TopicControl NIM connector (#930) by @makeshn
  • JailbreakDetect: Add jailbreak detection NIM connector (#930) by @erickgalinkin

Changed

  • AutoAlign Integration: Add further enhancements and refactoring to AutoAlign integration (#867) by @KimiJL

Fixed

  • PrivateAI Integration: Fix Incomplete URL substring sanitization Error (#883) by @NJ-186

Documentation

  • NVIDIA Blueprint: Add Safeguarding AI Virtual Assistant NIM Blueprint NemoGuard NIMs (#932) by @abodhankar

  • ActiveFence Integration: Fix flow definition in community docs (#890) by @noamlevy81

[0.11.0] - 2024-11-19

Added

  • Observability: Add observability support with support for different backends (#844) by @Pouyanpi
  • Private AI Integration: Add Private AI Integration (#815) by @letmerecall
  • Patronus Evaluate API Integration: Patronus Evaluate API Integration (#834) by @varjoshi
  • railsignore: Add support for .railsignore file (#790) by @ajanitshimanga

Changed

  • Sandboxed Environment in Jinja2: Add sandboxed environment in Jinja2 (#799) by @Pouyanpi
  • Langchain 3 support: Upgrade LangChain to Version 0.3 (#784) by @Pouyanpi
  • Python 3.8: Drop support for Python 3.8 (#803) by @Pouyanpi
  • vllm: Bump vllm from 0.2.7 to 0.5.5 for llama_guard and patronusai(#836)

Fixed

  • Guardrails Library documentation": Fix a typo in guardrails library documentation (#793) by @vedantnaik19
  • Contributing Guide: Fix incorrect folder name & pre-commit setup in CONTRIBUTING.md (#800)
  • Contributing Guide: Added correct Python command version in documentation(#801) by @ravinder-tw
  • retrieve chunk action: Fix presence of new line in retrieve chunk action (#809) by @Pouyanpi
  • Standard Library import: Fix guardrails standard library import path in Colang 2.0 (#835) by @Pouyanpi
  • AlignScore Dockerfile: Add nltk's punkt_tab in align_score Dockerfile (#841) by @yonromai
  • Eval dependencies: Make pandas version constraint explicit for eval optional dependency (#847) by @Pouyanpi
  • tests: Mock PromptSession to prevent console error (#851) by @Pouyanpi
  • *Streaming: Handle multiple output parsers in generation (#854) by @Pouyanpi

Documentation

  • User Guide: Update role from bot to assistant (#852) by @Pouyanpi
  • Installation Guide: Update optional dependencies install (#853) by @Pouyanpi
  • Documentation Restructuring: Restructure the docs and several style enhancements (#855) by @Pouyanpi
  • Got It AI deprecation: Add deprecation notice for Got It AI integration (#857) by @mlmonk

[0.10.1] - 2024-10-02

  • Colang 2.0-beta.4 patch

[0.10.0] - 2024-09-27

Added

  • content safety: Implement content safety module (#674) by @Pouyanpi
  • migration tool: Enhance migration tool capabilities (#624) by @Pouyanpi
  • Cleanlab Integration: Add Cleanlab's Trustworthiness Score (#572) by @AshishSardana
  • Colang 2: LLM chat interface development (#709) by @schuellc-nvidia
  • embeddings: Add relevant chunk support to Colang 2 (#708) by @Pouyanpi
  • library: Migrate Cleanlab to Colang 2 and add exception handling (#714) by @Pouyanpi
  • Colang debug library: Develop debugging tools for Colang (#560) by @schuellc-nvidia
  • debug CLI: Extend debugging command-line interface (#717) by @schuellc-nvidia
  • embeddings: Add support for embeddings only with search threshold (#733) by @Pouyanpi
  • embeddings: Add embedding-only support to Colang 2 (#737) by @Pouyanpi
  • embeddings: Add relevant chunks prompts (#745) by @Pouyanpi
  • gcp moderation: Implement GCP-based moderation tools (#727) by @kauabh
  • migration tool: Sample conversation syntax conversion (#764) by @Pouyanpi
  • llmrails: Add serialization support for LLMRails (#627) by @Pouyanpi
  • exceptions: Initial support for exception handling (#384) by @drazvan
  • evaluation tooling: Develop new evaluation tools (#677) by @drazvan
  • Eval UI: Add support for tags in the Evaluation UI (#731) by @drazvan
  • guardrails library: Launch Colang 2.0 Guardrails Library (#689) by @drazvan
  • configuration: Revert abc bot to Colang v1 and separate v2 configuration (#698) by @drazvan

Changed

  • api: Update Pydantic validators (#688) by @Pouyanpi

  • standard library: Refactor and migrate standard library components (#625) by @Pouyanpi

  • Upgrade langchain-core and jinja2 dependencies (#766) by @Pouyanpi

Fixed

  • documentation: Fix broken links (#670) by @buvnswrn
  • hallucination-check: Correct hallucination-check functionality (#679) by @Pouyanpi
  • streaming: Fix NVIDIA AI endpoints streaming issues (#654) by @Pouyanpi
  • hallucination-check: Resolve non-OpenAI hallucination check issue (#681) by @Pouyanpi
  • import error: Fix Streamlit import error (#686) by @Pouyanpi
  • prompt override: Fix override prompt self-check facts (#621) by @Pouyanpi
  • output parser: Resolve deprecation warning in output parser (#691) by @Pouyanpi
  • patch: Fix langchain_nvidia_ai_endpoints patch (#697) by @Pouyanpi
  • runtime issues: Address Colang 2 runtime issues (#699) by @schuellc-nvidia
  • send event: Change 'send event' to 'send' (#701) by @Pouyanpi
  • output parser: Fix output parser validation (#704) by @Pouyanpi
  • passthrough_fn: Pass config and kwargs to passthrough_fn runnable (#695) by @vpr1995
  • rails exception: Fix rails exception migration (#705) by @Pouyanpi
  • migration: Replace hyphens and apostrophes in migration (#725) by @Pouyanpi
  • flow generation: Fix LLM flow continuation generation (#724) by @schuellc-nvidia
  • server command: Fix CLI server command (#723) by @Pouyanpi
  • embeddings filesystem: Fix cache embeddings filesystem (#722) by @Pouyanpi
  • outgoing events: Process all outgoing events (#732) by @sklinglernv
  • generate_flow: Fix a small bug in the generate_flow action for Colang 2 (#710) by @drazvan
  • triggering flow id: Fix the detection of the triggering flow id (#728) by @drazvan
  • LLM output: Fix multiline LLM output syntax error for dynamic flow generation (#748) by @radinshayanfar
  • scene form: Fix the scene form and choice flows in the Colang 2 standard library (#741) by @sklinglernv

Documentation

  • Cleanlab: Update community documentation for Cleanlab integration (#713) by @Pouyanpi
  • rails exception handling: Add notes for Rails exception handling in Colang 2.x (#744) by @Pouyanpi
  • LLM per task: Document LLM per task functionality (#676) by @Pouyanpi

Others

  • relevant_chunks: Add the relevant_chunks to the GPT-3.5 general prompt template (#678) by @drazvan
  • flow names: Ensure flow names don't start with keywords (#637) by @schuellc-nvidia

[0.9.1.1] - 2024-07-26

Fixed

  • #650 Fix gpt-3.5-turbo-instruct prompts #651.

[0.9.1] - 2024-07-25

Added

  • Colang version 2.0-beta.2
  • #370 Add Got It AI's Truthchecking service for RAG applications by @mlmonk.
  • #543 Integrating AutoAlign's guardrail library with NeMo Guardrails by @abhijitpal1247.
  • #566 Autoalign factcheck examples by @abhijitpal1247.
  • #518 Docs: add example config for using models with ollama by @vedantnaik19.
  • #538 Support for --default-config-id in the server.
  • #539 Support for LLMCallException.
  • #548 Support for custom embedding models.
  • #617 NVIDIA AI Endpoints embeddings.
  • #462 Support for calling embedding models from langchain-nvidia-ai-endpoints.
  • #622 Patronus Lynx Integration.

Changed

  • #597 Make UUID generation predictable in debug-mode.
  • #603 Improve chat cli logging.
  • #551 Upgrade to Langchain 0.2.x by @nicoloboschi.
  • #611 Change default templates.
  • #545 NVIDIA API Catalog and NIM documentation update.
  • #463 Do not store pip cache during docker build by @don-attilio.
  • #629 Move community docs to separate folder.
  • #647 Documentation updates.
  • #648 Prompt improvements for Llama-3 models.

Fixed

  • #482 Update README.md by @curefatih.
  • #530 Improve the test serialization test to make it more robust.
  • #570 Add support for FacialGestureBotAction by @elisam0.
  • #550 Fix issue #335 - make import errors visible.
  • #547 Fix LLMParams bug and add unit tests (fixes #158).
  • #537 Fix directory traversal bug.
  • #536 Fix issue #304 NeMo Guardrails packaging.
  • #539 Fix bug related to the flow abort logic in Colang 1.0 runtime.
  • #612 Follow-up fixes for the default prompt change.
  • #585 Fix Colang 2.0 state serialization issue.
  • #486 Fix select model type and custom prompts task.py by @cyun9601.
  • #487 Fix custom prompts configuration manual.md.
  • #479 Fix static method and classmethod action decorators by @piotrm0.
  • #544 Fix issue #216 bot utterance.
  • #616 Various fixes.
  • #623 Fix path traversal check.

[0.9.0] - 2024-05-08

Added

Fixed

  • #461 Feature/ccl cleanup.
  • #483 Fix dictionary expression evaluation bug.
  • #467 Feature/colang doc related cleanups.
  • #484 Enable parsing of ..."<NLD>" expressions.
  • #478 Fix #420 - evaluate not working with chat models.

[0.8.3] - 2024-04-18

Changed

  • #453 Update documentation for NVIDIA API Catalog example.

Fixed

  • #382 Fix issue with lowest_temperature in self-check and hallucination rails.
  • #454 Redo fix for #385.
  • #442 Fix README type by @dileepbapat.

[0.8.2] - 2024-04-01

Added

  • #402 Integrate Vertex AI Models into Guardrails by @aishwaryap.
  • #403 Add support for NVIDIA AI Endpoints by @patriciapampanelli
  • #396 Docs/examples nv ai foundation models.
  • #438 Add research roadmap documentation.

Changed

  • #389 Expose the verbose parameter through RunnableRails by @d-mariano.
  • #415 Enable print(...) and log(...).
  • #389 Expose verbose arg in RunnableRails by @d-mariano.
  • #414 Feature/colang march release.
  • #416 Refactor and improve the verbose/debug mode.
  • #418 Feature/colang flow context sharing.
  • #425 Feature/colang meta decorator.
  • #427 Feature/colang single flow activation.
  • #426 Feature/colang 2.0 tutorial.
  • #428 Feature/Standard library and examples.
  • #431 Feature/colang various improvements.
  • #433 Feature/Colang 2.0 improvements: generate_async support, stateful API.

Fixed

  • #412 Fix #411 - explain rails not working for chat models.
  • #413 Typo fix: Comment in llm_flows.co by @habanoz.
  • #420 Fix typo for hallucination message.

[0.8.1] - 2024-03-15

Added

  • #377 Add example for streaming from custom action.

Changed

  • #380 Update installation guide for OpenAI usage.
  • #401 Replace YAML import with new import statement in multi-modal example.

Fixed

  • #398 Colang parser fixes and improvements.
  • #394 Fixes and improvements for Colang 2.0 runtime.
  • #381 Fix typo by @serhatgktp.
  • #379 Fix missing prompt in verbose mode for chat models.
  • #400 Fix Authorization header showing up in logs for NeMo LLM.

[0.8.0] - 2024-02-28

Added

  • #292 Jailbreak heuristics by @erickgalinkin.
  • #256 Support generation options.
  • #307 Added support for multi-config api calls by @makeshn.
  • #293 Adds configurable stop tokens by @zmackie.
  • #334 Colang 2.0 - Preview by @schuellc.
  • #208 Implement cache embeddings (resolves #200) by @Pouyanpi.
  • #331 Huggingface pipeline streaming by @trebedea.

Documentation:

Changed

  • #309 Change the paper citation from ArXiV to EMNLP 2023 by @manuelciosici
  • #319 Enable embeddings model caching.
  • #267 Make embeddings computing async and add support for batching.
  • #281 Follow symlinks when building knowledge base by @piotrm0.
  • #280 Add more information to results of retrieve_relevant_chunks by @piotrm0.
  • #332 Update docs for batch embedding computations.
  • #244 Docs/edit getting started by @DougAtNvidia.
  • #333 Follow-up to PR 244.
  • #341 Updated 'fastembed' version to 0.2.2 by @NirantK.

Fixed

  • #286 Fixed #285 - using the same evaluation set given a random seed for topical rails by @trebedea.
  • #336 Fix #320. Reuse the asyncio loop between sync calls.
  • #337 Fix stats gathering in a parallel async setup.
  • #342 Fixes OpenAI embeddings support.
  • #346 Fix issues with KB embeddings cache, bot intent detection and config ids validator logic.
  • #349 Fix multi-config bug, asyncio loop issue and cache folder for embeddings.
  • #350 Fix the incorrect logging of an extra dialog rail.
  • #358 Fix Openai embeddings async support.
  • #362 Fix the issue with the server being pointed to a folder with a single config.
  • #352 Fix a few issues related to jailbreak detection heuristics.
  • #356 Redo followlinks PR in new code by @piotrm0.

[0.7.1] - 2024-02-01

Changed

  • #288 Replace SentenceTransformers with FastEmbed.

[0.7.0] - 2024-01-31

Added

Changed

  • #240 Switch to pyproject.
  • #276 Upgraded Typer to 0.9.

Fixed

  • #286 Fixed not having the same evaluation set given a random seed for topical rails.
  • #239 Fixed logging issue where verbose=true flag did not trigger expected log output.
  • #228 Fix docstrings for various functions.
  • #242 Fix Azure LLM support.
  • #225 Fix annoy import, to allow using without.
  • #209 Fix user messages missing from prompt.
  • #261 Fix small bug in print_llm_calls_summary.
  • #252 Fixed duplicate loading for the default config.
  • Fixed the dependencies pinning, allowing a wider range of dependencies versions.
  • Fixed sever security issues related to uncontrolled data used in path expression and information exposure through an exception.

[0.6.1] - 2023-12-20

Added

  • Support for --version flag in the CLI.

Changed

  • Upgraded langchain to 0.0.352.
  • Upgraded httpx to 0.24.1.
  • Replaced deprecated text-davinci-003 model with gpt-3.5-turbo-instruct.

Fixed

  • #191: Fix chat generation chunk issue.

[0.6.0] - 2023-12-13

Added

Changed

  • Allow context data directly in the /v1/chat/completion using messages with the type "role".
  • Allow calling a subflow whose name is in a variable, e.g. do $some_name.
  • Allow using actions which are not async functions.
  • Disabled pretty exceptions in CLI.
  • Upgraded dependencies.
  • Updated the Getting Started Guide.
  • Main README now provides more details.
  • Merged original examples into a single ABC Bot and removed the original ones.
  • Documentation improvements.

Fixed

  • Fix going over the maximum prompt length using the max_length attribute in Prompt Templates.
  • Fixed problem with nest_asyncio initialization.
  • #144 Fixed TypeError in logging call.
  • #121 Detect chat model using openai engine.
  • #109 Fixed minor logging issue.
  • Parallel flow support.
  • Fix HuggingFacePipeline bug related to LangChain version upgrade.

[0.5.0] - 2023-09-04

Added

Changed

  • Moved to using nest_asyncio for implementing the blocking API. Fixes #3 and #32.
  • Improved event property validation in new_event_dict.
  • Refactored imports to allow installing from source without Annoy/SentenceTransformers (would need a custom embedding search provider to work).

Fixed

  • Fixed when the init function from config.py is called to allow custom LLM providers to be registered inside.
  • #93: Removed redundant hasattr check in nemoguardrails/llm/params.py.
  • #91: Fixed how default context variables are initialized.

[0.4.0] - 2023-08-03

Added

Changed

  • Changed the naming of the internal events to align to the upcoming UMIM spec (Unified Multimodal Interaction Management).
  • If there are no user message examples, the bot messages examples lookup is disabled as well.

Fixed

  • #58: Fix install on Mac OS 13.
  • #55: Fix bug in example causing config.py to crash on computers with no CUDA-enabled GPUs.
  • Fixed the model name initialization for LLMs that use the model kwarg.
  • Fixed the Cohere prompt templates.
  • #55: Fix bug related to LangChain callbacks initialization.
  • Fixed generation of "..." on value generation.
  • Fixed the parameters type conversion when invoking actions from Colang (previously everything was string).
  • Fixed model_kwargs property for the WrapperLLM.
  • Fixed bug when stop was used inside flows.
  • Fixed Chat UI bug when an invalid guardrails configuration was used.

[0.3.0] - 2023-06-30

Added

  • Support for defining subflows.
  • Improved support for customizing LLM prompts
    • Support for using filters to change how variables are included in a prompt template.
    • Output parsers for prompt templates.
    • The verbose_v1 formatter and output parser to be used for smaller models that don't understand Colang very well in a few-shot manner.
    • Support for including context variables in prompt templates.
    • Support for chat models i.e. prompting with a sequence of messages.
  • Experimental support for allowing the LLM to generate multi-step flows.
  • Example of using Llama Index from a guardrails configuration (#40).
  • Example for using HuggingFace Endpoint LLMs with a guardrails configuration.
  • Example for using HuggingFace Pipeline LLMs with a guardrails configuration.
  • Support to alter LLM parameters passed as model_kwargs in LangChain.
  • CLI tool for running evaluations on the different steps (e.g., canonical form generation, next steps, bot message) and on existing rails implementation (e.g., moderation, jailbreak, fact-checking, and hallucination).
  • Initial evaluation results for text-davinci-003 and gpt-3.5-turbo.
  • The lowest_temperature can be set through the guardrails config (to be used for deterministic tasks).

Changed

  • The core templates now use Jinja2 as the rendering engines.
  • Improved the internal prompting architecture, now using an LLM Task Manager.

Fixed

  • Fixed bug related to invoking a chain with multiple output keys.
  • Fixed bug related to tracking the output stats.
  • #51: Bug fix - avoid str concat with None when logging user_intent.
  • #54: Fix UTF-8 encoding issue and add embedding model configuration.

[0.2.0] - 2023-05-31

Added

Changed

  • Improved the logging output for Chat CLI (clear events stream, prompts, completion, timing information).
  • Updated system actions to use temperature 0 where it makes sense, e.g., canonical form generation, next step generation, fact checking, etc.
  • Excluded the default system flows from the "next step generation" prompt.
  • Updated langchain to 0.0.167.

Fixed

  • Fixed initialization of LangChain tools.
  • Fixed the overriding of general instructions #7.
  • Fixed action parameters inspection bug #2.
  • Fixed bug related to multi-turn flows #13.
  • Fixed Wolfram Alpha error reporting in the sample execution rail.

[0.1.0] - 2023-04-25

Added

  • First alpha release.