通用配置#
机器人配置文件是您机器人的入口点。本节列出了您可以在 bot_config.yaml
文件中配置的选项。它包含构建不同用例所需的所有关键配置。它是 NeMo Guardrails 支持的配置 的扩展。NVIDIA ACE Agent 也支持 NeMo Guardrails 支持的所有配置。
此外,以下配置是 NVIDIA ACE Agent 独家支持的。
机器人名称和版本#
注意
必须在机器人配置文件中指定机器人名称。
机器人名称和版本组合必须是唯一的,并且在同时部署多个机器人时,将唯一用于标识您的机器人。带有版本的机器人名称应如下所示:{bot_name}_v{bot_version}
。例如
bot: llm_bot_v1
可以有选择地在机器人配置文件中指定机器人版本。如果没有版本,机器人名称应如下所示:{bot_name}
。例如
bot: llm_bot
配置 NLP 和插件服务器端点#
这些配置可以在 bot_config.yaml
文件中的 configs
字段下指定。可用配置如下所示。所有配置都有默认值,除非另有说明,否则默认情况下会被使用。
configs: # The endpoint URL of the NLP server service nlp_server_url: http://127.0.0.1:9000 # The endpoint URL of the plugin service plugin_server_url: http://127.0.0.1:9002 # The interval in seconds used to poll nlp server and fm server for checking availability by Chat Engine. This polling is used to ensure a smooth fallback if either of these services goes down in the middle of conversation. health_check_interval: 5
多语言配置#
NVIDIA ACE Agent 支持多语言输入和多语言输出。
如果您使用 Riva 的神经机器翻译 模型在查询级别或响应级别进行翻译,则需要提供 request_language
和 response_language
代码,如下所示。所有三个的默认值均为 en-US
。
language: Optional[str] = en-US request_language: Optional[str] = en-US response_language: Optional[str] = en-US
如果 request_language
不等于 language
,则将调用 NMT 模型(如果已部署)来翻译查询,源语言设置为 request_language
,目标语言设置为 language
。例如,您需要设置以下配置以将所有来自西班牙语的传入查询转换为英语
language: Optional[str] = en-US request_language: Optional[str] = es-US
如果 response_language
不等于 language
,则将调用 NMT 模型(如果已部署)来翻译响应文本,源语言设置为 language
,目标语言设置为 response_language
。例如,您需要设置以下配置以将所有从英语发出的响应转换为西班牙语
language: Optional[str] = en-US response_language: Optional[str] = es-US提示
请参阅 西班牙语天气 Bot 以查看上述配置的实际应用。
请求和响应语言也可以在运行时随每个查询一起提供。请参阅
/chat
端点模式。
LLM 模型配置#
要配置将由护栏配置使用的主干 LLM 模型,请设置 models
键
models: - type: main engine: openai model: gpt-4-turbo
属性的含义如下:
type
设置为main
,表示主 LLM 模型engine
是 LLM 提供商。model
是模型的名称。推荐选项是gpt-4-turbo
。parameters
是任何其他参数,例如temperature
、top_k
等。
在 models
键中应仅指定一个 LLM 模型。
NVIDIA ACE Agent 也支持所有 NeMo Guardrails 支持的 LLM 模型及其配置。
LangChain 模型#
您可以使用 LangChain 支持的云端任何 LLM 提供商,只需在 engine
字段中提及其名称即可。例如
ai21
aleph_alpha
anthropic
anyscale
azure
cohere
huggingface_endpoint
huggingface_hub
openai
self_hosted
self_hosted_hugging_face
请参阅 LangChain 文档 以获取完整列表。
NVIDIA AI 端点#
您可以使用任何可用的 NVIDIA API Catalog LLM 作为 NVIDIA AI 端点模型类型的一部分。将 engine
类型字段设置为 nim
以将其插入到您的机器人中,并提供模型名称以及任何所需的参数。
models: - type: main engine: nim model: <MODEL_NAME>
访问 NVIDIA API Catalog 网站以浏览 LLM 并试用它们。
对于使用本地 NIM 部署
models: - type: main engine: nim model: <MODEL_NAME> parameters: base_url: <NIM_ENDPOINT_URL>
要使用任何提供商,您需要安装额外的软件包。当您首次尝试使用新提供商的配置时,通常会收到来自 LangChain 的错误,指示您应安装哪个软件包。
重要提示
您可以实例化上述任何 LLM 提供商,但根据模型的功能,某些提供商与 NVIDIA ACE Agent 工具包的配合会更好。该工具包包括已针对某些类型的模型(例如
openai
)优化的提示。对于其他模型,您可以自行优化提示。
以下模型已使用 Colang 2.0-beta 版本进行测试。
OpenAI 模型
gpt-3.5-turbo-instruct
gGpt-3.5-turbo
gpt-4-turbo
gpt-4o
gpt-4o-mini
NIM 模型
meta/llama3-8b-instruct
meta/llama3-70b-instruct
meta/llama-3.1-8b-instruct
meta/llama-3.1-70b-instruct
使用 LangChain 包装器的自定义 LLM 模型#
要使用 LangChain 包装器注册自定义 LLM 提供商,您需要创建一个类,该类继承自 LangChain 提供的 BaseLanguageModel
类,并使用 NeMo Guardrails 提供的 register_llm_provider
实用程序方法注册它。此代码可以在名为 config.py
的初始化文件中提供。NVIDIA ACE Agent 将在启动机器人之前自动执行它。
from langchain.base_language import BaseLanguageModel from nemoguardrails.llm.providers import register_llm_provider class CustomLLM(BaseLanguageModel): """A custom LLM.""" register_llm_provider("custom_llm", CustomLLM)
然后,您可以在机器人配置文件中使用自定义 LLM 提供商
models: - type: main engine: custom_llm
LLM 提示#
您可以使用 prompts
键自定义用于各种 LLM 任务的提示(例如,生成用户意图、生成下一步、生成机器人消息)。例如,要覆盖用于 OpenAI gpt-4-turbo
模型的 generate_user_intent
任务的提示
prompts: - task: generate_user_intent models: - gpt-4-turbo content: |- <<This is a placeholder for a custom prompt for generating the user intent>>
NVIDIA ACE Agent 工具包使用的预定义任务的完整列表包括以下内容
general
生成下一个机器人消息,当不使用规范形式时。generate_user_intent
生成规范的用户消息。generate_next_steps
生成机器人下一步应该做或说的内容。generate_bot_message
生成下一个机器人消息。generate_value
生成上下文变量的值(换句话说,提取用户提供的值)。fact_checking
根据提供的证据检查机器人响应中的事实。jailbreak_check
检查是否有人试图违反审核策略。output_moderation
检查机器人响应是否有害、不道德或非法。check_hallucination
检查机器人响应是否为幻觉。
您可以在 NeMo Guardrails 存储库的 prompts 文件夹中查看默认提示。