dataiku-api-client 14.4.4__tar.gz → 14.5.0__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.
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/HISTORY.txt +6 -0
- {dataiku_api_client-14.4.4/dataiku_api_client.egg-info → dataiku_api_client-14.5.0}/PKG-INFO +8 -2
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0/dataiku_api_client.egg-info}/PKG-INFO +8 -2
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataiku_api_client.egg-info/SOURCES.txt +2 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/admin.py +30 -2
- dataiku_api_client-14.5.0/dataikuapi/dss/agent.py +565 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/agent_tool.py +5 -3
- dataiku_api_client-14.5.0/dataikuapi/dss/enterprise_asset_library.py +205 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/knowledgebank.py +17 -3
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/langchain/knowledge_bank.py +1 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/llm.py +177 -16
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/llm_tracing/__init__.py +10 -0
- dataiku_api_client-14.5.0/dataikuapi/dss/llm_utils/__init__.py +280 -0
- dataiku_api_client-14.5.0/dataikuapi/dss/local_model.py +232 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/ml.py +1 -1
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/mlflow.py +22 -10
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/project.py +32 -8
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/recipe.py +5 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/sqlnotebook.py +1 -3
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/utils.py +1 -1
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss_plugin_mlflow/artifact_repository.py +15 -2
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/setup.py +2 -2
- dataiku_api_client-14.4.4/dataikuapi/dss/agent.py +0 -237
- dataiku_api_client-14.4.4/dataikuapi/dss/enterprise_asset_library.py +0 -33
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/LICENSE.txt +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/MANIFEST.in +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/README +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataiku_api_client.egg-info/dependency_links.txt +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataiku_api_client.egg-info/requires.txt +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataiku_api_client.egg-info/top_level.txt +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/__init__.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/apinode_admin/__init__.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/apinode_admin/auth.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/apinode_admin/service.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/apinode_admin_client.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/apinode_client.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/auth.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/base_client.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/__init__.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/agent_review.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/analysis.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/apideployer.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/apiservice.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/app.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/businessapp.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/codestudio.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/continuousactivity.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/dashboard.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/data_collection.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/data_directories_footprint.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/data_quality.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/dataset.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/discussion.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/document_extractor.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/drift.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/evaluationcomparison.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/evaluationstore.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/feature_store.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/flow.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/future.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/insight.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/job.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/jupyternotebook.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/labeling_task.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/langchain/__init__.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/langchain/embeddings.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/langchain/llm.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/langchain/tool.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/langchain/utils.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/macro.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/managedfolder.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/meaning.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/messaging_channel.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/metrics.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/modelcomparison.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/modelevaluationstore.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/notebook.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/plugin.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/project_standards.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/projectdeployer.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/projectfolder.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/projectlibrary.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/retrieval_augmented_llm.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/savedmodel.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/scenario.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/semantic_model.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/sqlquery.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/statistics.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/streaming_endpoint.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/tools/__init__.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/tools/codegen.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/tools/langchain.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/unifiedmonitoring.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/webapp.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/wiki.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss/workspace.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss_plugin_mlflow/__init__.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss_plugin_mlflow/header_provider.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dss_plugin_mlflow/utils.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/dssclient.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/fm/__init__.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/fm/cloudaccounts.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/fm/future.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/fm/instances.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/fm/instancesettingstemplates.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/fm/loadbalancers.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/fm/tenant.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/fm/virtualnetworks.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/fmclient.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/govern/__init__.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/govern/admin.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/govern/admin_blueprint_designer.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/govern/admin_custom_pages_handler.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/govern/admin_roles_permissions_handler.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/govern/artifact.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/govern/artifact_search.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/govern/blueprint.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/govern/custom_page.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/govern/future.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/govern/time_series.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/govern/uploaded_file.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/govern/users_container.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/govern_client.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/iam/__init__.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/iam/settings.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/launchpad/__init__.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/launchpad/exceptions.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/launchpad/group.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/launchpad/node.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/launchpad/profile.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/launchpad/response.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/launchpad/task.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/launchpad/user.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/launchpad_client.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataikuapi/utils.py +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/requirements.txt +0 -0
- {dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/setup.cfg +0 -0
{dataiku_api_client-14.4.4/dataiku_api_client.egg-info → dataiku_api_client-14.5.0}/PKG-INFO
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dataiku-api-client
|
|
3
|
-
Version: 14.
|
|
3
|
+
Version: 14.5.0
|
|
4
4
|
Summary: Python API client for Dataiku APIs
|
|
5
5
|
Home-page: https://www.dataiku.com
|
|
6
|
-
Download-URL: https://github.com/dataiku/dataiku-api-client-python/tarball/14.
|
|
6
|
+
Download-URL: https://github.com/dataiku/dataiku-api-client-python/tarball/14.5.0
|
|
7
7
|
Author: Dataiku
|
|
8
8
|
Author-email: support@dataiku.com
|
|
9
9
|
License: Apache Software License
|
|
@@ -36,6 +36,12 @@ Changelog
|
|
|
36
36
|
==========
|
|
37
37
|
|
|
38
38
|
|
|
39
|
+
|
|
40
|
+
14.5.0 (2026-04-16)
|
|
41
|
+
-------------------
|
|
42
|
+
|
|
43
|
+
* Initial release for DSS 14.5.0
|
|
44
|
+
|
|
39
45
|
14.4.4 (2026-04-15)
|
|
40
46
|
-------------------
|
|
41
47
|
|
{dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0/dataiku_api_client.egg-info}/PKG-INFO
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dataiku-api-client
|
|
3
|
-
Version: 14.
|
|
3
|
+
Version: 14.5.0
|
|
4
4
|
Summary: Python API client for Dataiku APIs
|
|
5
5
|
Home-page: https://www.dataiku.com
|
|
6
|
-
Download-URL: https://github.com/dataiku/dataiku-api-client-python/tarball/14.
|
|
6
|
+
Download-URL: https://github.com/dataiku/dataiku-api-client-python/tarball/14.5.0
|
|
7
7
|
Author: Dataiku
|
|
8
8
|
Author-email: support@dataiku.com
|
|
9
9
|
License: Apache Software License
|
|
@@ -36,6 +36,12 @@ Changelog
|
|
|
36
36
|
==========
|
|
37
37
|
|
|
38
38
|
|
|
39
|
+
|
|
40
|
+
14.5.0 (2026-04-16)
|
|
41
|
+
-------------------
|
|
42
|
+
|
|
43
|
+
* Initial release for DSS 14.5.0
|
|
44
|
+
|
|
39
45
|
14.4.4 (2026-04-15)
|
|
40
46
|
-------------------
|
|
41
47
|
|
{dataiku_api_client-14.4.4 → dataiku_api_client-14.5.0}/dataiku_api_client.egg-info/SOURCES.txt
RENAMED
|
@@ -54,6 +54,7 @@ dataikuapi/dss/jupyternotebook.py
|
|
|
54
54
|
dataikuapi/dss/knowledgebank.py
|
|
55
55
|
dataikuapi/dss/labeling_task.py
|
|
56
56
|
dataikuapi/dss/llm.py
|
|
57
|
+
dataikuapi/dss/local_model.py
|
|
57
58
|
dataikuapi/dss/macro.py
|
|
58
59
|
dataikuapi/dss/managedfolder.py
|
|
59
60
|
dataikuapi/dss/meaning.py
|
|
@@ -91,6 +92,7 @@ dataikuapi/dss/langchain/llm.py
|
|
|
91
92
|
dataikuapi/dss/langchain/tool.py
|
|
92
93
|
dataikuapi/dss/langchain/utils.py
|
|
93
94
|
dataikuapi/dss/llm_tracing/__init__.py
|
|
95
|
+
dataikuapi/dss/llm_utils/__init__.py
|
|
94
96
|
dataikuapi/dss/tools/__init__.py
|
|
95
97
|
dataikuapi/dss/tools/codegen.py
|
|
96
98
|
dataikuapi/dss/tools/langchain.py
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from .future import DSSFuture
|
|
2
|
+
from .local_model import DSSLocalModel
|
|
2
3
|
import json
|
|
3
4
|
import warnings
|
|
4
5
|
import logging
|
|
@@ -267,7 +268,35 @@ class DSSConnection(object):
|
|
|
267
268
|
return self.client._perform_json(
|
|
268
269
|
"PUT", "/admin/connections/%s" % self.name,
|
|
269
270
|
body = definition)
|
|
270
|
-
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
def list_local_models(self):
|
|
274
|
+
"""
|
|
275
|
+
:returns: List local models defined in this connection.
|
|
276
|
+
:rtype: list[:class:`~dataikuapi.dss.local_model.DSSLocalModel`]
|
|
277
|
+
:raises Exception: If this connection is not of type HuggingFaceLocal.
|
|
278
|
+
"""
|
|
279
|
+
definition = self.get_definition()
|
|
280
|
+
if definition.get("type") != "HuggingFaceLocal":
|
|
281
|
+
raise Exception("Connection %s is not a HuggingFaceLocal connection" % self.name)
|
|
282
|
+
params = definition.get("params") or {}
|
|
283
|
+
models = params.get("models") or []
|
|
284
|
+
return [DSSLocalModel(self.client, self.name, model.get("id")) for model in models]
|
|
285
|
+
|
|
286
|
+
def get_local_model(self, model_id):
|
|
287
|
+
"""
|
|
288
|
+
Get a handle on this local model.
|
|
289
|
+
|
|
290
|
+
:param str model_id: Identifier of the model.
|
|
291
|
+
:rtype: :class:`~dataikuapi.dss.local_model.DSSLocalModel`
|
|
292
|
+
"""
|
|
293
|
+
if not model_id.strip():
|
|
294
|
+
raise ValueError("model_id must be a non-empty string")
|
|
295
|
+
if not self.name.strip():
|
|
296
|
+
raise ValueError("connection_name must be a non-empty string")
|
|
297
|
+
|
|
298
|
+
return DSSLocalModel(self.client, self.name, model_id)
|
|
299
|
+
|
|
271
300
|
########################################################
|
|
272
301
|
# Security
|
|
273
302
|
########################################################
|
|
@@ -3361,4 +3390,3 @@ class DSSLLMCostLimitingCounters(object):
|
|
|
3361
3390
|
:rtype: dict
|
|
3362
3391
|
"""
|
|
3363
3392
|
return next((counter for counter in self.counters if counter["id"] == id), None)
|
|
3364
|
-
|
|
@@ -0,0 +1,565 @@
|
|
|
1
|
+
from .agent_tool import DSSAgentTool, DSSAgentToolListItem
|
|
2
|
+
from .utils import DSSTaggableObjectListItem, DSSTaggableObjectSettings
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class DSSAgentInteractionLoggingSettings(object):
|
|
6
|
+
"""
|
|
7
|
+
Settings for agent interaction logging.
|
|
8
|
+
|
|
9
|
+
.. important::
|
|
10
|
+
|
|
11
|
+
Do not instantiate this class directly, use :attr:`dataikuapi.dss.agent.DSSAgentInteractionLoggingSelection.settings` instead.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
CONTENT_MODE_FULL = "FULL"
|
|
15
|
+
CONTENT_MODE_NO_LOGS = "NO_LOGS"
|
|
16
|
+
CONTENT_MODE_NO_LOGS_NO_TRACE = "NO_LOGS_NO_TRACE"
|
|
17
|
+
|
|
18
|
+
_VALID_CONTENT_MODES = (
|
|
19
|
+
CONTENT_MODE_FULL,
|
|
20
|
+
CONTENT_MODE_NO_LOGS,
|
|
21
|
+
CONTENT_MODE_NO_LOGS_NO_TRACE,
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
def __init__(self, settings):
|
|
25
|
+
self._settings = settings
|
|
26
|
+
|
|
27
|
+
def get_raw(self):
|
|
28
|
+
"""
|
|
29
|
+
Returns the raw interaction logging settings.
|
|
30
|
+
|
|
31
|
+
:rtype: dict
|
|
32
|
+
"""
|
|
33
|
+
return self._settings
|
|
34
|
+
|
|
35
|
+
def get(self, key, default=None):
|
|
36
|
+
return self._settings.get(key, default)
|
|
37
|
+
|
|
38
|
+
def __getitem__(self, key):
|
|
39
|
+
return self._settings[key]
|
|
40
|
+
|
|
41
|
+
def __setitem__(self, key, value):
|
|
42
|
+
if key == "writeAsUser":
|
|
43
|
+
raise ValueError("writeAsUser is read-only")
|
|
44
|
+
self._settings[key] = value
|
|
45
|
+
|
|
46
|
+
@property
|
|
47
|
+
def dataset_name(self):
|
|
48
|
+
"""
|
|
49
|
+
The dataset name used for interaction logging.
|
|
50
|
+
|
|
51
|
+
:rtype: str | None
|
|
52
|
+
"""
|
|
53
|
+
return self._settings.get("datasetName")
|
|
54
|
+
|
|
55
|
+
@dataset_name.setter
|
|
56
|
+
def dataset_name(self, value):
|
|
57
|
+
self._settings["datasetName"] = value
|
|
58
|
+
|
|
59
|
+
@property
|
|
60
|
+
def write_as_user(self):
|
|
61
|
+
"""
|
|
62
|
+
The DSS user used to write logs.
|
|
63
|
+
|
|
64
|
+
This value is read-only and is set automatically to the user who saves
|
|
65
|
+
the agent settings.
|
|
66
|
+
|
|
67
|
+
:rtype: str | None
|
|
68
|
+
"""
|
|
69
|
+
return self._settings.get("writeAsUser")
|
|
70
|
+
|
|
71
|
+
@property
|
|
72
|
+
def flush_every_s(self):
|
|
73
|
+
"""
|
|
74
|
+
The flush interval, in seconds.
|
|
75
|
+
|
|
76
|
+
:rtype: int | None
|
|
77
|
+
"""
|
|
78
|
+
return self._settings.get("flushEveryS")
|
|
79
|
+
|
|
80
|
+
@flush_every_s.setter
|
|
81
|
+
def flush_every_s(self, value):
|
|
82
|
+
self._settings["flushEveryS"] = value
|
|
83
|
+
|
|
84
|
+
@property
|
|
85
|
+
def flush_every_bytes(self):
|
|
86
|
+
"""
|
|
87
|
+
The maximum buffered payload size before a flush.
|
|
88
|
+
|
|
89
|
+
:rtype: int | None
|
|
90
|
+
"""
|
|
91
|
+
return self._settings.get("flushEveryBytes")
|
|
92
|
+
|
|
93
|
+
@flush_every_bytes.setter
|
|
94
|
+
def flush_every_bytes(self, value):
|
|
95
|
+
self._settings["flushEveryBytes"] = value
|
|
96
|
+
|
|
97
|
+
@property
|
|
98
|
+
def content_mode(self):
|
|
99
|
+
"""
|
|
100
|
+
The content logging mode.
|
|
101
|
+
|
|
102
|
+
:rtype: str | None
|
|
103
|
+
"""
|
|
104
|
+
return self._settings.get("contentMode")
|
|
105
|
+
|
|
106
|
+
@content_mode.setter
|
|
107
|
+
def content_mode(self, value):
|
|
108
|
+
if value not in self._VALID_CONTENT_MODES:
|
|
109
|
+
raise ValueError("Invalid content mode: %s" % value)
|
|
110
|
+
self._settings["contentMode"] = value
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
class DSSAgentInteractionLoggingSelection(object):
|
|
114
|
+
"""
|
|
115
|
+
Selection for agent interaction logging.
|
|
116
|
+
|
|
117
|
+
.. important::
|
|
118
|
+
|
|
119
|
+
Do not instantiate this class directly, use :attr:`dataikuapi.dss.agent.DSSAgentVersionSettings.interaction_logging_selection` instead.
|
|
120
|
+
"""
|
|
121
|
+
|
|
122
|
+
MODE_INHERIT = "INHERIT"
|
|
123
|
+
MODE_EXPLICIT = "EXPLICIT"
|
|
124
|
+
MODE_NONE = "NONE"
|
|
125
|
+
|
|
126
|
+
_VALID_MODES = (
|
|
127
|
+
MODE_INHERIT,
|
|
128
|
+
MODE_EXPLICIT,
|
|
129
|
+
MODE_NONE,
|
|
130
|
+
)
|
|
131
|
+
|
|
132
|
+
def __init__(self, selection):
|
|
133
|
+
self._selection = selection
|
|
134
|
+
|
|
135
|
+
def get_raw(self):
|
|
136
|
+
"""
|
|
137
|
+
Returns the raw interaction logging selection.
|
|
138
|
+
|
|
139
|
+
:rtype: dict
|
|
140
|
+
"""
|
|
141
|
+
return self._selection
|
|
142
|
+
|
|
143
|
+
def get(self, key, default=None):
|
|
144
|
+
return self._selection.get(key, default)
|
|
145
|
+
|
|
146
|
+
def __getitem__(self, key):
|
|
147
|
+
return self._selection[key]
|
|
148
|
+
|
|
149
|
+
def __setitem__(self, key, value):
|
|
150
|
+
self._selection[key] = value
|
|
151
|
+
|
|
152
|
+
def _get_or_create_settings_raw(self):
|
|
153
|
+
settings = self._selection.get("explicitSettings")
|
|
154
|
+
if settings is None:
|
|
155
|
+
settings = {}
|
|
156
|
+
self._selection["explicitSettings"] = settings
|
|
157
|
+
return settings
|
|
158
|
+
|
|
159
|
+
@property
|
|
160
|
+
def mode(self):
|
|
161
|
+
"""
|
|
162
|
+
The interaction logging mode. One of INHERIT, EXPLICIT or NONE.
|
|
163
|
+
|
|
164
|
+
In ``INHERIT`` mode, settings are inherited from the project-level
|
|
165
|
+
configuration.
|
|
166
|
+
|
|
167
|
+
:rtype: str | None
|
|
168
|
+
"""
|
|
169
|
+
return self._selection.get("mode")
|
|
170
|
+
|
|
171
|
+
@mode.setter
|
|
172
|
+
def mode(self, value):
|
|
173
|
+
if value not in self._VALID_MODES:
|
|
174
|
+
raise ValueError("Invalid interaction logging mode: %s" % value)
|
|
175
|
+
self._selection["mode"] = value
|
|
176
|
+
|
|
177
|
+
@property
|
|
178
|
+
def settings(self):
|
|
179
|
+
"""
|
|
180
|
+
The explicit interaction logging settings.
|
|
181
|
+
|
|
182
|
+
These settings are only used when the selection is in ``EXPLICIT`` mode.
|
|
183
|
+
|
|
184
|
+
:rtype: :class:`dataikuapi.dss.agent.DSSAgentInteractionLoggingSettings`
|
|
185
|
+
"""
|
|
186
|
+
return DSSAgentInteractionLoggingSettings(self._get_or_create_settings_raw())
|
|
187
|
+
|
|
188
|
+
@settings.setter
|
|
189
|
+
def settings(self, value):
|
|
190
|
+
if isinstance(value, DSSAgentInteractionLoggingSettings):
|
|
191
|
+
value = value.get_raw()
|
|
192
|
+
if value is None:
|
|
193
|
+
value = {}
|
|
194
|
+
self._selection["explicitSettings"] = value
|
|
195
|
+
|
|
196
|
+
def enable(self, dataset_name, settings=None):
|
|
197
|
+
"""
|
|
198
|
+
Enable interaction logging on this agent version with explicit settings.
|
|
199
|
+
|
|
200
|
+
This only controls the agent version setting itself. Interaction logging
|
|
201
|
+
can still be effectively unavailable if it is disabled at the instance level.
|
|
202
|
+
|
|
203
|
+
:param dataset_name: Dataset name used for interaction logging.
|
|
204
|
+
:type dataset_name: str
|
|
205
|
+
:param settings: Optional explicit settings payload or
|
|
206
|
+
:class:`dataikuapi.dss.agent.DSSAgentInteractionLoggingSettings`.
|
|
207
|
+
:type settings: dict | :class:`dataikuapi.dss.agent.DSSAgentInteractionLoggingSettings` | None
|
|
208
|
+
"""
|
|
209
|
+
self.mode = self.MODE_EXPLICIT
|
|
210
|
+
if settings is not None:
|
|
211
|
+
self.settings = settings
|
|
212
|
+
self.settings.dataset_name = dataset_name
|
|
213
|
+
|
|
214
|
+
def inherit(self):
|
|
215
|
+
"""
|
|
216
|
+
Enable interaction logging on this agent version in inherited mode.
|
|
217
|
+
|
|
218
|
+
In this mode, the version inherits the project-level interaction logging settings.
|
|
219
|
+
"""
|
|
220
|
+
self.mode = self.MODE_INHERIT
|
|
221
|
+
|
|
222
|
+
def disable(self):
|
|
223
|
+
"""
|
|
224
|
+
Disable interaction logging on this agent version.
|
|
225
|
+
"""
|
|
226
|
+
self.mode = self.MODE_NONE
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
class DSSAgentListItem(DSSTaggableObjectListItem):
|
|
230
|
+
"""
|
|
231
|
+
An item in a list of agents
|
|
232
|
+
|
|
233
|
+
.. important::
|
|
234
|
+
Do not instantiate this class directly, instead use :meth:`dataikuapi.dss.project.DSSProject.list_agents`.
|
|
235
|
+
"""
|
|
236
|
+
def __init__(self, client, data):
|
|
237
|
+
super(DSSAgentListItem, self).__init__(data)
|
|
238
|
+
self.client = client
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
@property
|
|
242
|
+
def project_key(self):
|
|
243
|
+
"""
|
|
244
|
+
:returns: The project
|
|
245
|
+
:rtype: string
|
|
246
|
+
"""
|
|
247
|
+
return self._data["projectKey"]
|
|
248
|
+
|
|
249
|
+
@property
|
|
250
|
+
def id(self):
|
|
251
|
+
"""
|
|
252
|
+
:returns: The id of the agent.
|
|
253
|
+
:rtype: string
|
|
254
|
+
"""
|
|
255
|
+
return self._data["id"]
|
|
256
|
+
|
|
257
|
+
@property
|
|
258
|
+
def name(self):
|
|
259
|
+
"""
|
|
260
|
+
:returns: The name of the agent.
|
|
261
|
+
:rtype: string
|
|
262
|
+
"""
|
|
263
|
+
return self._data["name"]
|
|
264
|
+
|
|
265
|
+
def as_llm(self):
|
|
266
|
+
"""Returns this agent as a usable :class:`dataikuapi.dss.llm.DSSLLM` for querying"""
|
|
267
|
+
return self.client.get_project(self.project_key).get_llm("agent:%s" % self.id)
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
class DSSAgent(object):
|
|
271
|
+
"""
|
|
272
|
+
A handle to interact with a DSS-managed agent.
|
|
273
|
+
|
|
274
|
+
.. important::
|
|
275
|
+
|
|
276
|
+
Do not create this class directly, use :meth:`dataikuapi.dss.project.DSSProject.get_agent` instead.
|
|
277
|
+
"""
|
|
278
|
+
def __init__(self, client, project_key, id):
|
|
279
|
+
self.client = client
|
|
280
|
+
self.project_key = project_key
|
|
281
|
+
self._id = id
|
|
282
|
+
|
|
283
|
+
@property
|
|
284
|
+
def id(self):
|
|
285
|
+
return self._id
|
|
286
|
+
|
|
287
|
+
def as_llm(self):
|
|
288
|
+
"""Returns this agent as a usable :class:`dataikuapi.dss.llm.DSSLLM` for querying"""
|
|
289
|
+
return self.client.get_project(self.project_key).get_llm("agent:%s" % self.id)
|
|
290
|
+
|
|
291
|
+
def get_settings(self):
|
|
292
|
+
"""
|
|
293
|
+
Get the agent's definition
|
|
294
|
+
|
|
295
|
+
:return: a handle on the agent definition
|
|
296
|
+
:rtype: :class:`dataikuapi.dss.agent.DSSAgentSettings`
|
|
297
|
+
"""
|
|
298
|
+
settings = self.client._perform_json(
|
|
299
|
+
"GET", "/projects/%s/agents/%s" % (self.project_key, self.id))
|
|
300
|
+
return DSSAgentSettings(self.client, settings)
|
|
301
|
+
|
|
302
|
+
def delete(self):
|
|
303
|
+
"""
|
|
304
|
+
Delete the agent
|
|
305
|
+
"""
|
|
306
|
+
return self.client._perform_empty("DELETE", "/projects/%s/agents/%s" % (self.project_key, self.id))
|
|
307
|
+
|
|
308
|
+
def shutdown(self, version_id=None, force=False):
|
|
309
|
+
"""
|
|
310
|
+
Shutdown all instances of the given version of this agent
|
|
311
|
+
|
|
312
|
+
:param version_id: If unspecified, uses the active version.
|
|
313
|
+
:type version_id: str | None
|
|
314
|
+
:param force: If True, cancel requests being processed and stop the instances. If False, let those active requests complete before stopping.
|
|
315
|
+
:type force: bool
|
|
316
|
+
"""
|
|
317
|
+
return self.client._perform_empty(
|
|
318
|
+
"POST", "/projects/%s/agents/%s/actions/shutdown" % (self.project_key, self.id), body={
|
|
319
|
+
"versionId": version_id,
|
|
320
|
+
"force": force
|
|
321
|
+
})
|
|
322
|
+
|
|
323
|
+
def status(self, version_id=None):
|
|
324
|
+
"""
|
|
325
|
+
Query status of instances of the given version of this agent
|
|
326
|
+
|
|
327
|
+
:param version_id: If unspecified, uses the active version.
|
|
328
|
+
:type version_id: str | None
|
|
329
|
+
:return: A dict holding the list of the status for each instance.
|
|
330
|
+
"""
|
|
331
|
+
return self.client._perform_json(
|
|
332
|
+
"GET", "/projects/%s/agents/%s/status" % (self.project_key, self.id), body={
|
|
333
|
+
"versionId": version_id
|
|
334
|
+
})
|
|
335
|
+
|
|
336
|
+
def wake_up(self, version_id=None):
|
|
337
|
+
"""
|
|
338
|
+
Start an instance of an agent if none is started
|
|
339
|
+
|
|
340
|
+
:param version_id: If unspecified, uses the active version.
|
|
341
|
+
:type version_id: str | None
|
|
342
|
+
"""
|
|
343
|
+
return self.client._perform_empty(
|
|
344
|
+
"POST", "/projects/%s/agents/%s/actions/wakeup" % (self.project_key, self.id), body={
|
|
345
|
+
"versionId": version_id
|
|
346
|
+
})
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
class DSSAgentSettings(DSSTaggableObjectSettings):
|
|
350
|
+
"""
|
|
351
|
+
Settings for a agent
|
|
352
|
+
|
|
353
|
+
.. important::
|
|
354
|
+
|
|
355
|
+
Do not instantiate directly, use :meth:`dataikuapi.dss.agent.DSSAgent.get_settings` instead
|
|
356
|
+
|
|
357
|
+
"""
|
|
358
|
+
|
|
359
|
+
def __init__(self, client, settings):
|
|
360
|
+
super(DSSAgentSettings, self).__init__(settings)
|
|
361
|
+
self._client = client
|
|
362
|
+
self._settings = settings
|
|
363
|
+
|
|
364
|
+
def get_version_ids(self):
|
|
365
|
+
return [v["versionId"] for v in self._settings["versions"]]
|
|
366
|
+
|
|
367
|
+
@property
|
|
368
|
+
def active_version(self):
|
|
369
|
+
"""Returns the active version of this agent. May return None if no version is declared as active"""
|
|
370
|
+
return self._settings.get("activeVersion")
|
|
371
|
+
|
|
372
|
+
def get_version_settings(self, version_id):
|
|
373
|
+
|
|
374
|
+
version_settings = None
|
|
375
|
+
for vs in self._settings["versions"]:
|
|
376
|
+
if vs["versionId"] == version_id:
|
|
377
|
+
version_settings = vs
|
|
378
|
+
break
|
|
379
|
+
if version_settings is None:
|
|
380
|
+
raise Exception("version %s not found" % version_id)
|
|
381
|
+
|
|
382
|
+
return DSSAgentVersionSettings(self, version_settings)
|
|
383
|
+
|
|
384
|
+
@property
|
|
385
|
+
def type(self):
|
|
386
|
+
return self._settings["type"]
|
|
387
|
+
|
|
388
|
+
def get_raw(self):
|
|
389
|
+
"""
|
|
390
|
+
Returns the raw settings of the agent
|
|
391
|
+
:return: the raw settings of the agent
|
|
392
|
+
:rtype: dict
|
|
393
|
+
"""
|
|
394
|
+
return self._settings
|
|
395
|
+
|
|
396
|
+
def save(self):
|
|
397
|
+
"""
|
|
398
|
+
Saves the settings for this agent
|
|
399
|
+
"""
|
|
400
|
+
self._client._perform_empty(
|
|
401
|
+
"PUT", "/projects/%s/agents/%s" % (self._settings["projectKey"], self._settings["id"]), body=self._settings)
|
|
402
|
+
|
|
403
|
+
class DSSAgentVersionSettings(object):
|
|
404
|
+
def __init__(self, settings, version_settings):
|
|
405
|
+
self._agent_settings = settings
|
|
406
|
+
self._version_settings = version_settings
|
|
407
|
+
|
|
408
|
+
def get_raw(self):
|
|
409
|
+
return self._version_settings
|
|
410
|
+
|
|
411
|
+
@property
|
|
412
|
+
def llm_id(self):
|
|
413
|
+
"""
|
|
414
|
+
Only for Visual Agents
|
|
415
|
+
:rtype: :class:`str`
|
|
416
|
+
"""
|
|
417
|
+
if not self._agent_settings.type == "TOOLS_USING_AGENT":
|
|
418
|
+
raise ValueError("Only valid for Simple Visual Agents")
|
|
419
|
+
return self._version_settings["toolsUsingAgentSettings"]["llmId"]
|
|
420
|
+
|
|
421
|
+
@llm_id.setter
|
|
422
|
+
def llm_id(self, value):
|
|
423
|
+
if not self._agent_settings.type == "TOOLS_USING_AGENT":
|
|
424
|
+
raise ValueError("Only valid for Simple Visual Agents")
|
|
425
|
+
self._version_settings["toolsUsingAgentSettings"]["llmId"] = value
|
|
426
|
+
|
|
427
|
+
@property
|
|
428
|
+
def tools(self):
|
|
429
|
+
"""
|
|
430
|
+
Returns the list of tools of the agent. The list can be modified.
|
|
431
|
+
|
|
432
|
+
Each tool is a dict, containing at least "toolRef", which is the identifier of the tool.
|
|
433
|
+
The dict may also contain "additionalDescription" which is added to the description of the tool
|
|
434
|
+
"""
|
|
435
|
+
if not self._agent_settings.type == "TOOLS_USING_AGENT":
|
|
436
|
+
raise ValueError("Only valid for Simple Visual Agents")
|
|
437
|
+
return self._version_settings["toolsUsingAgentSettings"]["tools"]
|
|
438
|
+
|
|
439
|
+
def add_tool(self, tool):
|
|
440
|
+
"""
|
|
441
|
+
Adds a tool to the agent
|
|
442
|
+
|
|
443
|
+
:param tool: a string (identifier of the tool), or a :class:`dataikuapi.dss.agent_tool.DSSAgentTool`
|
|
444
|
+
"""
|
|
445
|
+
|
|
446
|
+
def get_tool_ref():
|
|
447
|
+
is_foreign = self._agent_settings._settings["projectKey"] != tool.project_key
|
|
448
|
+
if is_foreign:
|
|
449
|
+
return tool.project_key + "." + tool.id
|
|
450
|
+
else:
|
|
451
|
+
return tool.id
|
|
452
|
+
|
|
453
|
+
if isinstance(tool, DSSAgentToolListItem):
|
|
454
|
+
tool_dict = { "toolRef" : get_tool_ref()}
|
|
455
|
+
elif isinstance(tool, DSSAgentTool):
|
|
456
|
+
tool_dict = { "toolRef" : get_tool_ref()}
|
|
457
|
+
elif isinstance(tool, str):
|
|
458
|
+
tool_dict = { "toolRef" : tool}
|
|
459
|
+
else:
|
|
460
|
+
raise Exception("Cannot add agent tool: %s" % tool)
|
|
461
|
+
|
|
462
|
+
self.tools.append(tool_dict)
|
|
463
|
+
|
|
464
|
+
def _get_internal_agent_settings(self):
|
|
465
|
+
"""
|
|
466
|
+
Returns internal agent settings (SavedModel#AgentSettings in Java) matching the agent type.
|
|
467
|
+
|
|
468
|
+
:rtype: dict
|
|
469
|
+
"""
|
|
470
|
+
settings_key_by_type = {
|
|
471
|
+
"TOOLS_USING_AGENT": "toolsUsingAgentSettings",
|
|
472
|
+
"STRUCTURED_AGENT": "structuredAgentSettings",
|
|
473
|
+
"PYTHON_AGENT": "pythonAgentSettings",
|
|
474
|
+
"PLUGIN_AGENT": "pluginAgentSettings",
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
try:
|
|
478
|
+
settings_key = settings_key_by_type[self._agent_settings.type]
|
|
479
|
+
return self._version_settings[settings_key]
|
|
480
|
+
except KeyError:
|
|
481
|
+
raise ValueError("Unsupported agent type: %s" % self._agent_settings.type)
|
|
482
|
+
|
|
483
|
+
def _get_or_create_interaction_logging_selection(self):
|
|
484
|
+
internal_settings = self._get_internal_agent_settings()
|
|
485
|
+
interaction_logging_selection = internal_settings.get("interactionLoggingSelection")
|
|
486
|
+
if interaction_logging_selection is None:
|
|
487
|
+
interaction_logging_selection = {
|
|
488
|
+
"mode": DSSAgentInteractionLoggingSelection.MODE_INHERIT,
|
|
489
|
+
"explicitSettings": {},
|
|
490
|
+
}
|
|
491
|
+
internal_settings["interactionLoggingSelection"] = interaction_logging_selection
|
|
492
|
+
return interaction_logging_selection
|
|
493
|
+
|
|
494
|
+
@property
|
|
495
|
+
def interaction_logging_selection(self):
|
|
496
|
+
"""
|
|
497
|
+
Get the interaction logging selection for this version.
|
|
498
|
+
|
|
499
|
+
Before configuring interaction logging on an agent version, create the
|
|
500
|
+
target dataset on the project:
|
|
501
|
+
|
|
502
|
+
.. code-block:: python
|
|
503
|
+
|
|
504
|
+
project = client.get_project("MYPROJECT")
|
|
505
|
+
project.create_agent_interaction_logging_dataset(
|
|
506
|
+
"agent_logs",
|
|
507
|
+
connection_id="filesystem_managed",
|
|
508
|
+
time_partitioning="DAY",
|
|
509
|
+
)
|
|
510
|
+
|
|
511
|
+
Example using inherited settings:
|
|
512
|
+
|
|
513
|
+
.. code-block:: python
|
|
514
|
+
|
|
515
|
+
agent = project.get_agent("my_agent")
|
|
516
|
+
agent_settings = agent.get_settings()
|
|
517
|
+
version_settings = agent_settings.get_version_settings("v1")
|
|
518
|
+
|
|
519
|
+
agent_logging_selection = version_settings.interaction_logging_selection
|
|
520
|
+
agent_logging_selection.inherit()
|
|
521
|
+
|
|
522
|
+
agent_settings.save()
|
|
523
|
+
|
|
524
|
+
Example using explicit settings:
|
|
525
|
+
|
|
526
|
+
.. code-block:: python
|
|
527
|
+
|
|
528
|
+
agent = project.get_agent("my_agent")
|
|
529
|
+
agent_settings = agent.get_settings()
|
|
530
|
+
version_settings = agent_settings.get_version_settings("v1")
|
|
531
|
+
|
|
532
|
+
agent_logging_selection = version_settings.interaction_logging_selection
|
|
533
|
+
agent_logging_selection.enable(
|
|
534
|
+
"agent_logs",
|
|
535
|
+
settings={
|
|
536
|
+
"flushEveryS": 60,
|
|
537
|
+
"flushEveryBytes": 1_000_000,
|
|
538
|
+
"contentMode": "FULL",
|
|
539
|
+
},
|
|
540
|
+
)
|
|
541
|
+
|
|
542
|
+
agent_settings.save()
|
|
543
|
+
|
|
544
|
+
Example disabling interaction logging:
|
|
545
|
+
|
|
546
|
+
.. code-block:: python
|
|
547
|
+
|
|
548
|
+
agent = project.get_agent("my_agent")
|
|
549
|
+
agent_settings = agent.get_settings()
|
|
550
|
+
version_settings = agent_settings.get_version_settings("v1")
|
|
551
|
+
|
|
552
|
+
agent_logging_selection = version_settings.interaction_logging_selection
|
|
553
|
+
agent_logging_selection.disable()
|
|
554
|
+
|
|
555
|
+
agent_settings.save()
|
|
556
|
+
|
|
557
|
+
:rtype: :class:`dataikuapi.dss.agent.DSSAgentInteractionLoggingSelection`
|
|
558
|
+
"""
|
|
559
|
+
return DSSAgentInteractionLoggingSelection(self._get_or_create_interaction_logging_selection())
|
|
560
|
+
|
|
561
|
+
@interaction_logging_selection.setter
|
|
562
|
+
def interaction_logging_selection(self, value):
|
|
563
|
+
if isinstance(value, DSSAgentInteractionLoggingSelection):
|
|
564
|
+
value = value.get_raw()
|
|
565
|
+
self._get_internal_agent_settings()["interactionLoggingSelection"] = value
|