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.
- {veadk_python-0.2.13 → veadk_python-0.2.15}/PKG-INFO +1 -1
- {veadk_python-0.2.13 → veadk_python-0.2.15}/pyproject.toml +1 -1
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/cli/cli.py +2 -0
- veadk_python-0.2.15/veadk/cli/cli_create.py +122 -0
- veadk_python-0.2.15/veadk/cli/cli_web.py +112 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/consts.py +0 -3
- veadk_python-0.2.15/veadk/tools/builtin_tools/generate_image.py +23 -0
- 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
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/version.py +1 -1
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk_python.egg-info/PKG-INFO +1 -1
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk_python.egg-info/SOURCES.txt +1 -0
- veadk_python-0.2.13/veadk/cli/cli_web.py +0 -203
- veadk_python-0.2.13/veadk/tools/builtin_tools/image_generate.py +0 -296
- {veadk_python-0.2.13 → veadk_python-0.2.15}/LICENSE +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/README.md +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/setup.cfg +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/tests/test_agent.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/tests/test_cloud.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/tests/test_evaluator.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/tests/test_knowledgebase.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/tests/test_long_term_memory.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/tests/test_multiple_agents.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/tests/test_runner.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/tests/test_runtime_data_collecting.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/tests/test_short_term_memory.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/tests/test_tracing.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/a2a/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/a2a/agent_card.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/a2a/remote_ve_agent.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/a2a/ve_a2a_server.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/a2a/ve_agent_executor.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/a2a/ve_task_store.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/agent.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/agent_builder.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/agents/loop_agent.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/agents/parallel_agent.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/agents/sequential_agent.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/auth/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/auth/base_auth.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/auth/veauth/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/auth/veauth/apmplus_veauth.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/auth/veauth/ark_veauth.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/auth/veauth/base_veauth.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/auth/veauth/cozeloop_veauth.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/auth/veauth/opensearch_veauth.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/auth/veauth/postgresql_veauth.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/auth/veauth/prompt_pilot_veauth.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/auth/veauth/utils.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/auth/veauth/vesearch_veauth.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/cli/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/cli/cli_deploy.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/cli/cli_eval.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/cli/cli_init.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/cli/cli_kb.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/cli/cli_pipeline.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/cli/cli_prompt.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/cli/cli_uploadevalset.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/cloud/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/cloud/cloud_agent_engine.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/cloud/cloud_app.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/config.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/configs/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/configs/database_configs.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/configs/model_configs.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/configs/tool_configs.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/configs/tracing_configs.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/evaluation/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/evaluation/adk_evaluator/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/evaluation/adk_evaluator/adk_evaluator.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/evaluation/base_evaluator.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/evaluation/deepeval_evaluator/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/evaluation/deepeval_evaluator/deepeval_evaluator.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/evaluation/eval_set_file_loader.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/evaluation/eval_set_recorder.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/evaluation/types.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/evaluation/utils/prometheus.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_apig/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_apig/ve_apig.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_apig/ve_apig_utils.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_code_pipeline/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_code_pipeline/ve_code_pipeline.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_cozeloop/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_cozeloop/ve_cozeloop.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_cr/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_cr/ve_cr.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/template/cookiecutter.json +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/clean.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/config.yaml.example +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/deploy.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/agent.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/app.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/requirements.txt +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/run.sh +0 -0
- {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
- {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
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/ve_faas.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/ve_faas_utils.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/cookiecutter.json +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/clean.py +0 -0
- {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
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/deploy.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/Dockerfile +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_prompt_pilot/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_prompt_pilot/ve_prompt_pilot.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_tls/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_tls/utils.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_tls/ve_tls.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_tos/ve_tos.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_viking_db_memory/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/integrations/ve_viking_db_memory/ve_viking_db_memory.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/knowledgebase/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/knowledgebase/backends/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/knowledgebase/backends/base_backend.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/knowledgebase/backends/in_memory_backend.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/knowledgebase/backends/opensearch_backend.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/knowledgebase/backends/redis_backend.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/knowledgebase/backends/utils.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/knowledgebase/backends/vikingdb_knowledge_backend.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/knowledgebase/entry.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/knowledgebase/knowledgebase.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/long_term_memory.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/long_term_memory_backends/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/long_term_memory_backends/base_backend.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/long_term_memory_backends/in_memory_backend.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/long_term_memory_backends/mem0_backend.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/long_term_memory_backends/opensearch_backend.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/long_term_memory_backends/redis_backend.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/long_term_memory_backends/vikingdb_memory_backend.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/short_term_memory.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/short_term_memory_backends/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/short_term_memory_backends/base_backend.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/short_term_memory_backends/mysql_backend.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/short_term_memory_backends/postgresql_backend.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/short_term_memory_backends/sqlite_backend.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/memory/short_term_memory_processor.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/prompts/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/prompts/agent_default_prompt.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/prompts/prompt_evaluator.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/prompts/prompt_memory_processor.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/prompts/prompt_optimization.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/runner.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/builtin_tools/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/builtin_tools/image_edit.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/builtin_tools/lark.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/builtin_tools/las.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/builtin_tools/load_knowledgebase.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/builtin_tools/mcp_router.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/builtin_tools/run_code.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/builtin_tools/vesearch.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/builtin_tools/video_generate.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/builtin_tools/web_scraper.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/builtin_tools/web_search.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/demo_tools.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/load_knowledgebase_tool.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/sandbox/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/sandbox/browser_sandbox.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/sandbox/code_sandbox.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tools/sandbox/computer_sandbox.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/base_tracer.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/attributes/attributes.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/attributes/extractors/common_attributes_extractors.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/attributes/extractors/llm_attributes_extractors.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/attributes/extractors/tool_attributes_extractors.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/attributes/extractors/types.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/exporters/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/exporters/apmplus_exporter.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/exporters/base_exporter.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/exporters/cozeloop_exporter.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/exporters/inmemory_exporter.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/exporters/tls_exporter.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/opentelemetry_tracer.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/tracing/telemetry/telemetry.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/types.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/utils/__init__.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/utils/logger.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/utils/mcp_utils.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/utils/misc.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/utils/patches.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk/utils/volcengine_sign.py +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk_python.egg-info/dependency_links.txt +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk_python.egg-info/entry_points.txt +0 -0
- {veadk_python-0.2.13 → veadk_python-0.2.15}/veadk_python.egg-info/requires.txt +0 -0
- {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.
|
|
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
|
|
@@ -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("
|
|
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
|
-
|
|
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
|
-
|
|
288
|
-
|
|
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
|
|
|
@@ -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
|
|
@@ -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
|
-
)
|