45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
"""
|
|
VWED.function 模块 - 自定义函数注册
|
|
"""
|
|
|
|
from typing import Dict, Callable, List
|
|
from ..script_registry_service import get_global_registry
|
|
|
|
|
|
class VWEDFunctionModule:
|
|
"""VWED.function 模块 - 自定义函数注册"""
|
|
|
|
def __init__(self, script_id: str):
|
|
self.script_id = script_id
|
|
self.registry = get_global_registry()
|
|
|
|
def register(self, name: str, handler: Callable = None, description: str = "",
|
|
params: Dict = None, parameters: List[Dict] = None,
|
|
return_schema: Dict = None, tags: List[str] = None):
|
|
"""分离式自定义函数注册
|
|
|
|
使用方式:
|
|
VWED.function.register(
|
|
name="simple_add",
|
|
handler=simple_add,
|
|
description="简单加法函数",
|
|
params={"a": 0, "b": 0} # 简化的参数定义
|
|
)
|
|
"""
|
|
if handler is None:
|
|
raise ValueError("handler参数不能为空")
|
|
|
|
self.registry.register_function(
|
|
name=name,
|
|
handler=handler,
|
|
script_id=self.script_id,
|
|
description=description,
|
|
params=params, # 传递简化的参数格式
|
|
parameters=parameters,
|
|
return_schema=return_schema,
|
|
tags=tags
|
|
)
|
|
return handler |