Callable
举例ToolRunner Callable[[dict[str, Any]], ToolResult]1. 整体作用这是Python 类型注解Type Hint给一类工具执行函数起别名ToolRunner统一约束所有工具的入参、返回值格式。意思ToolRunner 代表一个函数类型。2. 分段拆解①Callable来自标准库from typing import Callable用来描述「可调用对象」函数、lambda、带call的类实例。语法格式Callable[[参数1类型,参数2类型...],返回值类型]②[dict[str, Any]]代表函数的入参只有一个参数参数类型字典dictkey 是字符串value 任意类型③ToolResult代表函数的返回值类型是项目里自定义的数据类/TypedDict统一规定工具返回结构ToolResultdict[str,Any]④ToolRunner ...是类型别名以后代码里写ToolRunner等价于完整的Callable[[dict[str, Any]], ToolResult]简化书写。3.代码举例对照get_agent_tool(step.tool_name).run(tool_args)这里每个工具的.run方法类型就是ToolRunner调用时传参run(tool_args)→ 传入字典执行完返回result→ 是ToolResult结构示例工具类classRetrieveTool:# run 方法符合 ToolRunner 类型约束defrun(self,args:dict[str,Any])-ToolResult:# args 就是检索参数 {query:xxx, top_k:xxx}# 执行检索逻辑returnToolResult(statussuccess,data{chunks:[...]})4. 日常使用场景变量标注runner:ToolRunnerRetrieveTool().run函数参数标注defregister_tool(name:str,runner:ToolRunner):...一句话总结ToolRunner Callable[[dict[str, Any]], ToolResult]定义了一类标准工具执行函数接收单个字典参数统一返回 ToolResult 结构的函数用来约束项目里所有工具调用的统一入出参规范方便静态检查、统一工具调度逻辑。CallableCallable ≠ 单纯等于“函数”它代表「一切可以像函数一样加 () 调用执行的对象」函数只是其中最常见的一种。model.forward 这个方法本身是 Callablenn.Module 实例模型对象本身也是 Callable靠内部实现call自动调用 forward平时写 model(x) 不是直接调用 forward是走call再进 forward。在 Python 里只要你写对象(参数)解释器会**自动去执行这个对象的call魔法方法**。这是 Python 语言内置的语法约定不是 PyTorch 单独搞的设计。1. Callable 包含哪些东西只要能obj()调用都属于 Callable普通 def 定义的函数lambda 匿名函数类调用Class()会实例化类本身可调用实现了__call__方法的类实例内置函数、内置方法示例fromtypingimportCallabledeff(x):returnx1# 普通函数是 Callablea:Callable[[int],int]f# 带 __call__ 的对象也是classAdd:def__call__(self,x):returnx2b:Callable[[int],int]Add()# 类本身也可调用c:CallableAdd2. Callable 的两种写法① 不限定参数、返回值粗略标注fn:Callable只说明“这东西能调用”不限制入参、返回类型。② 精确约束参数和返回你代码里用的Callable[[dict[str,Any]],ToolResult]中括号里列表代表参数类型列表这里只有 1 个 dict 参数逗号后面函数返回值类型翻译一个可调用对象接收一个字典参数执行后返回ToolResult。3. 和普通函数注解的区别如果是一个固定函数你可以直接写defrun(args:dict)-ToolResult:...但当你要统一描述一类工具、回调、处理器不知道具体是哪个函数/哪个可调用对象就必须用Callable。就像你项目里的ToolRunner所有工具的.run()方法统一遵守一套入出参标准不管是检索工具、摘要工具、生成回答工具全都能用ToolRunner统一标注。4. 一句话区分函数只是 Callable 的子集Callable是 Python 里所有“可被 () 调用”对象的通用类型抽象。

相关新闻

Python 调用语法 `obj(...)` 的底层规则

Python 调用语法 `obj(...)` 的底层规则

核心原理:Python 调用语法 obj(...) 的底层规则 在 Python 里,只要你写 对象(参数),解释器会自动去执行这个对象的 __call__ 魔法方法。 这是 Python 语言内置的语法约定,不是 PyTorch 单独搞的设计。 1. 原生 Python 演示&#x…

2026/8/22 15:44:24 阅读更多 →
Meta-Voicebox核心架构图解:时长模型与Flow-Matching音频模型的两阶段设计完全拆解

Meta-Voicebox核心架构图解:时长模型与Flow-Matching音频模型的两阶段设计完全拆解

Meta-Voicebox核心架构图解:时长模型与Flow-Matching音频模型的两阶段设计完全拆解 【免费下载链接】Meta-voicebox Implementation of Meta-Voicebox : The first generative AI model for speech to generalize across tasks with state-of-the-art performance. …

2026/8/22 15:44:24 阅读更多 →
论文等级与期刊分类(超详细版)

论文等级与期刊分类(超详细版)

