veadk-python 0.2.13__tar.gz → 0.2.15__tar.gz

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 (207) hide show
  1. {veadk_python-0.2.13 → veadk_python-0.2.15}/PKG-INFO +1 -1
  2. {veadk_python-0.2.13 → veadk_python-0.2.15}/pyproject.toml +1 -1
  3. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/cli/cli.py +2 -0
  4. veadk_python-0.2.15/veadk/cli/cli_create.py +122 -0
  5. veadk_python-0.2.15/veadk/cli/cli_web.py +112 -0
  6. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/consts.py +0 -3
  7. veadk_python-0.2.15/veadk/tools/builtin_tools/generate_image.py +23 -0
  8. veadk_python-0.2.13/veadk/tools/builtin_tools/generate_image.py → veadk_python-0.2.15/veadk/tools/builtin_tools/image_generate.py +27 -11
  9. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/version.py +1 -1
  10. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk_python.egg-info/PKG-INFO +1 -1
  11. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk_python.egg-info/SOURCES.txt +1 -0
  12. veadk_python-0.2.13/veadk/cli/cli_web.py +0 -203
  13. veadk_python-0.2.13/veadk/tools/builtin_tools/image_generate.py +0 -296
  14. {veadk_python-0.2.13 → veadk_python-0.2.15}/LICENSE +0 -0
  15. {veadk_python-0.2.13 → veadk_python-0.2.15}/README.md +0 -0
  16. {veadk_python-0.2.13 → veadk_python-0.2.15}/setup.cfg +0 -0
  17. {veadk_python-0.2.13 → veadk_python-0.2.15}/tests/test_agent.py +0 -0
  18. {veadk_python-0.2.13 → veadk_python-0.2.15}/tests/test_cloud.py +0 -0
  19. {veadk_python-0.2.13 → veadk_python-0.2.15}/tests/test_evaluator.py +0 -0
  20. {veadk_python-0.2.13 → veadk_python-0.2.15}/tests/test_knowledgebase.py +0 -0
  21. {veadk_python-0.2.13 → veadk_python-0.2.15}/tests/test_long_term_memory.py +0 -0
  22. {veadk_python-0.2.13 → veadk_python-0.2.15}/tests/test_multiple_agents.py +0 -0
  23. {veadk_python-0.2.13 → veadk_python-0.2.15}/tests/test_runner.py +0 -0
  24. {veadk_python-0.2.13 → veadk_python-0.2.15}/tests/test_runtime_data_collecting.py +0 -0
  25. {veadk_python-0.2.13 → veadk_python-0.2.15}/tests/test_short_term_memory.py +0 -0
  26. {veadk_python-0.2.13 → veadk_python-0.2.15}/tests/test_tracing.py +0 -0
  27. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/__init__.py +0 -0
  28. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/a2a/__init__.py +0 -0
  29. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/a2a/agent_card.py +0 -0
  30. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/a2a/remote_ve_agent.py +0 -0
  31. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/a2a/ve_a2a_server.py +0 -0
  32. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/a2a/ve_agent_executor.py +0 -0
  33. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/a2a/ve_task_store.py +0 -0
  34. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/agent.py +0 -0
  35. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/agent_builder.py +0 -0
  36. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/agents/loop_agent.py +0 -0
  37. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/agents/parallel_agent.py +0 -0
  38. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/agents/sequential_agent.py +0 -0
  39. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/auth/__init__.py +0 -0
  40. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/auth/base_auth.py +0 -0
  41. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/auth/veauth/__init__.py +0 -0
  42. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/auth/veauth/apmplus_veauth.py +0 -0
  43. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/auth/veauth/ark_veauth.py +0 -0
  44. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/auth/veauth/base_veauth.py +0 -0
  45. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/auth/veauth/cozeloop_veauth.py +0 -0
  46. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/auth/veauth/opensearch_veauth.py +0 -0
  47. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/auth/veauth/postgresql_veauth.py +0 -0
  48. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/auth/veauth/prompt_pilot_veauth.py +0 -0
  49. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/auth/veauth/utils.py +0 -0
  50. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/auth/veauth/vesearch_veauth.py +0 -0
  51. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/cli/__init__.py +0 -0
  52. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/cli/cli_deploy.py +0 -0
  53. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/cli/cli_eval.py +0 -0
  54. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/cli/cli_init.py +0 -0
  55. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/cli/cli_kb.py +0 -0
  56. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/cli/cli_pipeline.py +0 -0
  57. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/cli/cli_prompt.py +0 -0
  58. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/cli/cli_uploadevalset.py +0 -0
  59. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/cloud/__init__.py +0 -0
  60. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/cloud/cloud_agent_engine.py +0 -0
  61. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/cloud/cloud_app.py +0 -0
  62. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/config.py +0 -0
  63. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/configs/__init__.py +0 -0
  64. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/configs/database_configs.py +0 -0
  65. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/configs/model_configs.py +0 -0
  66. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/configs/tool_configs.py +0 -0
  67. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/configs/tracing_configs.py +0 -0
  68. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/evaluation/__init__.py +0 -0
  69. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/evaluation/adk_evaluator/__init__.py +0 -0
  70. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/evaluation/adk_evaluator/adk_evaluator.py +0 -0
  71. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/evaluation/base_evaluator.py +0 -0
  72. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/evaluation/deepeval_evaluator/__init__.py +0 -0
  73. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/evaluation/deepeval_evaluator/deepeval_evaluator.py +0 -0
  74. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/evaluation/eval_set_file_loader.py +0 -0
  75. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/evaluation/eval_set_recorder.py +0 -0
  76. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/evaluation/types.py +0 -0
  77. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/evaluation/utils/prometheus.py +0 -0
  78. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/__init__.py +0 -0
  79. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_apig/__init__.py +0 -0
  80. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_apig/ve_apig.py +0 -0
  81. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_apig/ve_apig_utils.py +0 -0
  82. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_code_pipeline/__init__.py +0 -0
  83. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_code_pipeline/ve_code_pipeline.py +0 -0
  84. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_cozeloop/__init__.py +0 -0
  85. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_cozeloop/ve_cozeloop.py +0 -0
  86. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_cr/__init__.py +0 -0
  87. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_cr/ve_cr.py +0 -0
  88. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/__init__.py +0 -0
  89. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/template/cookiecutter.json +0 -0
  90. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/__init__.py +0 -0
  91. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/clean.py +0 -0
  92. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/config.yaml.example +0 -0
  93. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/deploy.py +0 -0
  94. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/__init__.py +0 -0
  95. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/agent.py +0 -0
  96. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/app.py +0 -0
  97. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/requirements.txt +0 -0
  98. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/run.sh +0 -0
  99. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/{{ cookiecutter.app_name }}/__init__.py +0 -0
  100. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/{{ cookiecutter.app_name }}/agent.py +0 -0
  101. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/ve_faas.py +0 -0
  102. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/ve_faas_utils.py +0 -0
  103. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/cookiecutter.json +0 -0
  104. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/__init__.py +0 -0
  105. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/clean.py +0 -0
  106. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/config.yaml.example +0 -0
  107. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/deploy.py +0 -0
  108. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/Dockerfile +0 -0
  109. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/app.py +0 -0
  110. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/init_db.py +0 -0
  111. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/models.py +0 -0
  112. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/requirements.txt +0 -0
  113. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/run.sh +0 -0
  114. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/static/css/style.css +0 -0
  115. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/static/js/admin.js +0 -0
  116. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/dashboard.html +0 -0
  117. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/edit_post.html +0 -0
  118. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/login.html +0 -0
  119. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/posts.html +0 -0
  120. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/base.html +0 -0
  121. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/index.html +0 -0
  122. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/post.html +0 -0
  123. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_prompt_pilot/__init__.py +0 -0
  124. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_prompt_pilot/ve_prompt_pilot.py +0 -0
  125. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_tls/__init__.py +0 -0
  126. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_tls/utils.py +0 -0
  127. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_tls/ve_tls.py +0 -0
  128. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_tos/ve_tos.py +0 -0
  129. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_viking_db_memory/__init__.py +0 -0
  130. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_viking_db_memory/ve_viking_db_memory.py +0 -0
  131. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/knowledgebase/__init__.py +0 -0
  132. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/knowledgebase/backends/__init__.py +0 -0
  133. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/knowledgebase/backends/base_backend.py +0 -0
  134. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/knowledgebase/backends/in_memory_backend.py +0 -0
  135. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/knowledgebase/backends/opensearch_backend.py +0 -0
  136. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/knowledgebase/backends/redis_backend.py +0 -0
  137. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/knowledgebase/backends/utils.py +0 -0
  138. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/knowledgebase/backends/vikingdb_knowledge_backend.py +0 -0
  139. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/knowledgebase/entry.py +0 -0
  140. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/knowledgebase/knowledgebase.py +0 -0
  141. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/__init__.py +0 -0
  142. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/long_term_memory.py +0 -0
  143. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/long_term_memory_backends/__init__.py +0 -0
  144. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/long_term_memory_backends/base_backend.py +0 -0
  145. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/long_term_memory_backends/in_memory_backend.py +0 -0
  146. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/long_term_memory_backends/mem0_backend.py +0 -0
  147. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/long_term_memory_backends/opensearch_backend.py +0 -0
  148. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/long_term_memory_backends/redis_backend.py +0 -0
  149. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/long_term_memory_backends/vikingdb_memory_backend.py +0 -0
  150. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/short_term_memory.py +0 -0
  151. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/short_term_memory_backends/__init__.py +0 -0
  152. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/short_term_memory_backends/base_backend.py +0 -0
  153. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/short_term_memory_backends/mysql_backend.py +0 -0
  154. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/short_term_memory_backends/postgresql_backend.py +0 -0
  155. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/short_term_memory_backends/sqlite_backend.py +0 -0
  156. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/short_term_memory_processor.py +0 -0
  157. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/prompts/__init__.py +0 -0
  158. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/prompts/agent_default_prompt.py +0 -0
  159. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/prompts/prompt_evaluator.py +0 -0
  160. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/prompts/prompt_memory_processor.py +0 -0
  161. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/prompts/prompt_optimization.py +0 -0
  162. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/runner.py +0 -0
  163. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/__init__.py +0 -0
  164. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/builtin_tools/__init__.py +0 -0
  165. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/builtin_tools/image_edit.py +0 -0
  166. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/builtin_tools/lark.py +0 -0
  167. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/builtin_tools/las.py +0 -0
  168. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/builtin_tools/load_knowledgebase.py +0 -0
  169. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/builtin_tools/mcp_router.py +0 -0
  170. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/builtin_tools/run_code.py +0 -0
  171. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/builtin_tools/vesearch.py +0 -0
  172. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/builtin_tools/video_generate.py +0 -0
  173. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/builtin_tools/web_scraper.py +0 -0
  174. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/builtin_tools/web_search.py +0 -0
  175. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/demo_tools.py +0 -0
  176. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/load_knowledgebase_tool.py +0 -0
  177. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/sandbox/__init__.py +0 -0
  178. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/sandbox/browser_sandbox.py +0 -0
  179. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/sandbox/code_sandbox.py +0 -0
  180. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/sandbox/computer_sandbox.py +0 -0
  181. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/__init__.py +0 -0
  182. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/base_tracer.py +0 -0
  183. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/__init__.py +0 -0
  184. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/attributes/attributes.py +0 -0
  185. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/attributes/extractors/common_attributes_extractors.py +0 -0
  186. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/attributes/extractors/llm_attributes_extractors.py +0 -0
  187. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/attributes/extractors/tool_attributes_extractors.py +0 -0
  188. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/attributes/extractors/types.py +0 -0
  189. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/exporters/__init__.py +0 -0
  190. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/exporters/apmplus_exporter.py +0 -0
  191. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/exporters/base_exporter.py +0 -0
  192. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/exporters/cozeloop_exporter.py +0 -0
  193. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/exporters/inmemory_exporter.py +0 -0
  194. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/exporters/tls_exporter.py +0 -0
  195. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/opentelemetry_tracer.py +0 -0
  196. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/telemetry.py +0 -0
  197. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/types.py +0 -0
  198. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/utils/__init__.py +0 -0
  199. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/utils/logger.py +0 -0
  200. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/utils/mcp_utils.py +0 -0
  201. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/utils/misc.py +0 -0
  202. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/utils/patches.py +0 -0
  203. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/utils/volcengine_sign.py +0 -0
  204. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk_python.egg-info/dependency_links.txt +0 -0
  205. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk_python.egg-info/entry_points.txt +0 -0
  206. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk_python.egg-info/requires.txt +0 -0
  207. {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: veadk-python
3
- Version: 0.2.13
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "veadk-python"
3
- version = "0.2.13"
3
+ version = "0.2.15"
4
4
  description = "Volcengine agent development kit, integrations with Volcengine cloud services."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -18,6 +18,7 @@ import click
18
18
  from veadk.cli.cli_deploy import deploy
19
19
  from veadk.cli.cli_eval import eval
20
20
  from veadk.cli.cli_init import init
21
+ from veadk.cli.cli_create import create
21
22
  from veadk.cli.cli_kb import kb
22
23
  from veadk.cli.cli_pipeline import pipeline
23
24
  from veadk.cli.cli_prompt import prompt
@@ -37,6 +38,7 @@ def veadk():
37
38
 
38
39
  veadk.add_command(deploy)
39
40
  veadk.add_command(init)
41
+ veadk.add_command(create)
40
42
  veadk.add_command(prompt)
41
43
  veadk.add_command(web)
42
44
  veadk.add_command(pipeline)
@@ -0,0 +1,122 @@
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
+ import click
16
+ import shutil
17
+ from pathlib import Path
18
+
19
+ _CONFIG_YAML_TEMPLATE = """\
20
+ model:
21
+ agent:
22
+ name: doubao-seed-1-6-251015
23
+ api_key: {ark_api_key}
24
+ video:
25
+ name: doubao-seedance-1-0-pro-250528
26
+ # if you want to use different api_key, just uncomment following line and complete api_key
27
+ # api_key:
28
+ image:
29
+ name: doubao-seedream-4-0-250828
30
+ # if you want to use different api_key, just uncomment following line and complete api_key
31
+ # api_key:
32
+
33
+ logging:
34
+ # ERROR
35
+ # WARNING
36
+ # INFO
37
+ # DEBUG
38
+ level: DEBUG
39
+ """
40
+
41
+ _INIT_PY_TEMPLATE = """\
42
+ from . import agent
43
+ """
44
+
45
+ _AGENT_PY_TEMPLATE = """\
46
+ from veadk import Agent
47
+
48
+ root_agent = Agent(
49
+ name="root_agent",
50
+ description="A helpful assistant for user questions.",
51
+ instruction="Answer user questions to the best of your knowledge",
52
+ )
53
+ """
54
+
55
+ _SUCCESS_MSG = """\
56
+ Agent '{agent_name}' created successfully at '{agent_folder}':
57
+ - config.yaml
58
+ - {agent_name}/__init__.py
59
+ - {agent_name}/agent.py
60
+
61
+ You can run the agent by executing: cd {agent_name} && veadk web
62
+ """
63
+
64
+
65
+ def _prompt_for_ark_api_key() -> str:
66
+ click.secho(
67
+ "An API key is required to run the agent. See https://www.volcengine.com/docs/82379/1541594 for details.",
68
+ fg="green",
69
+ )
70
+ click.echo("You have two options:")
71
+ click.echo(" 1. Enter the API key now.")
72
+ click.echo(" 2. Configure it later in the generated config.yaml file.")
73
+ choice = click.prompt("Please select an option", type=click.Choice(["1", "2"]))
74
+ if choice == "1":
75
+ return click.prompt("Please enter your ARK API key")
76
+ else:
77
+ click.secho(
78
+ "You can set the `api_key` in the config.yaml file later.", fg="yellow"
79
+ )
80
+ return ""
81
+
82
+
83
+ def _generate_files(agent_name: str, ark_api_key: str, target_dir_path: Path) -> None:
84
+ agent_dir_path = target_dir_path / agent_name
85
+ agent_dir_path.mkdir(parents=True, exist_ok=True)
86
+ config_yaml_path = target_dir_path / "config.yaml"
87
+ init_file_path = agent_dir_path / "__init__.py"
88
+ agent_file_path = agent_dir_path / "agent.py"
89
+
90
+ config_yaml_content = _CONFIG_YAML_TEMPLATE.format(ark_api_key=ark_api_key)
91
+ config_yaml_path.write_text(config_yaml_content)
92
+ init_file_path.write_text(_INIT_PY_TEMPLATE)
93
+ agent_file_path.write_text(_AGENT_PY_TEMPLATE)
94
+
95
+ click.secho(
96
+ _SUCCESS_MSG.format(agent_name=agent_name, agent_folder=target_dir_path),
97
+ fg="green",
98
+ )
99
+
100
+
101
+ @click.command()
102
+ @click.option("--agent-name", help="The name of the agent.")
103
+ @click.option("--ark-api-key", help="The ARK API key.")
104
+ def create(agent_name: str, ark_api_key: str) -> None:
105
+ """Creates a new agent in the current folder with prepopulated agent template."""
106
+ if not agent_name:
107
+ agent_name = click.prompt("Enter the agent name")
108
+ if not ark_api_key:
109
+ ark_api_key = _prompt_for_ark_api_key()
110
+
111
+ cwd = Path.cwd()
112
+ target_dir_path = cwd / agent_name
113
+
114
+ if target_dir_path.exists() and any(target_dir_path.iterdir()):
115
+ if not click.confirm(
116
+ f"Directory '{target_dir_path}' already exists and is not empty. Do you want to overwrite it?"
117
+ ):
118
+ click.secho("Operation cancelled.", fg="red")
119
+ return
120
+ shutil.rmtree(target_dir_path)
121
+
122
+ _generate_files(agent_name, ark_api_key, target_dir_path)
@@ -0,0 +1,112 @@
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 functools import wraps
16
+
17
+ import click
18
+
19
+ from veadk.utils.logger import get_logger
20
+
21
+ logger = get_logger(__name__)
22
+
23
+
24
+ def patch_adkwebserver_disable_openapi():
25
+ """
26
+ Monkey patch AdkWebServer.get_fast_api to remove openapi.json route.
27
+ """
28
+ import google.adk.cli.adk_web_server
29
+ from fastapi.routing import APIRoute
30
+ from starlette.routing import Route
31
+
32
+ original_get_fast_api = google.adk.cli.adk_web_server.AdkWebServer.get_fast_api_app
33
+
34
+ def wrapped_get_fast_api(self, *args, **kwargs):
35
+ app = original_get_fast_api(self, *args, **kwargs)
36
+
37
+ paths = ["/openapi.json", "/docs", "/redoc"]
38
+ new_routes = []
39
+ for route in app.router.routes:
40
+ if isinstance(route, (APIRoute, Route)) and route.path in paths:
41
+ continue
42
+ new_routes.append(route)
43
+ app.router.routes = new_routes
44
+
45
+ return app
46
+
47
+ google.adk.cli.adk_web_server.AdkWebServer.get_fast_api_app = wrapped_get_fast_api
48
+
49
+
50
+ @click.command(
51
+ context_settings=dict(ignore_unknown_options=True, allow_extra_args=True)
52
+ )
53
+ @click.pass_context
54
+ def web(ctx, *args, **kwargs) -> None:
55
+ """Launch web with long term and short term memory."""
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
+ )
105
+
106
+ patch_adkwebserver_disable_openapi()
107
+
108
+ from google.adk.cli.cli_tools_click import cli_web
109
+
110
+ extra_args = ctx.args
111
+ logger.debug(f"User args: {ctx.args}")
112
+ cli_web.main(args=extra_args, standalone_mode=False)
@@ -62,9 +62,6 @@ DEFAULT_TOS_BUCKET_NAME = "ark-tutorial"
62
62
 
