veadk-python 0.2.4__py3-none-any.whl → 0.2.5__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.

Files changed (30) hide show
  1. veadk/agent.py +28 -8
  2. veadk/cli/cli_deploy.py +3 -1
  3. veadk/cloud/cloud_app.py +21 -6
  4. veadk/consts.py +14 -1
  5. veadk/database/viking/viking_database.py +3 -3
  6. veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/clean.py +23 -0
  7. veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/app.py +4 -1
  8. veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/run.sh +11 -1
  9. veadk/integrations/ve_tos/ve_tos.py +176 -0
  10. veadk/runner.py +107 -34
  11. veadk/tools/builtin_tools/image_edit.py +236 -0
  12. veadk/tools/builtin_tools/image_generate.py +236 -0
  13. veadk/tools/builtin_tools/video_generate.py +326 -0
  14. veadk/tools/sandbox/browser_sandbox.py +19 -9
  15. veadk/tools/sandbox/code_sandbox.py +21 -11
  16. veadk/tools/sandbox/computer_sandbox.py +16 -9
  17. veadk/tracing/base_tracer.py +0 -19
  18. veadk/tracing/telemetry/attributes/extractors/llm_attributes_extractors.py +65 -6
  19. veadk/tracing/telemetry/attributes/extractors/tool_attributes_extractors.py +20 -14
  20. veadk/tracing/telemetry/exporters/inmemory_exporter.py +3 -0
  21. veadk/tracing/telemetry/opentelemetry_tracer.py +4 -1
  22. veadk/tracing/telemetry/telemetry.py +113 -24
  23. veadk/utils/misc.py +40 -0
  24. veadk/version.py +1 -1
  25. {veadk_python-0.2.4.dist-info → veadk_python-0.2.5.dist-info}/METADATA +1 -1
  26. {veadk_python-0.2.4.dist-info → veadk_python-0.2.5.dist-info}/RECORD +30 -25
  27. {veadk_python-0.2.4.dist-info → veadk_python-0.2.5.dist-info}/WHEEL +0 -0
  28. {veadk_python-0.2.4.dist-info → veadk_python-0.2.5.dist-info}/entry_points.txt +0 -0
  29. {veadk_python-0.2.4.dist-info → veadk_python-0.2.5.dist-info}/licenses/LICENSE +0 -0
  30. {veadk_python-0.2.4.dist-info → veadk_python-0.2.5.dist-info}/top_level.txt +0 -0
@@ -12,12 +12,11 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- import json
16
-
17
15
  from veadk.tracing.telemetry.attributes.extractors.types import (
18
16
  ExtractorResponse,
19
17
  ToolAttributesParams,
20
18
  )
19
+ from veadk.utils.misc import safe_json_serialize
21
20
 
22
21
 
23
22
  def tool_gen_ai_operation_name(params: ToolAttributesParams) -> ExtractorResponse:
@@ -26,9 +25,8 @@ def tool_gen_ai_operation_name(params: ToolAttributesParams) -> ExtractorRespons
26
25
 
27
26
  def tool_gen_ai_tool_message(params: ToolAttributesParams) -> ExtractorResponse:
