veadk-python 0.2.9__tar.gz → 0.2.11__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.9 → veadk_python-0.2.11}/PKG-INFO +4 -3
- {veadk_python-0.2.9 → veadk_python-0.2.11}/pyproject.toml +5 -7
- {veadk_python-0.2.9 → veadk_python-0.2.11}/tests/test_agent.py +5 -7
- {veadk_python-0.2.9 → veadk_python-0.2.11}/tests/test_knowledgebase.py +4 -5
- {veadk_python-0.2.9 → veadk_python-0.2.11}/tests/test_long_term_memory.py +7 -9
- {veadk_python-0.2.9 → veadk_python-0.2.11}/tests/test_runner.py +5 -3
- veadk_python-0.2.11/veadk/a2a/remote_ve_agent.py +90 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/agent.py +10 -3
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/agent_builder.py +2 -3
- veadk_python-0.2.11/veadk/auth/veauth/ark_veauth.py +69 -0
- veadk_python-0.2.11/veadk/auth/veauth/utils.py +57 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/cli/cli.py +2 -0
- veadk_python-0.2.11/veadk/cli/cli_kb.py +75 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/cli/cli_web.py +4 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/configs/model_configs.py +3 -3
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/consts.py +9 -0
- veadk_python-0.2.11/veadk/integrations/ve_viking_db_memory/ve_viking_db_memory.py +293 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/knowledgebase/knowledgebase.py +19 -32
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/memory/__init__.py +1 -1
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/memory/long_term_memory.py +40 -68
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/memory/long_term_memory_backends/base_backend.py +4 -2
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/memory/long_term_memory_backends/in_memory_backend.py +8 -6
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/memory/long_term_memory_backends/mem0_backend.py +25 -10
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/memory/long_term_memory_backends/opensearch_backend.py +40 -36
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/memory/long_term_memory_backends/redis_backend.py +59 -46
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/memory/long_term_memory_backends/vikingdb_memory_backend.py +56 -35
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/memory/short_term_memory.py +12 -8
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/memory/short_term_memory_backends/postgresql_backend.py +3 -1
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/runner.py +42 -19
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tools/builtin_tools/generate_image.py +56 -17
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tools/builtin_tools/image_edit.py +17 -7
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tools/builtin_tools/image_generate.py +17 -7
- veadk_python-0.2.11/veadk/tools/builtin_tools/load_knowledgebase.py +97 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tools/builtin_tools/video_generate.py +11 -9
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tools/builtin_tools/web_search.py +10 -3
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tools/load_knowledgebase_tool.py +12 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tracing/telemetry/attributes/extractors/llm_attributes_extractors.py +5 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tracing/telemetry/attributes/extractors/tool_attributes_extractors.py +7 -0
- veadk_python-0.2.11/veadk/tracing/telemetry/exporters/__init__.py +13 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tracing/telemetry/exporters/apmplus_exporter.py +82 -2
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tracing/telemetry/exporters/inmemory_exporter.py +8 -2
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tracing/telemetry/telemetry.py +41 -5
- veadk_python-0.2.11/veadk/utils/__init__.py +13 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/utils/misc.py +6 -10
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/utils/volcengine_sign.py +2 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/version.py +1 -1
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk_python.egg-info/PKG-INFO +4 -3
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk_python.egg-info/SOURCES.txt +6 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk_python.egg-info/requires.txt +3 -2
- veadk_python-0.2.9/veadk/a2a/remote_ve_agent.py +0 -33
- veadk_python-0.2.9/veadk/auth/veauth/ark_veauth.py +0 -77
- {veadk_python-0.2.9 → veadk_python-0.2.11}/LICENSE +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/README.md +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/setup.cfg +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/tests/test_cloud.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/tests/test_evaluator.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/tests/test_multiple_agents.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/tests/test_runtime_data_collecting.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/tests/test_short_term_memory.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/tests/test_tracing.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/a2a/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/a2a/agent_card.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/a2a/ve_a2a_server.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/a2a/ve_agent_executor.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/a2a/ve_task_store.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/agents/loop_agent.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/agents/parallel_agent.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/agents/sequential_agent.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/auth/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/auth/base_auth.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/auth/veauth/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/auth/veauth/apmplus_veauth.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/auth/veauth/base_veauth.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/auth/veauth/cozeloop_veauth.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/auth/veauth/opensearch_veauth.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/auth/veauth/postgresql_veauth.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/auth/veauth/prompt_pilot_veauth.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/auth/veauth/vesearch_veauth.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/cli/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/cli/cli_deploy.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/cli/cli_eval.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/cli/cli_init.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/cli/cli_pipeline.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/cli/cli_prompt.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/cloud/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/cloud/cloud_agent_engine.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/cloud/cloud_app.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/config.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/configs/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/configs/database_configs.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/configs/tool_configs.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/configs/tracing_configs.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/evaluation/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/evaluation/adk_evaluator/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/evaluation/adk_evaluator/adk_evaluator.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/evaluation/base_evaluator.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/evaluation/deepeval_evaluator/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/evaluation/deepeval_evaluator/deepeval_evaluator.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/evaluation/eval_set_file_loader.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/evaluation/eval_set_recorder.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/evaluation/types.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/evaluation/utils/prometheus.py +0 -0
- {veadk_python-0.2.9/veadk/integrations/ve_apig → veadk_python-0.2.11/veadk/integrations}/__init__.py +0 -0
- {veadk_python-0.2.9/veadk/integrations/ve_code_pipeline → veadk_python-0.2.11/veadk/integrations/ve_apig}/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_apig/ve_apig.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_apig/ve_apig_utils.py +0 -0
- {veadk_python-0.2.9/veadk/integrations/ve_cozeloop → veadk_python-0.2.11/veadk/integrations/ve_code_pipeline}/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_code_pipeline/ve_code_pipeline.py +0 -0
- {veadk_python-0.2.9/veadk/integrations/ve_cr → veadk_python-0.2.11/veadk/integrations/ve_cozeloop}/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_cozeloop/ve_cozeloop.py +0 -0
- {veadk_python-0.2.9/veadk/integrations/ve_faas → veadk_python-0.2.11/veadk/integrations/ve_cr}/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_cr/ve_cr.py +0 -0
- {veadk_python-0.2.9/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}} → veadk_python-0.2.11/veadk/integrations/ve_faas}/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/template/cookiecutter.json +0 -0
- {veadk_python-0.2.9/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src → veadk_python-0.2.11/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}}/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/clean.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/config.yaml.example +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/deploy.py +0 -0
- {veadk_python-0.2.9/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}} → veadk_python-0.2.11/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src}/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/agent.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/app.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/requirements.txt +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/run.sh +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/{{ cookiecutter.app_name }}/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/{{ cookiecutter.app_name }}/agent.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/ve_faas.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/ve_faas_utils.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/web_template/cookiecutter.json +0 -0
- {veadk_python-0.2.9/veadk/integrations/ve_prompt_pilot → veadk_python-0.2.11/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}}/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/clean.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/config.yaml.example +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/deploy.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/Dockerfile +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/app.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/init_db.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/models.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/requirements.txt +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/run.sh +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/static/css/style.css +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/static/js/admin.js +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/dashboard.html +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/edit_post.html +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/login.html +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/posts.html +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/base.html +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/index.html +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/post.html +0 -0
- {veadk_python-0.2.9/veadk/integrations/ve_tls → veadk_python-0.2.11/veadk/integrations/ve_prompt_pilot}/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_prompt_pilot/ve_prompt_pilot.py +0 -0
- {veadk_python-0.2.9/veadk/knowledgebase/backends → veadk_python-0.2.11/veadk/integrations/ve_tls}/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_tls/utils.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_tls/ve_tls.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/integrations/ve_tos/ve_tos.py +0 -0
- {veadk_python-0.2.9/veadk/memory/long_term_memory_backends → veadk_python-0.2.11/veadk/integrations/ve_viking_db_memory}/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/knowledgebase/__init__.py +0 -0
- {veadk_python-0.2.9/veadk/memory/short_term_memory_backends → veadk_python-0.2.11/veadk/knowledgebase/backends}/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/knowledgebase/backends/base_backend.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/knowledgebase/backends/in_memory_backend.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/knowledgebase/backends/opensearch_backend.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/knowledgebase/backends/redis_backend.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/knowledgebase/backends/utils.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/knowledgebase/backends/vikingdb_knowledge_backend.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/knowledgebase/entry.py +0 -0
- {veadk_python-0.2.9/veadk/prompts → veadk_python-0.2.11/veadk/memory/long_term_memory_backends}/__init__.py +0 -0
- {veadk_python-0.2.9/veadk/tools → veadk_python-0.2.11/veadk/memory/short_term_memory_backends}/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/memory/short_term_memory_backends/base_backend.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/memory/short_term_memory_backends/mysql_backend.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/memory/short_term_memory_backends/sqlite_backend.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/memory/short_term_memory_processor.py +0 -0
- {veadk_python-0.2.9/veadk/tools/builtin_tools → veadk_python-0.2.11/veadk/prompts}/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/prompts/agent_default_prompt.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/prompts/prompt_evaluator.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/prompts/prompt_memory_processor.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/prompts/prompt_optimization.py +0 -0
- {veadk_python-0.2.9/veadk/tools/sandbox → veadk_python-0.2.11/veadk/tools}/__init__.py +0 -0
- {veadk_python-0.2.9/veadk/tracing → veadk_python-0.2.11/veadk/tools/builtin_tools}/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tools/builtin_tools/lark.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tools/builtin_tools/las.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tools/builtin_tools/mcp_router.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tools/builtin_tools/vesearch.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tools/builtin_tools/web_scraper.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tools/demo_tools.py +0 -0
- {veadk_python-0.2.9/veadk/tracing/telemetry → veadk_python-0.2.11/veadk/tools/sandbox}/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tools/sandbox/browser_sandbox.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tools/sandbox/code_sandbox.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tools/sandbox/computer_sandbox.py +0 -0
- {veadk_python-0.2.9/veadk/tracing/telemetry/exporters → veadk_python-0.2.11/veadk/tracing}/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tracing/base_tracer.py +0 -0
- {veadk_python-0.2.9/veadk/utils → veadk_python-0.2.11/veadk/tracing/telemetry}/__init__.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tracing/telemetry/attributes/attributes.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tracing/telemetry/attributes/extractors/common_attributes_extractors.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tracing/telemetry/attributes/extractors/types.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tracing/telemetry/exporters/base_exporter.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tracing/telemetry/exporters/cozeloop_exporter.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tracing/telemetry/exporters/tls_exporter.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/tracing/telemetry/opentelemetry_tracer.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/types.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/utils/logger.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/utils/mcp_utils.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk/utils/patches.py +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk_python.egg-info/dependency_links.txt +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/veadk_python.egg-info/entry_points.txt +0 -0
- {veadk_python-0.2.9 → veadk_python-0.2.11}/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.11
|
|
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,7 +218,7 @@ 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
223
|
Requires-Dist: agent-pilot-sdk>=0.1.2
|
|
224
224
|
Requires-Dist: fastmcp>=2.11.3
|
|
@@ -231,16 +231,17 @@ Requires-Dist: llama-index-vector-stores-opensearch>=0.6.1
|
|
|
231
231
|
Requires-Dist: psycopg2-binary>=2.9.10
|
|
232
232
|
Requires-Dist: pymysql>=1.1.1
|
|
233
233
|
Requires-Dist: opensearch-py==2.8.0
|
|
234
|
+
Requires-Dist: filetype>=1.2.0
|
|
234
235
|
Provides-Extra: extensions
|
|
235
236
|
Requires-Dist: redis>=5.0; extra == "extensions"
|
|
236
237
|
Requires-Dist: tos>=2.8.4; extra == "extensions"
|
|
237
238
|
Requires-Dist: llama-index-vector-stores-redis>=0.6.1; extra == "extensions"
|
|
238
|
-
Requires-Dist: mcp-server-vikingdb-memory; extra == "extensions"
|
|
239
239
|
Provides-Extra: database
|
|
240
240
|
Requires-Dist: redis>=5.0; extra == "database"
|
|
241
241
|
Requires-Dist: pymysql>=1.1.1; extra == "database"
|
|
242
242
|
Requires-Dist: volcengine>=1.0.193; extra == "database"
|
|
243
243
|
Requires-Dist: tos>=2.8.4; extra == "database"
|
|
244
|
+
Requires-Dist: mem0ai==0.1.118; extra == "database"
|
|
244
245
|
Provides-Extra: eval
|
|
245
246
|
Requires-Dist: prometheus-client>=0.22.1; extra == "eval"
|
|
246
247
|
Requires-Dist: deepeval>=3.2.6; extra == "eval"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "veadk-python"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.11"
|
|
4
4
|
description = "Volcengine agent development kit, integrations with Volcengine cloud services."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.10"
|
|
@@ -22,8 +22,8 @@ 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",
|
|
25
|
+
"volcengine-python-sdk>=4.0.18", # For Volcengine API
|
|
26
|
+
"volcengine>=1.0.193", # For Volcengine sign
|
|
27
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
|
|
@@ -35,6 +35,7 @@ dependencies = [
|
|
|
35
35
|
"psycopg2-binary>=2.9.10", # For PostgreSQL database (short term memory)
|
|
36
36
|
"pymysql>=1.1.1", # For MySQL database (short term memory)
|
|
37
37
|
"opensearch-py==2.8.0",
|
|
38
|
+
"filetype>=1.2.0",
|
|
38
39
|
]
|
|
39
40
|
|
|
40
41
|
[project.scripts]
|
|
@@ -45,13 +46,13 @@ extensions = [
|
|
|
45
46
|
"redis>=5.0", # For Redis database
|
|
46
47
|
"tos>=2.8.4", # For TOS storage and Viking DB
|
|
47
48
|
"llama-index-vector-stores-redis>=0.6.1",
|
|
48
|
-
"mcp-server-vikingdb-memory",
|
|
49
49
|
]
|
|
50
50
|
database = [
|
|
51
51
|
"redis>=5.0", # For Redis database
|
|
52
52
|
"pymysql>=1.1.1", # For MySQL database
|
|
53
53
|
"volcengine>=1.0.193", # For Viking DB
|
|
54
54
|
"tos>=2.8.4", # For TOS storage and Viking DB
|
|
55
|
+
"mem0ai==0.1.118", # For mem0
|
|
55
56
|
]
|
|
56
57
|
eval = [
|
|
57
58
|
"prometheus-client>=0.22.1", # For exporting data to Prometheus pushgateway
|
|
@@ -91,6 +92,3 @@ exclude = [
|
|
|
91
92
|
"veadk/integrations/ve_faas/template/*",
|
|
92
93
|
"veadk/integrations/ve_faas/web_template/*"
|
|
93
94
|
]
|
|
94
|
-
|
|
95
|
-
[tool.uv.sources]
|
|
96
|
-
mcp-server-vikingdb-memory = { git = "https://github.com/volcengine/mcp-server", subdirectory = "server/mcp_server_vikingdb_memory" }
|
|
@@ -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
|
+
import os
|
|
15
16
|
from unittest.mock import Mock, patch
|
|
16
17
|
|
|
17
18
|
from google.adk.agents.llm_agent import LlmAgent
|
|
@@ -33,11 +34,10 @@ from veadk.tracing.telemetry.opentelemetry_tracer import OpentelemetryTracer
|
|
|
33
34
|
|
|
34
35
|
|
|
35
36
|
def test_agent():
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
)
|
|
37
|
+
os.environ["MODEL_EMBEDDING_API_KEY"] = "mocked_api_key"
|
|
38
|
+
|
|
39
|
+
knowledgebase = KnowledgeBase(index="test_index", backend="local")
|
|
40
|
+
|
|
41
41
|
long_term_memory = LongTermMemory(backend="local")
|
|
42
42
|
tracer = OpentelemetryTracer()
|
|
43
43
|
|
|
@@ -69,8 +69,6 @@ def test_agent():
|
|
|
69
69
|
|
|
70
70
|
assert agent.knowledgebase == knowledgebase
|
|
71
71
|
assert agent.knowledgebase.backend == "local" # type: ignore
|
|
72
|
-
assert load_knowledgebase_tool.knowledgebase == agent.knowledgebase
|
|
73
|
-
assert load_knowledgebase_tool.load_knowledgebase_tool in agent.tools
|
|
74
72
|
|
|
75
73
|
assert agent.long_term_memory.backend == "local" # type: ignore
|
|
76
74
|
assert load_memory in agent.tools
|
|
@@ -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
|
+
import os
|
|
15
16
|
|
|
16
17
|
import pytest
|
|
17
18
|
|
|
@@ -21,11 +22,9 @@ from veadk.knowledgebase.backends.in_memory_backend import InMemoryKnowledgeBack
|
|
|
21
22
|
|
|
22
23
|
@pytest.mark.asyncio
|
|
23
24
|
async def test_knowledgebase():
|
|
25
|
+
os.environ["MODEL_EMBEDDING_API_KEY"] = "mocked_api_key"
|
|
26
|
+
|
|
24
27
|
app_name = "kb_test_app"
|
|
25
|
-
kb = KnowledgeBase(
|
|
26
|
-
backend="local",
|
|
27
|
-
app_name=app_name,
|
|
28
|
-
backend_config={"embedding_config": {"api_key": "test"}},
|
|
29
|
-
)
|
|
28
|
+
kb = KnowledgeBase(backend="local", app_name=app_name)
|
|
30
29
|
|
|
31
30
|
assert isinstance(kb._backend, InMemoryKnowledgeBackend)
|
|
@@ -13,23 +13,20 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
15
|
|
|
16
|
+
import os
|
|
17
|
+
|
|
16
18
|
import pytest
|
|
17
19
|
from google.adk.tools import load_memory
|
|
18
20
|
|
|
19
21
|
from veadk.agent import Agent
|
|
20
22
|
from veadk.memory.long_term_memory import LongTermMemory
|
|
21
23
|
|
|
22
|
-
app_name = "test_ltm"
|
|
23
|
-
user_id = "test_user"
|
|
24
|
-
|
|
25
24
|
|
|
26
25
|
@pytest.mark.asyncio
|
|
27
26
|
async def test_long_term_memory():
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
# user_id=user_id,
|
|
32
|
-
)
|
|
27
|
+
os.environ["MODEL_EMBEDDING_API_KEY"] = "mocked_api_key"
|
|
28
|
+
long_term_memory = LongTermMemory(backend="local")
|
|
29
|
+
|
|
33
30
|
agent = Agent(
|
|
34
31
|
name="all_name",
|
|
35
32
|
model_name="test_model_name",
|
|
@@ -43,7 +40,8 @@ async def test_long_term_memory():
|
|
|
43
40
|
|
|
44
41
|
assert load_memory in agent.tools, "load_memory tool not found in agent tools"
|
|
45
42
|
|
|
46
|
-
assert
|
|
43
|
+
assert agent.long_term_memory
|
|
44
|
+
assert agent.long_term_memory._backend
|
|
47
45
|
|
|
48
46
|
# assert agent.long_term_memory._backend.index == build_long_term_memory_index(
|
|
49
47
|
# app_name, user_id
|
|
@@ -12,16 +12,16 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
+
import os
|
|
16
|
+
|
|
15
17
|
from google.genai import types
|
|
16
18
|
|
|
17
19
|
from veadk.agent import Agent
|
|
18
20
|
from veadk.memory.long_term_memory import LongTermMemory
|
|
19
21
|
from veadk.memory.short_term_memory import ShortTermMemory
|
|
20
|
-
from veadk.runner import Runner
|
|
21
|
-
|
|
22
22
|
|
|
23
23
|
# Import the standalone function instead of accessing as class method
|
|
24
|
-
from veadk.runner import _convert_messages
|
|
24
|
+
from veadk.runner import Runner, _convert_messages
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
def _test_convert_messages(runner):
|
|
@@ -67,6 +67,8 @@ def _test_convert_messages(runner):
|
|
|
67
67
|
|
|
68
68
|
def test_runner():
|
|
69
69
|
"""Test Runner class initialization and core properties"""
|
|
70
|
+
os.environ["MODEL_EMBEDDING_API_KEY"] = "mocked_api_key"
|
|
71
|
+
|
|
70
72
|
short_term_memory = ShortTermMemory()
|
|
71
73
|
long_term_memory = LongTermMemory(backend="local")
|
|
72
74
|
agent = Agent(
|
|
@@ -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
|
+
)
|
|
@@ -133,14 +133,21 @@ class Agent(LlmAgent):
|
|
|
133
133
|
)
|
|
134
134
|
|
|
135
135
|
if self.knowledgebase:
|
|
136
|
-
from veadk.tools import
|
|
136
|
+
from veadk.tools.builtin_tools.load_knowledgebase import (
|
|
137
|
+
LoadKnowledgebaseTool,
|
|
138
|
+
)
|
|
137
139
|
|
|
138
|
-
load_knowledgebase_tool
|
|
139
|
-
|
|
140
|
+
load_knowledgebase_tool = LoadKnowledgebaseTool(
|
|
141
|
+
knowledgebase=self.knowledgebase
|
|
142
|
+
)
|
|
143
|
+
self.tools.append(load_knowledgebase_tool)
|
|
140
144
|
|
|
141
145
|
if self.long_term_memory is not None:
|
|
142
146
|
from google.adk.tools import load_memory
|
|
143
147
|
|
|
148
|
+
if not load_memory.custom_metadata:
|
|
149
|
+
load_memory.custom_metadata = {}
|
|
150
|
+
load_memory.custom_metadata["backend"] = self.long_term_memory.backend
|
|
144
151
|
self.tools.append(load_memory)
|
|
145
152
|
|
|
146
153
|
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
|
|
|
@@ -0,0 +1,69 @@
|
|
|
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 os
|
|
16
|
+
|
|
17
|
+
from veadk.auth.veauth.utils import get_credential_from_vefaas_iam
|
|
18
|
+
from veadk.utils.logger import get_logger
|
|
19
|
+
from veadk.utils.volcengine_sign import ve_request
|
|
20
|
+
|
|
21
|
+
logger = get_logger(__name__)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def get_ark_token(region: str = "cn-beijing") -> str:
|
|
25
|
+
logger.info("Fetching ARK token...")
|
|
26
|
+
|
|
27
|
+
access_key = os.getenv("VOLCENGINE_ACCESS_KEY")
|
|
28
|
+
secret_key = os.getenv("VOLCENGINE_SECRET_KEY")
|
|
29
|
+
session_token = ""
|
|
30
|
+
|
|
31
|
+
if not (access_key and secret_key):
|
|
32
|
+
# try to get from vefaas iam
|
|
33
|
+
cred = get_credential_from_vefaas_iam()
|
|
34
|
+
access_key = cred.access_key_id
|
|
35
|
+
secret_key = cred.secret_access_key
|
|
36
|
+
session_token = cred.session_token
|
|
37
|
+
|
|
38
|
+
res = ve_request(
|
|
39
|
+
request_body={"ProjectName": "default", "Filter": {}},
|
|
40
|
+
header={"X-Security-Token": session_token},
|
|
41
|
+
action="ListApiKeys",
|
|
42
|
+
ak=access_key,
|
|
43
|
+
sk=secret_key,
|
|
44
|
+
service="ark",
|
|
45
|
+
version="2024-01-01",
|
|
46
|
+
region=region,
|
|
47
|
+
host="open.volcengineapi.com",
|
|
48
|
+
)
|
|
49
|
+
try:
|
|
50
|
+
first_api_key_id = res["Result"]["Items"][0]["Id"]
|
|
51
|
+
except KeyError:
|
|
52
|
+
raise ValueError(f"Failed to get ARK api key list: {res}")
|
|
53
|
+
|
|
54
|
+
# get raw api key
|
|
55
|
+
res = ve_request(
|
|
56
|
+
request_body={"Id": first_api_key_id},
|
|
57
|
+
header={"X-Security-Token": session_token},
|
|
58
|
+
action="GetRawApiKey",
|
|
59
|
+
ak=access_key,
|
|
60
|
+
sk=secret_key,
|
|
61
|
+
service="ark",
|
|
62
|
+
version="2024-01-01",
|
|
63
|
+
region=region,
|
|
64
|
+
host="open.volcengineapi.com",
|
|
65
|
+
)
|
|
66
|
+
try:
|
|
67
|
+
return res["Result"]["ApiKey"]
|
|
68
|
+
except KeyError:
|
|
69
|
+
raise ValueError(f"Failed to get ARK api key: {res}")
|
|
@@ -0,0 +1,57 @@
|
|
|
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 pathlib import Path
|
|
17
|
+
|
|
18
|
+
from pydantic import BaseModel
|
|
19
|
+
|
|
20
|
+
from veadk.consts import VEFAAS_IAM_CRIDENTIAL_PATH
|
|
21
|
+
from veadk.utils.logger import get_logger
|
|
22
|
+
|
|
23
|
+
logger = get_logger(__name__)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class VeIAMCredential(BaseModel):
|
|
27
|
+
access_key_id: str
|
|
28
|
+
secret_access_key: str
|
|
29
|
+
session_token: str
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def get_credential_from_vefaas_iam() -> VeIAMCredential:
|
|
33
|
+
"""Get credential from VeFaaS IAM file"""
|
|
34
|
+
logger.info(
|
|
35
|
+
f"Get Volcegnine access key or secret key from environment variables failed, try to get from VeFaaS IAM file (path={VEFAAS_IAM_CRIDENTIAL_PATH})."
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
path = Path(VEFAAS_IAM_CRIDENTIAL_PATH)
|
|
39
|
+
|
|
40
|
+
if not path.exists():
|
|
41
|
+
logger.error(
|
|
42
|
+
f"Get Volcegnine access key or secret key from environment variables failed, and VeFaaS IAM file (path={VEFAAS_IAM_CRIDENTIAL_PATH}) not exists. Please check your configuration."
|
|
43
|
+
)
|
|
44
|
+
raise FileNotFoundError(
|
|
45
|
+
f"Get Volcegnine access key or secret key from environment variables failed, and VeFaaS IAM file (path={VEFAAS_IAM_CRIDENTIAL_PATH}) not exists. Please check your configuration."
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
with open(VEFAAS_IAM_CRIDENTIAL_PATH, "r") as f:
|
|
49
|
+
cred_dict = json.load(f)
|
|
50
|
+
access_key = cred_dict["access_key_id"]
|
|
51
|
+
secret_key = cred_dict["secret_access_key"]
|
|
52
|
+
session_token = cred_dict["session_token"]
|
|
53
|
+
return VeIAMCredential(
|
|
54
|
+
access_key_id=access_key,
|
|
55
|
+
secret_access_key=secret_key,
|
|
56
|
+
session_token=session_token,
|
|
57
|
+
)
|
|
@@ -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)
|
|
@@ -154,6 +154,7 @@ def web(host: str) -> None:
|
|
|
154
154
|
eval_set_results_manager: Any,
|
|
155
155
|
agents_dir: str,
|
|
156
156
|
extra_plugins: Optional[list[str]] = None,
|
|
157
|
+
**kwargs: Any,
|
|
157
158
|
):
|
|
158
159
|
self.agent_loader = agent_loader
|
|
159
160
|
self.artifact_service = artifact_service
|
|
@@ -166,6 +167,9 @@ def web(host: str) -> None:
|
|
|
166
167
|
self.runner_dict = {}
|
|
167
168
|
self.extra_plugins = extra_plugins or []
|
|
168
169
|
|
|
170
|
+
for key, value in kwargs.items():
|
|
171
|
+
setattr(self, key, value)
|
|
172
|
+
|
|
169
173
|
# parse VeADK memories
|
|
170
174
|
short_term_memory, long_term_memory = _get_memory(module_path=agents_dir)
|
|
171
175
|
self.session_service = short_term_memory.session_service
|
|
@@ -17,7 +17,7 @@ from functools import cached_property
|
|
|
17
17
|
|
|
18
18
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
19
19
|
|
|
20
|
-
from veadk.auth.veauth.ark_veauth import
|
|
20
|
+
from veadk.auth.veauth.ark_veauth import get_ark_token
|
|
21
21
|
from veadk.consts import (
|
|
22
22
|
DEFAULT_MODEL_AGENT_API_BASE,
|
|
23
23
|
DEFAULT_MODEL_AGENT_NAME,
|
|
@@ -39,7 +39,7 @@ class ModelConfig(BaseSettings):
|
|
|
39
39
|
|
|
40
40
|
@cached_property
|
|
41
41
|
def api_key(self) -> str:
|
|
42
|
-
return os.getenv("MODEL_AGENT_API_KEY") or
|
|
42
|
+
return os.getenv("MODEL_AGENT_API_KEY") or get_ark_token()
|
|
43
43
|
|
|
44
44
|
|
|
45
45
|
class EmbeddingModelConfig(BaseSettings):
|
|
@@ -56,7 +56,7 @@ class EmbeddingModelConfig(BaseSettings):
|
|
|
56
56
|
|
|
57
57
|
@cached_property
|
|
58
58
|
def api_key(self) -> str:
|
|
59
|
-
return os.getenv("MODEL_EMBEDDING_API_KEY") or
|
|
59
|
+
return os.getenv("MODEL_EMBEDDING_API_KEY") or get_ark_token()
|
|
60
60
|
|
|
61
61
|
|
|
62
62
|
class NormalEmbeddingModelConfig(BaseSettings):
|
|
@@ -63,6 +63,15 @@ DEFAULT_TOS_BUCKET_NAME = "ark-tutorial"
|
|
|
63
63
|
DEFAULT_COZELOOP_SPACE_NAME = "VeADK Space"
|
|
64
64
|
|
|
65
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
|
+
|
|
66
68
|
DEFAULT_IMAGE_EDIT_MODEL_NAME = "doubao-seededit-3-0-i2i-250628"
|
|
69
|
+
DEFAULT_IMAGE_EDIT_MODEL_API_BASE = "https://ark.cn-beijing.volces.com/api/v3/"
|
|
70
|
+
|
|
67
71
|
DEFAULT_VIDEO_MODEL_NAME = "doubao-seedance-1-0-pro-250528"
|
|
72
|
+
DEFAULT_VIDEO_MODEL_API_BASE = "https://ark.cn-beijing.volces.com/api/v3/"
|
|
73
|
+
|
|
68
74
|
DEFAULT_IMAGE_GENERATE_MODEL_NAME = "doubao-seedream-4-0-250828"
|
|
75
|
+
DEFAULT_IMAGE_GENERATE_MODEL_API_BASE = "https://ark.cn-beijing.volces.com/api/v3/"
|
|
76
|
+
|
|
77
|
+
VEFAAS_IAM_CRIDENTIAL_PATH = "/var/run/secrets/iam/credential"
|