如何将运行时值传递给LangChain工具

在现代AI应用中,工具通常需要接收一些仅在运行时才知道的参数值。例如,工具逻辑可能需要使用发出请求的用户ID。然而,这些参数不应该由LLM(大型语言模型)控制,因为这可能导致安全风险。因此,应该由应用程序逻辑来固定这些参数,而LLM只负责控制那些可由模型生成的参数。

本文将指导您如何避免模型生成特定工具参数,并在运行时直接注入这些参数。

技术背景介绍

在使用LangChain时,您可能需要将诸如用户ID这样的参数绑定到工具上。这些参数在请求发出时才会确定,我们需要确保这些参数不会被LLM意外生成。

核心原理解析

LangChain提供了InjectedToolArg注解来标识某些参数将在运行时注入,这样模型就不会生成这些参数。

代码实现演示

下面我们将展示如何使用InjectedToolArg来标识user_id参数,以及如何在运行时注入该参数。

from typing import List
from langchain_core.tools import InjectedToolArg, tool
from typing_extensions import Annotated

# 定义一个字典来存储用户的宠物
user_to_pets = {
   }

@tool(parse_docstring
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值