28
27
  tool_input = {
29
- "id": "123",
30
28
  "role": "tool",
31
- "content": json.dumps(
29
+ "content": safe_json_serialize(
32
30
  {
33
31
  "name": params.tool.name,
34
32
  "description": params.tool.description,
@@ -39,32 +37,40 @@ def tool_gen_ai_tool_message(params: ToolAttributesParams) -> ExtractorResponse:
39
37
  return ExtractorResponse(type="event", content=tool_input)
40
38
 
41
39
 
42
- def tool_cozeloop_input(params: ToolAttributesParams) -> ExtractorResponse:
40
+ def tool_gen_ai_tool_input(params: ToolAttributesParams) -> ExtractorResponse:
43
41
  tool_input = {
44
42
  "name": params.tool.name,
45
43
  "description": params.tool.description,
46
44
  "parameters": params.args,
47
45
  }
48
- return ExtractorResponse(content=json.dumps(tool_input) or "<unknown_tool_input>")
46
+ return ExtractorResponse(
47
+ content=safe_json_serialize(tool_input) or "<unknown_tool_input>"
48
+ )
49
49
 
50
50
 
51
51
  def tool_gen_ai_tool_name(params: ToolAttributesParams) -> ExtractorResponse:
52
52
  return ExtractorResponse(content=params.tool.name or "<unknown_tool_name>")
53
53
 
54
54
 
55
- def tool_cozeloop_output(params: ToolAttributesParams) -> ExtractorResponse:
56
- function_response = params.function_response_event.get_function_responses()[0]
55
+ def tool_gen_ai_tool_output(params: ToolAttributesParams) -> ExtractorResponse:
56
+ function_response = params.function_response_event.get_function_responses()[
57
+ 0
58
+ ].model_dump()
57
59
  tool_output = {
58
- "id": function_response.id,
59
- "name": function_response.name,
60
- "response": function_response.response,
60
+ "id": function_response["id"],
61
+ "name": function_response["name"],
62
+ "response": function_response["response"],
61
63
  }
62
- return ExtractorResponse(content=json.dumps(tool_output) or "<unknown_tool_output>")
64
+ return ExtractorResponse(
65
+ content=safe_json_serialize(tool_output) or "<unknown_tool_output>"
66
+ )
63
67
 
64
68
 
65
69
  TOOL_ATTRIBUTES = {
66
70
  "gen_ai.operation.name": tool_gen_ai_operation_name,
67
71
  "gen_ai.tool.name": tool_gen_ai_tool_name, # TLS required
68
- "cozeloop.input": tool_cozeloop_input, # CozeLoop required
69
- "cozeloop.output": tool_cozeloop_output, # CozeLoop required
72
+ "gen_ai.tool.input": tool_gen_ai_tool_input, # TLS required
73
+ "gen_ai.tool.output": tool_gen_ai_tool_output, # TLS required
74
+ "cozeloop.input": tool_gen_ai_tool_input, # CozeLoop required
75
+ "cozeloop.output": tool_gen_ai_tool_output, # CozeLoop required
70
76
  }
@@ -106,3 +106,6 @@ class InMemoryExporter(BaseExporter):
106
106
 
107
107
  self._exporter = _InMemoryExporter()
108
108
  self.processor = _InMemorySpanProcessor(self._exporter)
109
+
110
+
111
+ _INMEMORY_EXPORTER_INSTANCE = InMemoryExporter()
@@ -31,6 +31,9 @@ from veadk.tracing.base_tracer import BaseTracer
31
31
  from veadk.tracing.telemetry.exporters.apmplus_exporter import APMPlusExporter
32
32
  from veadk.tracing.telemetry.exporters.base_exporter import BaseExporter
33
33
  from veadk.tracing.telemetry.exporters.inmemory_exporter import InMemoryExporter
34
+ from veadk.tracing.telemetry.exporters.inmemory_exporter import (
35
+ _INMEMORY_EXPORTER_INSTANCE,
36
+ )
34
37
  from veadk.utils.logger import get_logger
35
38
  from veadk.utils.patches import patch_google_adk_telemetry
36
39
 
@@ -110,7 +113,7 @@ class OpentelemetryTracer(BaseModel, BaseTracer):
110
113
  f"Add span processor for exporter `{exporter.__class__.__name__}` to OpentelemetryTracer failed."
111
114
  )
112
115
 
113
- self._inmemory_exporter = InMemoryExporter()
116
+ self._inmemory_exporter = _INMEMORY_EXPORTER_INSTANCE
114
117
  if self._inmemory_exporter.processor:
115
118
  # make sure the in memory exporter processor is added at index 0
116
119
  # because we use this to record all spans
@@ -28,6 +28,9 @@ from veadk.tracing.telemetry.attributes.extractors.types import (
28
28
  LLMAttributesParams,
29
29
  ToolAttributesParams,
30
30
  )
31
+ from veadk.tracing.telemetry.exporters.inmemory_exporter import (
32
+ _INMEMORY_EXPORTER_INSTANCE,
33
+ )
31
34
  from veadk.utils.logger import get_logger
32
35
 
33
36
  logger = get_logger(__name__)
@@ -48,14 +51,75 @@ def upload_metrics(
48
51
  exporter.meter_uploader.record(llm_request, llm_response)
49
52
 
50
53
 
51
- def trace_send_data(): ...
52
-
53
-
54
- def set_common_attributes(
55
- invocation_context: InvocationContext, current_span: _Span, **kwargs
54
+ def _set_agent_input_attribute(
55
+ span: _Span, invocation_context: InvocationContext
56
56
  ) -> None:
57
- from veadk.agent import Agent
57
+ # We only save the original user input as the agent input
58
+ # hence once the `agent.input` has been set, we don't overwrite it
59
+ event_names = [event.name for event in span.events]
60
+ if "gen_ai.user.message" in event_names:
61
+ return
58
62
 
63
+ # input = {
64
+ # "agent_name": invocation_context.agent.name,
65
+ # "app_name": invocation_context.session.app_name,
66
+ # "user_id": invocation_context.user_id,
67
+ # "session_id": invocation_context.session.id,
68
+ # "input": invocation_context.user_content.model_dump(exclude_none=True)
69
+ # if invocation_context.user_content
70
+ # else None,
71
+ # }
72
+
73
+ user_content = invocation_context.user_content
74
+ if user_content and user_content.parts:
75
+ span.add_event(
76
+ "gen_ai.user.message",
77
+ {
78
+ "agent_name": invocation_context.agent.name,
79
+ "app_name": invocation_context.session.app_name,
80
+ "user_id": invocation_context.user_id,
81
+ "session_id": invocation_context.session.id,
82
+ },
83
+ )
84
+ for idx, part in enumerate(user_content.parts):
85
+ if part.text:
86
+ span.add_event(
87
+ "gen_ai.user.message",
88
+ {f"parts.{idx}.type": "text", f"parts.{idx}.content": part.text},
89
+ )
90
+ if part.inline_data:
91
+ span.add_event(
92
+ "gen_ai.user.message",
93
+ {
94
+ f"parts.{idx}.type": "image_url",
95
+ f"parts.{idx}.image_url.name": part.inline_data.display_name.split(
96
+ "/"
97
+ )[-1],
98
+ f"parts.{idx}.image_url.url": part.inline_data.display_name,
99
+ },
100
+ )
101
+
102
+
103
+ def _set_agent_output_attribute(span: _Span, llm_response: LlmResponse) -> None:
104
+ content = llm_response.content
105
+ if content and content.parts:
106
+ for idx, part in enumerate(content.parts):
107
+ if part.text:
108
+ span.add_event(
109
+ "gen_ai.choice",
110
+ {
111
+ f"message.parts.{idx}.type": "text",
112
+ f"message.parts.{idx}.text": part.text,
113
+ },
114
+ )
115
+
116
+
117
+ def set_common_attributes_on_model_span(
118
+ invocation_context: InvocationContext,
119
+ llm_response: LlmResponse,
120
+ current_span: _Span,
121
+ **kwargs,
122
+ ) -> None:
59
123
  if current_span.context:
60
124
  current_span_id = current_span.context.trace_id
61
125
  else:
@@ -64,34 +128,56 @@ def set_common_attributes(
64
128
  )
65
129
  return
66
130
 
67
- if isinstance(invocation_context.agent, Agent):
68
- try:
69
- from veadk.tracing.telemetry.opentelemetry_tracer import OpentelemetryTracer
131
+ try:
132
+ spans = _INMEMORY_EXPORTER_INSTANCE.processor.spans # type: ignore
70
133
 
71
- tracer: OpentelemetryTracer = invocation_context.agent.tracers[0] # type: ignore
72
- spans = tracer._inmemory_exporter.processor.spans # # type: ignore
134
+ spans_in_current_trace = [
135
+ span
136
+ for span in spans
137
+ if span.context and span.context.trace_id == current_span_id
138
+ ]
73
139
 
74
- spans_in_current_trace = [
75
- span
76
- for span in spans
77
- if span.context and span.context.trace_id == current_span_id
78
- ]
79
-
80
- common_attributes = ATTRIBUTES.get("common", {})
81
- for span in spans_in_current_trace:
140
+ common_attributes = ATTRIBUTES.get("common", {})
141
+ for span in spans_in_current_trace:
142
+ if span.is_recording():
82
143
  if span.name.startswith("invocation"):
83
144
  span.set_attribute("gen_ai.operation.name", "chain")
145
+ _set_agent_input_attribute(span, invocation_context)
146
+ _set_agent_output_attribute(span, llm_response)
84
147
  elif span.name.startswith("agent_run"):
85
148
  span.set_attribute("gen_ai.operation.name", "agent")
149
+ _set_agent_input_attribute(span, invocation_context)
150
+ _set_agent_output_attribute(span, llm_response)
86
151
  for attr_name, attr_extractor in common_attributes.items():
87
152
  value = attr_extractor(**kwargs)
88
153
  span.set_attribute(attr_name, value)
89
- except Exception as e:
90
- logger.error(f"Failed to set common attributes for spans: {e}")
91
- else:
154
+ except Exception as e:
155
+ logger.error(f"Failed to set common attributes for spans: {e}")
156
+
157
+
158
+ def set_common_attributes_on_tool_span(current_span: _Span) -> None:
159
+ # find parent span (generally a llm span)
160
+ if not current_span.context:
92
161
  logger.warning(
93
- "Failed to set common attributes for spans as your agent is not VeADK Agent. Skip this."
162
+ f"Get tool span's context failed. Skip setting common attributes for span {current_span.name}"
94
163
  )
164
+ return
165
+
166
+ if not current_span.parent:
167
+ logger.warning(
168
+ f"Get tool span's parent failed. Skip setting common attributes for span {current_span.name}"
169
+ )
170
+ return
171
+
172
+ parent_span_id = current_span.parent.span_id
173
+ for span in _INMEMORY_EXPORTER_INSTANCE.processor.spans: # type: ignore
174
+ if span.context.span_id == parent_span_id:
175
+ common_attributes = ATTRIBUTES.get("common", {})
176
+ for attr_name in common_attributes.keys():
177
+ current_span.set_attribute(attr_name, span.attributes[attr_name])
178
+
179
+
180
+ def trace_send_data(): ...
95
181
 
96
182
 
97
183
  def trace_tool_call(
@@ -101,6 +187,8 @@ def trace_tool_call(
101
187
  ) -> None:
102
188
  span = trace.get_current_span()
103
189
 
190
+ set_common_attributes_on_tool_span(current_span=span) # type: ignore
191
+
104
192
  tool_attributes_mapping = ATTRIBUTES.get("tool", {})
105
193
  params = ToolAttributesParams(tool, args, function_response_event)
106
194
 
@@ -119,8 +207,9 @@ def trace_call_llm(
119
207
 
120
208
  from veadk.agent import Agent
121
209
 
122
- set_common_attributes(
210
+ set_common_attributes_on_model_span(
123
211
  invocation_context=invocation_context,
212
+ llm_response=llm_response,
124
213
  current_span=span, # type: ignore
125
214
  agent_name=invocation_context.agent.name,
126
215
  user_id=invocation_context.user_id,
veadk/utils/misc.py CHANGED
@@ -13,9 +13,11 @@
13
13
  # limitations under the License.
14
14
 
15
15
  import importlib.util
16
+ import json
16
17
  import sys
17
18
  import time
18
19
  import types
20
+ from typing import Any, Dict, List, MutableMapping, Tuple
19
21
 
20
22
  import requests
21
23
 
@@ -60,3 +62,41 @@ def load_module_from_file(module_name: str, file_path: str) -> types.ModuleType:
60
62
  )
61
63
  else:
62
64
  raise ImportError(f"Could not load module {module_name} from {file_path}")
65
+
66
+
67
+ def flatten_dict(
68
+ d: MutableMapping[str, Any], parent_key: str = "", sep: str = "_"
69
+ ) -> Dict[str, Any]:
70
+ """Flatten a nested dictionary.
71
+
72
+ Input:
73
+ {"a": {"b": 1}}
74
+ Output:
75
+ {"a_b": 1}
76
+ """
77
+ items: List[Tuple[str, Any]] = []
78
+ for k, v in d.items():
79
+ new_key = f"{parent_key}{sep}{k}" if parent_key else k
80
+ if isinstance(v, MutableMapping):
81
+ items.extend(flatten_dict(v, new_key, sep=sep).items())
82
+ else:
83
+ items.append((new_key, v))
84
+ return dict(items)
85
+
86
+
87
+ def safe_json_serialize(obj) -> str:
88
+ """Convert any Python object to a JSON-serializable type or string.
89
+
90
+ Args:
91
+ obj: The object to serialize.
92
+
93
+ Returns:
94
+ The JSON-serialized object string or <non-serializable> if the object cannot be serialized.
95
+ """
96
+
97
+ try:
98
+ return json.dumps(
99
+ obj, ensure_ascii=False, default=lambda o: "<not serializable>"
100
+ )
101
+ except (TypeError, OverflowError):
102
+ return "<not serializable>"
veadk/version.py CHANGED
@@ -12,4 +12,4 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- VERSION = "0.2.4"
15
+ VERSION = "0.2.5"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: veadk-python
3
- Version: 0.2.4
3
+ Version: 0.2.5
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
@@ -1,10 +1,10 @@
1
1
  veadk/__init__.py,sha256=9l1lyb9ifhHQeetmIBWZnIdwUCVyMyz1EnKsKz8BBG8,1135
2
- veadk/agent.py,sha256=HmuWJ9Dolrg26XT0NnoH35pJwyI_6HKph36vChANgug,9852
2
+ veadk/agent.py,sha256=bRW5o-FOzDTAU699SZ6F0ne3c4RN8m8ou3zU3oQucd0,10696
3
3
  veadk/config.py,sha256=UFUgzL4fTRlM_LIyutP50dvxtKOuFeMhL5TPEOO7r2k,4109
4
- veadk/consts.py,sha256=DIVr-sXQahrlJoPiTfsDL0y_pX8w-LLXHDsubL5w13k,802
5
- veadk/runner.py,sha256=6GPt8UQN0J9GJOlDoWORQOA7JSyXMQvngyu1J7yDMvk,11570
4
+ veadk/consts.py,sha256=Q4PCLXrH6VAMDsvJ-OSjO0J6Zo3SS96ksHpYHGFv3Jc,1308
5
+ veadk/runner.py,sha256=3f-QTiV6ULkUmAMFvF3xpjb6G90CZNb2teU8NdA7w9I,14345
6
6
  veadk/types.py,sha256=zOOzG-QJy-MkzHeicWJzy2_L5U4ERrWziPubIUEbd8c,1656
7
- veadk/version.py,sha256=welcCTuA50lWrSlS8GjQD5rDpBsefQ102fU3w-N49NA,653
7
+ veadk/version.py,sha256=MYcLsKi1O-HNheaLcXegX10PgrzzNylrtNRmcmhISJM,653
8
8
  veadk/a2a/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
9
9
  veadk/a2a/agent_card.py,sha256=lhtgW1acMpxYUdULHEZwVFXOi6Xh4lNkf4S7QIhbFFI,1525
10
10
  veadk/a2a/remote_ve_agent.py,sha256=vjV28Bs8ax21Xu_u4p8g11tlxfbyFMuHw-AA1Q74kNg,1261
@@ -16,13 +16,13 @@ veadk/agents/parallel_agent.py,sha256=XmobJHMONvsFyaaDSlnaPW9DbtHkX84X9Kvky1Ns04
16
16
  veadk/agents/sequential_agent.py,sha256=5sG-m0BqC3mU73Vx-PmG-4ags76J0iIvP70SiHaozao,2061
17
17
  veadk/cli/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
18
18
  veadk/cli/cli.py,sha256=mvJ_xeyEQ77Pwp_JFGbKYmvTNOqP1__Ww2zJ2Vp8Q_U,1157
19
- veadk/cli/cli_deploy.py,sha256=83Bc45L9vR2QjaalMNr5jd_ygeVfiWv201yEhqIQvio,5202
19
+ veadk/cli/cli_deploy.py,sha256=urLsA__rafq69VKLT0T9kpdU2nZqGZeKJZbDNAfdprg,5223
20
20
  veadk/cli/cli_init.py,sha256=EUR7H4s-k6vb2M_s2v8PHLchFNZ7hYAZ1_HxPnHMcmU,3370
21
21
  veadk/cli/cli_prompt.py,sha256=R-vEL_EYhWV2VzMhIGjSpKlPrX6XQIL6b-LMWKpEYw0,2329
22
22
  veadk/cli/cli_web.py,sha256=xh4G2mdfjR5PPNOu4AptNWOREGsZbGvt6pIgUPvbb-M,5976
23
23
  veadk/cloud/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
24
24
  veadk/cloud/cloud_agent_engine.py,sha256=u-v-kkAhRgZY1r82CQRwfkYnj0n7ft8qIW_r-yhnMSI,8461
25
- veadk/cloud/cloud_app.py,sha256=4fjWJKSQKIVXJGUOBZ6BdMoeCd7MrAqFH_gcWEqZu_w,8276
25
+ veadk/cloud/cloud_app.py,sha256=2bmEf7RH1Kwz8HLZ0aY3pVn0R8xi1T7kcGRTRyaWawY,8746
26
26
  veadk/database/__init__.py,sha256=7mkw5JUz9-I-wF3UvG9PYDWyy3UYkzDul9_oU1ojjXk,712
27
27
  veadk/database/base_database.py,sha256=sdAaBKFnA9tOEzcJvtv3xSE3G_vBfFJdpAHVR4oRvgs,1217
28
28
  veadk/database/database_adapter.py,sha256=8nQiTg_ItNYBGIzBa9KEkTepPTs4WAytrMc2RVtfShM,9696
@@ -36,7 +36,7 @@ veadk/database/vector/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7
36
36
  veadk/database/vector/opensearch_vector_database.py,sha256=IZ-fuvVq9wlrVPlp26v4sd8y7WED1pq62hr9iENsgmQ,9370
37
37
  veadk/database/vector/type.py,sha256=tQXaHMs4YJrLLL6O1m6Hmyu4sdB6M7C467P3Mxk_bFg,1770
38
38
  veadk/database/viking/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
39
- veadk/database/viking/viking_database.py,sha256=Ni_lQcgxqhk0ZgSaUtewPKjRI6yXgoZUi3JqtOTFj7w,13756
39
+ veadk/database/viking/viking_database.py,sha256=3uHbe-8otM1NhZEjO2soMbL0FR-DnuyWe7nz-d2Mpjw,13707
40
40
  veadk/database/viking/viking_memory_db.py,sha256=0Y5YMctAVO_8ylpD1T40ltiDQ2rjWAhBSUvEx9umOvQ,18162
41
41
  veadk/evaluation/__init__.py,sha256=Pwnv6x-QaQQiv4J_QNnR-Asl7wN0laF92EX9n0Sll1U,713
42
42
  veadk/evaluation/base_evaluator.py,sha256=FRViTJ16yia-xfNgTp3q3F8h5SgjhXG4QSHWGoqe1KY,14184
@@ -56,17 +56,19 @@ veadk/integrations/ve_faas/ve_faas.py,sha256=801DpI9UJMmq7z8XgwRuZeB_v9ShQ0FGdnt
56
56
  veadk/integrations/ve_faas/ve_faas_utils.py,sha256=57INjzLs-k2pReHhyMaFwptUUuP5Wk7SWqFUzaE3bBw,13200
57
57
  veadk/integrations/ve_faas/template/cookiecutter.json,sha256=7tUt1fuQRU5zmuljXpnpU__szZgnc4jXsWBePRB1xwk,317
58
58
  veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
59
+ veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/clean.py,sha256=31mvoL_3--3lpwwir6orLZNwhOPdd5uJangMkkUz8C0,859
59
60
  veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/config.yaml.example,sha256=DdrObZmrhhOETxUgympG4UiN2D-2HVITwHMejcDscrQ,144
60
61
  veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/deploy.py,sha256=pXsGG1D4HcKKJ8t9dE9TI7vl-esVpK1hNVu_tfl0mz0,3534
61
62
  veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
62
63
  veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/agent.py,sha256=rqSq_wBDPA7Ojv6gepVZFSb9JS2TC7zuDP4YRAkkvwA,1096
63
- veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/app.py,sha256=v8XxOR8iebwElzeMgsoMFmhOoIoEQfQo_3pcAD75y-8,5251
64
+ veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/app.py,sha256=mRty9MizG0qT1XkTnorFhcoQhxDmUhLVSMzXLS13DW8,5579
64
65
  veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/requirements.txt,sha256=8PZwc8c9-zCkdGsBfPPaBNSYyY08RjsOPsP2yDAwWZc,12
65
- veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/run.sh,sha256=sSG75kL-v44DFlp-BWjj64DUA88Xruq0U03DuHSaZ-c,1216
66
+ veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/run.sh,sha256=MSvOkmh7SRLkqueLzyhrkBbZOxaVXAe4XbXxBDGTHUM,1508
66
67
  "veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/{{ cookiecutter.app_name|replace('-', '_') }}/__init__.py",sha256=HEVMuauOZSfmC3AqbXnqSmHNJ1FlMuAwNktxnlTj8uY,575
67
68
  "veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/{{ cookiecutter.app_name|replace('-', '_') }}/agent.py",sha256=ESNxN1nZlif0hU-ol48fOXZz-HV2__uVMZe6U9G6Y6s,1061
68
69
  veadk/integrations/ve_prompt_pilot/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
69
70
  veadk/integrations/ve_prompt_pilot/ve_prompt_pilot.py,sha256=mwBXkKOcwHgnMN3KMkVHFw9F9w1ydgQb-e4iaNjgJNQ,2833
71
+ veadk/integrations/ve_tos/ve_tos.py,sha256=TUpw970eUWfPO1BekFl4pOnsBZy-6DRdoNDop2XCJbg,6272
70
72
  veadk/knowledgebase/__init__.py,sha256=k-5WM0DAqNq94Dg64Rl12ozoS1BnE9i-MY_ZOR2s2CQ,705
71
73
  veadk/knowledgebase/knowledgebase.py,sha256=y_XmlAy2szsDjD6r9orD9ZsEJLfikVN5-wCZ2sSx674,3042
72
74
  veadk/memory/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
@@ -82,41 +84,44 @@ veadk/tools/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
82
84
  veadk/tools/demo_tools.py,sha256=Gu3sxygcYVS2cv3WqUOl-Gq4JhMlDAktoCHOFT0gbFQ,2216
83
85
  veadk/tools/load_knowledgebase_tool.py,sha256=n6RS-_EXfKgHDre0xFOQ85N_k8eD0H66F1YwbtEazs8,4380
84
86
  veadk/tools/builtin_tools/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
87
+ veadk/tools/builtin_tools/image_edit.py,sha256=kqff0gB6C1jzLaNv3Rg9yjHL4weo6WVvcRNGj_nGmPY,8871
88
+ veadk/tools/builtin_tools/image_generate.py,sha256=kcZ5hu4dfovDZ8zgs7DwBb2jwcLph2KXrLtiRFoZeiQ,8817
85
89
  veadk/tools/builtin_tools/lark.py,sha256=b2IWsN8fZFh9aweSGznaOqA30TCOLpVjNCDNa1LHZl4,2046
86
90
  veadk/tools/builtin_tools/las.py,sha256=rgKfnK5GsHVbmkp-rc7rtCvWg-yYNxMjeV0ayCyRpjM,913
87
91
  veadk/tools/builtin_tools/mcp_router.py,sha256=l3xcIHAHQ0AGCZG3mYyhwM0btqEMDe4TY2S-UYUM8M0,883
88
92
  veadk/tools/builtin_tools/vesearch.py,sha256=W8PZ-OivYT8DDLeQXsSem_iwxFUDWBNRLZZv8fEp1EE,1739
93
+ veadk/tools/builtin_tools/video_generate.py,sha256=DXOEnzR34FEQ8noZ4uJDc7LSmP85EFEWzzVRnkAHiL0,14184
89
94
  veadk/tools/builtin_tools/web_scraper.py,sha256=Ob9wENBUTCtATd3ASthB5ih71iSUrAwnfzhb-UYhaoE,2386
90
95
  veadk/tools/builtin_tools/web_search.py,sha256=IzthoJLzY7u8Nb3GqQQiWBroxV4vN2fEon56KrR4OrE,5734
91
96
  veadk/tools/sandbox/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
92
- veadk/tools/sandbox/browser_sandbox.py,sha256=8pxFVAYKmdP8Sdhssq2Btqx1JjFGdGgaRSno8tbPwzg,894
93
- veadk/tools/sandbox/code_sandbox.py,sha256=G9k4F3RDSstmFbsWzfSIWGU_TOPV2yFAH3-MWeGXyAo,968
94
- veadk/tools/sandbox/computer_sandbox.py,sha256=DOv5RTanSWiJNhpL0htITGxL3dkiUw76UiYw0_YZ7U4,897
97
+ veadk/tools/sandbox/browser_sandbox.py,sha256=2YxGM8BIQ1uCY73FDfkWWq72cOCFbp6YLsXIqRWEoSM,1172
98
+ veadk/tools/sandbox/code_sandbox.py,sha256=iOB7XxJxbckmnXOOUwzQ5t_0Tq1IA3JITEywKB6t7oM,1244
99
+ veadk/tools/sandbox/computer_sandbox.py,sha256=e0d3pwaxBbLLihK-rFv2tUU7bmAwPTvSphr2fC9bJBo,1150
95
100
  veadk/tracing/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
96
- veadk/tracing/base_tracer.py,sha256=tJzap_QRZDmq9TRZdkJZOqf2gqBRjYyXk4e4cobf4Ts,1839
101
+ veadk/tracing/base_tracer.py,sha256=AQQopQ81Y1dGt3BF1iT8el5iSJC7HH5NrW9sU9R92v8,1098
97
102
  veadk/tracing/telemetry/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
98
- veadk/tracing/telemetry/opentelemetry_tracer.py,sha256=pxK_1WURm7FFW6rog-yYg2uQxRlS-z5qQQg6AmteJY4,7336
99
- veadk/tracing/telemetry/telemetry.py,sha256=1m5F5s57lT6UZ0v4F8wzU724WqHRXT7tam1hs3C8NfM,5296
103
+ veadk/tracing/telemetry/opentelemetry_tracer.py,sha256=usJW4TTSGO8wR1k__JpgcdrWrUFsWcTi6JPDkgqTxFs,7446
104
+ veadk/tracing/telemetry/telemetry.py,sha256=eqQIORHXgD6GoybRIiZ8_Szsg_vPmcKQYunVdmIt3_c,8693
100
105
  veadk/tracing/telemetry/attributes/attributes.py,sha256=t08vbKenendKdlUrs3Q94p5F8TZEjh-oewBE5ABWDsE,1074
101
106
  veadk/tracing/telemetry/attributes/extractors/common_attributes_extractors.py,sha256=1y2z3Ja6FwHvw1YiPlyrTcgKI4s-5FrbIi1pfdc0PNQ,2594
102
- veadk/tracing/telemetry/attributes/extractors/llm_attributes_extractors.py,sha256=qiRCbqdcNgMt3tc9MIpQ_xLmt807zMYyod1PO0OkCQQ,15902
103
- veadk/tracing/telemetry/attributes/extractors/tool_attributes_extractors.py,sha256=hf7hr63pdnG5t14oxRsAPLqgoC9k-UTf9xZa_9z2vfw,2472
107
+ veadk/tracing/telemetry/attributes/extractors/llm_attributes_extractors.py,sha256=ewqTbYqMMIUcZMERGy_CWCIfWbDJOEV3xxKByXuSJk4,18334
108
+ veadk/tracing/telemetry/attributes/extractors/tool_attributes_extractors.py,sha256=FjhSn69yfk7kdgEql7ne9PeIOnxEItMS06RqGMqIMAQ,2722
104
109
  veadk/tracing/telemetry/attributes/extractors/types.py,sha256=9K93smX6nQNeVr2DDP2ACfnN06X22XhPN2nHOt83KQ4,2532
105
110
  veadk/tracing/telemetry/exporters/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
106
111
  veadk/tracing/telemetry/exporters/apmplus_exporter.py,sha256=Z_r7vv4nMKNVX__gooFMYI3NYbDRSD7pZ-cx_vUjXdk,5977
107
112
  veadk/tracing/telemetry/exporters/base_exporter.py,sha256=uwYhOI2xP8JDjYc99S2zolYSzjh7lgwHT0T8O4XB5Po,1184
108
113
  veadk/tracing/telemetry/exporters/cozeloop_exporter.py,sha256=moe7UE0p1vMJ1Wa-eQTo5nPlszDTYA6LX9nJt9i5jiw,2561
109
- veadk/tracing/telemetry/exporters/inmemory_exporter.py,sha256=_WadIdE-qgxkdxhxsaSuj3tN8RHt9EBkKtIwTsQqX3w,3773
114
+ veadk/tracing/telemetry/exporters/inmemory_exporter.py,sha256=bDsoGtwUI90sgwF4fomVSbZbvMK5Kgvc3LtWainN_wM,3824
110
115
  veadk/tracing/telemetry/exporters/tls_exporter.py,sha256=sbNG6Tm-wMBqepxBR64sKoRq3uraj4nOP8WtCldD-FQ,2758
111
116
  veadk/utils/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
112
117
  veadk/utils/logger.py,sha256=IeoLzHVOm7XaHNSSBKkzgKzqzLvt71wUN2jjRtllCfo,1601
113
118
  veadk/utils/mcp_utils.py,sha256=aET7pX3LXmRe2-Jh7_xRvxrVyl1dN7uPAUk16luwMlQ,1525
114
- veadk/utils/misc.py,sha256=HMA4pdG-dyLkiIkb3k1NYrWHY2kvFeZ6zXhDVfq7LC4,2075
119
+ veadk/utils/misc.py,sha256=qsEdlm644ISrs6hVj4ICjYhzvvGRDMTP6dTN6uwzfNI,3157
115
120
  veadk/utils/patches.py,sha256=dcHdlJ8IciyMjDuMy6-_6McUqJYyLz0yHmJ0xH8lWOw,2752
116
121
  veadk/utils/volcengine_sign.py,sha256=cU5CucU6MXV2FY8qLs7hWVwSO87_Opk-lgNnW9HYs_o,6498
117
- veadk_python-0.2.4.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
118
- veadk_python-0.2.4.dist-info/METADATA,sha256=MQW8nJP-CUd-ZbG14gv7YODrW1ITNdN0NWqDnP9_E9c,17668
119
- veadk_python-0.2.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
120
- veadk_python-0.2.4.dist-info/entry_points.txt,sha256=-g28D6dNV-2UvAiRP9VF0oOVSDSJ5zlLUIZ34ArAqF8,46
121
- veadk_python-0.2.4.dist-info/top_level.txt,sha256=Qqi3ycJ4anKiZWBXtUBIy8zK9ZuXJsFa05oFq8O8qqY,6
122
- veadk_python-0.2.4.dist-info/RECORD,,
122
+ veadk_python-0.2.5.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
123
+ veadk_python-0.2.5.dist-info/METADATA,sha256=GKPf9ah4IyAxP7B6n5Xb6f7vhVmW-A5xmtxM1FvzJ90,17668
124
+ veadk_python-0.2.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
125
+ veadk_python-0.2.5.dist-info/entry_points.txt,sha256=-g28D6dNV-2UvAiRP9VF0oOVSDSJ5zlLUIZ34ArAqF8,46
126
+ veadk_python-0.2.5.dist-info/top_level.txt,sha256=Qqi3ycJ4anKiZWBXtUBIy8zK9ZuXJsFa05oFq8O8qqY,6
127
+ veadk_python-0.2.5.dist-info/RECORD,,