veadk-python 0.2.8__tar.gz → 0.2.10__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.8 → veadk_python-0.2.10}/PKG-INFO +15 -4
- {veadk_python-0.2.8 → veadk_python-0.2.10}/README.md +11 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/pyproject.toml +5 -8
- veadk_python-0.2.10/veadk/a2a/remote_ve_agent.py +90 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/agent.py +6 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/agent_builder.py +2 -3
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/cli/cli.py +2 -0
- veadk_python-0.2.10/veadk/cli/cli_kb.py +75 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/cli/cli_prompt.py +9 -2
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/cli/cli_web.py +7 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/configs/database_configs.py +9 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/consts.py +7 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/evaluation/adk_evaluator/adk_evaluator.py +5 -2
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/evaluation/base_evaluator.py +36 -25
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/evaluation/deepeval_evaluator/deepeval_evaluator.py +5 -3
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_prompt_pilot/ve_prompt_pilot.py +9 -3
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_tls/utils.py +1 -2
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_tls/ve_tls.py +9 -5
- veadk_python-0.2.10/veadk/integrations/ve_tos/ve_tos.py +705 -0
- veadk_python-0.2.10/veadk/integrations/ve_viking_db_memory/ve_viking_db_memory.py +293 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/knowledgebase/backends/base_backend.py +4 -4
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/knowledgebase/backends/vikingdb_knowledge_backend.py +162 -50
- veadk_python-0.2.10/veadk/knowledgebase/entry.py +25 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/knowledgebase/knowledgebase.py +19 -4
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/memory/__init__.py +1 -1
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/memory/long_term_memory.py +45 -7
- veadk_python-0.2.10/veadk/memory/long_term_memory_backends/mem0_backend.py +144 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/memory/long_term_memory_backends/vikingdb_memory_backend.py +4 -8
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/memory/short_term_memory.py +9 -3
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/memory/short_term_memory_backends/postgresql_backend.py +3 -1
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/runner.py +34 -26
- veadk_python-0.2.10/veadk/tools/builtin_tools/generate_image.py +389 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tools/builtin_tools/image_edit.py +61 -16
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tools/builtin_tools/image_generate.py +56 -15
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tools/builtin_tools/video_generate.py +41 -41
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tools/builtin_tools/web_search.py +10 -3
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tools/load_knowledgebase_tool.py +14 -8
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tracing/telemetry/attributes/extractors/llm_attributes_extractors.py +6 -1
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tracing/telemetry/attributes/extractors/tool_attributes_extractors.py +7 -0
- veadk_python-0.2.10/veadk/tracing/telemetry/exporters/__init__.py +13 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tracing/telemetry/exporters/apmplus_exporter.py +82 -2
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tracing/telemetry/exporters/inmemory_exporter.py +8 -2
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tracing/telemetry/opentelemetry_tracer.py +8 -2
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tracing/telemetry/telemetry.py +41 -5
- veadk_python-0.2.10/veadk/utils/__init__.py +13 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/version.py +1 -1
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk_python.egg-info/PKG-INFO +15 -4
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk_python.egg-info/SOURCES.txt +7 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk_python.egg-info/requires.txt +3 -3
- veadk_python-0.2.8/veadk/a2a/remote_ve_agent.py +0 -33
- veadk_python-0.2.8/veadk/integrations/ve_tos/ve_tos.py +0 -234
- {veadk_python-0.2.8 → veadk_python-0.2.10}/LICENSE +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/setup.cfg +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/tests/test_agent.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/tests/test_cloud.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/tests/test_evaluator.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/tests/test_knowledgebase.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/tests/test_long_term_memory.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/tests/test_multiple_agents.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/tests/test_runner.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/tests/test_runtime_data_collecting.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/tests/test_short_term_memory.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/tests/test_tracing.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/a2a/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/a2a/agent_card.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/a2a/ve_a2a_server.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/a2a/ve_agent_executor.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/a2a/ve_task_store.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/agents/loop_agent.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/agents/parallel_agent.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/agents/sequential_agent.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/auth/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/auth/base_auth.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/auth/veauth/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/auth/veauth/apmplus_veauth.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/auth/veauth/ark_veauth.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/auth/veauth/base_veauth.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/auth/veauth/cozeloop_veauth.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/auth/veauth/opensearch_veauth.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/auth/veauth/postgresql_veauth.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/auth/veauth/prompt_pilot_veauth.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/auth/veauth/vesearch_veauth.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/cli/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/cli/cli_deploy.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/cli/cli_eval.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/cli/cli_init.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/cli/cli_pipeline.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/cloud/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/cloud/cloud_agent_engine.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/cloud/cloud_app.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/config.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/configs/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/configs/model_configs.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/configs/tool_configs.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/configs/tracing_configs.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/evaluation/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/evaluation/adk_evaluator/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/evaluation/deepeval_evaluator/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/evaluation/eval_set_file_loader.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/evaluation/eval_set_recorder.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/evaluation/types.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/evaluation/utils/prometheus.py +0 -0
- {veadk_python-0.2.8/veadk/integrations/ve_apig → veadk_python-0.2.10/veadk/integrations}/__init__.py +0 -0
- {veadk_python-0.2.8/veadk/integrations/ve_code_pipeline → veadk_python-0.2.10/veadk/integrations/ve_apig}/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_apig/ve_apig.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_apig/ve_apig_utils.py +0 -0
- {veadk_python-0.2.8/veadk/integrations/ve_cozeloop → veadk_python-0.2.10/veadk/integrations/ve_code_pipeline}/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_code_pipeline/ve_code_pipeline.py +0 -0
- {veadk_python-0.2.8/veadk/integrations/ve_cr → veadk_python-0.2.10/veadk/integrations/ve_cozeloop}/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_cozeloop/ve_cozeloop.py +0 -0
- {veadk_python-0.2.8/veadk/integrations/ve_faas → veadk_python-0.2.10/veadk/integrations/ve_cr}/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_cr/ve_cr.py +0 -0
- {veadk_python-0.2.8/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}} → veadk_python-0.2.10/veadk/integrations/ve_faas}/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/template/cookiecutter.json +0 -0
- {veadk_python-0.2.8/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src → veadk_python-0.2.10/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}}/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/clean.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/config.yaml.example +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/deploy.py +0 -0
- {veadk_python-0.2.8/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}} → veadk_python-0.2.10/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src}/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/agent.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/app.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/requirements.txt +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/run.sh +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/{{ cookiecutter.app_name }}/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/{{ cookiecutter.app_name }}/agent.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/ve_faas.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/ve_faas_utils.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/web_template/cookiecutter.json +0 -0
- {veadk_python-0.2.8/veadk/integrations/ve_prompt_pilot → veadk_python-0.2.10/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}}/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/clean.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/config.yaml.example +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/deploy.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/Dockerfile +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/app.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/init_db.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/models.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/requirements.txt +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/run.sh +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/static/css/style.css +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/static/js/admin.js +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/dashboard.html +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/edit_post.html +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/login.html +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/posts.html +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/base.html +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/index.html +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/post.html +0 -0
- {veadk_python-0.2.8/veadk/integrations/ve_tls → veadk_python-0.2.10/veadk/integrations/ve_prompt_pilot}/__init__.py +0 -0
- {veadk_python-0.2.8/veadk/knowledgebase/backends → veadk_python-0.2.10/veadk/integrations/ve_tls}/__init__.py +0 -0
- {veadk_python-0.2.8/veadk/memory/long_term_memory_backends → veadk_python-0.2.10/veadk/integrations/ve_viking_db_memory}/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/knowledgebase/__init__.py +0 -0
- {veadk_python-0.2.8/veadk/memory/short_term_memory_backends → veadk_python-0.2.10/veadk/knowledgebase/backends}/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/knowledgebase/backends/in_memory_backend.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/knowledgebase/backends/opensearch_backend.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/knowledgebase/backends/redis_backend.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/knowledgebase/backends/utils.py +0 -0
- {veadk_python-0.2.8/veadk/prompts → veadk_python-0.2.10/veadk/memory/long_term_memory_backends}/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/memory/long_term_memory_backends/base_backend.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/memory/long_term_memory_backends/in_memory_backend.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/memory/long_term_memory_backends/opensearch_backend.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/memory/long_term_memory_backends/redis_backend.py +0 -0
- {veadk_python-0.2.8/veadk/tools → veadk_python-0.2.10/veadk/memory/short_term_memory_backends}/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/memory/short_term_memory_backends/base_backend.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/memory/short_term_memory_backends/mysql_backend.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/memory/short_term_memory_backends/sqlite_backend.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/memory/short_term_memory_processor.py +0 -0
- {veadk_python-0.2.8/veadk/tools/builtin_tools → veadk_python-0.2.10/veadk/prompts}/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/prompts/agent_default_prompt.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/prompts/prompt_evaluator.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/prompts/prompt_memory_processor.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/prompts/prompt_optimization.py +0 -0
- {veadk_python-0.2.8/veadk/tools/sandbox → veadk_python-0.2.10/veadk/tools}/__init__.py +0 -0
- {veadk_python-0.2.8/veadk/tracing → veadk_python-0.2.10/veadk/tools/builtin_tools}/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tools/builtin_tools/lark.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tools/builtin_tools/las.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tools/builtin_tools/mcp_router.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tools/builtin_tools/vesearch.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tools/builtin_tools/web_scraper.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tools/demo_tools.py +0 -0
- {veadk_python-0.2.8/veadk/tracing/telemetry → veadk_python-0.2.10/veadk/tools/sandbox}/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tools/sandbox/browser_sandbox.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tools/sandbox/code_sandbox.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tools/sandbox/computer_sandbox.py +0 -0
- {veadk_python-0.2.8/veadk/tracing/telemetry/exporters → veadk_python-0.2.10/veadk/tracing}/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tracing/base_tracer.py +0 -0
- {veadk_python-0.2.8/veadk/utils → veadk_python-0.2.10/veadk/tracing/telemetry}/__init__.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tracing/telemetry/attributes/attributes.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tracing/telemetry/attributes/extractors/common_attributes_extractors.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tracing/telemetry/attributes/extractors/types.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tracing/telemetry/exporters/base_exporter.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tracing/telemetry/exporters/cozeloop_exporter.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/tracing/telemetry/exporters/tls_exporter.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/types.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/utils/logger.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/utils/mcp_utils.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/utils/misc.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/utils/patches.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/utils/volcengine_sign.py +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk_python.egg-info/dependency_links.txt +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/veadk_python.egg-info/entry_points.txt +0 -0
- {veadk_python-0.2.8 → veadk_python-0.2.10}/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.10
|
|
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
|
|
@@ -218,9 +218,9 @@ Requires-Dist: opentelemetry-exporter-otlp>=1.35.0
|
|
|
218
218
|
Requires-Dist: opentelemetry-instrumentation-logging>=0.56b0
|
|
219
219
|
Requires-Dist: wrapt>=1.17.2
|
|
220
220
|
Requires-Dist: openai<1.100
|
|
221
|
-
Requires-Dist: volcengine-python-sdk>=4.0.
|
|
221
|
+
Requires-Dist: volcengine-python-sdk>=4.0.18
|
|
222
222
|
Requires-Dist: volcengine>=1.0.193
|
|
223
|
-
Requires-Dist: agent-pilot-sdk>=0.
|
|
223
|
+
Requires-Dist: agent-pilot-sdk>=0.1.2
|
|
224
224
|
Requires-Dist: fastmcp>=2.11.3
|
|
225
225
|
Requires-Dist: cookiecutter>=2.6.0
|
|
226
226
|
Requires-Dist: omegaconf>=2.3.0
|
|
@@ -235,12 +235,12 @@ Provides-Extra: extensions
|
|
|
235
235
|
Requires-Dist: redis>=5.0; extra == "extensions"
|
|
236
236
|
Requires-Dist: tos>=2.8.4; extra == "extensions"
|
|
237
237
|
Requires-Dist: llama-index-vector-stores-redis>=0.6.1; extra == "extensions"
|
|
238
|
-
Requires-Dist: mcp-server-vikingdb-memory; extra == "extensions"
|
|
239
238
|
Provides-Extra: database
|
|
240
239
|
Requires-Dist: redis>=5.0; extra == "database"
|
|
241
240
|
Requires-Dist: pymysql>=1.1.1; extra == "database"
|
|
242
241
|
Requires-Dist: volcengine>=1.0.193; extra == "database"
|
|
243
242
|
Requires-Dist: tos>=2.8.4; extra == "database"
|
|
243
|
+
Requires-Dist: mem0ai==0.1.118; extra == "database"
|
|
244
244
|
Provides-Extra: eval
|
|
245
245
|
Requires-Dist: prometheus-client>=0.22.1; extra == "eval"
|
|
246
246
|
Requires-Dist: deepeval>=3.2.6; extra == "eval"
|
|
@@ -270,6 +270,17 @@ A [tutorial](https://github.com/volcengine/veadk-python/blob/main/veadk_tutorial
|
|
|
270
270
|
|
|
271
271
|
## Installation
|
|
272
272
|
|
|
273
|
+
### From PyPI
|
|
274
|
+
|
|
275
|
+
```python
|
|
276
|
+
pip install veadk-python
|
|
277
|
+
|
|
278
|
+
# install extensions
|
|
279
|
+
pip install veadk-python[extensions]
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
### Build from source
|
|
283
|
+
|
|
273
284
|
We use `uv` to build this project ([how-to-install-uv](https://docs.astral.sh/uv/getting-started/installation/)).
|
|
274
285
|
|
|
275
286
|
```bash
|
|
@@ -15,6 +15,17 @@ A [tutorial](https://github.com/volcengine/veadk-python/blob/main/veadk_tutorial
|
|
|
15
15
|
|
|
16
16
|
## Installation
|
|
17
17
|
|
|
18
|
+
### From PyPI
|
|
19
|
+
|
|
20
|
+
```python
|
|
21
|
+
pip install veadk-python
|
|
22
|
+
|
|
23
|
+
# install extensions
|
|
24
|
+
pip install veadk-python[extensions]
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Build from source
|
|
28
|
+
|
|
18
29
|
We use `uv` to build this project ([how-to-install-uv](https://docs.astral.sh/uv/getting-started/installation/)).
|
|
19
30
|
|
|
20
31
|
```bash
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "veadk-python"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.10"
|
|
4
4
|
description = "Volcengine agent development kit, integrations with Volcengine cloud services."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.10"
|
|
@@ -22,9 +22,9 @@ dependencies = [
|
|
|
22
22
|
"opentelemetry-instrumentation-logging>=0.56b0",
|
|
23
23
|
"wrapt>=1.17.2", # For patching built-in functions
|
|
24
24
|
"openai<1.100", # For fix https://github.com/BerriAI/litellm/issues/13710
|
|
25
|
-
"volcengine-python-sdk>=4.0.
|
|
26
|
-
"volcengine>=1.0.193",
|
|
27
|
-
"agent-pilot-sdk>=0.
|
|
25
|
+
"volcengine-python-sdk>=4.0.18", # For Volcengine API
|
|
26
|
+
"volcengine>=1.0.193", # For Volcengine sign
|
|
27
|
+
"agent-pilot-sdk>=0.1.2", # Prompt optimization by Volcengine AgentPilot/PromptPilot toolkits
|
|
28
28
|
"fastmcp>=2.11.3", # For running MCP
|
|
29
29
|
"cookiecutter>=2.6.0", # For cloud deploy
|
|
30
30
|
"omegaconf>=2.3.0", # For agent builder
|
|
@@ -45,13 +45,13 @@ extensions = [
|
|
|
45
45
|
"redis>=5.0", # For Redis database
|
|
46
46
|
"tos>=2.8.4", # For TOS storage and Viking DB
|
|
47
47
|
"llama-index-vector-stores-redis>=0.6.1",
|
|
48
|
-
"mcp-server-vikingdb-memory",
|
|
49
48
|
]
|
|
50
49
|
database = [
|
|
51
50
|
"redis>=5.0", # For Redis database
|
|
52
51
|
"pymysql>=1.1.1", # For MySQL database
|
|
53
52
|
"volcengine>=1.0.193", # For Viking DB
|
|
54
53
|
"tos>=2.8.4", # For TOS storage and Viking DB
|
|
54
|
+
"mem0ai==0.1.118", # For mem0
|
|
55
55
|
]
|
|
56
56
|
eval = [
|
|
57
57
|
"prometheus-client>=0.22.1", # For exporting data to Prometheus pushgateway
|
|
@@ -91,6 +91,3 @@ exclude = [
|
|
|
91
91
|
"veadk/integrations/ve_faas/template/*",
|
|
92
92
|
"veadk/integrations/ve_faas/web_template/*"
|
|
93
93
|
]
|
|
94
|
-
|
|
95
|
-
[tool.uv.sources]
|
|
96
|
-
mcp-server-vikingdb-memory = { git = "https://github.com/volcengine/mcp-server", subdirectory = "server/mcp_server_vikingdb_memory" }
|
|
@@ -0,0 +1,90 @@
|
|
|
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 json
|
|
16
|
+
from typing import Literal
|
|
17
|
+
|
|
18
|
+
import httpx
|
|
19
|
+
import requests
|
|
20
|
+
from a2a.types import AgentCard
|
|
21
|
+
from google.adk.agents.remote_a2a_agent import RemoteA2aAgent
|
|
22
|
+
|
|
23
|
+
from veadk.utils.logger import get_logger
|
|
24
|
+
|
|
25
|
+
logger = get_logger(__name__)
|
|
26
|
+
|
|
27
|
+
AGENT_CARD_WELL_KNOWN_PATH = "/.well-known/agent-card.json"
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def _convert_agent_card_dict_to_obj(agent_card_dict: dict) -> AgentCard:
|
|
31
|
+
agent_card_json_str = json.dumps(agent_card_dict, ensure_ascii=False, indent=2)
|
|
32
|
+
agent_card_object = AgentCard.model_validate_json(str(agent_card_json_str))
|
|
33
|
+
return agent_card_object
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class RemoteVeAgent(RemoteA2aAgent):
|
|
37
|
+
"""Connect to remote agent on VeFaaS platform."""
|
|
38
|
+
|
|
39
|
+
def __init__(
|
|
40
|
+
self,
|
|
41
|
+
name: str,
|
|
42
|
+
url: str,
|
|
43
|
+
auth_token: str | None = None,
|
|
44
|
+
auth_method: Literal["header", "querystring"] | None = None,
|
|
45
|
+
):
|
|
46
|
+
if not auth_token:
|
|
47
|
+
agent_card_dict = requests.get(url + AGENT_CARD_WELL_KNOWN_PATH).json()
|
|
48
|
+
# replace agent_card_url with actual host
|
|
49
|
+
agent_card_dict["url"] = url
|
|
50
|
+
|
|
51
|
+
agent_card_object = _convert_agent_card_dict_to_obj(agent_card_dict)
|
|
52
|
+
|
|
53
|
+
logger.debug(f"Agent card of {name}: {agent_card_object}")
|
|
54
|
+
super().__init__(name=name, agent_card=agent_card_object)
|
|
55
|
+
else:
|
|
56
|
+
if auth_method == "header":
|
|
57
|
+
headers = {"Authorization": f"Bearer {auth_token}"}
|
|
58
|
+
agent_card_dict = requests.get(
|
|
59
|
+
url + AGENT_CARD_WELL_KNOWN_PATH, headers=headers
|
|
60
|
+
).json()
|
|
61
|
+
agent_card_dict["url"] = url
|
|
62
|
+
|
|
63
|
+
agent_card_object = _convert_agent_card_dict_to_obj(agent_card_dict)
|
|
64
|
+
httpx_client = httpx.AsyncClient(
|
|
65
|
+
base_url=url, headers=headers, timeout=600
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
logger.debug(f"Agent card of {name}: {agent_card_object}")
|
|
69
|
+
super().__init__(
|
|
70
|
+
name=name, agent_card=agent_card_object, httpx_client=httpx_client
|
|
71
|
+
)
|
|
72
|
+
elif auth_method == "querystring":
|
|
73
|
+
agent_card_dict = requests.get(
|
|
74
|
+
url + AGENT_CARD_WELL_KNOWN_PATH + f"?token={auth_token}"
|
|
75
|
+
).json()
|
|
76
|
+
agent_card_dict["url"] = url
|
|
77
|
+
|
|
78
|
+
agent_card_object = _convert_agent_card_dict_to_obj(agent_card_dict)
|
|
79
|
+
httpx_client = httpx.AsyncClient(
|
|
80
|
+
base_url=url, params={"token": auth_token}, timeout=600
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
logger.debug(f"Agent card of {name}: {agent_card_object}")
|
|
84
|
+
super().__init__(
|
|
85
|
+
name=name, agent_card=agent_card_object, httpx_client=httpx_client
|
|
86
|
+
)
|
|
87
|
+
else:
|
|
88
|
+
raise ValueError(
|
|
89
|
+
f"Unsupported auth method {auth_method}, use `header` or `querystring` instead."
|
|
90
|
+
)
|
|
@@ -84,6 +84,9 @@ class Agent(LlmAgent):
|
|
|
84
84
|
knowledgebase: Optional[KnowledgeBase] = None
|
|
85
85
|
"""The knowledgebase provided to agent."""
|
|
86
86
|
|
|
87
|
+
short_term_memory: Optional[ShortTermMemory] = None
|
|
88
|
+
"""The short term memory provided to agent."""
|
|
89
|
+
|
|
87
90
|
long_term_memory: Optional[LongTermMemory] = None
|
|
88
91
|
"""The long term memory provided to agent.
|
|
89
92
|
|
|
@@ -138,6 +141,9 @@ class Agent(LlmAgent):
|
|
|
138
141
|
if self.long_term_memory is not None:
|
|
139
142
|
from google.adk.tools import load_memory
|
|
140
143
|
|
|
144
|
+
if not load_memory.custom_metadata:
|
|
145
|
+
load_memory.custom_metadata = {}
|
|
146
|
+
load_memory.custom_metadata["backend"] = self.long_term_memory.backend
|
|
141
147
|
self.tools.append(load_memory)
|
|
142
148
|
|
|
143
149
|
logger.info(f"VeADK version: {VERSION}")
|
|
@@ -52,9 +52,8 @@ class AgentBuilder:
|
|
|
52
52
|
tools = []
|
|
53
53
|
if agent_config.get("tools", []):
|
|
54
54
|
for tool in agent_config["tools"]:
|
|
55
|
-
|
|
56
|
-
func_name =
|
|
57
|
-
|
|
55
|
+
name = tool["name"]
|
|
56
|
+
module_name, func_name = name.rsplit(".", 1)
|
|
58
57
|
module = importlib.import_module(module_name)
|
|
59
58
|
func = getattr(module, func_name)
|
|
60
59
|
|
|
@@ -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_kb import kb
|
|
21
22
|
from veadk.cli.cli_pipeline import pipeline
|
|
22
23
|
from veadk.cli.cli_prompt import prompt
|
|
23
24
|
from veadk.cli.cli_web import web
|
|
@@ -39,6 +40,7 @@ veadk.add_command(prompt)
|
|
|
39
40
|
veadk.add_command(web)
|
|
40
41
|
veadk.add_command(pipeline)
|
|
41
42
|
veadk.add_command(eval)
|
|
43
|
+
veadk.add_command(kb)
|
|
42
44
|
|
|
43
45
|
if __name__ == "__main__":
|
|
44
46
|
veadk()
|
|
@@ -0,0 +1,75 @@
|
|
|
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 pathlib import Path
|
|
16
|
+
from typing import Literal
|
|
17
|
+
|
|
18
|
+
import click
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
@click.command()
|
|
22
|
+
@click.option(
|
|
23
|
+
"--backend",
|
|
24
|
+
type=click.Choice(
|
|
25
|
+
["local", "opensearch", "viking", "redis"],
|
|
26
|
+
case_sensitive=False,
|
|
27
|
+
),
|
|
28
|
+
required=True,
|
|
29
|
+
)
|
|
30
|
+
@click.option(
|
|
31
|
+
"--app_name",
|
|
32
|
+
default="",
|
|
33
|
+
help="`app_name` for init your knowledgebase",
|
|
34
|
+
)
|
|
35
|
+
@click.option(
|
|
36
|
+
"--index",
|
|
37
|
+
default="",
|
|
38
|
+
help="Knowledgebase index",
|
|
39
|
+
)
|
|
40
|
+
@click.option(
|
|
41
|
+
"--path",
|
|
42
|
+
required=True,
|
|
43
|
+
help="Knowledge file or directory path",
|
|
44
|
+
)
|
|
45
|
+
def add(
|
|
46
|
+
backend: Literal["local", "opensearch", "viking", "redis"],
|
|
47
|
+
app_name: str,
|
|
48
|
+
index: str,
|
|
49
|
+
path: str,
|
|
50
|
+
):
|
|
51
|
+
"""Add files to knowledgebase"""
|
|
52
|
+
_path = Path(path)
|
|
53
|
+
assert _path.exists(), f"Path {path} not exists. Please check your input."
|
|
54
|
+
|
|
55
|
+
from veadk.knowledgebase import KnowledgeBase
|
|
56
|
+
|
|
57
|
+
knowledgebase = KnowledgeBase(backend=backend, app_name=app_name, index=index)
|
|
58
|
+
|
|
59
|
+
if _path.is_file():
|
|
60
|
+
knowledgebase.add_from_files(files=[path])
|
|
61
|
+
elif _path.is_dir():
|
|
62
|
+
knowledgebase.add_from_directory(directory=path)
|
|
63
|
+
else:
|
|
64
|
+
raise RuntimeError(
|
|
65
|
+
"Unsupported knowledgebase file type, only support a single file and a directory."
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
@click.group()
|
|
70
|
+
def kb():
|
|
71
|
+
"""VeADK Knowledgebase management"""
|
|
72
|
+
pass
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
kb.add_command(add)
|
|
@@ -21,12 +21,15 @@ import click
|
|
|
21
21
|
)
|
|
22
22
|
@click.option("--feedback", default="", help="Suggestions for prompt optimization")
|
|
23
23
|
@click.option("--api-key", default="", help="API Key of PromptPilot")
|
|
24
|
+
@click.option("--workspace-id", default="", help="Workspace ID of PromptPilot")
|
|
24
25
|
@click.option(
|
|
25
26
|
"--model-name",
|
|
26
27
|
default="doubao-1.5-pro-32k-250115",
|
|
27
28
|
help="Model name for prompt optimization",
|
|
28
29
|
)
|
|
29
|
-
def prompt(
|
|
30
|
+
def prompt(
|
|
31
|
+
path: str, feedback: str, api_key: str, workspace_id: str, model_name: str
|
|
32
|
+
) -> None:
|
|
30
33
|
"""Optimize agent system prompt from a local file."""
|
|
31
34
|
from pathlib import Path
|
|
32
35
|
|
|
@@ -56,7 +59,11 @@ def prompt(path: str, feedback: str, api_key: str, model_name: str) -> None:
|
|
|
56
59
|
|
|
57
60
|
if not api_key:
|
|
58
61
|
api_key = settings.prompt_pilot.api_key
|
|
59
|
-
|
|
62
|
+
|
|
63
|
+
if not workspace_id:
|
|
64
|
+
raise ValueError("Please provide workspace_id for PromptPilot service.")
|
|
65
|
+
|
|
66
|
+
ve_prompt_pilot = VePromptPilot(api_key=api_key, workspace_id=workspace_id)
|
|
60
67
|
ve_prompt_pilot.optimize(
|
|
61
68
|
agents=agents, feedback=feedback, model_name=model_name
|
|
62
69
|
)
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
+
from typing import Optional
|
|
15
16
|
|
|
16
17
|
import click
|
|
17
18
|
|
|
@@ -152,6 +153,8 @@ def web(host: str) -> None:
|
|
|
152
153
|
eval_sets_manager: Any,
|
|
153
154
|
eval_set_results_manager: Any,
|
|
154
155
|
agents_dir: str,
|
|
156
|
+
extra_plugins: Optional[list[str]] = None,
|
|
157
|
+
**kwargs: Any,
|
|
155
158
|
):
|
|
156
159
|
self.agent_loader = agent_loader
|
|
157
160
|
self.artifact_service = artifact_service
|
|
@@ -162,6 +165,10 @@ def web(host: str) -> None:
|
|
|
162
165
|
self.runners_to_clean = set()
|
|
163
166
|
self.current_app_name_ref = SharedValue(value="")
|
|
164
167
|
self.runner_dict = {}
|
|
168
|
+
self.extra_plugins = extra_plugins or []
|
|
169
|
+
|
|
170
|
+
for key, value in kwargs.items():
|
|
171
|
+
setattr(self, key, value)
|
|
165
172
|
|
|
166
173
|
# parse VeADK memories
|
|
167
174
|
short_term_memory, long_term_memory = _get_memory(module_path=agents_dir)
|
|
@@ -83,6 +83,15 @@ class RedisConfig(BaseSettings):
|
|
|
83
83
|
"""STS token for Redis auth, not supported yet."""
|
|
84
84
|
|
|
85
85
|
|
|
86
|
+
class Mem0Config(BaseSettings):
|
|
87
|
+
model_config = SettingsConfigDict(env_prefix="DATABASE_MEM0_")
|
|
88
|
+
|
|
89
|
+
api_key: str = ""
|
|
90
|
+
"""Mem0 API key"""
|
|
91
|
+
|
|
92
|
+
base_url: str = "" # "https://api.mem0.ai/v1"
|
|
93
|
+
|
|
94
|
+
|
|
86
95
|
class VikingKnowledgebaseConfig(BaseSettings):
|
|
87
96
|
model_config = SettingsConfigDict(env_prefix="DATABASE_VIKING_")
|
|
88
97
|
|
|
@@ -27,6 +27,8 @@ DEFAULT_MODEL_EXTRA_CONFIG = {
|
|
|
27
27
|
"x-is-encrypted": getenv("MODEL_AGENT_ENCRYPTED", "true"),
|
|
28
28
|
"veadk-source": "veadk",
|
|
29
29
|
"veadk-version": VERSION,
|
|
30
|
+
"User-Agent": f"VeADK/{VERSION}",
|
|
31
|
+
"X-Client-Request-Id": f"veadk/{VERSION}",
|
|
30
32
|
},
|
|
31
33
|
"extra_body": {
|
|
32
34
|
"caching": {
|
|
@@ -59,3 +61,8 @@ DEFAULT_TLS_TRACING_INSTANCE_NAME = "veadk-tracing"
|
|
|
59
61
|
DEFAULT_TOS_BUCKET_NAME = "ark-tutorial"
|
|
60
62
|
|
|
61
63
|
DEFAULT_COZELOOP_SPACE_NAME = "VeADK Space"
|
|
64
|
+
|
|
65
|
+
DEFAULT_TEXT_TO_IMAGE_MODEL_NAME = "doubao-seedream-3-0-t2i-250415"
|
|
66
|
+
DEFAULT_IMAGE_EDIT_MODEL_NAME = "doubao-seededit-3-0-i2i-250628"
|
|
67
|
+
DEFAULT_VIDEO_MODEL_NAME = "doubao-seedance-1-0-pro-250528"
|
|
68
|
+
DEFAULT_IMAGE_GENERATE_MODEL_NAME = "doubao-seedream-4-0-250828"
|
|
@@ -24,6 +24,8 @@ from google.adk.evaluation.agent_evaluator import (
|
|
|
24
24
|
)
|
|
25
25
|
from google.adk.evaluation.eval_case import IntermediateData, Invocation
|
|
26
26
|
from google.adk.evaluation.evaluator import EvalStatus
|
|
27
|
+
from google.adk.evaluation.eval_set import EvalSet
|
|
28
|
+
from typing import Optional
|
|
27
29
|
from typing_extensions import override
|
|
28
30
|
from veadk.evaluation.base_evaluator import BaseEvaluator
|
|
29
31
|
from types import SimpleNamespace
|
|
@@ -52,7 +54,8 @@ class ADKEvaluator(BaseEvaluator):
|
|
|
52
54
|
@override
|
|
53
55
|
async def evaluate(
|
|
54
56
|
self,
|
|
55
|
-
|
|
57
|
+
eval_set: Optional[EvalSet] = None,
|
|
58
|
+
eval_set_file_path: Optional[str] = None,
|
|
56
59
|
eval_id: str = f"test_{formatted_timestamp()}",
|
|
57
60
|
tool_score_threshold: float = 1.0,
|
|
58
61
|
response_match_score_threshold: float = 0.8,
|
|
@@ -104,7 +107,7 @@ class ADKEvaluator(BaseEvaluator):
|
|
|
104
107
|
# Iterate each test file and evaluate per-case, per-metric
|
|
105
108
|
for test_file in test_files:
|
|
106
109
|
# Build in-memory evaluation cases via BaseEvaluator from the provided file
|
|
107
|
-
self.build_eval_set(test_file)
|
|
110
|
+
self.build_eval_set(eval_set, test_file)
|
|
108
111
|
|
|
109
112
|
evaluation_result_list = []
|
|
110
113
|
|
|
@@ -17,7 +17,7 @@ import json
|
|
|
17
17
|
import time
|
|
18
18
|
import uuid
|
|
19
19
|
from abc import abstractmethod
|
|
20
|
-
from typing import Any
|
|
20
|
+
from typing import Any, Optional
|
|
21
21
|
|
|
22
22
|
from google.adk import Runner
|
|
23
23
|
from google.adk.evaluation.eval_set import EvalSet
|
|
@@ -210,33 +210,43 @@ class BaseEvaluator:
|
|
|
210
210
|
|
|
211
211
|
return evalset
|
|
212
212
|
|
|
213
|
-
def build_eval_set(
|
|
213
|
+
def build_eval_set(
|
|
214
|
+
self, eval_set: Optional[EvalSet] = None, file_path: Optional[str] = None
|
|
215
|
+
):
|
|
214
216
|
"""Generate evaluation data from a given file and assign it to the class attribute `invocation_list`."""
|
|
215
|
-
eval_case_data_list: list[EvalTestCase] = []
|
|
216
217
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
raise ValueError(f"Invalid JSON format in file {file_path}: {e}")
|
|
222
|
-
except Exception as e:
|
|
223
|
-
raise ValueError(f"Error reading file {file_path}: {e}")
|
|
224
|
-
|
|
225
|
-
if isinstance(file_content, dict) and "eval_cases" in file_content:
|
|
226
|
-
eval_cases = self._build_eval_set_from_eval_json(file_path).eval_cases
|
|
227
|
-
elif (
|
|
228
|
-
isinstance(file_content, list)
|
|
229
|
-
and len(file_content) > 0
|
|
230
|
-
and all(
|
|
231
|
-
isinstance(span, dict) and "trace_id" in span for span in file_content
|
|
232
|
-
)
|
|
233
|
-
):
|
|
234
|
-
eval_cases = self._build_eval_set_from_tracing_json(file_path).eval_cases
|
|
218
|
+
if eval_set is None and file_path is None:
|
|
219
|
+
raise ValueError("eval_set or file_path is required")
|
|
220
|
+
if eval_set:
|
|
221
|
+
eval_cases = eval_set.eval_cases
|
|
235
222
|
else:
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
223
|
+
try:
|
|
224
|
+
with open(file_path, "r", encoding="utf-8") as f:
|
|
225
|
+
file_content = json.load(f)
|
|
226
|
+
except json.JSONDecodeError as e:
|
|
227
|
+
raise ValueError(f"Invalid JSON format in file {file_path}: {e}")
|
|
228
|
+
except Exception as e:
|
|
229
|
+
raise ValueError(f"Error reading file {file_path}: {e}")
|
|
230
|
+
|
|
231
|
+
if isinstance(file_content, dict) and "eval_cases" in file_content:
|
|
232
|
+
eval_cases = self._build_eval_set_from_eval_json(file_path).eval_cases
|
|
233
|
+
elif (
|
|
234
|
+
isinstance(file_content, list)
|
|
235
|
+
and len(file_content) > 0
|
|
236
|
+
and all(
|
|
237
|
+
isinstance(span, dict) and "trace_id" in span
|
|
238
|
+
for span in file_content
|
|
239
|
+
)
|
|
240
|
+
):
|
|
241
|
+
eval_cases = self._build_eval_set_from_tracing_json(
|
|
242
|
+
file_path
|
|
243
|
+
).eval_cases
|
|
244
|
+
else:
|
|
245
|
+
raise ValueError(
|
|
246
|
+
f"Unsupported file format in {file_path}. Please provide a valid file."
|
|
247
|
+
)
|
|
239
248
|
|
|
249
|
+
eval_case_data_list: list[EvalTestCase] = []
|
|
240
250
|
for eval_case in eval_cases:
|
|
241
251
|
eval_case_data = EvalTestCase(invocations=[])
|
|
242
252
|
if eval_case.session_input:
|
|
@@ -384,8 +394,9 @@ class BaseEvaluator:
|
|
|
384
394
|
@abstractmethod
|
|
385
395
|
async def evaluate(
|
|
386
396
|
self,
|
|
387
|
-
eval_set_file_path: str,
|
|
388
397
|
metrics: list[Any],
|
|
398
|
+
eval_set: Optional[EvalSet],
|
|
399
|
+
eval_set_file_path: Optional[str],
|
|
389
400
|
eval_id: str,
|
|
390
401
|
):
|
|
391
402
|
"""An abstract method for evaluation based on metrics。"""
|
{veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/evaluation/deepeval_evaluator/deepeval_evaluator.py
RENAMED
|
@@ -22,7 +22,8 @@ from deepeval.models import LocalModel
|
|
|
22
22
|
from deepeval.test_case import LLMTestCase
|
|
23
23
|
from deepeval.test_case.llm_test_case import ToolCall
|
|
24
24
|
from typing_extensions import override
|
|
25
|
-
|
|
25
|
+
from typing import Optional
|
|
26
|
+
from google.adk.evaluation.eval_set import EvalSet
|
|
26
27
|
from veadk.config import getenv
|
|
27
28
|
from veadk.evaluation.base_evaluator import BaseEvaluator, EvalResultData, MetricResult
|
|
28
29
|
from veadk.evaluation.types import EvalResultCaseData, EvalResultMetadata
|
|
@@ -77,13 +78,14 @@ class DeepevalEvaluator(BaseEvaluator):
|
|
|
77
78
|
@override
|
|
78
79
|
async def evaluate(
|
|
79
80
|
self,
|
|
80
|
-
eval_set_file_path: str,
|
|
81
81
|
metrics: list[BaseMetric],
|
|
82
|
+
eval_set: Optional[EvalSet] = None,
|
|
83
|
+
eval_set_file_path: Optional[str] = None,
|
|
82
84
|
eval_id: str = f"test_{formatted_timestamp()}",
|
|
83
85
|
):
|
|
84
86
|
"""Target to Google ADK, we will use the same evaluation case format as Google ADK."""
|
|
85
87
|
# Get evaluation data by parsing eval set file
|
|
86
|
-
self.build_eval_set(eval_set_file_path)
|
|
88
|
+
self.build_eval_set(eval_set, eval_set_file_path)
|
|
87
89
|
|
|
88
90
|
# Get actual data by running agent
|
|
89
91
|
logger.info("Start to run agent for actual data.")
|
{veadk_python-0.2.8 → veadk_python-0.2.10}/veadk/integrations/ve_prompt_pilot/ve_prompt_pilot.py
RENAMED
|
@@ -16,7 +16,6 @@ from __future__ import annotations
|
|
|
16
16
|
|
|
17
17
|
import agent_pilot as ap
|
|
18
18
|
from agent_pilot.models import TaskType
|
|
19
|
-
|
|
20
19
|
from veadk import Agent
|
|
21
20
|
from veadk.prompts import prompt_optimization
|
|
22
21
|
from veadk.utils.logger import get_logger
|
|
@@ -26,9 +25,15 @@ logger = get_logger(__name__)
|
|
|
26
25
|
|
|
27
26
|
class VePromptPilot:
|
|
28
27
|
def __init__(
|
|
29
|
-
self,
|
|
28
|
+
self,
|
|
29
|
+
api_key: str,
|
|
30
|
+
workspace_id: str,
|
|
31
|
+
path: str = "",
|
|
32
|
+
task_id: str | None = None,
|
|
30
33
|
) -> None:
|
|
31
34
|
self.api_key = api_key
|
|
35
|
+
self.workspace_id = workspace_id
|
|
36
|
+
|
|
32
37
|
self.path = path
|
|
33
38
|
|
|
34
39
|
def optimize(
|
|
@@ -57,12 +62,13 @@ class VePromptPilot:
|
|
|
57
62
|
usage = None
|
|
58
63
|
for chunk in ap.generate_prompt_stream(
|
|
59
64
|
task_description=task_description,
|
|
60
|
-
current_prompt=agent.instruction,
|
|
65
|
+
current_prompt=str(agent.instruction),
|
|
61
66
|
model_name=model_name,
|
|
62
67
|
task_type=TaskType.DIALOG,
|
|
63
68
|
temperature=1.0,
|
|
64
69
|
top_p=0.7,
|
|
65
70
|
api_key=self.api_key,
|
|
71
|
+
workspace_id=self.workspace_id,
|
|
66
72
|
): # stream chunks of optimized prompt
|
|
67
73
|
# Process each chunk as it arrives
|
|
68
74
|
optimized_prompt += chunk.data.content if chunk.data else ""
|
|
@@ -17,6 +17,7 @@ import json
|
|
|
17
17
|
from typing import Any, Literal
|
|
18
18
|
|
|
19
19
|
import httpx
|
|
20
|
+
from veadk.utils.logger import get_logger
|
|
20
21
|
from volcengine.ApiInfo import ApiInfo
|
|
21
22
|
from volcengine.auth.SignerV4 import SignerV4
|
|
22
23
|
from volcengine.tls.const import (
|
|
@@ -28,8 +29,6 @@ from volcengine.tls.const import (
|
|
|
28
29
|
)
|
|
29
30
|
from volcengine.tls.TLSService import TLSService
|
|
30
31
|
|
|
31
|
-
from veadk.utils.logger import get_logger
|
|
32
|
-
|
|
33
32
|
logger = get_logger(__name__)
|
|
34
33
|
|
|
35
34
|
HEADER_API_VERSION = "x-tls-apiversion"
|
|
@@ -28,9 +28,8 @@ class VeTLS:
|
|
|
28
28
|
region: str = "cn-beijing",
|
|
29
29
|
):
|
|
30
30
|
try:
|
|
31
|
-
from volcengine.tls.TLSService import TLSService
|
|
32
|
-
|
|
33
31
|
from veadk.integrations.ve_tls.utils import ve_tls_request
|
|
32
|
+
from volcengine.tls.TLSService import TLSService
|
|
34
33
|
except ImportError:
|
|
35
34
|
raise ImportError(
|
|
36
35
|
"Please install volcengine SDK before init VeTLS: pip install volcengine"
|
|
@@ -162,11 +161,12 @@ class VeTLS:
|
|
|
162
161
|
client=self._client,
|
|
163
162
|
api="CreateTraceInstance",
|
|
164
163
|
body=request_body,
|
|
164
|
+
request_headers={"TraceTag": "veadk"},
|
|
165
165
|
)
|
|
166
166
|
|
|
167
|
-
if res["ErrorCode"] == "TopicAlreadyExist":
|
|
167
|
+
if "ErrorCode" in res and res["ErrorCode"] == "TopicAlreadyExist":
|
|
168
168
|
logger.debug(
|
|
169
|
-
f"
|
|
169
|
+
f"Tracing instance '{trace_instance_name}' already exists. Check its ID."
|
|
170
170
|
)
|
|
171
171
|
return self.get_trace_instance_by_name(
|
|
172
172
|
log_project_id, trace_instance_name
|
|
@@ -176,10 +176,14 @@ class VeTLS:
|
|
|
176
176
|
res = self._ve_tls_request(
|
|
177
177
|
client=self._client,
|
|
178
178
|
api="DescribeTraceInstance",
|
|
179
|
-
|
|
179
|
+
params={"TraceInstanceId": res["TraceInstanceId"]},
|
|
180
180
|
method="GET",
|
|
181
181
|
)
|
|
182
182
|
|
|
183
|
+
logger.info(
|
|
184
|
+
f"Create tracing instance finished, tracing instance ID: {res['TraceInstanceId']}"
|
|
185
|
+
)
|
|
186
|
+
|
|
183
187
|
return res
|
|
184
188
|
except KeyError:
|
|
185
189
|
raise ValueError(f"Failed to create tracing instance: {res}")
|