versionhq 1.2.3.0__tar.gz → 1.2.3.1__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.
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/.gitignore +2 -1
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/PKG-INFO +4 -7
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/pyproject.toml +5 -10
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/__init__.py +1 -1
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/clients/workflow/model.py +4 -71
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/task/TEMPLATES/Description.py +1 -1
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/task/evaluation.py +29 -61
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/task/model.py +11 -6
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq.egg-info/PKG-INFO +4 -7
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq.egg-info/requires.txt +3 -9
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/clients/workflow_test.py +2 -17
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/task/doc_eval_test.py +0 -2
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/uv.lock +17 -23
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/.env.sample +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/.github/workflows/deploy_docs.yml +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/.github/workflows/publish.yml +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/.github/workflows/publish_testpypi.yml +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/.github/workflows/run_tests.yml +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/.github/workflows/security_check.yml +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/.pre-commit-config.yaml +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/.python-version +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/LICENSE +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/README.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/SECURITY.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/db/preprocess.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/CNAME +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/_logos/favicon.ico +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/_logos/logo192.png +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/core/agent/config.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/core/agent/index.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/core/agent/task-handling.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/core/agent-network/config.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/core/agent-network/form.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/core/agent-network/index.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/core/agent-network/ref.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/core/knowledge.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/core/llm/index.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/core/memory.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/core/rag-tool.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/core/task/evaluation.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/core/task/index.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/core/task/reference.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/core/task/response-field.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/core/task/task-execution.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/core/task/task-output.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/core/task/task-strc-response.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/core/task-graph/index.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/core/tool.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/index.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/quickstart.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/stylesheets/main.css +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/docs/tags.md +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/mkdocs.yml +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/requirements-dev.txt +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/requirements.txt +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/runtime.txt +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/setup.cfg +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/_utils/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/_utils/i18n.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/_utils/llm_as_a_judge.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/_utils/logger.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/_utils/process_config.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/_utils/usage_metrics.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/_utils/vars.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/agent/TEMPLATES/Backstory.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/agent/TEMPLATES/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/agent/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/agent/inhouse_agents.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/agent/model.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/agent/parser.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/agent/rpm_controller.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/agent_network/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/agent_network/formation.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/agent_network/model.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/cli/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/clients/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/clients/customer/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/clients/customer/model.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/clients/product/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/clients/product/model.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/clients/workflow/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/knowledge/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/knowledge/_utils.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/knowledge/embedding.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/knowledge/model.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/knowledge/source.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/knowledge/source_docling.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/knowledge/storage.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/llm/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/llm/llm_vars.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/llm/model.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/memory/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/memory/contextual_memory.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/memory/model.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/storage/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/storage/base.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/storage/ltm_sqlite_storage.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/storage/mem0_storage.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/storage/rag_storage.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/storage/task_output_storage.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/storage/utils.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/task/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/task/formatter.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/task/structured_response.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/task_graph/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/task_graph/colors.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/task_graph/draft.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/task_graph/model.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/tool/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/tool/cache_handler.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/tool/composio_tool.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/tool/composio_tool_vars.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/tool/decorator.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/tool/model.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/tool/rag_tool.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq/tool/tool_handler.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq.egg-info/SOURCES.txt +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq.egg-info/dependency_links.txt +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/src/versionhq.egg-info/top_level.txt +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/_sample/sample.csv +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/_sample/sample.json +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/agent/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/agent/agent_test.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/agent/doc_test.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/agent_network/Prompts/Demo_test.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/agent_network/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/agent_network/agent_network_test.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/agent_network/doc_test.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/cli/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/clients/customer_test.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/clients/product_test.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/conftest.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/doc_test.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/formation_test.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/knowledge/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/knowledge/knowledge_test.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/knowledge/mock_report_compressed.pdf +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/llm/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/llm/llm_connection_test.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/llm/llm_test.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/memory/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/memory/memory_test.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/task/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/task/doc_taskoutput_test.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/task/doc_test.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/task/eval_test.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/task/task_test.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/task_graph/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/task_graph/doc_test.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/task_graph/task_graph_test.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/tool/__init__.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/tool/composio_test.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/tool/doc_test.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/tool/rag_tool_test.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/tool/tool_test.py +0 -0
- {versionhq-1.2.3.0 → versionhq-1.2.3.1}/tests/usecase_test.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: versionhq
|
3
|
-
Version: 1.2.3.
|
3
|
+
Version: 1.2.3.1
|
4
4
|
Summary: An agentic orchestration framework for building agent networks that handle task automation.
|
5
5
|
Author-email: Kuriko Iwai <kuriko@versi0n.io>
|
6
6
|
License: MIT License
|
@@ -68,6 +68,9 @@ Requires-Dist: composio-core==0.7.0
|
|
68
68
|
Requires-Dist: networkx>=3.4.2
|
69
69
|
Requires-Dist: matplotlib>=3.10.0
|
70
70
|
Requires-Dist: boto3>=1.37.1
|
71
|
+
Requires-Dist: scikit-learn>=1.6.1
|
72
|
+
Requires-Dist: numpy>=1.26.4
|
73
|
+
Requires-Dist: pandas>=2.2.3
|
71
74
|
Provides-Extra: torch
|
72
75
|
Requires-Dist: torch>=2.6.0; extra == "torch"
|
73
76
|
Requires-Dist: torchvision>=0.21.0; extra == "torch"
|
@@ -78,17 +81,11 @@ Provides-Extra: mem0ai
|
|
78
81
|
Requires-Dist: mem0ai>=0.1.55; extra == "mem0ai"
|
79
82
|
Provides-Extra: pdfplumber
|
80
83
|
Requires-Dist: pdfplumber>=0.11.5; extra == "pdfplumber"
|
81
|
-
Provides-Extra: pandas
|
82
|
-
Requires-Dist: pandas>=2.2.3; extra == "pandas"
|
83
|
-
Provides-Extra: numpy
|
84
|
-
Requires-Dist: numpy>=1.26.4; extra == "numpy"
|
85
84
|
Provides-Extra: pygraphviz
|
86
85
|
Requires-Dist: pygraphviz>=1.14; extra == "pygraphviz"
|
87
86
|
Provides-Extra: tools
|
88
87
|
Requires-Dist: html2text>=2024.2.26; extra == "tools"
|
89
88
|
Requires-Dist: sec-api>=1.0.28; extra == "tools"
|
90
|
-
Provides-Extra: eval
|
91
|
-
Requires-Dist: scikit-learn>=1.6.1; extra == "eval"
|
92
89
|
|
93
90
|
# Overview
|
94
91
|
|
@@ -15,7 +15,7 @@ exclude = ["test*", "__pycache__", "*.egg-info"]
|
|
15
15
|
|
16
16
|
[project]
|
17
17
|
name = "versionhq"
|
18
|
-
version = "1.2.3.
|
18
|
+
version = "1.2.3.1"
|
19
19
|
authors = [{ name = "Kuriko Iwai", email = "kuriko@versi0n.io" }]
|
20
20
|
description = "An agentic orchestration framework for building agent networks that handle task automation."
|
21
21
|
readme = "README.md"
|
@@ -47,6 +47,9 @@ dependencies = [
|
|
47
47
|
"networkx>=3.4.2",
|
48
48
|
"matplotlib>=3.10.0",
|
49
49
|
"boto3>=1.37.1",
|
50
|
+
"scikit-learn>=1.6.1",
|
51
|
+
"numpy>=1.26.4",
|
52
|
+
"pandas>=2.2.3",
|
50
53
|
]
|
51
54
|
classifiers = [
|
52
55
|
"Programming Language :: Python",
|
@@ -83,12 +86,6 @@ mem0ai = [
|
|
83
86
|
pdfplumber = [
|
84
87
|
"pdfplumber>=0.11.5",
|
85
88
|
]
|
86
|
-
pandas = [
|
87
|
-
"pandas>=2.2.3",
|
88
|
-
]
|
89
|
-
numpy = [
|
90
|
-
"numpy>=1.26.4",
|
91
|
-
]
|
92
89
|
pygraphviz = [
|
93
90
|
"pygraphviz>=1.14",
|
94
91
|
]
|
@@ -96,9 +93,7 @@ tools = [
|
|
96
93
|
"html2text>=2024.2.26",
|
97
94
|
"sec-api>=1.0.28",
|
98
95
|
]
|
99
|
-
|
100
|
-
"scikit-learn>=1.6.1",
|
101
|
-
]
|
96
|
+
|
102
97
|
|
103
98
|
[tool.uv]
|
104
99
|
dev-dependencies = [
|
@@ -2,92 +2,25 @@ import uuid
|
|
2
2
|
from abc import ABC
|
3
3
|
from datetime import datetime
|
4
4
|
from typing import Any, Dict, List, Optional
|
5
|
-
|
5
|
+
|
6
6
|
from pydantic import UUID4, InstanceOf, BaseModel, ConfigDict, Field, field_validator, model_validator
|
7
7
|
from pydantic_core import PydanticCustomError
|
8
8
|
|
9
|
-
from versionhq.clients.product.model import Product
|
10
|
-
from versionhq.clients.customer.model import Customer
|
11
9
|
from versionhq.agent.model import Agent
|
12
10
|
from versionhq.agent_network.model import AgentNetwork
|
11
|
+
from versionhq.clients.product.model import Product
|
12
|
+
from versionhq.clients.customer.model import Customer
|
13
13
|
from versionhq.tool.composio_tool_vars import ComposioAppName
|
14
14
|
|
15
15
|
|
16
|
-
class ScoreFormat:
|
17
|
-
def __init__(self, rate: float | int = 0, weight: int = 1):
|
18
|
-
self.rate = rate
|
19
|
-
self.weight = weight
|
20
|
-
self.aggregate = rate * weight
|
21
|
-
|
22
|
-
|
23
|
-
class Score:
|
24
|
-
"""
|
25
|
-
Evaluate the score on 0 (no performance) to 1 scale.
|
26
|
-
`rate`: Any float from 0.0 to 1.0 given by an agent.
|
27
|
-
`weight`: Importance of each factor to the aggregated score.
|
28
|
-
"""
|
29
|
-
|
30
|
-
def __init__(
|
31
|
-
self,
|
32
|
-
brand_tone: ScoreFormat = ScoreFormat(0, 0),
|
33
|
-
audience: ScoreFormat = ScoreFormat(0, 0),
|
34
|
-
track_record: ScoreFormat = ScoreFormat(0, 0),
|
35
|
-
**kwargs: Optional[Dict[str, ScoreFormat]],
|
36
|
-
):
|
37
|
-
self.brand_tone = brand_tone
|
38
|
-
self.audience = audience
|
39
|
-
self.track_record = track_record
|
40
|
-
self.kwargs = kwargs
|
41
|
-
|
42
|
-
|
43
|
-
def result(self) -> int:
|
44
|
-
aggregate_score = int(self.brand_tone.aggregate) + int(self.audience.aggregate) + int(self.track_record.aggregate)
|
45
|
-
denominator = self.brand_tone.weight + self.audience.weight + self.track_record.weight
|
46
|
-
|
47
|
-
for k, v in self.kwargs.items():
|
48
|
-
aggregate_score += v.aggregate
|
49
|
-
denominator += v.weight
|
50
|
-
|
51
|
-
if denominator == 0:
|
52
|
-
return 0
|
53
|
-
|
54
|
-
return round(aggregate_score / denominator, 2)
|
55
|
-
|
56
|
-
|
57
|
-
|
58
16
|
class MessagingComponent(ABC, BaseModel):
|
59
17
|
layer_id: int = Field(default=0, description="add id of the layer: 0, 1, 2")
|
60
18
|
message: str = Field(default=None, max_length=1024, description="text message content to be sent")
|
61
|
-
score:
|
19
|
+
score: Optional[float | int] = Field(default=None)
|
62
20
|
condition: str = Field(default=None, description="condition to execute the next component")
|
63
21
|
interval: Optional[str] = Field(default=None, description="ideal interval to set to assess the condition")
|
64
22
|
|
65
23
|
|
66
|
-
def store_scoring_result(self, subject: str, score_raw: int | Score | ScoreFormat = None) -> Self:
|
67
|
-
"""
|
68
|
-
Set up the `score` field
|
69
|
-
"""
|
70
|
-
|
71
|
-
if isinstance(score_raw, Score):
|
72
|
-
setattr(self, "score", score_raw)
|
73
|
-
|
74
|
-
elif isinstance(score_raw, ScoreFormat):
|
75
|
-
score_instance = Score()
|
76
|
-
setattr(score_instance, subject, score_raw)
|
77
|
-
setattr(self, "score", score_instance)
|
78
|
-
|
79
|
-
elif isinstance(score_raw, int) or isinstance(score_raw, float):
|
80
|
-
score_instance, score_format_instance = Score(), ScoreFormat(rate=score_raw, weight=1)
|
81
|
-
setattr(score_instance, "kwargs", { subject: score_format_instance })
|
82
|
-
setattr(self, "score", score_instance)
|
83
|
-
|
84
|
-
else:
|
85
|
-
pass
|
86
|
-
|
87
|
-
return self
|
88
|
-
|
89
|
-
|
90
|
-
|
91
24
|
class MessagingWorkflow(ABC, BaseModel):
|
92
25
|
"""
|
93
26
|
Store 3 layers of messaging workflow sent to `customer` on the `product`
|
@@ -1,4 +1,4 @@
|
|
1
|
-
EVALUATE="""Evaluate the provided task output against the given task description, assigning a score between 0 (worst) and 1 (best) based on the specified criteria. Scores should be numerical (integers or decimals). Provide specific suggestions for improvement. Do not assign identical scores to different criteria unless otherwise you have clear reasons to do so:
|
1
|
+
EVALUATE="""Evaluate the provided task output against the given task description, assigning a score between 0 (worst) and 1 (best) based on the specified criteria. Scores should be numerical (integers or decimals). Weight should be numerical (integers or decimals) and represents importance of the criteria to the final result. Provide specific suggestions for improvement. Do not assign identical scores to different criteria unless otherwise you have clear reasons to do so:
|
2
2
|
Task output: {task_output}
|
3
3
|
Task description: {task_description}
|
4
4
|
Evaluation criteria: {eval_criteria}
|
@@ -2,63 +2,21 @@ from typing import List, Optional, Dict, Any
|
|
2
2
|
from typing_extensions import Self
|
3
3
|
|
4
4
|
from pydantic import BaseModel, model_validator
|
5
|
+
import pandas as pd
|
6
|
+
from sklearn.preprocessing import MinMaxScaler
|
5
7
|
|
6
8
|
from versionhq.memory.model import MemoryMetadata
|
7
9
|
|
8
|
-
"""
|
9
|
-
Evaluate task output from accuracy, token consumption, and latency perspectives, and mark the score from 0 to 1.
|
10
|
-
"""
|
11
|
-
|
12
|
-
|
13
|
-
class ScoreFormat:
|
14
|
-
def __init__(self, rate: float | int = 0, weight: int = 1):
|
15
|
-
self.rate = rate
|
16
|
-
self.weight = weight
|
17
|
-
self.aggregate = rate * weight
|
18
|
-
|
19
|
-
|
20
|
-
class Score:
|
21
|
-
"""
|
22
|
-
Evaluate the score on 0 (no performance) to 1 scale.
|
23
|
-
`rate`: Any float from 0.0 to 1.0 given by an agent.
|
24
|
-
`weight`: Importance of each factor to the aggregated score.
|
25
|
-
"""
|
26
|
-
|
27
|
-
def __init__(self, config: Optional[Dict[str, ScoreFormat]] = None):
|
28
|
-
self.config = config
|
29
|
-
|
30
|
-
if self.config:
|
31
|
-
for k, v in self.config.items():
|
32
|
-
if isinstance(v, ScoreFormat):
|
33
|
-
setattr(self, k, v)
|
34
|
-
|
35
|
-
|
36
|
-
def result(self) -> float:
|
37
|
-
aggregate_score, denominator = 0, 0
|
38
|
-
|
39
|
-
for k, v in self.__dict__.items():
|
40
|
-
aggregate_score += v.aggregate
|
41
|
-
denominator += v.weight
|
42
|
-
|
43
|
-
if denominator == 0:
|
44
|
-
return 0
|
45
|
-
|
46
|
-
return round(aggregate_score / denominator, 3)
|
47
|
-
|
48
10
|
|
49
11
|
class EvaluationItem(BaseModel):
|
50
12
|
"""
|
51
13
|
A Pydantic class to store the evaluation result with scoring and suggestion based on the given criteria.
|
14
|
+
This class will be used as a response format for the eval task.
|
52
15
|
"""
|
53
16
|
criteria: str
|
54
17
|
suggestion: str
|
55
18
|
score: float
|
56
|
-
|
57
|
-
def _format_score(self, weight: int = 1) -> ScoreFormat | None:
|
58
|
-
if self.score and isinstance(self.score, float):
|
59
|
-
return ScoreFormat(rate=self.score, weight=weight)
|
60
|
-
|
61
|
-
else: return None
|
19
|
+
weight: int = 1
|
62
20
|
|
63
21
|
|
64
22
|
class Evaluation(BaseModel):
|
@@ -111,33 +69,43 @@ class Evaluation(BaseModel):
|
|
111
69
|
return shot_prompt
|
112
70
|
|
113
71
|
|
114
|
-
|
115
|
-
def aggregate_score(self) -> float:
|
72
|
+
def _normalize_df(self) -> pd.DataFrame:
|
116
73
|
"""
|
117
|
-
|
74
|
+
Creates a pandas DataFrame from a list of EvaluationItem objects containing 'weight' and 'score' columns, and normalizes them using MinMaxScaler.
|
75
|
+
|
76
|
+
Args:
|
77
|
+
items: A list of EvaluationItem objects.
|
78
|
+
|
79
|
+
Returns:
|
80
|
+
A pandas DataFrame with normalized 'weight' and 'score' columns, or an empty DataFrame if the input is empty.
|
118
81
|
"""
|
119
82
|
if not self.items:
|
120
|
-
return
|
83
|
+
return pd.DataFrame()
|
121
84
|
|
122
|
-
|
123
|
-
|
85
|
+
data = { 'weight': [item.weight for item in self.items], 'score': [item.score for item in self.items] }
|
86
|
+
df = pd.DataFrame(data)
|
124
87
|
|
125
|
-
|
126
|
-
|
127
|
-
aggregate_score += score_format.aggregate if score_format else 0
|
128
|
-
denominator += score_format.weight if score_format else 0
|
88
|
+
scaler = MinMaxScaler(feature_range=(0, 1))
|
89
|
+
df[['weight', 'score']] = scaler.fit_transform(df[['weight', 'score']])
|
129
90
|
|
130
|
-
|
91
|
+
return df
|
92
|
+
|
93
|
+
|
94
|
+
@property
|
95
|
+
def aggregate_score(self) -> int | float:
|
96
|
+
if not self.items:
|
131
97
|
return 0
|
132
98
|
|
133
|
-
|
99
|
+
df = self._normalize_df()
|
100
|
+
df['weighted_score'] = df['weight'] * df['score']
|
101
|
+
aggregate_score = round(df['weighted_score'].sum(), 3)
|
102
|
+
return aggregate_score
|
134
103
|
|
135
104
|
|
136
105
|
@property
|
137
106
|
def suggestion_summary(self) -> str | None:
|
138
|
-
"""
|
139
|
-
|
140
|
-
"""
|
107
|
+
"""Returns a summary of the suggestions"""
|
108
|
+
|
141
109
|
if not self.items:
|
142
110
|
return None
|
143
111
|
|
@@ -228,13 +228,21 @@ class TaskOutput(BaseModel):
|
|
228
228
|
self._tokens += task_eval._tokens
|
229
229
|
|
230
230
|
if res.pydantic:
|
231
|
-
item = EvaluationItem(
|
231
|
+
item = EvaluationItem(
|
232
|
+
score=res.pydantic.score,
|
233
|
+
weight=res.pydantic.weight,
|
234
|
+
suggestion=res.pydantic.suggestion,
|
235
|
+
criteria=res.pydantic.criteria
|
236
|
+
)
|
232
237
|
self.evaluation.items.append(item)
|
233
238
|
|
234
239
|
else:
|
235
240
|
try:
|
236
241
|
item = EvaluationItem(
|
237
|
-
score=float(res.json_dict["score"]),
|
242
|
+
score=float(res.json_dict["score"]),
|
243
|
+
weight=float(res.json_dict["weight"]),
|
244
|
+
suggestion=res.json_dict["suggestion"],
|
245
|
+
criteria=res.json_dict["criteria"]
|
238
246
|
)
|
239
247
|
self.evaluation.items.append(item)
|
240
248
|
except Exception as e:
|
@@ -246,10 +254,7 @@ class TaskOutput(BaseModel):
|
|
246
254
|
|
247
255
|
@property
|
248
256
|
def aggregate_score(self) -> float | int:
|
249
|
-
if self.evaluation is None
|
250
|
-
return 0
|
251
|
-
else:
|
252
|
-
self.evaluation.aggregate_score
|
257
|
+
return self.evaluation.aggregate_score if self.evaluation is not None else 0
|
253
258
|
|
254
259
|
|
255
260
|
@property
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: versionhq
|
3
|
-
Version: 1.2.3.
|
3
|
+
Version: 1.2.3.1
|
4
4
|
Summary: An agentic orchestration framework for building agent networks that handle task automation.
|
5
5
|
Author-email: Kuriko Iwai <kuriko@versi0n.io>
|
6
6
|
License: MIT License
|
@@ -68,6 +68,9 @@ Requires-Dist: composio-core==0.7.0
|
|
68
68
|
Requires-Dist: networkx>=3.4.2
|
69
69
|
Requires-Dist: matplotlib>=3.10.0
|
70
70
|
Requires-Dist: boto3>=1.37.1
|
71
|
+
Requires-Dist: scikit-learn>=1.6.1
|
72
|
+
Requires-Dist: numpy>=1.26.4
|
73
|
+
Requires-Dist: pandas>=2.2.3
|
71
74
|
Provides-Extra: torch
|
72
75
|
Requires-Dist: torch>=2.6.0; extra == "torch"
|
73
76
|
Requires-Dist: torchvision>=0.21.0; extra == "torch"
|
@@ -78,17 +81,11 @@ Provides-Extra: mem0ai
|
|
78
81
|
Requires-Dist: mem0ai>=0.1.55; extra == "mem0ai"
|
79
82
|
Provides-Extra: pdfplumber
|
80
83
|
Requires-Dist: pdfplumber>=0.11.5; extra == "pdfplumber"
|
81
|
-
Provides-Extra: pandas
|
82
|
-
Requires-Dist: pandas>=2.2.3; extra == "pandas"
|
83
|
-
Provides-Extra: numpy
|
84
|
-
Requires-Dist: numpy>=1.26.4; extra == "numpy"
|
85
84
|
Provides-Extra: pygraphviz
|
86
85
|
Requires-Dist: pygraphviz>=1.14; extra == "pygraphviz"
|
87
86
|
Provides-Extra: tools
|
88
87
|
Requires-Dist: html2text>=2024.2.26; extra == "tools"
|
89
88
|
Requires-Dist: sec-api>=1.0.28; extra == "tools"
|
90
|
-
Provides-Extra: eval
|
91
|
-
Requires-Dist: scikit-learn>=1.6.1; extra == "eval"
|
92
89
|
|
93
90
|
# Overview
|
94
91
|
|
@@ -22,22 +22,16 @@ composio-core==0.7.0
|
|
22
22
|
networkx>=3.4.2
|
23
23
|
matplotlib>=3.10.0
|
24
24
|
boto3>=1.37.1
|
25
|
+
scikit-learn>=1.6.1
|
26
|
+
numpy>=1.26.4
|
27
|
+
pandas>=2.2.3
|
25
28
|
|
26
29
|
[docling]
|
27
30
|
docling>=2.25.2
|
28
31
|
|
29
|
-
[eval]
|
30
|
-
scikit-learn>=1.6.1
|
31
|
-
|
32
32
|
[mem0ai]
|
33
33
|
mem0ai>=0.1.55
|
34
34
|
|
35
|
-
[numpy]
|
36
|
-
numpy>=1.26.4
|
37
|
-
|
38
|
-
[pandas]
|
39
|
-
pandas>=2.2.3
|
40
|
-
|
41
35
|
[pdfplumber]
|
42
36
|
pdfplumber>=0.11.5
|
43
37
|
|
@@ -10,23 +10,8 @@ def test_store_scores():
|
|
10
10
|
Test if the final result will be calcurated using a random subject
|
11
11
|
"""
|
12
12
|
|
13
|
-
messaging_component = MessagingComponent(message="demo")
|
14
|
-
|
15
|
-
messaging_component.store_scoring_result("demo", score_raw=score_raw)
|
16
|
-
|
17
|
-
assert messaging_component.score is not None
|
18
|
-
assert messaging_component.score.result() is not None
|
19
|
-
|
20
|
-
|
21
|
-
def test_score_result():
|
22
|
-
messaging_component = MessagingComponent(message="demo")
|
23
|
-
score_raw = 15
|
24
|
-
messaging_component.store_scoring_result("demo", score_raw=score_raw)
|
25
|
-
|
26
|
-
result = messaging_component.score.result()
|
27
|
-
|
28
|
-
assert result is not None
|
29
|
-
assert result != 0
|
13
|
+
messaging_component = MessagingComponent(message="demo", score=15)
|
14
|
+
assert messaging_component.score == 15
|
30
15
|
|
31
16
|
|
32
17
|
def test_setup_messaging_workflow_with_anonymous_provider():
|
@@ -601,7 +601,7 @@ wheels = [
|
|
601
601
|
|
602
602
|
[[package]]
|
603
603
|
name = "composio-langchain"
|
604
|
-
version = "0.7.
|
604
|
+
version = "0.7.6"
|
605
605
|
source = { registry = "https://pypi.org/simple" }
|
606
606
|
dependencies = [
|
607
607
|
{ name = "composio-core" },
|
@@ -610,22 +610,22 @@ dependencies = [
|
|
610
610
|
{ name = "langchainhub" },
|
611
611
|
{ name = "pydantic" },
|
612
612
|
]
|
613
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
613
|
+
sdist = { url = "https://files.pythonhosted.org/packages/91/65/c0471754c4c21b23673c23b5d088efefddae05bf165524937c1bd8d6bdf1/composio_langchain-0.7.6.tar.gz", hash = "sha256:851720a3a3ecd826b1e01d580413fa4807eeb625aa34c326789f028fa25b4253", size = 4427 }
|
614
614
|
wheels = [
|
615
|
-
{ url = "https://files.pythonhosted.org/packages/
|
615
|
+
{ url = "https://files.pythonhosted.org/packages/93/0e/454aaac05221a616d11c83715c91b3724153c5a9298373ffdfd7cb0f2099/composio_langchain-0.7.6-py3-none-any.whl", hash = "sha256:d7cfe69760a43a688319ba6d38d9a93c945c9956eb76348c562fce9b711fb382", size = 4844 },
|
616
616
|
]
|
617
617
|
|
618
618
|
[[package]]
|
619
619
|
name = "composio-openai"
|
620
|
-
version = "0.7.
|
620
|
+
version = "0.7.6"
|
621
621
|
source = { registry = "https://pypi.org/simple" }
|
622
622
|
dependencies = [
|
623
623
|
{ name = "composio-core" },
|
624
624
|
{ name = "openai" },
|
625
625
|
]
|
626
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
626
|
+
sdist = { url = "https://files.pythonhosted.org/packages/9c/4d/ef23fc6410474735f7fd33feda64ceafa09bbce8feb829575e892593b11e/composio_openai-0.7.6.tar.gz", hash = "sha256:c23c451af2c92e7f8d798fb26c340b2352e4e4e3d0df3e769c4db688ad97e19f", size = 4638 }
|
627
627
|
wheels = [
|
628
|
-
{ url = "https://files.pythonhosted.org/packages/
|
628
|
+
{ url = "https://files.pythonhosted.org/packages/f1/f8/450f313121358252ee6273d8aa3f8f4e7a416c7dff711612e86149e52f8e/composio_openai-0.7.6-py3-none-any.whl", hash = "sha256:0a9426248f1b0bf724eab4b8512ced6709f9f6a04d66dd921f10a74fd14bed33", size = 5090 },
|
629
629
|
]
|
630
630
|
|
631
631
|
[[package]]
|
@@ -803,7 +803,7 @@ wheels = [
|
|
803
803
|
|
804
804
|
[[package]]
|
805
805
|
name = "docling-core"
|
806
|
-
version = "2.21.
|
806
|
+
version = "2.21.2"
|
807
807
|
source = { registry = "https://pypi.org/simple" }
|
808
808
|
dependencies = [
|
809
809
|
{ name = "jsonref" },
|
@@ -817,9 +817,9 @@ dependencies = [
|
|
817
817
|
{ name = "typer" },
|
818
818
|
{ name = "typing-extensions" },
|
819
819
|
]
|
820
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
820
|
+
sdist = { url = "https://files.pythonhosted.org/packages/08/5a/0c87e7320231188eb8d3c1b8ef68c7f7d29eb2d0c23206fef70b6bb0dde6/docling_core-2.21.2.tar.gz", hash = "sha256:df55415439837dc2e600dab447bfb28f0250e2fea447162bb106c36fa01204db", size = 76656 }
|
821
821
|
wheels = [
|
822
|
-
{ url = "https://files.pythonhosted.org/packages/
|
822
|
+
{ url = "https://files.pythonhosted.org/packages/07/fa/04d6a0fcea822823a22884ebf77b01401524e1d09e793550d838e0f4c089/docling_core-2.21.2-py3-none-any.whl", hash = "sha256:fa8a53b6a9e22f2708f44d64a5a17cb5210015ad1f10647895663ee1d8cbb653", size = 96827 },
|
823
823
|
]
|
824
824
|
|
825
825
|
[package.optional-dependencies]
|
@@ -4828,7 +4828,7 @@ wheels = [
|
|
4828
4828
|
|
4829
4829
|
[[package]]
|
4830
4830
|
name = "versionhq"
|
4831
|
-
version = "1.2.
|
4831
|
+
version = "1.2.3.1"
|
4832
4832
|
source = { editable = "." }
|
4833
4833
|
dependencies = [
|
4834
4834
|
{ name = "appdirs" },
|
@@ -4845,11 +4845,15 @@ dependencies = [
|
|
4845
4845
|
{ name = "litellm" },
|
4846
4846
|
{ name = "matplotlib" },
|
4847
4847
|
{ name = "networkx" },
|
4848
|
+
{ name = "numpy", version = "1.26.4", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" },
|
4849
|
+
{ name = "numpy", version = "2.2.3", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" },
|
4848
4850
|
{ name = "openai" },
|
4851
|
+
{ name = "pandas" },
|
4849
4852
|
{ name = "pydantic" },
|
4850
4853
|
{ name = "python-dotenv" },
|
4851
4854
|
{ name = "regex" },
|
4852
4855
|
{ name = "requests" },
|
4856
|
+
{ name = "scikit-learn" },
|
4853
4857
|
{ name = "setuptools" },
|
4854
4858
|
{ name = "typing" },
|
4855
4859
|
{ name = "werkzeug" },
|
@@ -4860,19 +4864,9 @@ dependencies = [
|
|
4860
4864
|
docling = [
|
4861
4865
|
{ name = "docling" },
|
4862
4866
|
]
|
4863
|
-
eval = [
|
4864
|
-
{ name = "scikit-learn" },
|
4865
|
-
]
|
4866
4867
|
mem0ai = [
|
4867
4868
|
{ name = "mem0ai" },
|
4868
4869
|
]
|
4869
|
-
numpy = [
|
4870
|
-
{ name = "numpy", version = "1.26.4", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" },
|
4871
|
-
{ name = "numpy", version = "2.2.3", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" },
|
4872
|
-
]
|
4873
|
-
pandas = [
|
4874
|
-
{ name = "pandas" },
|
4875
|
-
]
|
4876
4870
|
pdfplumber = [
|
4877
4871
|
{ name = "pdfplumber" },
|
4878
4872
|
]
|
@@ -4926,9 +4920,9 @@ requires-dist = [
|
|
4926
4920
|
{ name = "matplotlib", specifier = ">=3.10.0" },
|
4927
4921
|
{ name = "mem0ai", marker = "extra == 'mem0ai'", specifier = ">=0.1.55" },
|
4928
4922
|
{ name = "networkx", specifier = ">=3.4.2" },
|
4929
|
-
{ name = "numpy",
|
4923
|
+
{ name = "numpy", specifier = ">=1.26.4" },
|
4930
4924
|
{ name = "openai", specifier = ">=1.64.0" },
|
4931
|
-
{ name = "pandas",
|
4925
|
+
{ name = "pandas", specifier = ">=2.2.3" },
|
4932
4926
|
{ name = "pdfplumber", marker = "extra == 'pdfplumber'", specifier = ">=0.11.5" },
|
4933
4927
|
{ name = "pydantic", specifier = ">=2.10.6" },
|
4934
4928
|
{ name = "pygraphviz", marker = "extra == 'pygraphviz'", specifier = ">=1.14" },
|
@@ -4936,7 +4930,7 @@ requires-dist = [
|
|
4936
4930
|
{ name = "pytorch-triton-xpu", marker = "sys_platform == 'linux' and extra == 'torch'", specifier = ">=3.2.0", index = "https://download.pytorch.org/whl/xpu" },
|
4937
4931
|
{ name = "regex", specifier = "==2024.11.6" },
|
4938
4932
|
{ name = "requests", specifier = ">=2.32.3" },
|
4939
|
-
{ name = "scikit-learn",
|
4933
|
+
{ name = "scikit-learn", specifier = ">=1.6.1" },
|
4940
4934
|
{ name = "sec-api", marker = "extra == 'tools'", specifier = ">=1.0.28" },
|
4941
4935
|
{ name = "setuptools", specifier = ">=75.6.0" },
|
4942
4936
|
{ name = "torch", marker = "(sys_platform == 'linux' and extra == 'torch') or (sys_platform == 'win32' and extra == 'torch')", specifier = ">=2.6.0", index = "https://download.pytorch.org/whl/xpu" },
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|