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

python动态注册执行action

代码核心思想解析

这段 Python 代码主要用于 注册、管理和执行异步操作(Action),结合 Pydantic 进行 参数校验,并 支持动态扩展和装饰器方式注册异步任务。以下是代码的详细解析。


@self.registry.action('Complete task', param_model=DoneAction)
async def done(params: DoneAction):return ActionResult(is_done=True, extracted_content=params.text)class Registry:"""Service for registering and managing actions"""def __init__(self, exclude_actions: list[str] = []):self.registry = ActionRegistry()self.telemetry = ProductTelemetry()self.exclude_actions = exclude_actionsdef _create_param_model(self, function: Callable) -> Type[BaseModel]:"""Creates a Pydantic model from function signature"""sig = signature(function)params = {name: (param.annotation, ... if param.default == param.empty else param.default)for name, param in sig.parameters.items()if name != 'browser' and name != 'page_extraction_llm' and name != 'available_file_paths'}# TODO: make the types here workreturn create_model(f'{function.__name__}_parameters',__base__=ActionModel,**params,  # type: ignore)def action(self,description: str,param_model: Optional[Type[BaseModel]] = None,):"""Decorator for registering actions"""def decorator(func: Callable):# Skip registration if action is in exclude_actionsif func.__name__ in self.exclude_actions:return func# Create param model from function if not providedactual_param_model = param_model or self._create_param_model(func)# Wrap sync functions to make them asyncif not iscoroutinefunction(func):async def async_wrapper(*args, **kwargs):return await asyncio.to_thread(func, *args, 

相关文章:

  • 香港科技大学广州|先进材料学域博士招生宣讲会—天津大学专场
  • 精益数据分析(16/126):掌握关键方法,探寻创业真谛
  • CSGO 盲盒开箱系统技术实现深度解析
  • 《深度神经网络之数据增强、模型保存、模型调用、学习率调整》
  • 心智模式VS系统思考
  • 2025年渗透测试面试题总结-拷打题库14(题目+回答)
  • 嘉立创EDA使用
  • STM32版I²C相亲指南(软件硬件双修版)
  • JDK(Ubuntu 18.04.6 LTS)安装笔记
  • 【C++】vector扩容缩容
  • 量化价值投资的SWOT分析:从传统投资到量化策略的转型
  • 基础算法合集-二分查找(三种写法)
  • 智能指针(shared_ptr)之二
  • 新手村:正则化
  • 高防IP是什么
  • Linux——进程优先级/切换/调度
  • LeetCode算法题(Go语言实现)_58
  • Linux系统编程---精灵进程与守护进程
  • 基于 Vue 2 开发的分页卡片列表组件(带懒加载和点击事件)
  • 对流对象的理解
  • “两高”发布侵犯知产犯罪司法解释:降低部分犯罪入罪门槛
  • 三亚亚龙湾3.4公里岸线近岸海域使用权挂牌出让,起始价近九千万
  • 李公明︱一周书记:大学的价值、韧性以及……不相称的对抗
  • 特写|“三峡千古情”出圈,一场演出给宜昌留下更多游客
  • 刺激视网膜可让人“看”到全新颜色
  • 赵志丹任中国地质大学(北京)校长