veadk-python 0.2.14__py3-none-any.whl → 0.2.15__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of veadk-python might be problematic. Click here for more details.
- veadk/cli/cli_web.py +60 -151
- veadk/tools/builtin_tools/generate_image.py +23 -0
- veadk/version.py +1 -1
- {veadk_python-0.2.14.dist-info → veadk_python-0.2.15.dist-info}/METADATA +1 -1
- {veadk_python-0.2.14.dist-info → veadk_python-0.2.15.dist-info}/RECORD +9 -8
- {veadk_python-0.2.14.dist-info → veadk_python-0.2.15.dist-info}/WHEEL +0 -0
- {veadk_python-0.2.14.dist-info → veadk_python-0.2.15.dist-info}/entry_points.txt +0 -0
- {veadk_python-0.2.14.dist-info → veadk_python-0.2.15.dist-info}/licenses/LICENSE +0 -0
- {veadk_python-0.2.14.dist-info → veadk_python-0.2.15.dist-info}/top_level.txt +0 -0
veadk/cli/cli_web.py
CHANGED
|
@@ -12,99 +12,13 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
from
|
|
15
|
+
from functools import wraps
|
|
16
16
|
|
|
17
17
|
import click
|
|
18
18
|
|
|
19
|
-
from veadk.
|
|
20
|
-
from veadk.memory.short_term_memory import ShortTermMemory
|
|
19
|
+
from veadk.utils.logger import get_logger
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
def _get_stm_from_module(module) -> ShortTermMemory:
|
|
24
|
-
return module.agent_run_config.short_term_memory
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
def _get_stm_from_env() -> ShortTermMemory:
|
|
28
|
-
import os
|
|
29
|
-
|
|
30
|
-
from veadk.utils.logger import get_logger
|
|
31
|
-
|
|
32
|
-
logger = get_logger(__name__)
|
|
33
|
-
|
|
34
|
-
short_term_memory_backend = os.getenv("SHORT_TERM_MEMORY_BACKEND")
|
|
35
|
-
if not short_term_memory_backend: # prevent None or empty string
|
|
36
|
-
short_term_memory_backend = "local"
|
|
37
|
-
logger.info(f"Short term memory: backend={short_term_memory_backend}")
|
|
38
|
-
|
|
39
|
-
return ShortTermMemory(backend=short_term_memory_backend) # type: ignore
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
def _get_ltm_from_module(module) -> LongTermMemory | None:
|
|
43
|
-
agent = module.agent_run_config.agent
|
|
44
|
-
|
|
45
|
-
if not hasattr(agent, "long_term_memory"):
|
|
46
|
-
return None
|
|
47
|
-
else:
|
|
48
|
-
return agent.long_term_memory
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
def _get_ltm_from_env() -> LongTermMemory | None:
|
|
52
|
-
import os
|
|
53
|
-
|
|
54
|
-
from veadk.utils.logger import get_logger
|
|
55
|
-
|
|
56
|
-
logger = get_logger(__name__)
|
|
57
|
-
|
|
58
|
-
long_term_memory_backend = os.getenv("LONG_TERM_MEMORY_BACKEND")
|
|
59
|
-
app_name = os.getenv("VEADK_WEB_APP_NAME", "")
|
|
60
|
-
user_id = os.getenv("VEADK_WEB_USER_ID", "")
|
|
61
|
-
|
|
62
|
-
if long_term_memory_backend:
|
|
63
|
-
logger.info(f"Long term memory: backend={long_term_memory_backend}")
|
|
64
|
-
return LongTermMemory(
|
|
65
|
-
backend=long_term_memory_backend, app_name=app_name, user_id=user_id
|
|
66
|
-
) # type: ignore
|
|
67
|
-
else:
|
|
68
|
-
logger.warning("No long term memory backend settings detected.")
|
|
69
|
-
return None
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
def _get_memory(
|
|
73
|
-
module_path: str,
|
|
74
|
-
) -> tuple[ShortTermMemory, LongTermMemory | None]:
|
|
75
|
-
from veadk.utils.logger import get_logger
|
|
76
|
-
from veadk.utils.misc import load_module_from_file
|
|
77
|
-
|
|
78
|
-
logger = get_logger(__name__)
|
|
79
|
-
|
|
80
|
-
# 1. load user module
|
|
81
|
-
try:
|
|
82
|
-
module_file_path = module_path
|
|
83
|
-
module = load_module_from_file(
|
|
84
|
-
module_name="agent_and_mem", file_path=f"{module_file_path}/agent.py"
|
|
85
|
-
)
|
|
86
|
-
except Exception as e:
|
|
87
|
-
logger.error(
|
|
88
|
-
f"Failed to get memory config from `agent.py`: {e}. Fallback to get memory from environment variables."
|
|
89
|
-
)
|
|
90
|
-
return _get_stm_from_env(), _get_ltm_from_env()
|
|
91
|
-
|
|
92
|
-
if not hasattr(module, "agent_run_config"):
|
|
93
|
-
logger.error(
|
|
94
|
-
"You must export `agent_run_config` as a global variable in `agent.py`. Fallback to get memory from environment variables."
|
|
95
|
-
)
|
|
96
|
-
return _get_stm_from_env(), _get_ltm_from_env()
|
|
97
|
-
|
|
98
|
-
# 2. try to get short term memory
|
|
99
|
-
# short term memory must exist in user code, as we use `default_factory` to init it
|
|
100
|
-
short_term_memory = _get_stm_from_module(module)
|
|
101
|
-
|
|
102
|
-
# 3. try to get long term memory
|
|
103
|
-
long_term_memory = _get_ltm_from_module(module)
|
|
104
|
-
if not long_term_memory:
|
|
105
|
-
long_term_memory = _get_ltm_from_env()
|
|
106
|
-
|
|
107
|
-
return short_term_memory, long_term_memory
|
|
21
|
+
logger = get_logger(__name__)
|
|
108
22
|
|
|
109
23
|
|
|
110
24
|
def patch_adkwebserver_disable_openapi():
|
|
@@ -133,71 +47,66 @@ def patch_adkwebserver_disable_openapi():
|
|
|
133
47
|
google.adk.cli.adk_web_server.AdkWebServer.get_fast_api_app = wrapped_get_fast_api
|
|
134
48
|
|
|
135
49
|
|
|
136
|
-
@click.command(
|
|
137
|
-
|
|
138
|
-
@click.option(
|
|
139
|
-
"--app_name", default="", help="The `app_name` for initializing long term memory"
|
|
140
|
-
)
|
|
141
|
-
@click.option(
|
|
142
|
-
"--user_id", default="", help="The `user_id` for initializing long term memory"
|
|
50
|
+
@click.command(
|
|
51
|
+
context_settings=dict(ignore_unknown_options=True, allow_extra_args=True)
|
|
143
52
|
)
|
|
144
|
-
|
|
53
|
+
@click.pass_context
|
|
54
|
+
def web(ctx, *args, **kwargs) -> None:
|
|
145
55
|
"""Launch web with long term and short term memory."""
|
|
146
|
-
import
|
|
147
|
-
from
|
|
148
|
-
|
|
149
|
-
from
|
|
150
|
-
|
|
151
|
-
from veadk.
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
56
|
+
from google.adk.cli import adk_web_server
|
|
57
|
+
from google.adk.runners import Runner as ADKRunner
|
|
58
|
+
|
|
59
|
+
from veadk import Agent
|
|
60
|
+
from veadk.agents.loop_agent import LoopAgent
|
|
61
|
+
from veadk.agents.parallel_agent import ParallelAgent
|
|
62
|
+
from veadk.agents.sequential_agent import SequentialAgent
|
|
63
|
+
|
|
64
|
+
def before_get_runner_async(func):
|
|
65
|
+
logger.info("Hook before `get_runner_async`")
|
|
66
|
+
|
|
67
|
+
@wraps(func)
|
|
68
|
+
async def wrapper(*args, **kwargs) -> ADKRunner:
|
|
69
|
+
self: adk_web_server.AdkWebServer = args[0]
|
|
70
|
+
app_name: str = args[1]
|
|
71
|
+
"""Returns the cached runner for the given app."""
|
|
72
|
+
agent_or_app = self.agent_loader.load_agent(app_name)
|
|
73
|
+
|
|
74
|
+
if isinstance(agent_or_app, (SequentialAgent, LoopAgent, ParallelAgent)):
|
|
75
|
+
logger.warning(
|
|
76
|
+
"Detect VeADK workflow agent, the short-term memory and long-term memory of each sub agent are useless."
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
if isinstance(agent_or_app, Agent):
|
|
80
|
+
logger.info("Detect VeADK Agent.")
|
|
81
|
+
|
|
82
|
+
if agent_or_app.short_term_memory:
|
|
83
|
+
self.session_service = (
|
|
84
|
+
agent_or_app.short_term_memory.session_service
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
if agent_or_app.long_term_memory:
|
|
88
|
+
self.memory_service = agent_or_app.long_term_memory
|
|
89
|
+
logger.info(
|
|
90
|
+
f"Long term memory backend is {self.memory_service.backend}"
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
logger.info(
|
|
94
|
+
f"Current session_service={self.session_service.__class__.__name__}, memory_service={self.memory_service.__class__.__name__}"
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
runner = await func(*args, **kwargs)
|
|
98
|
+
return runner
|
|
99
|
+
|
|
100
|
+
return wrapper
|
|
101
|
+
|
|
102
|
+
adk_web_server.AdkWebServer.get_runner_async = before_get_runner_async(
|
|
103
|
+
adk_web_server.AdkWebServer.get_runner_async
|
|
104
|
+
)
|
|
192
105
|
|
|
193
|
-
google.adk.cli.adk_web_server.AdkWebServer.__init__ = init_for_veadk
|
|
194
106
|
patch_adkwebserver_disable_openapi()
|
|
195
107
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
agents_dir = os.getcwd()
|
|
199
|
-
logger.info(f"Load agents from {agents_dir}")
|
|
108
|
+
from google.adk.cli.cli_tools_click import cli_web
|
|
200
109
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
)
|
|
110
|
+
extra_args = ctx.args
|
|
111
|
+
logger.debug(f"User args: {ctx.args}")
|
|
112
|
+
cli_web.main(args=extra_args, standalone_mode=False)
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Copyright (c) 2025 Beijing Volcano Engine Technology Co., Ltd. and/or its affiliates.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
from veadk.tools.builtin_tools.image_generate import image_generate # noqa: F401
|
|
16
|
+
from veadk.utils.logger import get_logger
|
|
17
|
+
|
|
18
|
+
logger = get_logger(__name__)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
logger.warning(
|
|
22
|
+
"The 'generate_image' tool is deprecated and will be removed in future versions. Use `image_generate` tool from `veadk.tools.builtin_tools.image_generate` instead."
|
|
23
|
+
)
|
veadk/version.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: veadk-python
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.15
|
|
4
4
|
Summary: Volcengine agent development kit, integrations with Volcengine cloud services.
|
|
5
5
|
Author-email: Yaozheng Fang <fangyozheng@gmail.com>, Guodong Li <cu.eric.lee@gmail.com>, Zhi Han <sliverydayday@gmail.com>, Meng Wang <mengwangwm@gmail.com>
|
|
6
6
|
License: Apache License
|
|
@@ -5,7 +5,7 @@ veadk/config.py,sha256=Ezl9Lna9iriC_Uf7m1ZXTWzylLyd7YspUFAQqh94Ong,3203
|
|
|
5
5
|
veadk/consts.py,sha256=8FcwnvKxQM50r8HDQxnhI-Ml_mjyfYdkGDxbyPBrW5Q,2679
|
|
6
6
|
veadk/runner.py,sha256=_DGNwX-t3sHJFJvHs-rRHXbjCZza8I_zU8AN3Fw5nRY,14217
|
|
7
7
|
veadk/types.py,sha256=zOOzG-QJy-MkzHeicWJzy2_L5U4ERrWziPubIUEbd8c,1656
|
|
8
|
-
veadk/version.py,sha256
|
|
8
|
+
veadk/version.py,sha256=-EVFW0QaHo8J5OMZ85ZjabO4mH-EANB98VS91-Dnab8,654
|
|
9
9
|
veadk/a2a/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
|
|
10
10
|
veadk/a2a/agent_card.py,sha256=lhtgW1acMpxYUdULHEZwVFXOi6Xh4lNkf4S7QIhbFFI,1525
|
|
11
11
|
veadk/a2a/remote_ve_agent.py,sha256=L2nzT8PlDI-lLtcaTJqk-D2Uvw9beKl8OEUqp-8qCbA,3510
|
|
@@ -37,7 +37,7 @@ veadk/cli/cli_kb.py,sha256=SmLz3g6o2LiPa6WzkdyAOExuboHkpAIrN-4qaH4rxn8,1962
|
|
|
37
37
|
veadk/cli/cli_pipeline.py,sha256=6FV4WyoapFPAy_P3dzrRm07m6aGjrtLiY4aCFT7CEHs,7510
|
|
38
38
|
veadk/cli/cli_prompt.py,sha256=atw6O3zkjD1tOsFOOg7rs9HbS4exwaNe_Pces6CoyFY,2582
|
|
39
39
|
veadk/cli/cli_uploadevalset.py,sha256=RdelvbXEBalXGxHnPJ-8ZQ1PRiex39328yhAWgZ5mAI,4342
|
|
40
|
-
veadk/cli/cli_web.py,sha256=
|
|
40
|
+
veadk/cli/cli_web.py,sha256=B8VQVqEH05XoJYYcGT9FKBHItQ1Wd6BhWuNZv9_1YEA,3992
|
|
41
41
|
veadk/cloud/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
|
|
42
42
|
veadk/cloud/cloud_agent_engine.py,sha256=u-v-kkAhRgZY1r82CQRwfkYnj0n7ft8qIW_r-yhnMSI,8461
|
|
43
43
|
veadk/cloud/cloud_app.py,sha256=2bmEf7RH1Kwz8HLZ0aY3pVn0R8xi1T7kcGRTRyaWawY,8746
|
|
@@ -144,6 +144,7 @@ veadk/tools/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
|
|
|
144
144
|
veadk/tools/demo_tools.py,sha256=Gu3sxygcYVS2cv3WqUOl-Gq4JhMlDAktoCHOFT0gbFQ,2216
|
|
145
145
|
veadk/tools/load_knowledgebase_tool.py,sha256=UUTv0Za9GkEXAkl1SXmyq0HGCKGvSlH_f8Ok6O6e52M,4704
|
|
146
146
|
veadk/tools/builtin_tools/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
|
|
147
|
+
veadk/tools/builtin_tools/generate_image.py,sha256=b80yMziV0PR9_1oAd5HyDbZGAi3OMpUgL1xMyxW35m8,979
|
|
147
148
|
veadk/tools/builtin_tools/image_edit.py,sha256=KslsuabBchAYR3ZrWSO5viEe5ORUAe0GI1qQ6mxoIU0,11588
|
|
148
149
|
veadk/tools/builtin_tools/image_generate.py,sha256=frBUYEmizq6B4cRIUTfWKpLF2RywposJf-hZ8kkZvV8,18075
|
|
149
150
|
veadk/tools/builtin_tools/lark.py,sha256=b2IWsN8fZFh9aweSGznaOqA30TCOLpVjNCDNa1LHZl4,2046
|
|
@@ -181,9 +182,9 @@ veadk/utils/mcp_utils.py,sha256=aET7pX3LXmRe2-Jh7_xRvxrVyl1dN7uPAUk16luwMlQ,1525
|
|
|
181
182
|
veadk/utils/misc.py,sha256=ghEqrqoDfKrW9ZD3IB0bwcfyyB0gRWN2yEP9eRxQ4nE,4953
|
|
182
183
|
veadk/utils/patches.py,sha256=dcHdlJ8IciyMjDuMy6-_6McUqJYyLz0yHmJ0xH8lWOw,2752
|
|
183
184
|
veadk/utils/volcengine_sign.py,sha256=3xn6ca2OAg_AFyP2dqFTSioqkeDel_BoKURUtCcO-EQ,6736
|
|
184
|
-
veadk_python-0.2.
|
|
185
|
-
veadk_python-0.2.
|
|
186
|
-
veadk_python-0.2.
|
|
187
|
-
veadk_python-0.2.
|
|
188
|
-
veadk_python-0.2.
|
|
189
|
-
veadk_python-0.2.
|
|
185
|
+
veadk_python-0.2.15.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
186
|
+
veadk_python-0.2.15.dist-info/METADATA,sha256=GSnIw39xRYJXY34NDHHG7CfDy2vRQlHkQN57FR6RzNo,18428
|
|
187
|
+
veadk_python-0.2.15.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
188
|
+
veadk_python-0.2.15.dist-info/entry_points.txt,sha256=-g28D6dNV-2UvAiRP9VF0oOVSDSJ5zlLUIZ34ArAqF8,46
|
|
189
|
+
veadk_python-0.2.15.dist-info/top_level.txt,sha256=Qqi3ycJ4anKiZWBXtUBIy8zK9ZuXJsFa05oFq8O8qqY,6
|
|
190
|
+
veadk_python-0.2.15.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|