LangChain 集成
将 NeMo Guardrails 与 LangChain 结合使用主要有两种方式
向 LangChain chain(或
Runnable
)添加 guardrails。在 guardrails 配置内部使用 LangChain chain(或
Runnable
)。
向 Chain 添加 Guardrails
您可以使用 RunnableRails
类轻松地向 chain 添加 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 指南 和 Chain with Guardrails 指南。
在 Guardrails 内部使用 Chain
要在 guardrails 配置内部使用 chain(或 Runnable
),您可以将其注册为 action。
from nemoguardrails import RailsConfig, LLMRails
config = RailsConfig.from_path("path/to/config")
rails = LLMRails(config)
rails.register_action(SampleChainOrRunnable(), "sample_action")
注册后,可以从 flow 内部调用 chain(或 Runnable
)
define flow
...
$result = execute sample_action
...
有关完整示例,请查看 Runnable as Action 指南。
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 文档。