63
63
  DEFAULT_COZELOOP_SPACE_NAME = "VeADK Space"
64
64
 
65
- DEFAULT_TEXT_TO_IMAGE_MODEL_NAME = "doubao-seedream-3-0-t2i-250415"
66
- DEFAULT_TEXT_TO_IMAGE_MODEL_API_BASE = "https://ark.cn-beijing.volces.com/api/v3/"
67
-
68
65
  DEFAULT_IMAGE_EDIT_MODEL_NAME = "doubao-seededit-3-0-i2i-250628"
69
66
  DEFAULT_IMAGE_EDIT_MODEL_API_BASE = "https://ark.cn-beijing.volces.com/api/v3/"
70
67
 
@@ -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
+ )
@@ -12,7 +12,10 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ import asyncio
15
16
  import base64
17
+ import concurrent.futures
18
+ import contextvars
16
19
  import json
17
20
  import mimetypes
18
21
  import traceback
@@ -27,16 +30,12 @@ from volcenginesdkarkruntime.types.images.images import SequentialImageGeneratio
27
30
 
28
31
  from veadk.config import getenv, settings
29
32
  from veadk.consts import (
30
- DEFAULT_IMAGE_GENERATE_MODEL_NAME,
31
33
  DEFAULT_IMAGE_GENERATE_MODEL_API_BASE,
34
+ DEFAULT_IMAGE_GENERATE_MODEL_NAME,
32
35
  )
