NeMo Guardrails迁移指南:从Colang 1.0到Colang 2.0

NeMo Guardrails迁移指南:从Colang 1.0到Colang 2.0

NeMo-Guardrails NeMo Guardrails is an open-source toolkit for easily adding programmable guardrails to LLM-based conversational systems. NeMo-Guardrails 项目地址: https://gitcode.com/gh_mirrors/ne/NeMo-Guardrails

前言

在对话系统开发领域,NVIDIA的NeMo Guardrails项目提供了一套强大的安全护栏机制。随着项目发展,其核心语言Colang经历了从1.0到2.0的重大版本更新。本文将详细介绍如何将现有的Colang 1.0配置迁移到Colang 2.0版本,帮助开发者顺利完成过渡。

迁移工具概述

NeMo Guardrails提供了一个专门的命令行工具来完成配置迁移工作。这个工具会对指定目录下的所有.co文件执行自动转换,处理包括关键字替换、标识符大小写调整等多种语法变更。

重要提示:虽然迁移工具能处理大多数常见情况,但仍有部分边界条件需要人工检查。强烈建议在迁移完成后进行人工复核。

主要变更点解析

1. 流程定义语法变更

在Colang 2.0中,流程定义的关键字变得更加简洁统一:

  • define flowflow
  • define subflowflow
  • define botflow bot
  • define userflow user

示例转换:

# Colang 1.0
define flow
  user express greeting
  bot express greeting

# Colang 2.0
@active
flow express_greeting
  user express greeting
  bot express greeting

2. 执行控制变更

  • executeawait
  • 动作标识符从snake_case变为CamelCase并添加Action后缀
  • stopabort

3. 条件语句调整

  • else whenor when

4. 对话语句表示法

  • 引号字符串后的botbot sayor bot say
  • 引号字符串后的useruser saidor user said

5. 生成操作符变更

Colang 1.0中的生成操作:

# 一些自然语言指令
$var_name = ...

Colang 2.0中变为:

$name = ... "一些自然语言指令"

6. 通用匹配调整

  • user ...user said something
  • bot ...bot said something

迁移工具使用指南

执行迁移的基本命令格式:

nemoguardrails convert --from-version '1.0' "配置路径"

可选参数详解

  1. --from-version: 指定源版本,可选'1.0'或'2.0-alpha',默认为'1.0'
  2. --verbose/--no-verbose: 控制是否输出详细日志,默认关闭
  3. --validate/--no-validate: 是否使用Colang解析器验证输出,默认关闭
  4. --use-active-decorator/--no-use-active-decorator: 是否使用active装饰器,默认开启
  5. --include-main-flow/--no-include-main-flow: 是否为配置添加主流程,默认开启

最佳实践与注意事项

  1. 版本控制先行:迁移工具会直接修改原文件,建议在迁移前确保代码已纳入版本控制系统
  2. 命名规范:虽然工具不强制要求,但建议遵循以下约定:
    • 用户流程使用过去时态
    • 机器人流程使用现在时态
  3. 全局变量:建议在流程开始处明确定义全局变量
  4. 特殊字符:避免在流程定义中使用-+等特殊字符以及orand等保留字

已知限制

  1. 工具假设输入文件格式正确,格式错误的文件可能导致意外结果
  2. 基于正则表达式的替换可能在某些特殊情况下产生错误替换
  3. 文件读写错误不会被主动处理,工具会记录错误并继续处理下一个文件
  4. 不支持将全局变量自动重定位到流程开头

结语

从Colang 1.0迁移到2.0虽然涉及多项语法变更,但借助官方迁移工具可以大幅降低迁移成本。建议开发者在迁移完成后,仔细检查转换结果,特别是边界条件和特殊用法。通过遵循本文指南,您将能够顺利完成NeMo Guardrails配置的版本升级,享受Colang 2.0带来的改进和增强功能。

NeMo-Guardrails NeMo Guardrails is an open-source toolkit for easily adding programmable guardrails to LLM-based conversational systems. NeMo-Guardrails 项目地址: https://gitcode.com/gh_mirrors/ne/NeMo-Guardrails

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吕曦耘George

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值