Releases: NVIDIA/NeMo-Guardrails
v0.11.0
This release introduces new features and essential bug fixes. Key highlights of this release include support for Observability, Private AI, and Patronus Evaluate API Integrations, along with an upgrade to Langchain 3. Additionally, we have dropped support for Python 3.8 as it has reached its End of Life. You can now exclude specific files from being included in your RailsConfig by using a .railsignore file. Once this file is placed, its rules apply to all files within its directory and all of its subdirectories.
What's Changed
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
- Passthrough Support: Add passthrough support in Colang 2 (#779) by @Pouyanpi
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)
- Colang 2.0-beta.5: Upgrade Colang 2 version including new attention library besides other features and bugfixes (Colang 2 Changelog)
Fixed
- Colang: Multiline string values in interaction history prompting (#765) by @radinshayanfar
- 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) by @SSK-14
- 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
- Colang: Nested if else construct parsing (#833) by @radinshayanfar
- User Guide: Update role from bot to assistant (#852) by @Pouyanpi
Documentation
- 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
New Contributors
- @ravinder-tw made their first contribution in #801
- @SSK-14 made their first contribution in #800
- @ajanitshimanga made their first contribution in #790
- @letmerecall made their first contribution in #815
- @emmanuel-ferdman made their first contribution in #751
- @yonromai made their first contribution in #841
Full Changelog: v0.10.1...v0.11.0
v0.10.1
What's Changed
- Fix/colang 2/flow continuation prompt by @schuellc-nvidia in #775
- Remove the user intent from llm library module by @schuellc-nvidia in #777
Full Changelog: v0.10.0...v0.10.1
v0.10.0
This release introduces enhancements to elevate your AI development experience. Key highlights of this release include the introduction of a Content Safety Module, which aids in the integration of different content safety models, a new Migration Tool that facilitates migration from Colang 1.0 or Colang 2-alpha to the latest version of Colang 2 by handling a significant part of the conversion, support for the NeMo Guardrails standard library in Colang 2.x, added support for Rails Exception Handling within both Colang 1.0 and 2.x, and the addition of a Debugging Tool for Colang 2.x.
This update also includes numerous bug fixes and performance improvements contributed by our community.
What's Changed
- bug fix by @saradiazdelser in #392
- Fixed broken links by @buvnswrn in #670
- Feature/colang 2/standard library updates by @schuellc-nvidia in #669
- Fix: hallucination-check by @Pouyanpi in #679
- Add the
relevant_chunks
to the gpt-3.5 general prompt template. by @drazvan in #678 - Feature/colang 2/flow event bugfix by @schuellc-nvidia in #672
- Feat/content safety by @Pouyanpi in #674
- feat(embeddings): add search threshold to BasicEmbeddingsIndex by @Pouyanpi in #620
- Doc/llm per task by @Pouyanpi in #676
- Check that flow names don't start with keywords by @schuellc-nvidia in #637
- Feature/colang 2/deactivate keyword by @schuellc-nvidia in #673
- Fix/nvidia ai endpoints streaming by @Pouyanpi in #654
- Fix/issue 183 non openai hallucination check by @Pouyanpi in #681
- feat(llmrails): Add serialization support for LLMRails by @Pouyanpi in #627
- New Evaluation Tooling by @drazvan in #677
- fix: streamlit import error by @Pouyanpi in #686
- Fix/ issue 589 override prompt self check facts by @Pouyanpi in #621
- Initial work on support for exceptions. by @drazvan in #384
- refactor(api): Update Pydantic validators by @Pouyanpi in #688
- Feat/migration tool by @Pouyanpi in #624
- Refactor/migrate standard library by @Pouyanpi in #625
- Fix/output parser deprecation warning by @Pouyanpi in #691
- Colang 2.0 - Guardrails Library by @drazvan in #689
- Fix/langchain_nvidia_ai_endpoints patch by @Pouyanpi in #697
- Revert back the abc bot Colang v1 and move the v2 version to separate config. by @drazvan in #698
- Fix/colang 2 runtime issues by @schuellc-nvidia in #699
- fix: change 'send event' to 'send' by @Pouyanpi in #701
- Fix a small bug in the generate_flow action for Colang 2. by @drazvan in #710
- Fix/output parser validation by @Pouyanpi in #704
- Feaure/colang 2/expose bot config by @schuellc-nvidia in #703
- Fix: pass config and kwargs to passthrough_fn runnable for issue 665 by @vpr1995 in #695
- [Feature] Add Cleanlab's Trustworthiness Score by @AshishSardana in #572
- Feature/colang 2/llm chat interface by @schuellc-nvidia in #709
- Feat/add relevant chunk support to colang 2 by @Pouyanpi in #708
- Fix/rails exception migration by @Pouyanpi in #705
- fix(migration): replace hyphens and apostrophes by @Pouyanpi in #725
- Fix/llm flow continuation generation by @schuellc-nvidia in #724
- Fix/cli server command by @Pouyanpi in #723
- Fix/cache embeddings filesystem by @Pouyanpi in #722
- feat(library): Migrate cleanlab to colang 2 and add exception handling by @Pouyanpi in #714
- Docs/community cleanlab by @Pouyanpi in #713
- Feature/colang debug library by @schuellc-nvidia in #560
- Feature/extend debug cli by @schuellc-nvidia in #717
- Feature/colang 2/interaction loop priorties by @schuellc-nvidia in #712
- Fix the detection of the triggering flow id by @drazvan in #728
- Add support for tags in the Eval UI. by @drazvan in #731
- feat: Add support for embeddings only with search threshold by @Pouyanpi in #733
- Fix: Process all outgoing events by @sklinglernv in #732
- Fix the scene form and choice flows in the Colang 2 standard library by @sklinglernv in #741
- Feat/embedding only support colang 2 by @Pouyanpi in #737
- docs: Add note for rails exception handling in Colang 2.x by @Pouyanpi in #744
- feat: add relevant chunks prompts by @Pouyanpi in #745
- Fix multiline LLM output syntax error for dynamic flow generation by @radinshayanfar in #748
- Feature/gcp moderation by @kauabh in #727
- Feat/migration tool sample converstaion syntax conversion by @Pouyanpi in #764
- chore: Upgrade langchain-core and jinja by @Pouyanpi in #766
- Update changelog by @Pouyanpi in #769
New Contributors
- @saradiazdelser made their first contribution in #392
- @buvnswrn made their first contribution in #670
- @vpr1995 made their first contribution in #695
- @AshishSardana made their first contribution in #572
- @sklinglernv made their first contribution in #732
- @radinshayanfar made their first contribution in #748
- @kauabh made their first contribution in #727
Full Changelog: v0.9.1.1...v0.10.0
Release v0.9.1.1
Release v0.9.1
This release introduces three new integrations (Got It AI, AutoAlign and Patronus Lynx), streamlined NIM and NVIDIA API Catalog integration, support for registering custom embedding models, improvements and fixes to Colang 2.0, and many other bug fixes. This release also includes better out-of-the-box support for Llama-3 and Llama-3.1 models.
What's Changed
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.
New Contributors
- @mlmonk made their first contribution in #370
- @rgstephens made their first contribution in #504
- @abhijitpal1247 made their first contribution in #543
- @nicoloboschi made their first contribution in #551
- @elisam0 made their first contribution in #570
- @vedantnaik19 made their first contribution in #518
- @cyun9601 made their first contribution in #486
- @don-attilio made their first contribution in #463
- @varjoshi made their first contribution in #622
Full Changelog: v0.9.0...v0.9.1
Release v0.9.0
This release introduces Colang 2.0, the next version of Colang, and a revamped NeMo Guardrails Documentation.
Colang 2.0 brings a more solid foundation for building complex guardrail configurations (with better parallelism support), advanced RAG orchestration (e.g., with multi-query, contextual relevance check), agents (e.g., driving business process logic), and multi-modal LLM-driven interaction (e.g., interactive avatars). Colang 2.0 is a complete overhaul of the Colang language and runtime, and key enhancements include:
- A more powerful flow engine supporting multiple parallel flows and advanced pattern matching over the stream of events.
- Adoption of terminology and syntax akin to Python to reduce the learning curve for new developers.
- A standard library and an import mechanism to streamline development.
- Explicit entry point through the
main
flow and explicit activation of flows. - Smaller set of core abstractions: flows, events, and actions.
- The new generation operator (
...
). - Asynchronous action execution.
NOTE: The version of Colang included in v0.8.* is referred to as Colang 2.0-alpha. In v0.9.0, Colang 2.0 moved to Beta, which we refer to as Colang 2.0-beta. We expect Colang 2.0 to go out of Beta and replace Colang 1.0 as the default option in NeMo Guardrails v0.11.0.
Current limitations include not being able to use the Guardrails Library from within Colang 2.0 and no support for generation options (e.g., logs, activated rails). These limitations will be addressed in v0.10.0 and v0.11.0, along with additional features and example guardrail configurations.
To get started with Colang 2.0, if you’ve used Colang 1.0 before, you should check out What’s Changed page. If not, you can get started with the Hello World example.
Full Changelog: v0.8.3...v0.9.0
Release v0.8.3
This minor release updates the NVIDIA API Catalog integration documentation and fixes two bugs.
What's Changed
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.
New Contributors
- @dileepbapat made their first contribution in #442
Full Changelog: v0.8.2...v0.8.3
Release v0.8.2
This minor release adds support for integrating NeMo Guardrails with NVIDIA AI Endpoints and Vertex AI. It also introduces the research overview page, which guides the development of future guardrails. Last but not least, it adds another round of improvements for Colang 2.0 and multiple getting-started examples.
Colang 2.0 is the next version of Colang and will replace Colang 1.0 in a future release. It adds a more powerful flow engine, improved syntax, multi-modal support, parallelism for actions and flows, a standard library of flows, and more. This release still targets alpha testers and does not include the new documentation, which will be added in 0.9.0. Colang 2.0 and 1.0 will be supported side-by-side until Colang 1.0 is deprecated and removed.
What's Changed
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 throughRunnableRails
by @d-mariano. - #415 Enable
print(...)
andlog(...)
. - #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.
New Contributors
- @aishwaryap made their first contribution in #402
- @patriciapampanelli made their first contribution in #403
- @habanoz made their first contribution in #413
- @d-mariano made their first contribution in #389
Full Changelog: v0.8.1...v0.9.0
Release v0.8.1
This minor release mainly focuses on fixing Colang 2.0 parser and runtime issues. It fixes a bug related to logging the prompt for chat models in verbose mode and a small issue in the installation guide. It also adds an example of using streaming with a custom action.
What's Changed
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.
Full Changelog: v0.8.0...v0.8.1
Release v0.8.0
This release adds three main new features:
- A new type of input rail that uses a set of jailbreak heuristics. More heuristics will be added in the future.
- Support for generation options allowing fine-grained control on what types of rails should be triggered, what data should be returned and what logging information should be included in the response.
- Support for making API calls to the guardrails server using multiple configuration ids.
This release also improves the support for working with embeddings (better async support, batching and caching), adds support for stop tokens per task template, and adds streaming support for HuggingFace pipelines. Last but not least, this release includes the core implementation for Colang 2.0 as a preview for early testing (version 0.9.0
will include documentation and examples).
What's Changed
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:
- #311 Update documentation to demonstrate the use of output rails when using a custom RAG by @niels-garve.
- #347 Add detailed logging docs by @erickgalinkin.
- #354 Input and output rails only guide by @trebedea.
- #359 Added user guide for jailbreak detection heuristics by @makeshn.
- #363 Add multi-config API call user guide.
- #297 Example configurations for using only the guardrails, without LLM generation.
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.
New Contributors
- @manuelciosici made their first contribution in #309
- @erickgalinkin made their first contribution in #292
- @trebedea made their first contribution in #286
- @piotrm0 made their first contribution in #281
- @Pouyanpi made their first contribution in #208
- @niels-garve made their first contribution in #311
- @zmackie made their first contribution in #293
- @DougAtNvidia made their first contribution in #244
- @NirantK made their first contribution in #341
- @makeshn made their first contribution in #359
Full Changelog: v0.7.1...v0.8.0