33
36
  from veadk.utils.logger import get_logger
34
37
  from veadk.utils.misc import formatted_timestamp, read_file_to_bytes
35
38
  from veadk.version import VERSION
36
- import asyncio
37
- import concurrent.futures
38
- import contextvars
39
-
40
39
 
41
40
  logger = get_logger(__name__)
42
41
 
@@ -48,7 +47,7 @@ client = Ark(
48
47
  )
49
48
 
50
49
  executor = concurrent.futures.ThreadPoolExecutor(max_workers=8)
51
- tracer = trace.get_tracer("gcp.vertex.agent")
50
+ tracer = trace.get_tracer("veadk")
52
51
 
53
52
 
54
53
  def _build_input_parts(item: dict, task_type: str, image_field):
@@ -205,8 +204,10 @@ def handle_single_task_sync(
205
204
 
206
205
 
207
206
  async def image_generate(tasks: list[dict], tool_context) -> Dict:
208
- """
209
- Seedream 4.0: batch image generation via tasks.
207
+ """Generate images with Seedream 4.0.
208
+
209
+ Commit batch image generation requests via tasks.
210
+
210
211
  Args:
211
212
  tasks (list[dict]):
212
213
  A list of image-generation tasks. Each task is a dict.
@@ -284,12 +285,27 @@ async def image_generate(tasks: list[dict], tool_context) -> Dict:
284
285
  - 如果想要指定生成组图的数量,请在prompt里添加数量说明,例如:"生成3张图片"。
285
286
  - size 推荐使用 2048x2048 或表格里的标准比例,确保生成质量。
286
287
  """
287
- logger.debug(
288
- f"Using model: {getenv('MODEL_IMAGE_NAME', DEFAULT_IMAGE_GENERATE_MODEL_NAME)}"
289
- )
288
+ model = getenv("MODEL_IMAGE_NAME", DEFAULT_IMAGE_GENERATE_MODEL_NAME)
289
+
290
+ if model.startswith("doubao-seedream-3-0"):
291
+ logger.error(
292
+ f"Image generation by Doubao Seedream 3.0 ({model}) is depracated. Please use Doubao Seedream 4.0 (e.g., doubao-seedream-4-0-250828) instead."
293
+ )
294
+ return {
295
+ "status": "failed",
296
+ "success_list": [],
297
+ "error_list": [
298
+ "Image generation by Doubao Seedream 3.0 ({model}) is depracated. Please use Doubao Seedream 4.0 (e.g., doubao-seedream-4-0-250828) instead."
299
+ ],
300
+ }
301
+
302
+ logger.debug(f"Using model to generate image: {model}")
303
+
290
304
  success_list: list[dict] = []
291
305
  error_list: list[str] = []
306
+
292
307
  logger.debug(f"image_generate tasks: {tasks}")
308
+
293
309
  with tracer.start_as_current_span("image_generate"):
294
310
  base_ctx = contextvars.copy_context()
295
311
 
@@ -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.13"
15
+ VERSION = "0.2.15"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: veadk-python
3
- Version: 0.2.13
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
@@ -42,6 +42,7 @@ veadk/auth/veauth/utils.py
42
42
  veadk/auth/veauth/vesearch_veauth.py
43
43
  veadk/cli/__init__.py
44
44
  veadk/cli/cli.py
45
+ veadk/cli/cli_create.py
45
46
  veadk/cli/cli_deploy.py
46
47
  veadk/cli/cli_eval.py
47
48
  veadk/cli/cli_init.py
@@ -1,203 +0,0 @@
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 typing import Optional
16
-
17
- import click
18
-
19
- from veadk.memory.long_term_memory import LongTermMemory
20
- from veadk.memory.short_term_memory import ShortTermMemory
21
-
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
108
-
109
-
110
- def patch_adkwebserver_disable_openapi():
111
- """
112
- Monkey patch AdkWebServer.get_fast_api to remove openapi.json route.
113
- """
114
- import google.adk.cli.adk_web_server
115
- from fastapi.routing import APIRoute
116
- from starlette.routing import Route
117
-
118
- original_get_fast_api = google.adk.cli.adk_web_server.AdkWebServer.get_fast_api_app
119
-
120
- def wrapped_get_fast_api(self, *args, **kwargs):
121
- app = original_get_fast_api(self, *args, **kwargs)
122
-
123
- paths = ["/openapi.json", "/docs", "/redoc"]
124
- new_routes = []
125
- for route in app.router.routes:
126
- if isinstance(route, (APIRoute, Route)) and route.path in paths:
127
- continue
128
- new_routes.append(route)
129
- app.router.routes = new_routes
130
-
131
- return app
132
-
133
- google.adk.cli.adk_web_server.AdkWebServer.get_fast_api_app = wrapped_get_fast_api
134
-
135
-
136
- @click.command()
137
- @click.option("--host", default="127.0.0.1", help="Host to run the web server on")
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"
143
- )
144
- def web(host: str, app_name: str, user_id: str) -> None:
145
- """Launch web with long term and short term memory."""
146
- import os
147
- from typing import Any
148
-
149
- from google.adk.cli.utils.shared_value import SharedValue
150
-
151
- from veadk.utils.logger import get_logger
152
-
153
- logger = get_logger(__name__)
154
-
155
- def init_for_veadk(
156
- self,
157
- *,
158
- agent_loader: Any,
159
- session_service: Any,
160
- memory_service: Any,
161
- artifact_service: Any,
162
- credential_service: Any,
163
- eval_sets_manager: Any,
164
- eval_set_results_manager: Any,
165
- agents_dir: str,
166
- extra_plugins: Optional[list[str]] = None,
167
- **kwargs: Any,
168
- ):
169
- self.agent_loader = agent_loader
170
- self.artifact_service = artifact_service
171
- self.credential_service = credential_service
172
- self.eval_sets_manager = eval_sets_manager
173
- self.eval_set_results_manager = eval_set_results_manager
174
- self.agents_dir = agents_dir
175
- self.runners_to_clean = set()
176
- self.current_app_name_ref = SharedValue(value="")
177
- self.runner_dict = {}
178
- self.extra_plugins = extra_plugins or []
179
-
180
- for key, value in kwargs.items():
181
- setattr(self, key, value)
182
-
183
- # parse VeADK memories
184
- short_term_memory, long_term_memory = _get_memory(module_path=agents_dir)
185
- self.session_service = short_term_memory.session_service
186
- self.memory_service = long_term_memory
187
-
188
- os.environ["VEADK_WEB_APP_NAME"] = app_name
189
- os.environ["VEADK_WEB_USER_ID"] = user_id
190
-
191
- import google.adk.cli.adk_web_server
192
-
193
- google.adk.cli.adk_web_server.AdkWebServer.__init__ = init_for_veadk
194
- patch_adkwebserver_disable_openapi()
195
-
196
- import google.adk.cli.cli_tools_click as cli_tools_click
197
-
198
- agents_dir = os.getcwd()
199
- logger.info(f"Load agents from {agents_dir}")
200
-
201
- cli_tools_click.cli_web.main(
202
- args=[agents_dir, "--host", host, "--log_level", "ERROR"]
203
- )