当前位置: 首页 > news >正文

公司网站域名注册费用网站推广常用方法

公司网站域名注册费用,网站推广常用方法,网站自定义链接怎么做的,wordpress不能放flvLangChain组件Tools/Toolkits详解(6)——特殊类型注解Annotations 本篇摘要14. LangChain组件Tools/Toolkits详解14.6 特殊类型注解Annotations14.6.1 特殊类型注解分类14.6.1 InjectedToolArg构建运行时绑定值工具14.6.3 查看并传入参数14.6.4 在运行时注入参数14.6.5 其它特…

LangChain组件Tools/Toolkits详解(6)——特殊类型注解Annotations

  • 本篇摘要
  • 14. LangChain组件Tools/Toolkits详解
    • 14.6 特殊类型注解Annotations
      • 14.6.1 特殊类型注解分类
      • 14.6.1 InjectedToolArg构建运行时绑定值工具
      • 14.6.3 查看并传入参数
      • 14.6.4 在运行时注入参数
      • 14.6.5 其它特殊类型注解
    • 参考文献

本章目录如下:

  1. 《LangChain组件Tools/Toolkits详解(1)——Tools接口与创建工具概述》
  2. 《LangChain组件Tools/Toolkits详解(2)——装饰器@tool》
  3. 《LangChain组件Tools/Toolkits详解(3)——结构化工具StructuredTool》
  4. 《LangChain组件Tools/Toolkits详解(4)——处理Error》
  5. 《LangChain组件Tools/Toolkits详解(5)——返回产物artifact》
  6. 《LangChain组件Tools/Toolkits详解(6)——特殊类型注解》
  7. 《LangChain组件Tools/Toolkits详解(7)——工具调用与Toolkits》

本篇摘要

本章介绍LangChain组件Tools/Toolkits。

14. LangChain组件Tools/Toolkits详解

工具(Tools)是一种封装函数及其模式schema的方法,可以传递给聊天模型,使模型能够请求执行带有特定输入的工具函数,例如从数据库获取数据、发出API请求或运行自定义代码。LangChain中的tool抽象类将Python函数与定义函数名称、描述和预期参数的模式schema关联起来,以明确创建工具的作用及调用方式。本节将从Tools接口与创建工具概述、装饰器@tool、结构化工具StructuredTool、处理Error、返回产物artifact、特殊类型注解、工具调用和Toolkits等方面详细介绍工具。

14.6 特殊类型注解Annotations

在工具的函数签名中,可以使用一些特殊的类型注解(Special Type Annotations)来配置工具的运行时行为。本节将讲述其分类及使用方法。

14.6.1 特殊类型注解分类

常用的特殊类型注解有以下几种,下面注解将从工具的模式schema中移除相应的参数,这对于不应暴露给模型且模型不应控制的参数非常有用:

  • InjectedToolArg:值应在运行时使用.invoke或.ainvoke手动注入;
  • RunnableConfig:将RunnableConfig对象传递给工具;
  • InjectedState:将LangGraph图的整体状态传递给工具;
  • InjectedStore:将LangGraph存储对象传递给工具。

我们还可以使用Annotated类型与上面参数的字符串字面量(string literal)结合,为工具模式中暴露的相关参数提供描述,其调用格式为:

  • Annotated[type, “string literal”]:为参数添加描述,该描述将暴露在工具的模式中。

14.6.1 InjectedToolArg构建运行时绑定值工具

运行时绑定值:我们有时可能需要将仅在运行时已知的值绑定到工具,例如工具逻辑可能需要使用发起请求的用户ID。在大多数情况下,这些值不应由LLM(大语言模型)控制,因为允许LLM控制用户ID可能会导致安全风险,它们应由应用程序逻辑固定。为此我们使用InjectedToolArg注解来标记工具的某些参数,它允许从工具的模式中隐藏某些参数。下面将展示如何防止模型生成某些工具参数,并在运行时直接注入这些参数。

关于兼容性,本部分代码需要langchain-core >= 0.2.21,请确保已安装正确版本的包。另外对于LangGraph,请参考How to pass runtime values to tools,它讲述如何创建一个代理来跟踪给定用户最喜欢的宠物。

例如当工具需要在运行时动态注入user_id,首先以Anthropic为例创建LLM:

# !pip install -qU "langchain[anthropic]"
import getpass
import osif not os.environ.get("ANTHROPIC_API_KEY"):os.environ["ANTHROPIC_API_KEY"] = getpass.getpass("Enter API key for Anthropic: ")from langchain.chat_models import init_chat_modelllm = init_chat_model("claude-3-5-sonnet-latest", model_provider="anthropic")

然后通过使用InjectedToolArg注解user_id参数,告诉LangChain该参数不应作为工具模式的一部分暴露:

from typing import List
from langchain_core.tools import InjectedToolArg, tool
from typing_extensions import Annotateduser_to_pets = {}
@tool(parse_docstring=True)
def update_favorite_pets(pets: List[str], user_id: Annotated[
http://www.dtcms.com/a/608519.html

相关文章:

  • 公司网站的ftp是什么公司手机网站开发招标书
  • 网页设计网站官网莆田房产网
  • 自己做的网站怎么放图片怎么建立自己的网页
  • 有没有免费网站建设建站公司推荐首推万维科技
  • 山东网站建设代理江门专业制作网站
  • 网站开发还有哪些美容医疗 网站建设
  • 网站建设ydwzjswordpress前台发帖
  • 保护区门户网站建设制度做网站推广电话
  • iis7.5 添加网站凡科网站制作
  • 廊坊网站建设选择青橙网络做网站建设的公司有哪些
  • 大连制作网站企业建公司网站设计网站公司
  • 专业刷单网站建设免费网站app使用排名
  • ajax网站企业营销策划书
  • 做电子签章登录那个网站江苏网页定制
  • 做网站什么行业前景好wordpress手机页面底部导航
  • 佛山正规网站建设哪家好北京网站建设营销
  • 沭阳县城乡建设局网站wordpress 瀑布流主题
  • 网站开发费用如何入账wordpress KODExplorer
  • 东莞企网站建设网站建设规范布局
  • 山海关网站制作重庆秀山网站建设报价
  • 如何做网站的需求分析WordPress主题安全检查
  • wordpress前台管理员6嘉兴网站推广优化
  • 网站模版安装教程美工做任务网站
  • 建设银行网站登录首页四川建设厅官方网站九大员通知
  • 网站优化推广 site国内最新新闻消息今天的
  • 网站建设衤金手指谷哥十四qq个人邮箱登录入口
  • 网站推广套餐做网站用什么开发工具
  • 长沙建设网站企业山东网站建设公司排名
  • 网站建设制作公司都选万维科技工厂生产erp管理系统
  • 网站开发容易吗宜昌哪里有专业做网站的