veadk-python 0.2.11__tar.gz → 0.2.13__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.11 → veadk_python-0.2.13}/PKG-INFO +1 -1
- {veadk_python-0.2.11 → veadk_python-0.2.13}/pyproject.toml +1 -1
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/cli/cli.py +2 -0
- veadk_python-0.2.13/veadk/cli/cli_uploadevalset.py +125 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/cli/cli_web.py +15 -2
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_tos/ve_tos.py +5 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/knowledgebase/backends/utils.py +2 -1
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/knowledgebase/backends/vikingdb_knowledge_backend.py +47 -19
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/memory/long_term_memory.py +9 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/memory/long_term_memory_backends/vikingdb_memory_backend.py +24 -5
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tools/builtin_tools/generate_image.py +220 -184
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tools/builtin_tools/image_edit.py +15 -1
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tools/builtin_tools/image_generate.py +15 -1
- veadk_python-0.2.13/veadk/tools/builtin_tools/run_code.py +81 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tools/builtin_tools/video_generate.py +32 -7
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/version.py +1 -1
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk_python.egg-info/PKG-INFO +1 -1
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk_python.egg-info/SOURCES.txt +2 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/LICENSE +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/README.md +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/setup.cfg +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/tests/test_agent.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/tests/test_cloud.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/tests/test_evaluator.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/tests/test_knowledgebase.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/tests/test_long_term_memory.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/tests/test_multiple_agents.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/tests/test_runner.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/tests/test_runtime_data_collecting.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/tests/test_short_term_memory.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/tests/test_tracing.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/a2a/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/a2a/agent_card.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/a2a/remote_ve_agent.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/a2a/ve_a2a_server.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/a2a/ve_agent_executor.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/a2a/ve_task_store.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/agent.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/agent_builder.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/agents/loop_agent.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/agents/parallel_agent.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/agents/sequential_agent.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/auth/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/auth/base_auth.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/auth/veauth/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/auth/veauth/apmplus_veauth.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/auth/veauth/ark_veauth.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/auth/veauth/base_veauth.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/auth/veauth/cozeloop_veauth.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/auth/veauth/opensearch_veauth.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/auth/veauth/postgresql_veauth.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/auth/veauth/prompt_pilot_veauth.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/auth/veauth/utils.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/auth/veauth/vesearch_veauth.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/cli/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/cli/cli_deploy.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/cli/cli_eval.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/cli/cli_init.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/cli/cli_kb.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/cli/cli_pipeline.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/cli/cli_prompt.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/cloud/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/cloud/cloud_agent_engine.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/cloud/cloud_app.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/config.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/configs/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/configs/database_configs.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/configs/model_configs.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/configs/tool_configs.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/configs/tracing_configs.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/consts.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/evaluation/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/evaluation/adk_evaluator/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/evaluation/adk_evaluator/adk_evaluator.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/evaluation/base_evaluator.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/evaluation/deepeval_evaluator/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/evaluation/deepeval_evaluator/deepeval_evaluator.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/evaluation/eval_set_file_loader.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/evaluation/eval_set_recorder.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/evaluation/types.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/evaluation/utils/prometheus.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_apig/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_apig/ve_apig.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_apig/ve_apig_utils.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_code_pipeline/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_code_pipeline/ve_code_pipeline.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_cozeloop/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_cozeloop/ve_cozeloop.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_cr/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_cr/ve_cr.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/template/cookiecutter.json +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/clean.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/config.yaml.example +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/deploy.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/agent.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/app.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/requirements.txt +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/run.sh +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/{{ cookiecutter.app_name }}/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/{{ cookiecutter.app_name }}/agent.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/ve_faas.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/ve_faas_utils.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/web_template/cookiecutter.json +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/clean.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/config.yaml.example +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/deploy.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/Dockerfile +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/app.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/init_db.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/models.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/requirements.txt +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/run.sh +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/static/css/style.css +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/static/js/admin.js +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/dashboard.html +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/edit_post.html +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/login.html +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/posts.html +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/base.html +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/index.html +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/post.html +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_prompt_pilot/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_prompt_pilot/ve_prompt_pilot.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_tls/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_tls/utils.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_tls/ve_tls.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_viking_db_memory/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/integrations/ve_viking_db_memory/ve_viking_db_memory.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/knowledgebase/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/knowledgebase/backends/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/knowledgebase/backends/base_backend.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/knowledgebase/backends/in_memory_backend.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/knowledgebase/backends/opensearch_backend.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/knowledgebase/backends/redis_backend.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/knowledgebase/entry.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/knowledgebase/knowledgebase.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/memory/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/memory/long_term_memory_backends/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/memory/long_term_memory_backends/base_backend.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/memory/long_term_memory_backends/in_memory_backend.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/memory/long_term_memory_backends/mem0_backend.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/memory/long_term_memory_backends/opensearch_backend.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/memory/long_term_memory_backends/redis_backend.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/memory/short_term_memory.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/memory/short_term_memory_backends/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/memory/short_term_memory_backends/base_backend.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/memory/short_term_memory_backends/mysql_backend.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/memory/short_term_memory_backends/postgresql_backend.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/memory/short_term_memory_backends/sqlite_backend.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/memory/short_term_memory_processor.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/prompts/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/prompts/agent_default_prompt.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/prompts/prompt_evaluator.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/prompts/prompt_memory_processor.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/prompts/prompt_optimization.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/runner.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tools/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tools/builtin_tools/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tools/builtin_tools/lark.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tools/builtin_tools/las.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tools/builtin_tools/load_knowledgebase.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tools/builtin_tools/mcp_router.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tools/builtin_tools/vesearch.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tools/builtin_tools/web_scraper.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tools/builtin_tools/web_search.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tools/demo_tools.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tools/load_knowledgebase_tool.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tools/sandbox/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tools/sandbox/browser_sandbox.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tools/sandbox/code_sandbox.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tools/sandbox/computer_sandbox.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tracing/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tracing/base_tracer.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tracing/telemetry/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tracing/telemetry/attributes/attributes.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tracing/telemetry/attributes/extractors/common_attributes_extractors.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tracing/telemetry/attributes/extractors/llm_attributes_extractors.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tracing/telemetry/attributes/extractors/tool_attributes_extractors.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tracing/telemetry/attributes/extractors/types.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tracing/telemetry/exporters/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tracing/telemetry/exporters/apmplus_exporter.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tracing/telemetry/exporters/base_exporter.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tracing/telemetry/exporters/cozeloop_exporter.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tracing/telemetry/exporters/inmemory_exporter.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tracing/telemetry/exporters/tls_exporter.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tracing/telemetry/opentelemetry_tracer.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/tracing/telemetry/telemetry.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/types.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/utils/__init__.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/utils/logger.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/utils/mcp_utils.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/utils/misc.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/utils/patches.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk/utils/volcengine_sign.py +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk_python.egg-info/dependency_links.txt +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk_python.egg-info/entry_points.txt +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/veadk_python.egg-info/requires.txt +0 -0
- {veadk_python-0.2.11 → veadk_python-0.2.13}/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.13
|
|
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
|
|
@@ -22,6 +22,7 @@ from veadk.cli.cli_kb import kb
|
|
|
22
22
|
from veadk.cli.cli_pipeline import pipeline
|
|
23
23
|
from veadk.cli.cli_prompt import prompt
|
|
24
24
|
from veadk.cli.cli_web import web
|
|
25
|
+
from veadk.cli.cli_uploadevalset import uploadevalset
|
|
25
26
|
from veadk.version import VERSION
|
|
26
27
|
|
|
27
28
|
|
|
@@ -41,6 +42,7 @@ veadk.add_command(web)
|
|
|
41
42
|
veadk.add_command(pipeline)
|
|
42
43
|
veadk.add_command(eval)
|
|
43
44
|
veadk.add_command(kb)
|
|
45
|
+
veadk.add_command(uploadevalset)
|
|
44
46
|
|
|
45
47
|
if __name__ == "__main__":
|
|
46
48
|
veadk()
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# Copyright (c) 2025 Beijing Volcano Engine Technology Co., Ltd. and/or its affiliates.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
import click
|
|
16
|
+
import json
|
|
17
|
+
import requests
|
|
18
|
+
from veadk.utils.logger import get_logger
|
|
19
|
+
from veadk.config import getenv
|
|
20
|
+
from pathlib import Path
|
|
21
|
+
|
|
22
|
+
logger = get_logger(__name__)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@click.command()
|
|
26
|
+
@click.option("--file", required=True, help="JSON file path containing dataset items")
|
|
27
|
+
@click.option("--cozeloop-workspace-id", default=None, help="CozeLoop workspace ID")
|
|
28
|
+
@click.option("--cozeloop-evalset-id", default=None, help="CozeLoop evaluation set ID")
|
|
29
|
+
@click.option(
|
|
30
|
+
"--cozeloop-api-key",
|
|
31
|
+
default=None,
|
|
32
|
+
help="CozeLoop API key (or set COZELOOP_API_KEY env var)",
|
|
33
|
+
)
|
|
34
|
+
def uploadevalset(
|
|
35
|
+
file: str,
|
|
36
|
+
cozeloop_workspace_id: str,
|
|
37
|
+
cozeloop_evalset_id: str,
|
|
38
|
+
cozeloop_api_key: str,
|
|
39
|
+
) -> None:
|
|
40
|
+
"""Upload dataset items to CozeLoop evaluation set."""
|
|
41
|
+
|
|
42
|
+
if not cozeloop_workspace_id:
|
|
43
|
+
cozeloop_workspace_id = getenv(
|
|
44
|
+
"OBSERVABILITY_OPENTELEMETRY_COZELOOP_SERVICE_NAME"
|
|
45
|
+
)
|
|
46
|
+
if not cozeloop_evalset_id:
|
|
47
|
+
cozeloop_evalset_id = getenv("OBSERVABILITY_OPENTELEMETRY_COZELOOP_EVALSET_ID")
|
|
48
|
+
if not cozeloop_api_key:
|
|
49
|
+
cozeloop_api_key = getenv("OBSERVABILITY_OPENTELEMETRY_COZELOOP_API_KEY")
|
|
50
|
+
|
|
51
|
+
# Read JSON file
|
|
52
|
+
file_path = Path(file)
|
|
53
|
+
if not file_path.exists():
|
|
54
|
+
logger.error(f"File not found: {file}")
|
|
55
|
+
return
|
|
56
|
+
|
|
57
|
+
logger.info(f"Reading dataset from {file}")
|
|
58
|
+
with open(file_path, "r", encoding="utf-8") as f:
|
|
59
|
+
data = json.load(f)
|
|
60
|
+
|
|
61
|
+
# Prepare items
|
|
62
|
+
items = []
|
|
63
|
+
for case in data.get("eval_cases", []):
|
|
64
|
+
conversation = case.get("conversation", [])
|
|
65
|
+
for turn in conversation:
|
|
66
|
+
user_text = (
|
|
67
|
+
turn.get("user_content", {}).get("parts", [{}])[0].get("text", "")
|
|
68
|
+
)
|
|
69
|
+
output_text = (
|
|
70
|
+
turn.get("final_response", {}).get("parts", [{}])[0].get("text", "")
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
items.append(
|
|
74
|
+
{
|
|
75
|
+
"turns": [
|
|
76
|
+
{
|
|
77
|
+
"field_datas": [
|
|
78
|
+
{
|
|
79
|
+
"name": "input",
|
|
80
|
+
"content": {
|
|
81
|
+
"content_type": "Text",
|
|
82
|
+
"text": user_text,
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"name": "output",
|
|
87
|
+
"content": {
|
|
88
|
+
"content_type": "Text",
|
|
89
|
+
"text": output_text,
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
]
|
|
93
|
+
}
|
|
94
|
+
]
|
|
95
|
+
}
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
# Upload to CozeLoop
|
|
99
|
+
url = f"https://api.coze.cn/v1/loop/evaluation/evaluation_sets/{cozeloop_evalset_id}/items"
|
|
100
|
+
logger.info(
|
|
101
|
+
f"Uploading {len(items)} items to workspace_id={cozeloop_workspace_id} evalset_id={cozeloop_evalset_id}"
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
response = requests.post(
|
|
105
|
+
url=url,
|
|
106
|
+
headers={
|
|
107
|
+
"Authorization": f"Bearer {cozeloop_api_key}",
|
|
108
|
+
"Content-Type": "application/json",
|
|
109
|
+
"X-TT-ENV": "ppe_eval_openapi",
|
|
110
|
+
"x-use-ppe": "1",
|
|
111
|
+
},
|
|
112
|
+
json={
|
|
113
|
+
"workspace_id": cozeloop_workspace_id,
|
|
114
|
+
"is_allow_partial_add": True,
|
|
115
|
+
"is_skip_invalid_items": True,
|
|
116
|
+
"items": items,
|
|
117
|
+
},
|
|
118
|
+
)
|
|
119
|
+
|
|
120
|
+
if response.status_code == 200:
|
|
121
|
+
logger.info(
|
|
122
|
+
f"Successfully uploaded dataset to CozeLoop evalset {cozeloop_evalset_id}"
|
|
123
|
+
)
|
|
124
|
+
else:
|
|
125
|
+
logger.error(f"Failed to upload dataset: {response.text}")
|
|
@@ -56,10 +56,14 @@ def _get_ltm_from_env() -> LongTermMemory | None:
|
|
|
56
56
|
logger = get_logger(__name__)
|
|
57
57
|
|
|
58
58
|
long_term_memory_backend = os.getenv("LONG_TERM_MEMORY_BACKEND")
|
|
59
|
+
app_name = os.getenv("VEADK_WEB_APP_NAME", "")
|
|
60
|
+
user_id = os.getenv("VEADK_WEB_USER_ID", "")
|
|
59
61
|
|
|
60
62
|
if long_term_memory_backend:
|
|
61
63
|
logger.info(f"Long term memory: backend={long_term_memory_backend}")
|
|
62
|
-
return LongTermMemory(
|
|
64
|
+
return LongTermMemory(
|
|
65
|
+
backend=long_term_memory_backend, app_name=app_name, user_id=user_id
|
|
66
|
+
) # type: ignore
|
|
63
67
|
else:
|
|
64
68
|
logger.warning("No long term memory backend settings detected.")
|
|
65
69
|
return None
|
|
@@ -131,7 +135,13 @@ def patch_adkwebserver_disable_openapi():
|
|
|
131
135
|
|
|
132
136
|
@click.command()
|
|
133
137
|
@click.option("--host", default="127.0.0.1", help="Host to run the web server on")
|
|
134
|
-
|
|
138
|
+
@click.option(
|
|
139
|
+
"--app_name", default="", help="The `app_name` for initializing long term memory"
|
|
140
|
+
)
|
|
141
|
+
@click.option(
|
|
142
|
+
"--user_id", default="", help="The `user_id` for initializing long term memory"
|
|
143
|
+
)
|
|
144
|
+
def web(host: str, app_name: str, user_id: str) -> None:
|
|
135
145
|
"""Launch web with long term and short term memory."""
|
|
136
146
|
import os
|
|
137
147
|
from typing import Any
|
|
@@ -175,6 +185,9 @@ def web(host: str) -> None:
|
|
|
175
185
|
self.session_service = short_term_memory.session_service
|
|
176
186
|
self.memory_service = long_term_memory
|
|
177
187
|
|
|
188
|
+
os.environ["VEADK_WEB_APP_NAME"] = app_name
|
|
189
|
+
os.environ["VEADK_WEB_USER_ID"] = user_id
|
|
190
|
+
|
|
178
191
|
import google.adk.cli.adk_web_server
|
|
179
192
|
|
|
180
193
|
google.adk.cli.adk_web_server.AdkWebServer.__init__ = init_for_veadk
|
|
@@ -36,11 +36,14 @@ class VeTOS:
|
|
|
36
36
|
self,
|
|
37
37
|
ak: str = "",
|
|
38
38
|
sk: str = "",
|
|
39
|
+
session_token: str = "",
|
|
39
40
|
region: str = "cn-beijing",
|
|
40
41
|
bucket_name: str = DEFAULT_TOS_BUCKET_NAME,
|
|
41
42
|
) -> None:
|
|
42
43
|
self.ak = ak if ak else os.getenv("VOLCENGINE_ACCESS_KEY", "")
|
|
43
44
|
self.sk = sk if sk else os.getenv("VOLCENGINE_SECRET_KEY", "")
|
|
45
|
+
self.session_token = session_token
|
|
46
|
+
|
|
44
47
|
# Add empty value validation
|
|
45
48
|
if not self.ak or not self.sk:
|
|
46
49
|
raise ValueError(
|
|
@@ -71,6 +74,7 @@ class VeTOS:
|
|
|
71
74
|
self._client = self._tos_module.TosClientV2(
|
|
72
75
|
ak=self.ak,
|
|
73
76
|
sk=self.sk,
|
|
77
|
+
security_token=self.session_token,
|
|
74
78
|
endpoint=f"tos-{self.region}.volces.com",
|
|
75
79
|
region=self.region,
|
|
76
80
|
)
|
|
@@ -85,6 +89,7 @@ class VeTOS:
|
|
|
85
89
|
self._client = self._tos_module.TosClientV2(
|
|
86
90
|
self.ak,
|
|
87
91
|
self.sk,
|
|
92
|
+
security_token=self.session_token,
|
|
88
93
|
endpoint=f"tos-{self.region}.volces.com",
|
|
89
94
|
region=self.region,
|
|
90
95
|
)
|
|
@@ -46,6 +46,7 @@ def build_vikingdb_knowledgebase_request(
|
|
|
46
46
|
path: str,
|
|
47
47
|
volcengine_access_key: str,
|
|
48
48
|
volcengine_secret_key: str,
|
|
49
|
+
session_token: str = "",
|
|
49
50
|
method: Literal["GET", "POST", "PUT", "DELETE"] = "POST",
|
|
50
51
|
region: str = "cn-beijing",
|
|
51
52
|
params=None,
|
|
@@ -85,7 +86,7 @@ def build_vikingdb_knowledgebase_request(
|
|
|
85
86
|
r.set_body(json.dumps(data))
|
|
86
87
|
|
|
87
88
|
credentials = Credentials(
|
|
88
|
-
volcengine_access_key, volcengine_secret_key, "air", region
|
|
89
|
+
volcengine_access_key, volcengine_secret_key, "air", region, session_token
|
|
89
90
|
)
|
|
90
91
|
SignerV4.sign(r, credentials)
|
|
91
92
|
return r
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
import asyncio
|
|
16
16
|
import json
|
|
17
|
+
import os
|
|
17
18
|
import re
|
|
18
19
|
from pathlib import Path
|
|
19
20
|
from typing import Any, Literal
|
|
@@ -23,7 +24,7 @@ from pydantic import Field
|
|
|
23
24
|
from typing_extensions import override
|
|
24
25
|
|
|
25
26
|
import veadk.config # noqa E401
|
|
26
|
-
from veadk.
|
|
27
|
+
from veadk.auth.veauth.utils import get_credential_from_vefaas_iam
|
|
27
28
|
from veadk.configs.database_configs import NormalTOSConfig, TOSConfig
|
|
28
29
|
from veadk.knowledgebase.backends.base_backend import BaseKnowledgebaseBackend
|
|
29
30
|
from veadk.knowledgebase.backends.utils import build_vikingdb_knowledgebase_request
|
|
@@ -58,14 +59,16 @@ def get_files_in_directory(directory: str):
|
|
|
58
59
|
|
|
59
60
|
|
|
60
61
|
class VikingDBKnowledgeBackend(BaseKnowledgebaseBackend):
|
|
61
|
-
volcengine_access_key: str = Field(
|
|
62
|
-
default_factory=lambda: getenv("VOLCENGINE_ACCESS_KEY")
|
|
62
|
+
volcengine_access_key: str | None = Field(
|
|
63
|
+
default_factory=lambda: os.getenv("VOLCENGINE_ACCESS_KEY")
|
|
63
64
|
)
|
|
64
65
|
|
|
65
|
-
volcengine_secret_key: str = Field(
|
|
66
|
-
default_factory=lambda: getenv("VOLCENGINE_SECRET_KEY")
|
|
66
|
+
volcengine_secret_key: str | None = Field(
|
|
67
|
+
default_factory=lambda: os.getenv("VOLCENGINE_SECRET_KEY")
|
|
67
68
|
)
|
|
68
69
|
|
|
70
|
+
session_token: str = ""
|
|
71
|
+
|
|
69
72
|
volcengine_project: str = "default"
|
|
70
73
|
"""VikingDB knowledgebase project in Volcengine console platform. Default by `default`"""
|
|
71
74
|
|
|
@@ -75,6 +78,15 @@ class VikingDBKnowledgeBackend(BaseKnowledgebaseBackend):
|
|
|
75
78
|
tos_config: TOSConfig | NormalTOSConfig = Field(default_factory=TOSConfig)
|
|
76
79
|
"""TOS config, used to upload files to TOS"""
|
|
77
80
|
|
|
81
|
+
def model_post_init(self, __context: Any) -> None:
|
|
82
|
+
self.precheck_index_naming()
|
|
83
|
+
|
|
84
|
+
# check whether collection exist, if not, create it
|
|
85
|
+
if not self.collection_status()["existed"]:
|
|
86
|
+
logger.warning(
|
|
87
|
+
f"VikingDB knowledgebase collection {self.index} does not exist, please create it first..."
|
|
88
|
+
)
|
|
89
|
+
|
|
78
90
|
def precheck_index_naming(self):
|
|
79
91
|
if not (
|
|
80
92
|
isinstance(self.index, str)
|
|
@@ -86,18 +98,21 @@ class VikingDBKnowledgeBackend(BaseKnowledgebaseBackend):
|
|
|
86
98
|
"it must start with an English letter, contain only letters, numbers, and underscores, and have a length of 1-128."
|
|
87
99
|
)
|
|
88
100
|
|
|
89
|
-
def
|
|
90
|
-
self.
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
+
def _get_tos_client(self) -> VeTOS:
|
|
102
|
+
volcengine_access_key = self.volcengine_access_key
|
|
103
|
+
volcengine_secret_key = self.volcengine_secret_key
|
|
104
|
+
session_token = self.session_token
|
|
105
|
+
|
|
106
|
+
if not (volcengine_access_key and volcengine_secret_key):
|
|
107
|
+
cred = get_credential_from_vefaas_iam()
|
|
108
|
+
volcengine_access_key = cred.access_key_id
|
|
109
|
+
volcengine_secret_key = cred.secret_access_key
|
|
110
|
+
session_token = cred.session_token
|
|
111
|
+
|
|
112
|
+
return VeTOS(
|
|
113
|
+
ak=volcengine_access_key,
|
|
114
|
+
sk=volcengine_secret_key,
|
|
115
|
+
session_token=session_token,
|
|
101
116
|
region=self.tos_config.region,
|
|
102
117
|
bucket_name=self.tos_config.bucket,
|
|
103
118
|
)
|
|
@@ -404,6 +419,8 @@ class VikingDBKnowledgeBackend(BaseKnowledgebaseBackend):
|
|
|
404
419
|
metadata: dict | None = None,
|
|
405
420
|
) -> str:
|
|
406
421
|
# Here, we set the metadata via the TOS object, ref: https://www.volcengine.com/docs/84313/1254624
|
|
422
|
+
self._tos_client = self._get_tos_client()
|
|
423
|
+
|
|
407
424
|
self._tos_client.bucket_name = tos_bucket_name
|
|
408
425
|
coro = self._tos_client.upload(
|
|
409
426
|
object_key=object_key,
|
|
@@ -504,10 +521,21 @@ class VikingDBKnowledgeBackend(BaseKnowledgebaseBackend):
|
|
|
504
521
|
) -> dict:
|
|
505
522
|
VIKINGDB_KNOWLEDGEBASE_BASE_URL = "api-knowledgebase.mlp.cn-beijing.volces.com"
|
|
506
523
|
|
|
524
|
+
volcengine_access_key = self.volcengine_access_key
|
|
525
|
+
volcengine_secret_key = self.volcengine_secret_key
|
|
526
|
+
session_token = self.session_token
|
|
527
|
+
|
|
528
|
+
if not (volcengine_access_key and volcengine_secret_key):
|
|
529
|
+
cred = get_credential_from_vefaas_iam()
|
|
530
|
+
volcengine_access_key = cred.access_key_id
|
|
531
|
+
volcengine_secret_key = cred.secret_access_key
|
|
532
|
+
session_token = cred.session_token
|
|
533
|
+
|
|
507
534
|
request = build_vikingdb_knowledgebase_request(
|
|
508
535
|
path=path,
|
|
509
|
-
volcengine_access_key=
|
|
510
|
-
volcengine_secret_key=
|
|
536
|
+
volcengine_access_key=volcengine_access_key,
|
|
537
|
+
volcengine_secret_key=volcengine_secret_key,
|
|
538
|
+
session_token=session_token,
|
|
511
539
|
method=method,
|
|
512
540
|
data=body,
|
|
513
541
|
)
|
|
@@ -104,6 +104,15 @@ class LongTermMemory(BaseMemoryService, BaseModel):
|
|
|
104
104
|
|
|
105
105
|
# Once user define backend config, use it directly
|
|
106
106
|
if self.backend_config:
|
|
107
|
+
if "index" not in self.backend_config:
|
|
108
|
+
logger.warning(
|
|
109
|
+
"Attribute `index` not provided in backend_config, use `index` or `app_name` instead."
|
|
110
|
+
)
|
|
111
|
+
self.backend_config["index"] = self.index or self.app_name
|
|
112
|
+
|
|
113
|
+
logger.debug(
|
|
114
|
+
f"Init {self.backend}, Use provided backend config: {self.backend_config}"
|
|
115
|
+
)
|
|
107
116
|
self._backend = _get_backend_cls(self.backend)(**self.backend_config)
|
|
108
117
|
return
|
|
109
118
|
|
|
@@ -49,7 +49,23 @@ class VikingDBLTMBackend(BaseLongTermMemoryBackend):
|
|
|
49
49
|
region: str = "cn-beijing"
|
|
50
50
|
"""VikingDB memory region"""
|
|
51
51
|
|
|
52
|
+
memory_type: list[str] = Field(default_factory=list)
|
|
53
|
+
|
|
52
54
|
def model_post_init(self, __context: Any) -> None:
|
|
55
|
+
# We get memory type from:
|
|
56
|
+
# 1. user input
|
|
57
|
+
# 2. environment variable
|
|
58
|
+
# 3. default value
|
|
59
|
+
if not self.memory_type:
|
|
60
|
+
env_memory_type = os.getenv("DATABASE_VIKINGMEM_MEMORY_TYPE")
|
|
61
|
+
if env_memory_type:
|
|
62
|
+
# "event_1, event_2" -> ["event_1", "event_2"]
|
|
63
|
+
self.memory_type = [x.strip() for x in env_memory_type.split(",")]
|
|
64
|
+
else:
|
|
65
|
+
self.memory_type = ["sys_event_v1", "event_v1"]
|
|
66
|
+
|
|
67
|
+
logger.info(f"Using memory type: {self.memory_type}")
|
|
68
|
+
|
|
53
69
|
# check whether collection exist, if not, create it
|
|
54
70
|
if not self._collection_exist():
|
|
55
71
|
self._create_collection()
|
|
@@ -68,17 +84,23 @@ class VikingDBLTMBackend(BaseLongTermMemoryBackend):
|
|
|
68
84
|
try:
|
|
69
85
|
client = self._get_client()
|
|
70
86
|
client.get_collection(collection_name=self.index)
|
|
87
|
+
logger.info(f"Collection {self.index} exist.")
|
|
71
88
|
return True
|
|
72
89
|
except Exception:
|
|
90
|
+
logger.info(f"Collection {self.index} not exist.")
|
|
73
91
|
return False
|
|
74
92
|
|
|
75
93
|
def _create_collection(self) -> None:
|
|
94
|
+
logger.info(
|
|
95
|
+
f"Create collection with collection_name={self.index}, builtin_event_types={self.memory_type}"
|
|
96
|
+
)
|
|
76
97
|
client = self._get_client()
|
|
77
98
|
response = client.create_collection(
|
|
78
99
|
collection_name=self.index,
|
|
79
100
|
description="Created by Volcengine Agent Development Kit VeADK",
|
|
80
|
-
builtin_event_types=
|
|
101
|
+
builtin_event_types=self.memory_type,
|
|
81
102
|
)
|
|
103
|
+
logger.debug(f"Create collection with response {response}")
|
|
82
104
|
return response
|
|
83
105
|
|
|
84
106
|
def _get_client(self) -> VikingDBMemoryClient:
|
|
@@ -135,10 +157,7 @@ class VikingDBLTMBackend(BaseLongTermMemoryBackend):
|
|
|
135
157
|
def search_memory(
|
|
136
158
|
self, user_id: str, query: str, top_k: int, **kwargs
|
|
137
159
|
) -> list[str]:
|
|
138
|
-
filter = {
|
|
139
|
-
"user_id": user_id,
|
|
140
|
-
"memory_type": ["sys_event_v1"],
|
|
141
|
-
}
|
|
160
|
+
filter = {"user_id": user_id, "memory_type": self.memory_type}
|
|
142
161
|
|
|
143
162
|
logger.debug(
|
|
144
163
|
f"Request for search memory in VikingDB: filter={filter}, collection_name={self.index}, query={query}, limit={top_k}"
|