学术之路,从读懂论文开始。这篇文章帮你理清那些让人头秃的英文缩写和等级划分,建议收藏慢慢看。 作为一个刚踏入学术圈的小白,想必你也有过这样的经历:导师让你去读几篇“核心期刊”论文,你满口答应,转头…

2026/8/22 15:44:24 阅读更多 →

最新新闻

设计模式结构型——桥接模式

设计模式结构型——桥接模式

目录 什么是桥接模式 桥接模式的实现 桥接模式角色 桥接模式类图 桥接模式举例 桥接模式代码实现 桥接模式的特点 优点 缺点 使用场景 注意事项 什么是桥接模式 桥接(Bridge)模式是用于把抽象化与实现化解耦,使得二者可以独立变化…

2026/8/22 16:14:32 阅读更多 →
KMS_VL_ALL_AIO 本地KMS快速激活指南:从零到一,一个批处理搞定 Windows 和 Office 激活

KMS_VL_ALL_AIO 本地KMS快速激活指南:从零到一,一个批处理搞定 Windows 和 Office 激活

KMS_VL_ALL_AIO 本地KMS快速激活指南:从零到一,一个批处理搞定 Windows 和 Office 激活 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 重装系统后"未激活"的水…

2026/8/22 16:14:32 阅读更多 →
sql中根据父节点获取所有的子节点语句

sql中根据父节点获取所有的子节点语句

WITH sub_nodes(pk_id) AS (SELECT pk_id FROM IBP_T_Regions WHERE iparentid 56UNION ALLSELECT tn.pk_id FROM IBP_T_Regions tnJOIN IBP_T_Regions s ON tn.iparentid s.pk_id ) SELECT * FROM sub_nodes;如果修改指定父节点所有子节点的部门id值如下:WITH su…

2026/8/22 16:14:32 阅读更多 →
设计模式创建型——原型模式

设计模式创建型——原型模式

目录 什么是原型模式 原型模式的实现 原型模式分类 浅克隆和深克隆的区别 原型模式浅克隆 原型模式深克隆 原型模式简单实现方式 原型模式登记实现方式 原型模式的特点 特点 优点 缺点 应用场景 什么是原型模式 原型模式(Prototype Pattern&#xff09…

2026/8/22 16:14:32 阅读更多 →
视频修复实操:用 untrunc 修复截断 MP4 文件的完整流程

视频修复实操:用 untrunc 修复截断 MP4 文件的完整流程

视频修复实操:用 untrunc 修复截断 MP4 文件的完整流程 【免费下载链接】untrunc Restore a truncated mp4/mov. Improved version of ponchio/untrunc 项目地址: https://gitcode.com/gh_mirrors/un/untrunc MP4 文件录到一半就坏掉,往往让人无从…

2026/8/22 16:14:32 阅读更多 →
pgweb 完整指南:PostgreSQL 网页管理工具从建连到查数

pgweb 完整指南:PostgreSQL 网页管理工具从建连到查数

pgweb 完整指南:PostgreSQL 网页管理工具从建连到查数 【免费下载链接】pgweb Cross-platform client for PostgreSQL databases 项目地址: https://gitcode.com/gh_mirrors/pg/pgweb pgweb 是一个用 Go 编写的 PostgreSQL 网页管理工具,单个二进…

2026/8/22 16:13:32 阅读更多 →

日新闻

沉金PCB工艺实战指南:从设计到SMT焊接的可靠性保障

沉金PCB工艺实战指南:从设计到SMT焊接的可靠性保障

在电子硬件开发领域,PCB(印制电路板)的沉金工艺是提升产品可靠性和焊接质量的关键环节。对于需要高密度互连、长期稳定运行或高频信号传输的板卡,如“黍姐仿通行证”这类可能涉及身份识别、数据交互的硬件项目,选择正确…

2026/8/22 0:00:11 阅读更多 →
电气考研电路八月强化四步法:从知识体系到真题实战的闭环攻略

电气考研电路八月强化四步法:从知识体系到真题实战的闭环攻略

这次我们来看一个针对电气考研电路科目的学习规划项目。它不是软件工具,而是一套聚焦于8月份关键节点的备考策略。对于电气工程考研的同学来说,电路分析是专业课的重中之重,也是拉开分差的关键。进入8月,复习进入强化阶段&#xf…

2026/8/22 0:00:11 阅读更多 →
消除AI代码的“AI味”:Claude Code设计优化技能配置与实战指南

消除AI代码的“AI味”:Claude Code设计优化技能配置与实战指南

大家好,我是专注于前端开发与AI工具实践的技术博主。在日常使用 Claude Code 等AI编程助手时,你是否也遇到过这样的困扰:生成的代码功能上没问题,但代码风格、组件设计、交互逻辑总透着一股“AI味”——布局单调、样式简陋、交互生…

2026/8/22 0:00:11 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/21 3:21:33 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/22 8:09:09 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/21 6:07:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/21 16:42:28 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/22 7:31:03 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/22 3:22:48 阅读更多 →