LangChain 集成#

有两种主要方式可以将 NeMo Guardrails 与 LangChain 一起使用

  1. 将 guardrails 添加到 LangChain 链(或 Runnable)中。

  2. 在 guardrails 配置中使用 LangChain 链(或 Runnable)。

将 Guardrails 添加到链中#

您可以使用 RunnableRails 类轻松地将 guardrails 添加到链中

from nemoguardrails import RailsConfig
from nemoguardrails.integrations.langchain.runnable_rails import RunnableRails

# ... initialize `some_chain`

config = RailsConfig.from_path("path/to/config")

# Using LCEL, you first create a RunnableRails instance, and "apply" it using the "|" operator
guardrails = RunnableRails(config)
chain_with_guardrails = guardrails | some_chain

# Alternatively, you can specify the Runnable to wrap
# when creating the RunnableRails instance.
chain_with_guardrails = RunnableRails(config, runnable=some_chain)

有关更多详细信息,请查看RunnableRails 指南带 Guardrails 的链指南

在 Guardrails 中使用链#

要在 guardrails 配置中使用链(或 Runnable),您可以将其注册为 action。

from nemoguardrails import RailsConfig, LLMRails

config = RailsConfig.from_path("path/to/config")
rails = LLMRails(config)

rails.register_action(SampleChainOrRunnable(), "sample_action")

注册后,可以从流程中调用该链(或 Runnable

define flow
  ...
  $result = execute sample_action
  ...

有关完整示例,请查看作为 Action 的 Runnable 指南

LangSmith 集成#

NeMo Guardrails 开箱即用地集成了 LangSmith。要开始向 LangSmith 发送跟踪信息,您必须配置以下环境变量

export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_ENDPOINT=https://api.smith.langchain.com
export LANGCHAIN_API_KEY=<your-api-key>
export LANGCHAIN_PROJECT=<your-project>  # if not specified, defaults to "default"

有关配置 LangSmith 的更多详细信息,请查看LangSmith 文档