-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathbuiltin.py
More file actions
124 lines (102 loc) · 4.14 KB
/
builtin.py
File metadata and controls
124 lines (102 loc) · 4.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
"""AgentScope 内置集成函数 / AgentScope Built-in Integration Functions
提供快速创建 AgentScope 兼容模型和工具的便捷函数。
Provides convenient functions for quickly creating AgentScope-compatible models and tools.
"""
from typing import Any, Callable, List, Optional, Union
from typing_extensions import Unpack
from agentrun.integration.builtin import (
knowledgebase_toolset as _knowledgebase_toolset,
)
from agentrun.integration.builtin import model as _model
from agentrun.integration.builtin import ModelArgs
from agentrun.integration.builtin import sandbox_toolset as _sandbox_toolset
from agentrun.integration.builtin import skill_tools as _skill_tools
from agentrun.integration.builtin import tool_resource as _tool_resource
from agentrun.integration.builtin import toolset as _toolset
from agentrun.integration.utils.tool import Tool
from agentrun.model import ModelProxy, ModelService
from agentrun.sandbox import TemplateType
from agentrun.tool.tool import Tool as ToolResourceType
from agentrun.toolset import ToolSet
from agentrun.utils.config import Config
def model(
name: Union[str, ModelProxy, ModelService],
**kwargs: Unpack[ModelArgs],
):
"""获取 AgentRun 模型并转换为 LangChain ``BaseChatModel``。 / AgentScope Built-in Integration Functions"""
m = _model(input=name, **kwargs)
return m.to_agentscope()
def toolset(
name: Union[str, ToolSet],
*,
prefix: Optional[str] = None,
modify_tool_name: Optional[Callable[[Tool], Tool]] = None,
filter_tools_by_name: Optional[Callable[[str], bool]] = None,
config: Optional[Config] = None,
) -> List[Any]:
"""将内置工具集封装为 LangChain ``StructuredTool`` 列表。 / AgentScope Built-in Integration Functions"""
ts = _toolset(input=name, config=config)
return ts.to_crewai(
prefix=prefix,
modify_tool_name=modify_tool_name,
filter_tools_by_name=filter_tools_by_name,
)
def tool_resource(
name: Union[str, ToolResourceType],
*,
prefix: Optional[str] = None,
modify_tool_name: Optional[Callable[[Tool], Tool]] = None,
filter_tools_by_name: Optional[Callable[[str], bool]] = None,
config: Optional[Config] = None,
) -> List[Any]:
"""将 ToolResource 封装为 AgentScope 工具列表。 / AgentScope Built-in ToolResource Integration"""
ts = _tool_resource(input=name, config=config)
return ts.to_agentscope(
prefix=prefix,
modify_tool_name=modify_tool_name,
filter_tools_by_name=filter_tools_by_name,
)
def sandbox_toolset(
template_name: str,
*,
template_type: TemplateType = TemplateType.CODE_INTERPRETER,
config: Optional[Config] = None,
sandbox_idle_timeout_seconds: int = 600,
prefix: Optional[str] = None,
) -> List[Any]:
"""将沙箱模板封装为 LangChain ``StructuredTool`` 列表。 / AgentScope Built-in Integration Functions"""
return _sandbox_toolset(
template_name=template_name,
template_type=template_type,
config=config,
sandbox_idle_timeout_seconds=sandbox_idle_timeout_seconds,
).to_agentscope(prefix=prefix)
def knowledgebase_toolset(
knowledge_base_names: List[str],
*,
prefix: Optional[str] = None,
modify_tool_name: Optional[Callable[[Tool], Tool]] = None,
filter_tools_by_name: Optional[Callable[[str], bool]] = None,
config: Optional[Config] = None,
) -> List[Any]:
"""将知识库检索封装为 AgentScope 工具列表。 / AgentScope Built-in Integration Functions"""
return _knowledgebase_toolset(
knowledge_base_names=knowledge_base_names,
config=config,
).to_agentscope(
prefix=prefix,
modify_tool_name=modify_tool_name,
filter_tools_by_name=filter_tools_by_name,
)
def skill_tools(
name: Optional[Union[str, List[str]]] = None,
*,
skills_dir: str = ".skills",
prefix: Optional[str] = None,
config: Optional[Config] = None,
) -> List[Any]:
"""将 Skill 封装为 AgentScope 工具列表。 / AgentScope Built-in Skill Integration"""
ts = _skill_tools(name=name, skills_dir=skills_dir, config=config)
return ts.to_agentscope(
prefix=prefix,
)