pycoze 0.1.97__tar.gz → 0.1.99__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {pycoze-0.1.97 → pycoze-0.1.99}/PKG-INFO +1 -1
- pycoze-0.1.99/pycoze/access/bot_for_bot.py +40 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze/access/lib.py +14 -1
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze/access/tool_for_bot.py +3 -19
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze.egg-info/PKG-INFO +1 -1
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze.egg-info/SOURCES.txt +1 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/setup.py +1 -1
- {pycoze-0.1.97 → pycoze-0.1.99}/LICENSE +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/README.md +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze/__init__.py +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze/access/__init__.py +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze/ai/__init__.py +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze/ai/vram_reserve.py +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze/bot/__init__.py +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze/bot/agent/__init__.py +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze/bot/agent/agent.py +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze/bot/agent/agent_types/__init__.py +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze/bot/agent/agent_types/openai_func_call_agent.py +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze/bot/agent/assistant.py +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze/bot/agent/chat.py +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze/bot/bot.py +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze/module.py +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze/ui/__init__.py +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze/ui/base.py +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze/ui/color.py +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze/ui/typ.py +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze/ui/ui_def.py +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze/utils/__init__.py +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze/utils/arg.py +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze/utils/text_or_file.py +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze.egg-info/dependency_links.txt +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/pycoze.egg-info/top_level.txt +0 -0
- {pycoze-0.1.97 → pycoze-0.1.99}/setup.cfg +0 -0
@@ -0,0 +1,40 @@
|
|
1
|
+
import sys
|
2
|
+
import os
|
3
|
+
import importlib
|
4
|
+
from langchain.agents import tool as to_agent_tool
|
5
|
+
import types
|
6
|
+
import langchain_core
|
7
|
+
from .lib import ChangeDirectoryAndPath, ModuleManager, wrapped_fun
|
8
|
+
|
9
|
+
|
10
|
+
def import_tools(tool_id):
|
11
|
+
tool_base_path = "../../tool"
|
12
|
+
module_path = os.path.join(tool_base_path, tool_id)
|
13
|
+
module_path = os.path.normpath(os.path.abspath(module_path))
|
14
|
+
|
15
|
+
if not os.path.exists(module_path):
|
16
|
+
print(f"Tool {tool_id} not found")
|
17
|
+
return []
|
18
|
+
|
19
|
+
try:
|
20
|
+
with ModuleManager(module_path) as manager:
|
21
|
+
module = importlib.import_module("tool")
|
22
|
+
export_tools = getattr(module, "export_tools")
|
23
|
+
valid_tools = []
|
24
|
+
for tool in export_tools:
|
25
|
+
assert isinstance(tool, langchain_core.tools.StructuredTool) or isinstance(
|
26
|
+
tool, types.FunctionType
|
27
|
+
), f"Tool is not a StructuredTool or function: {tool}"
|
28
|
+
if not isinstance(tool, langchain_core.tools.StructuredTool):
|
29
|
+
tool = to_agent_tool(tool)
|
30
|
+
valid_tools.append(tool)
|
31
|
+
export_tools = valid_tools
|
32
|
+
|
33
|
+
except Exception as e:
|
34
|
+
print(f"Error loading tool {tool_id}: {e}")
|
35
|
+
return []
|
36
|
+
|
37
|
+
for tool in export_tools:
|
38
|
+
tool.func = wrapped_fun(tool, module_path)
|
39
|
+
|
40
|
+
return export_tools
|
@@ -44,4 +44,17 @@ class ModuleManager:
|
|
44
44
|
importlib.invalidate_caches()
|
45
45
|
for key in list(sys.modules.keys()):
|
46
46
|
if key not in self.original_modules:
|
47
|
-
del sys.modules[key]
|
47
|
+
del sys.modules[key]
|
48
|
+
|
49
|
+
|
50
|
+
def wrapped_fun(item, module_path):
|
51
|
+
original_tool_function = item.func
|
52
|
+
|
53
|
+
def _wrapped(*args, **kwargs):
|
54
|
+
print(f"调用了 {item.name}")
|
55
|
+
with ChangeDirectoryAndPath(module_path):
|
56
|
+
result = original_tool_function(*args, **kwargs)
|
57
|
+
print(f"{item.name} 调用完毕,结果为:", result)
|
58
|
+
return result
|
59
|
+
|
60
|
+
return _wrapped
|
@@ -4,26 +4,10 @@ import importlib
|
|
4
4
|
from langchain.agents import tool as to_agent_tool
|
5
5
|
import types
|
6
6
|
import langchain_core
|
7
|
-
from .lib import ChangeDirectoryAndPath, ModuleManager
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
def wrapped_tool(tool, module_path):
|
12
|
-
"""Wrap the tool function to include additional logging and path management."""
|
13
|
-
original_tool_function = tool.func
|
14
|
-
|
15
|
-
def _wrapped_tool(*args, **kwargs):
|
16
|
-
print(f"调用了{tool.name}")
|
17
|
-
with ChangeDirectoryAndPath(module_path):
|
18
|
-
result = original_tool_function(*args, **kwargs)
|
19
|
-
print(f"{tool.name}调用完毕,结果为:", result)
|
20
|
-
return result
|
21
|
-
|
22
|
-
return _wrapped_tool
|
7
|
+
from .lib import ChangeDirectoryAndPath, ModuleManager, wrapped_fun
|
23
8
|
|
24
9
|
|
25
10
|
def import_tools(tool_id):
|
26
|
-
"""Import tools from a specified tool_id."""
|
27
11
|
tool_base_path = "../../tool"
|
28
12
|
module_path = os.path.join(tool_base_path, tool_id)
|
29
13
|
module_path = os.path.normpath(os.path.abspath(module_path))
|
@@ -43,7 +27,7 @@ def import_tools(tool_id):
|
|
43
27
|
), f"Tool is not a StructuredTool or function: {tool}"
|
44
28
|
if not isinstance(tool, langchain_core.tools.StructuredTool):
|
45
29
|
tool = to_agent_tool(tool)
|
46
|
-
valid_tools.append(
|
30
|
+
valid_tools.append(tool)
|
47
31
|
export_tools = valid_tools
|
48
32
|
|
49
33
|
except Exception as e:
|
@@ -51,6 +35,6 @@ def import_tools(tool_id):
|
|
51
35
|
return []
|
52
36
|
|
53
37
|
for tool in export_tools:
|
54
|
-
tool.func =
|
38
|
+
tool.func = wrapped_fun(tool, module_path)
|
55
39
|
|
56
40
|
return export_tools
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|