dataiku-api-client 14.5.2__tar.gz → 14.6.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.5.2 → dataiku_api_client-14.6.0}/HISTORY.txt +4 -0
- {dataiku_api_client-14.5.2/dataiku_api_client.egg-info → dataiku_api_client-14.6.0}/PKG-INFO +6 -2
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0/dataiku_api_client.egg-info}/PKG-INFO +6 -2
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/admin.py +1 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/agent.py +6 -1
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/agent_review.py +54 -2
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/knowledgebank.py +1 -1
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/ml.py +113 -13
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/project.py +23 -1
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/retrieval_augmented_llm.py +86 -1
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/semantic_model.py +1 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dssclient.py +7 -1
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/fm/instances.py +3 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/govern_client.py +6 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/launchpad/group.py +1 -1
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/launchpad/user.py +53 -6
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/setup.py +1 -1
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/LICENSE.txt +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/MANIFEST.in +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/README +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataiku_api_client.egg-info/SOURCES.txt +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataiku_api_client.egg-info/dependency_links.txt +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataiku_api_client.egg-info/requires.txt +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataiku_api_client.egg-info/top_level.txt +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/__init__.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/apinode_admin/__init__.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/apinode_admin/auth.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/apinode_admin/service.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/apinode_admin_client.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/apinode_client.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/auth.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/base_client.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/__init__.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/agent_tool.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/analysis.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/apideployer.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/apiservice.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/app.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/businessapp.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/codestudio.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/continuousactivity.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/dashboard.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/data_collection.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/data_directories_footprint.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/data_quality.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/dataset.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/discussion.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/document_extractor.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/drift.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/enterprise_asset_library.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/evaluationcomparison.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/evaluationstore.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/feature_store.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/flow.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/future.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/insight.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/job.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/jupyternotebook.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/labeling_task.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/langchain/__init__.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/langchain/embeddings.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/langchain/knowledge_bank.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/langchain/llm.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/langchain/tool.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/langchain/utils.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/llm.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/llm_tracing/__init__.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/llm_utils/__init__.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/local_model.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/macro.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/managedfolder.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/meaning.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/messaging_channel.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/metrics.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/mlflow.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/modelcomparison.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/modelevaluationstore.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/notebook.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/plugin.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/project_standards.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/projectdeployer.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/projectfolder.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/projectlibrary.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/recipe.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/savedmodel.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/scenario.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/sqlnotebook.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/sqlquery.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/statistics.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/streaming_endpoint.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/tools/__init__.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/tools/codegen.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/tools/langchain.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/unifiedmonitoring.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/utils.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/webapp.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/wiki.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/workspace.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss_plugin_mlflow/__init__.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss_plugin_mlflow/artifact_repository.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss_plugin_mlflow/header_provider.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss_plugin_mlflow/utils.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/fm/__init__.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/fm/cloudaccounts.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/fm/future.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/fm/instancesettingstemplates.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/fm/loadbalancers.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/fm/tenant.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/fm/virtualnetworks.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/fmclient.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/govern/__init__.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/govern/admin.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/govern/admin_blueprint_designer.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/govern/admin_custom_pages_handler.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/govern/admin_roles_permissions_handler.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/govern/artifact.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/govern/artifact_search.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/govern/blueprint.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/govern/custom_page.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/govern/future.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/govern/time_series.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/govern/uploaded_file.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/govern/users_container.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/iam/__init__.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/iam/settings.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/launchpad/__init__.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/launchpad/exceptions.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/launchpad/node.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/launchpad/profile.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/launchpad/response.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/launchpad/task.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/launchpad_client.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/utils.py +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/requirements.txt +0 -0
- {dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/setup.cfg +0 -0
{dataiku_api_client-14.5.2/dataiku_api_client.egg-info → dataiku_api_client-14.6.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.6.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.6.0
|
|
7
7
|
Author: Dataiku
|
|
8
8
|
Author-email: support@dataiku.com
|
|
9
9
|
License: Apache Software License
|
|
@@ -36,6 +36,10 @@ Changelog
|
|
|
36
36
|
==========
|
|
37
37
|
|
|
38
38
|
|
|
39
|
+
14.6.0 (2026-05-27)
|
|
40
|
+
-------------------
|
|
41
|
+
|
|
42
|
+
* Initial release for DSS 14.6.0
|
|
39
43
|
|
|
40
44
|
14.5.2 (2026-05-25)
|
|
41
45
|
-------------------
|
{dataiku_api_client-14.5.2 → dataiku_api_client-14.6.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.6.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.6.0
|
|
7
7
|
Author: Dataiku
|
|
8
8
|
Author-email: support@dataiku.com
|
|
9
9
|
License: Apache Software License
|
|
@@ -36,6 +36,10 @@ Changelog
|
|
|
36
36
|
==========
|
|
37
37
|
|
|
38
38
|
|
|
39
|
+
14.6.0 (2026-05-27)
|
|
40
|
+
-------------------
|
|
41
|
+
|
|
42
|
+
* Initial release for DSS 14.6.0
|
|
39
43
|
|
|
40
44
|
14.5.2 (2026-05-25)
|
|
41
45
|
-------------------
|
|
@@ -2202,6 +2202,7 @@ class DSSCodeEnvContainerConfsBearer(object):
|
|
|
2202
2202
|
* PYTHON36_SUPPORT
|
|
2203
2203
|
* PYTHON37_SUPPORT
|
|
2204
2204
|
* PYTHON38_SUPPORT
|
|
2205
|
+
* HUGGING_FACE_LOCAL_GPU
|
|
2205
2206
|
|
|
2206
2207
|
:param dict container_runtime_addition: a dict with the container runtime addition definition
|
|
2207
2208
|
"""
|
|
@@ -226,6 +226,11 @@ class DSSAgentInteractionLoggingSelection(object):
|
|
|
226
226
|
self.mode = self.MODE_NONE
|
|
227
227
|
|
|
228
228
|
|
|
229
|
+
# Neutral aliases for shared LLM interaction logging concepts.
|
|
230
|
+
DSSLLMInteractionLoggingSettings = DSSAgentInteractionLoggingSettings
|
|
231
|
+
DSSLLMInteractionLoggingSelection = DSSAgentInteractionLoggingSelection
|
|
232
|
+
|
|
233
|
+
|
|
229
234
|
class DSSAgentListItem(DSSTaggableObjectListItem):
|
|
230
235
|
"""
|
|
231
236
|
An item in a list of agents
|
|
@@ -521,7 +526,7 @@ class DSSAgentVersionSettings(object):
|
|
|
521
526
|
.. code-block:: python
|
|
522
527
|
|
|
523
528
|
project = client.get_project("MYPROJECT")
|
|
524
|
-
project.
|
|
529
|
+
project.create_llm_interaction_logging_dataset(
|
|
525
530
|
"agent_logs",
|
|
526
531
|
connection_id="filesystem_managed",
|
|
527
532
|
time_partitioning="DAY",
|
|
@@ -214,6 +214,32 @@ class DSSAgentReview(object):
|
|
|
214
214
|
def nb_executions(self, value):
|
|
215
215
|
self.data["nbExecutions"] = value
|
|
216
216
|
|
|
217
|
+
@property
|
|
218
|
+
def hitl_validation_policy(self):
|
|
219
|
+
"""
|
|
220
|
+
Review-wide default HITL validation policy used when creating a test.
|
|
221
|
+
Possible values are ``ACCEPT`` or ``REJECT``.
|
|
222
|
+
:rtype: str
|
|
223
|
+
"""
|
|
224
|
+
return self.data.get("hitlValidationPolicy")
|
|
225
|
+
|
|
226
|
+
@hitl_validation_policy.setter
|
|
227
|
+
def hitl_validation_policy(self, value):
|
|
228
|
+
self.data["hitlValidationPolicy"] = value
|
|
229
|
+
|
|
230
|
+
@property
|
|
231
|
+
def hitl_max_validation_turns(self):
|
|
232
|
+
"""
|
|
233
|
+
Maximum number of validation turns auto-answered during a test run before stopping.
|
|
234
|
+
Possible values are integers greater than or equal to ``1``.
|
|
235
|
+
:rtype: int
|
|
236
|
+
"""
|
|
237
|
+
return self.data.get("hitlMaxValidationTurns")
|
|
238
|
+
|
|
239
|
+
@hitl_max_validation_turns.setter
|
|
240
|
+
def hitl_max_validation_turns(self, value):
|
|
241
|
+
self.data["hitlMaxValidationTurns"] = value
|
|
242
|
+
|
|
217
243
|
def get_trait(self, trait_id):
|
|
218
244
|
"""
|
|
219
245
|
Get a specific trait by its ID.
|
|
@@ -278,13 +304,14 @@ class DSSAgentReview(object):
|
|
|
278
304
|
)
|
|
279
305
|
return DSSAgentReviewTest(self.dss_client, self.project_key, test)
|
|
280
306
|
|
|
281
|
-
def create_test(self, query=None, reference_answer=None, expectations=None):
|
|
307
|
+
def create_test(self, query=None, reference_answer=None, expectations=None, hitl_validation_policy=None):
|
|
282
308
|
"""
|
|
283
309
|
Create a new test for this agent review.
|
|
284
310
|
|
|
285
311
|
:param str query: Query to test the agent. Optional.
|
|
286
312
|
:param str reference_answer: Reference answer. Optional.
|
|
287
313
|
:param str expectations: Expectations on the agent answer. Optional.
|
|
314
|
+
:param str hitl_validation_policy: Per-test HITL validation policy. Optional.
|
|
288
315
|
:returns: The created test object.
|
|
289
316
|
:rtype: :class:`DSSAgentReviewTest`
|
|
290
317
|
"""
|
|
@@ -294,13 +321,14 @@ class DSSAgentReview(object):
|
|
|
294
321
|
"query": query,
|
|
295
322
|
"referenceAnswer": reference_answer,
|
|
296
323
|
"expectations": expectations,
|
|
324
|
+
"hitlValidationPolicy": hitl_validation_policy,
|
|
297
325
|
}
|
|
298
326
|
test = self.dss_client._perform_json(
|
|
299
327
|
"POST", "/projects/%s/agent-reviews/tests" % self.project_key, body=body
|
|
300
328
|
)
|
|
301
329
|
return DSSAgentReviewTest(self.dss_client, self.project_key, test)
|
|
302
330
|
|
|
303
|
-
def create_tests_from_dataset(self, full_dataset_name, query_column, reference_answer_column=None, expectations_column=None, top_n=None, partitions=None, latest_partitions_n=None):
|
|
331
|
+
def create_tests_from_dataset(self, full_dataset_name, query_column, reference_answer_column=None, expectations_column=None, top_n=None, partitions=None, latest_partitions_n=None, hitl_validation_policy_column=None):
|
|
304
332
|
"""
|
|
305
333
|
Create new tests for this agent review by importing them from a dataset.
|
|
306
334
|
|
|
@@ -311,6 +339,7 @@ class DSSAgentReview(object):
|
|
|
311
339
|
:param int top_n: Only take the first n rows of the dataset. Optional.
|
|
312
340
|
:param list[str] partitions: For partitioned datasets, only consider the given partitions. Optional.
|
|
313
341
|
:param int latest_partitions_n: For partitioned datasets and if partitions is not set, only consider the latest n partitions. Optional.
|
|
342
|
+
:param str hitl_validation_policy_column: Name of the column containing per-test HITL validation policy. Optional.
|
|
314
343
|
:returns: A dictionary with keys:
|
|
315
344
|
- "createdTestIds": list of ids of the created tests
|
|
316
345
|
- "error": The error message if any occurred
|
|
@@ -324,6 +353,7 @@ class DSSAgentReview(object):
|
|
|
324
353
|
"queryColumn": query_column,
|
|
325
354
|
"referenceAnswerColumn": reference_answer_column,
|
|
326
355
|
"expectationsColumn": expectations_column,
|
|
356
|
+
"hitlValidationPolicyColumn": hitl_validation_policy_column,
|
|
327
357
|
}
|
|
328
358
|
if top_n is not None:
|
|
329
359
|
body["samplingMethod"] = "HEAD_SEQUENTIAL"
|
|
@@ -587,6 +617,19 @@ class DSSAgentReviewTest(object):
|
|
|
587
617
|
def expectations(self, value):
|
|
588
618
|
self.data["expectations"] = value
|
|
589
619
|
|
|
620
|
+
@property
|
|
621
|
+
def hitl_validation_policy(self):
|
|
622
|
+
"""
|
|
623
|
+
Per-test HITL validation policy.
|
|
624
|
+
Possible values are ``ACCEPT`` or ``REJECT``.
|
|
625
|
+
:rtype: str
|
|
626
|
+
"""
|
|
627
|
+
return self.data.get("hitlValidationPolicy")
|
|
628
|
+
|
|
629
|
+
@hitl_validation_policy.setter
|
|
630
|
+
def hitl_validation_policy(self, value):
|
|
631
|
+
self.data["hitlValidationPolicy"] = value
|
|
632
|
+
|
|
590
633
|
@property
|
|
591
634
|
def creation_timestamp(self):
|
|
592
635
|
"""
|
|
@@ -735,6 +778,15 @@ class DSSAgentReviewTestListItem(dict):
|
|
|
735
778
|
"""
|
|
736
779
|
return self.get("expectations")
|
|
737
780
|
|
|
781
|
+
@property
|
|
782
|
+
def hitl_validation_policy(self):
|
|
783
|
+
"""
|
|
784
|
+
Per-test HITL validation policy.
|
|
785
|
+
Possible values are ``ACCEPT`` or ``REJECT``.
|
|
786
|
+
:rtype: str
|
|
787
|
+
"""
|
|
788
|
+
return self.get("hitlValidationPolicy")
|
|
789
|
+
|
|
738
790
|
|
|
739
791
|
class DSSAgentReviewRun(object):
|
|
740
792
|
"""
|
|
@@ -245,7 +245,7 @@ class DSSKnowledgeBankSettings(DSSTaggableObjectSettings):
|
|
|
245
245
|
@property
|
|
246
246
|
def vector_store_type(self):
|
|
247
247
|
"""
|
|
248
|
-
Returns the type of storage backing the vector store (could be CHROMA, PINECONE, ELASTICSEARCH, AZURE_AI_SEARCH, VERTEX_AI_GCS_BASED, FAISS, QDRANT_LOCAL)
|
|
248
|
+
Returns the type of storage backing the vector store (could be CHROMA, PINECONE, ELASTICSEARCH, AZURE_AI_SEARCH, SNOWFLAKE_CORTEX_SEARCH, VERTEX_AI_GCS_BASED, FAISS, QDRANT_LOCAL)
|
|
249
249
|
|
|
250
250
|
:rtype: str
|
|
251
251
|
"""
|
|
@@ -1493,11 +1493,9 @@ class PredictionAlgorithmSettings(dict):
|
|
|
1493
1493
|
"To update the search strategy, use <HyperparameterSearchSettings object>.strategy = ..., "
|
|
1494
1494
|
"obtained with <DSSPredictionMLTaskSettings object>.get_hyperparameter_search_settings()")
|
|
1495
1495
|
|
|
1496
|
-
|
|
1497
|
-
class RandomForestSettings(PredictionAlgorithmSettings):
|
|
1498
|
-
|
|
1496
|
+
class _RandomForestSettingsBase(PredictionAlgorithmSettings):
|
|
1499
1497
|
def __init__(self, raw_settings, hyperparameter_search_params):
|
|
1500
|
-
super(
|
|
1498
|
+
super(_RandomForestSettingsBase, self).__init__(raw_settings, hyperparameter_search_params)
|
|
1501
1499
|
self.n_estimators = self._register_numerical_hyperparameter("n_estimators")
|
|
1502
1500
|
self.min_samples_leaf = self._register_numerical_hyperparameter("min_samples_leaf")
|
|
1503
1501
|
self.max_tree_depth = self._register_numerical_hyperparameter("max_tree_depth")
|
|
@@ -1507,10 +1505,19 @@ class RandomForestSettings(PredictionAlgorithmSettings):
|
|
|
1507
1505
|
self.selection_mode = self._register_single_category_hyperparameter("selection_mode", accepted_values=["sqrt", "log2", "number", "prop"])
|
|
1508
1506
|
|
|
1509
1507
|
|
|
1510
|
-
class
|
|
1508
|
+
class TimeseriesRandomForestSettings(_RandomForestSettingsBase):
|
|
1509
|
+
pass
|
|
1510
|
+
|
|
1511
1511
|
|
|
1512
|
+
class RandomForestSettings(_RandomForestSettingsBase):
|
|
1512
1513
|
def __init__(self, raw_settings, hyperparameter_search_params):
|
|
1513
|
-
super(
|
|
1514
|
+
super(RandomForestSettings, self).__init__(raw_settings, hyperparameter_search_params)
|
|
1515
|
+
self.allow_sparse_matrices = self._register_single_value_hyperparameter("allow_sparse_matrices", accepted_types=[bool])
|
|
1516
|
+
|
|
1517
|
+
|
|
1518
|
+
class _LightGBMSettingsBase(PredictionAlgorithmSettings):
|
|
1519
|
+
def __init__(self, raw_settings, hyperparameter_search_params):
|
|
1520
|
+
super(_LightGBMSettingsBase, self).__init__(raw_settings, hyperparameter_search_params)
|
|
1514
1521
|
self.boosting_type = self._register_categorical_hyperparameter("boosting_type")
|
|
1515
1522
|
self.num_leaves = self._register_numerical_hyperparameter("num_leaves")
|
|
1516
1523
|
self.learning_rate = self._register_numerical_hyperparameter("learning_rate")
|
|
@@ -1521,9 +1528,6 @@ class LightGBMSettings(PredictionAlgorithmSettings):
|
|
|
1521
1528
|
self.colsample_bytree = self._register_numerical_hyperparameter("colsample_bytree")
|
|
1522
1529
|
self.reg_alpha = self._register_numerical_hyperparameter("reg_alpha")
|
|
1523
1530
|
self.reg_lambda = self._register_numerical_hyperparameter("reg_lambda")
|
|
1524
|
-
|
|
1525
|
-
self.early_stopping = self._register_single_value_hyperparameter("early_stopping", accepted_types=[bool])
|
|
1526
|
-
self.early_stopping_rounds = self._register_single_value_hyperparameter("early_stopping_rounds", accepted_types=[int])
|
|
1527
1531
|
self.random_state = self._register_single_value_hyperparameter("random_state", accepted_types=[int])
|
|
1528
1532
|
self.n_jobs = self._register_single_value_hyperparameter("n_jobs", accepted_types=[int])
|
|
1529
1533
|
self.max_depth = self._register_single_value_hyperparameter("max_depth", accepted_types=[int])
|
|
@@ -1532,6 +1536,18 @@ class LightGBMSettings(PredictionAlgorithmSettings):
|
|
|
1532
1536
|
self.use_bagging = self._register_single_value_hyperparameter("use_bagging", accepted_types=[bool])
|
|
1533
1537
|
|
|
1534
1538
|
|
|
1539
|
+
class TimeseriesLightGBMSettings(_LightGBMSettingsBase):
|
|
1540
|
+
pass
|
|
1541
|
+
|
|
1542
|
+
|
|
1543
|
+
class LightGBMSettings(_LightGBMSettingsBase):
|
|
1544
|
+
def __init__(self, raw_settings, hyperparameter_search_params):
|
|
1545
|
+
super(LightGBMSettings, self).__init__(raw_settings, hyperparameter_search_params)
|
|
1546
|
+
self.early_stopping = self._register_single_value_hyperparameter("early_stopping", accepted_types=[bool])
|
|
1547
|
+
self.early_stopping_rounds = self._register_single_value_hyperparameter("early_stopping_rounds", accepted_types=[int])
|
|
1548
|
+
self.allow_sparse_matrices = self._register_single_value_hyperparameter("allow_sparse_matrices", accepted_types=[bool])
|
|
1549
|
+
|
|
1550
|
+
|
|
1535
1551
|
class TabICLSettings(PredictionAlgorithmSettings):
|
|
1536
1552
|
|
|
1537
1553
|
def __init__(self, raw_settings, hyperparameter_search_params):
|
|
@@ -1551,10 +1567,10 @@ class TabICLSettings(PredictionAlgorithmSettings):
|
|
|
1551
1567
|
self.outlier_threshold = self._register_single_value_hyperparameter("outlier_threshold")
|
|
1552
1568
|
|
|
1553
1569
|
|
|
1554
|
-
class
|
|
1570
|
+
class _XGBoostSettingsBase(PredictionAlgorithmSettings):
|
|
1555
1571
|
|
|
1556
1572
|
def __init__(self, raw_settings, hyperparameter_search_params):
|
|
1557
|
-
super(
|
|
1573
|
+
super(_XGBoostSettingsBase, self).__init__(raw_settings, hyperparameter_search_params)
|
|
1558
1574
|
self.max_depth = self._register_numerical_hyperparameter("max_depth")
|
|
1559
1575
|
self.learning_rate = self._register_numerical_hyperparameter("learning_rate")
|
|
1560
1576
|
self.gamma = self._register_numerical_hyperparameter("gamma")
|
|
@@ -1575,8 +1591,6 @@ class XGBoostSettings(PredictionAlgorithmSettings):
|
|
|
1575
1591
|
self.missing = self._register_single_value_hyperparameter("missing", accepted_types=[int, float])
|
|
1576
1592
|
self.tree_method = self._register_single_category_hyperparameter("tree_method", accepted_values=["auto", "exact", "approx", "hist"])
|
|
1577
1593
|
self.seed = self._register_single_value_hyperparameter("seed", accepted_types=[int])
|
|
1578
|
-
self.enable_early_stopping = self._register_single_value_hyperparameter("enable_early_stopping", accepted_types=[bool])
|
|
1579
|
-
self.early_stopping_rounds = self._register_single_value_hyperparameter("early_stopping_rounds", accepted_types=[int])
|
|
1580
1594
|
self.tweedie_variance_power = self._register_single_value_hyperparameter("tweedie_variance_power", accepted_types=[int, float])
|
|
1581
1595
|
|
|
1582
1596
|
@property
|
|
@@ -1614,6 +1628,18 @@ class XGBoostSettings(PredictionAlgorithmSettings):
|
|
|
1614
1628
|
self.tree_method.set_value(value)
|
|
1615
1629
|
|
|
1616
1630
|
|
|
1631
|
+
class TimeseriesXGBoostSettings(_XGBoostSettingsBase):
|
|
1632
|
+
pass
|
|
1633
|
+
|
|
1634
|
+
|
|
1635
|
+
class XGBoostSettings(_XGBoostSettingsBase):
|
|
1636
|
+
def __init__(self, raw_settings, hyperparameter_search_params):
|
|
1637
|
+
super(XGBoostSettings, self).__init__(raw_settings, hyperparameter_search_params)
|
|
1638
|
+
self.enable_early_stopping = self._register_single_value_hyperparameter("enable_early_stopping", accepted_types=[bool])
|
|
1639
|
+
self.early_stopping_rounds = self._register_single_value_hyperparameter("early_stopping_rounds", accepted_types=[int])
|
|
1640
|
+
self.allow_sparse_matrices = self._register_single_value_hyperparameter("allow_sparse_matrices", accepted_types=[bool])
|
|
1641
|
+
|
|
1642
|
+
|
|
1617
1643
|
class GradientBoostedTreesSettings(PredictionAlgorithmSettings):
|
|
1618
1644
|
|
|
1619
1645
|
def __init__(self, raw_settings, hyperparameter_search_params):
|
|
@@ -1866,6 +1892,71 @@ class AutoArimaSettings(PredictionAlgorithmSettings):
|
|
|
1866
1892
|
self.maxiter = self._register_single_value_hyperparameter("maxiter", accepted_types=[int])
|
|
1867
1893
|
|
|
1868
1894
|
|
|
1895
|
+
class ArimaSettings(PredictionAlgorithmSettings):
|
|
1896
|
+
def __init__(self, raw_settings, hyperparameter_search_params):
|
|
1897
|
+
super(ArimaSettings, self).__init__(raw_settings, hyperparameter_search_params)
|
|
1898
|
+
self.p = self._register_single_value_hyperparameter("p", accepted_types=[int])
|
|
1899
|
+
self.d = self._register_single_value_hyperparameter("d", accepted_types=[int])
|
|
1900
|
+
self.q = self._register_single_value_hyperparameter("q", accepted_types=[int])
|
|
1901
|
+
self.P = self._register_single_value_hyperparameter("P", accepted_types=[int])
|
|
1902
|
+
self.D = self._register_single_value_hyperparameter("D", accepted_types=[int])
|
|
1903
|
+
self.Q = self._register_single_value_hyperparameter("Q", accepted_types=[int])
|
|
1904
|
+
self.s = self._register_single_value_hyperparameter("s", accepted_types=[int])
|
|
1905
|
+
self.trend = self._register_single_category_hyperparameter("trend", accepted_values=["n", "c", "t", "ct"])
|
|
1906
|
+
self.trend_offset = self._register_single_value_hyperparameter("trend_offset", accepted_types=[int])
|
|
1907
|
+
self.enforce_stationarity = self._register_single_value_hyperparameter("enforce_stationarity", accepted_types=[bool])
|
|
1908
|
+
self.enforce_invertibility = self._register_single_value_hyperparameter("enforce_invertibility", accepted_types=[bool])
|
|
1909
|
+
self.concentrate_scale = self._register_single_value_hyperparameter("concentrate_scale", accepted_types=[bool])
|
|
1910
|
+
|
|
1911
|
+
|
|
1912
|
+
class CrostonSettings(PredictionAlgorithmSettings):
|
|
1913
|
+
def __init__(self, raw_settings, hyperparameter_search_params):
|
|
1914
|
+
super(CrostonSettings, self).__init__(raw_settings, hyperparameter_search_params)
|
|
1915
|
+
self.variant = self._register_categorical_hyperparameter("variant")
|
|
1916
|
+
self.alpha_d = self._register_numerical_hyperparameter("alpha_d")
|
|
1917
|
+
self.alpha_p = self._register_numerical_hyperparameter("alpha_p")
|
|
1918
|
+
|
|
1919
|
+
|
|
1920
|
+
class ETSSettings(PredictionAlgorithmSettings):
|
|
1921
|
+
|
|
1922
|
+
def __init__(self, raw_settings, hyperparameter_search_params):
|
|
1923
|
+
super(ETSSettings, self).__init__(raw_settings, hyperparameter_search_params)
|
|
1924
|
+
self.trend = self._register_categorical_hyperparameter("trend")
|
|
1925
|
+
self.damped_trend = self._register_categorical_hyperparameter("damped_trend")
|
|
1926
|
+
self.seasonal = self._register_categorical_hyperparameter("seasonal")
|
|
1927
|
+
self.error = self._register_categorical_hyperparameter("error")
|
|
1928
|
+
self.seasonal_periods = self._register_single_value_hyperparameter("seasonal_periods", accepted_types=[int])
|
|
1929
|
+
self.include_unstable = self._register_single_value_hyperparameter("include_unstable", accepted_types=[bool])
|
|
1930
|
+
self.seed = self._register_single_value_hyperparameter("seed", accepted_types=[int])
|
|
1931
|
+
|
|
1932
|
+
|
|
1933
|
+
class NHITSSettings(PredictionAlgorithmSettings):
|
|
1934
|
+
def __init__(self, raw_settings, hyperparameter_search_params):
|
|
1935
|
+
super(NHITSSettings, self).__init__(raw_settings, hyperparameter_search_params)
|
|
1936
|
+
self.context_length = self._register_numerical_hyperparameter("context_length")
|
|
1937
|
+
self.learning_rate = self._register_numerical_hyperparameter("learning_rate")
|
|
1938
|
+
self.batch_size = self._register_single_value_hyperparameter("batch_size", accepted_types=[int])
|
|
1939
|
+
self.max_steps = self._register_single_value_hyperparameter("max_steps", accepted_types=[int])
|
|
1940
|
+
self.patience = self._register_single_value_hyperparameter("patience", accepted_types=[int])
|
|
1941
|
+
self.random_state = self._register_single_value_hyperparameter("random_state", accepted_types=[int])
|
|
1942
|
+
|
|
1943
|
+
|
|
1944
|
+
class TFTSettings(PredictionAlgorithmSettings):
|
|
1945
|
+
def __init__(self, raw_settings, hyperparameter_search_params):
|
|
1946
|
+
super(TFTSettings, self).__init__(raw_settings, hyperparameter_search_params)
|
|
1947
|
+
self.context_length = self._register_numerical_hyperparameter("context_length")
|
|
1948
|
+
self.hidden_size_factor = self._register_numerical_hyperparameter("hidden_size_factor")
|
|
1949
|
+
self.learning_rate = self._register_numerical_hyperparameter("learning_rate")
|
|
1950
|
+
self.n_rnn_layers = self._register_numerical_hyperparameter("n_rnn_layers")
|
|
1951
|
+
self.n_head = self._register_numerical_hyperparameter("n_head")
|
|
1952
|
+
self.batch_size = self._register_single_value_hyperparameter("batch_size", accepted_types=[int])
|
|
1953
|
+
self.max_steps = self._register_single_value_hyperparameter("max_steps", accepted_types=[int])
|
|
1954
|
+
self.patience = self._register_single_value_hyperparameter("patience", accepted_types=[int])
|
|
1955
|
+
self.random_state = self._register_single_value_hyperparameter("random_state", accepted_types=[int])
|
|
1956
|
+
self.max_hidden_size = self._register_single_value_hyperparameter("max_hidden_size", accepted_types=[int])
|
|
1957
|
+
self.limit_hidden_size = self._register_single_value_hyperparameter("limit_hidden_size", accepted_types=[bool])
|
|
1958
|
+
|
|
1959
|
+
|
|
1869
1960
|
class SeasonalLoessSettings(PredictionAlgorithmSettings):
|
|
1870
1961
|
|
|
1871
1962
|
def __init__(self, raw_settings, hyperparameter_search_params):
|
|
@@ -2377,6 +2468,15 @@ class DSSClusteringMLTaskSettings(DSSMLTaskSettings):
|
|
|
2377
2468
|
class DSSTimeseriesForecastingMLTaskSettings(AbstractTabularPredictionMLTaskSettings):
|
|
2378
2469
|
__doc__ = []
|
|
2379
2470
|
_algorithm_remap = {
|
|
2471
|
+
"ARIMA": PredictionAlgorithmMeta("arima_timeseries", ArimaSettings),
|
|
2472
|
+
"CROSTON": PredictionAlgorithmMeta("croston_timeseries", CrostonSettings),
|
|
2473
|
+
"ETS": PredictionAlgorithmMeta("ets_timeseries", ETSSettings),
|
|
2474
|
+
"NHITS": PredictionAlgorithmMeta("nhits_timeseries", NHITSSettings),
|
|
2475
|
+
"TFT": PredictionAlgorithmMeta("tft_timeseries", TFTSettings),
|
|
2476
|
+
"RANDOM_FOREST_REGRESSION": PredictionAlgorithmMeta("random_forest_regression", TimeseriesRandomForestSettings),
|
|
2477
|
+
"XGBOOST_REGRESSION": PredictionAlgorithmMeta("xgboost", TimeseriesXGBoostSettings),
|
|
2478
|
+
"RIDGE_REGRESSION": PredictionAlgorithmMeta("ridge_regression", RidgeRegressionSettings),
|
|
2479
|
+
"LIGHTGBM_REGRESSION": PredictionAlgorithmMeta("lightgbm_regression", TimeseriesLightGBMSettings),
|
|
2380
2480
|
"TRIVIAL_IDENTITY_TIMESERIES": PredictionAlgorithmMeta("trivial_identity_timeseries"),
|
|
2381
2481
|
"SEASONAL_NAIVE": PredictionAlgorithmMeta("seasonal_naive_timeseries", SeasonalNaiveSettings),
|
|
2382
2482
|
"AUTO_ARIMA": PredictionAlgorithmMeta("autoarima_timeseries", AutoArimaSettings),
|
|
@@ -2744,6 +2744,7 @@ class DSSProject(object):
|
|
|
2744
2744
|
* PINECONE
|
|
2745
2745
|
* ELASTICSEARCH
|
|
2746
2746
|
* AZURE_AI_SEARCH
|
|
2747
|
+
* SNOWFLAKE_CORTEX_SEARCH
|
|
2747
2748
|
* VERTEX_AI_GCS_BASED
|
|
2748
2749
|
* FAISS *(not recommended)*
|
|
2749
2750
|
* QDRANT_LOCAL *(not recommended)*
|
|
@@ -2918,6 +2919,27 @@ class DSSProject(object):
|
|
|
2918
2919
|
"""
|
|
2919
2920
|
Create a new agent interaction logging dataset.
|
|
2920
2921
|
|
|
2922
|
+
.. caution:: Deprecated. Use :meth:`create_llm_interaction_logging_dataset`
|
|
2923
|
+
|
|
2924
|
+
:param dataset_name: Identifier for the dataset to create.
|
|
2925
|
+
:type dataset_name: str
|
|
2926
|
+
:param connection_id: Identifier of the connection to use (SQL or filesystem-like).
|
|
2927
|
+
:type connection_id: str
|
|
2928
|
+
:param time_partitioning: Time period of the partitioning. Can be one of "HOUR", "DAY", "MONTH". Set to None for no partitioning.
|
|
2929
|
+
:type time_partitioning: str | None
|
|
2930
|
+
"""
|
|
2931
|
+
return self.create_llm_interaction_logging_dataset(
|
|
2932
|
+
dataset_name=dataset_name,
|
|
2933
|
+
connection_id=connection_id,
|
|
2934
|
+
time_partitioning=time_partitioning,
|
|
2935
|
+
)
|
|
2936
|
+
|
|
2937
|
+
def create_llm_interaction_logging_dataset(self, dataset_name, connection_id, time_partitioning=None):
|
|
2938
|
+
"""
|
|
2939
|
+
Create a new LLM interaction logging dataset.
|
|
2940
|
+
|
|
2941
|
+
This dataset can be used by both agents and retrieval-augmented LLMs.
|
|
2942
|
+
|
|
2921
2943
|
:param dataset_name: Identifier for the dataset to create.
|
|
2922
2944
|
:type dataset_name: str
|
|
2923
2945
|
:param connection_id: Identifier of the connection to use (SQL or filesystem-like).
|
|
@@ -2931,7 +2953,7 @@ class DSSProject(object):
|
|
|
2931
2953
|
"timePartitioning": time_partitioning
|
|
2932
2954
|
}
|
|
2933
2955
|
return self.client._perform_empty(
|
|
2934
|
-
"POST", "/projects/%s/
|
|
2956
|
+
"POST", "/projects/%s/llm-interaction-logging-datasets" % self.project_key, params=params
|
|
2935
2957
|
)
|
|
2936
2958
|
|
|
2937
2959
|
########################################################
|
{dataiku_api_client-14.5.2 → dataiku_api_client-14.6.0}/dataikuapi/dss/retrieval_augmented_llm.py
RENAMED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from .agent import DSSLLMInteractionLoggingSelection
|
|
1
2
|
from .utils import DSSTaggableObjectListItem, DSSTaggableObjectSettings
|
|
2
3
|
|
|
3
4
|
class DSSRetrievalAugmentedLLMListItem(DSSTaggableObjectListItem):
|
|
@@ -137,6 +138,17 @@ class DSSRetrievalAugmentedLLMVersionSettings(object):
|
|
|
137
138
|
def get_raw(self):
|
|
138
139
|
return self._version_settings
|
|
139
140
|
|
|
141
|
+
def _get_or_create_interaction_logging_selection(self):
|
|
142
|
+
rag_settings = self._version_settings["ragllmSettings"]
|
|
143
|
+
interaction_logging_selection = rag_settings.get("interactionLoggingSelection")
|
|
144
|
+
if interaction_logging_selection is None:
|
|
145
|
+
interaction_logging_selection = {
|
|
146
|
+
"mode": DSSLLMInteractionLoggingSelection.MODE_INHERIT,
|
|
147
|
+
"explicitSettings": {},
|
|
148
|
+
}
|
|
149
|
+
rag_settings["interactionLoggingSelection"] = interaction_logging_selection
|
|
150
|
+
return interaction_logging_selection
|
|
151
|
+
|
|
140
152
|
@property
|
|
141
153
|
def llm_id(self):
|
|
142
154
|
"""
|
|
@@ -148,4 +160,77 @@ class DSSRetrievalAugmentedLLMVersionSettings(object):
|
|
|
148
160
|
|
|
149
161
|
@llm_id.setter
|
|
150
162
|
def llm_id(self, value):
|
|
151
|
-
self._version_settings["ragllmSettings"]["llmId"] = value
|
|
163
|
+
self._version_settings["ragllmSettings"]["llmId"] = value
|
|
164
|
+
|
|
165
|
+
@property
|
|
166
|
+
def interaction_logging_selection(self):
|
|
167
|
+
"""
|
|
168
|
+
Get the interaction logging selection for this version.
|
|
169
|
+
|
|
170
|
+
Before configuring interaction logging on a retrieval-augmented LLM version,
|
|
171
|
+
create the target dataset on the project:
|
|
172
|
+
|
|
173
|
+
.. code-block:: python
|
|
174
|
+
|
|
175
|
+
project = client.get_project("MYPROJECT")
|
|
176
|
+
project.create_llm_interaction_logging_dataset(
|
|
177
|
+
"llm_logs",
|
|
178
|
+
connection_id="filesystem_managed",
|
|
179
|
+
time_partitioning="DAY",
|
|
180
|
+
)
|
|
181
|
+
|
|
182
|
+
Example using inherited settings:
|
|
183
|
+
|
|
184
|
+
.. code-block:: python
|
|
185
|
+
|
|
186
|
+
rag = project.get_retrieval_augmented_llm("my_rag")
|
|
187
|
+
rag_settings = rag.get_settings()
|
|
188
|
+
version_settings = rag_settings.get_version_settings("v1")
|
|
189
|
+
|
|
190
|
+
logging_selection = version_settings.interaction_logging_selection
|
|
191
|
+
logging_selection.inherit()
|
|
192
|
+
|
|
193
|
+
rag_settings.save()
|
|
194
|
+
|
|
195
|
+
Example using explicit settings:
|
|
196
|
+
|
|
197
|
+
.. code-block:: python
|
|
198
|
+
|
|
199
|
+
rag = project.get_retrieval_augmented_llm("my_rag")
|
|
200
|
+
rag_settings = rag.get_settings()
|
|
201
|
+
version_settings = rag_settings.get_version_settings("v1")
|
|
202
|
+
|
|
203
|
+
logging_selection = version_settings.interaction_logging_selection
|
|
204
|
+
logging_selection.enable(
|
|
205
|
+
"llm_logs",
|
|
206
|
+
settings={
|
|
207
|
+
"flushEveryS": 60,
|
|
208
|
+
"flushEveryBytes": 1_000_000,
|
|
209
|
+
"contentMode": "FULL",
|
|
210
|
+
},
|
|
211
|
+
)
|
|
212
|
+
|
|
213
|
+
rag_settings.save()
|
|
214
|
+
|
|
215
|
+
Example disabling interaction logging:
|
|
216
|
+
|
|
217
|
+
.. code-block:: python
|
|
218
|
+
|
|
219
|
+
rag = project.get_retrieval_augmented_llm("my_rag")
|
|
220
|
+
rag_settings = rag.get_settings()
|
|
221
|
+
version_settings = rag_settings.get_version_settings("v1")
|
|
222
|
+
|
|
223
|
+
logging_selection = version_settings.interaction_logging_selection
|
|
224
|
+
logging_selection.disable()
|
|
225
|
+
|
|
226
|
+
rag_settings.save()
|
|
227
|
+
|
|
228
|
+
:rtype: :class:`dataikuapi.dss.agent.DSSLLMInteractionLoggingSelection`
|
|
229
|
+
"""
|
|
230
|
+
return DSSLLMInteractionLoggingSelection(self._get_or_create_interaction_logging_selection())
|
|
231
|
+
|
|
232
|
+
@interaction_logging_selection.setter
|
|
233
|
+
def interaction_logging_selection(self, value):
|
|
234
|
+
if isinstance(value, DSSLLMInteractionLoggingSelection):
|
|
235
|
+
value = value.get_raw()
|
|
236
|
+
self._version_settings["ragllmSettings"]["interactionLoggingSelection"] = value
|
|
@@ -960,7 +960,7 @@ class DSSClient(object):
|
|
|
960
960
|
|
|
961
961
|
env_handle = client.create_internal_code_env(internal_env_type="RAG_CODE_ENV", python_interpreter="PYTHON310")
|
|
962
962
|
|
|
963
|
-
:param str internal_env_type: the internal env type, can be `DEEP_HUB_IMAGE_CLASSIFICATION_CODE_ENV`, `DEEP_HUB_IMAGE_OBJECT_DETECTION_CODE_ENV`, `PROXY_MODELS_CODE_ENV`, `DATABRICKS_UTILS_CODE_ENV`, `PII_DETECTION_CODE_ENV`, `HUGGINGFACE_LOCAL_CODE_ENV`, `RAG_CODE_ENV`, `DOCUMENT_EXTRACTION_CODE_ENV`, `DOCUMENT_TEMPLATING_CODE_ENV`.
|
|
963
|
+
:param str internal_env_type: the internal env type, can be `DEEP_HUB_IMAGE_CLASSIFICATION_CODE_ENV`, `DEEP_HUB_IMAGE_OBJECT_DETECTION_CODE_ENV`, `PROXY_MODELS_CODE_ENV`, `DATABRICKS_UTILS_CODE_ENV`, `PII_DETECTION_CODE_ENV`, `HUGGINGFACE_LOCAL_CODE_ENV`, `RAG_CODE_ENV`, `DOCUMENT_EXTRACTION_CODE_ENV`, `DOCUMENT_TEMPLATING_CODE_ENV`, `HUGGINGFACE_LOCAL_CPU_CODE_ENV`.
|
|
964
964
|
:param str python_interpreter: Python interpreter version, can be `PYTHON39`, `PYTHON310`, `PYTHON311`, `PYTHON312` or `PYTHON313`. If None, DSS will try to select a supported & available interpreter.
|
|
965
965
|
:param str code_env_version: Version of the code env. Reserved for future use.
|
|
966
966
|
:param bool wait: wait for the code env to be created or return a future
|
|
@@ -1828,6 +1828,9 @@ class DSSClient(object):
|
|
|
1828
1828
|
"""
|
|
1829
1829
|
Returns a dictionary with information about licensing status of this DSS instance
|
|
1830
1830
|
|
|
1831
|
+
Note:
|
|
1832
|
+
The API is not available on Cloud. Use the Launchpad or Launchpad API.
|
|
1833
|
+
|
|
1831
1834
|
:rtype: dict
|
|
1832
1835
|
"""
|
|
1833
1836
|
return self._perform_json("GET", "/admin/licensing/status")
|
|
@@ -1836,6 +1839,9 @@ class DSSClient(object):
|
|
|
1836
1839
|
"""
|
|
1837
1840
|
Sets a new licence for DSS
|
|
1838
1841
|
|
|
1842
|
+
Note:
|
|
1843
|
+
The API is not available on Cloud. Use the Launchpad or Launchpad API.
|
|
1844
|
+
|
|
1839
1845
|
:param license: license (content of license file)
|
|
1840
1846
|
:return: None
|
|
1841
1847
|
"""
|
|
@@ -75,6 +75,7 @@ class FMInstanceCreator(object):
|
|
|
75
75
|
data_volume_IOPS=None,
|
|
76
76
|
data_volume_encryption=None,
|
|
77
77
|
data_volume_encryption_key=None,
|
|
78
|
+
data_volume_throughput=None,
|
|
78
79
|
):
|
|
79
80
|
"""
|
|
80
81
|
Set the options of the data volume to use with the DSS Instance
|
|
@@ -86,6 +87,7 @@ class FMInstanceCreator(object):
|
|
|
86
87
|
:param data_volume_encryption: Optional, encryption mode of the data volume
|
|
87
88
|
:type data_volume_encryption: :class:`dataikuapi.fm.instances.FMInstanceEncryptionMode`
|
|
88
89
|
:param str data_volume_encryption_key: Optional, the encryption key to use when data_volume_encryption_key is FMInstanceEncryptionMode.CUSTOM
|
|
90
|
+
:param int data_volume_throughput: Optional, data volume throughput
|
|
89
91
|
:rtype: :class:`dataikuapi.fm.instances.FMInstanceCreator`
|
|
90
92
|
"""
|
|
91
93
|
if not data_volume_encryption:
|
|
@@ -99,6 +101,7 @@ class FMInstanceCreator(object):
|
|
|
99
101
|
self.data["dataVolumeSizeGB"] = data_volume_size
|
|
100
102
|
self.data["dataVolumeSizeMaxGB"] = data_volume_size_max
|
|
101
103
|
self.data["dataVolumeIOPS"] = data_volume_IOPS
|
|
104
|
+
self.data["dataVolumeThroughput"] = data_volume_throughput
|
|
102
105
|
self.data["volumesEncryption"] = data_volume_encryption.value
|
|
103
106
|
self.data["volumesEncryptionKey"] = data_volume_encryption_key
|
|
104
107
|
return self
|
|
@@ -673,6 +673,9 @@ class GovernClient(object):
|
|
|
673
673
|
"""
|
|
674
674
|
Returns a dictionary with information about licensing status of this Dataiku Govern instance
|
|
675
675
|
|
|
676
|
+
Note:
|
|
677
|
+
The API is not available on Cloud. Use the Launchpad or Launchpad API.
|
|
678
|
+
|
|
676
679
|
:rtype: dict
|
|
677
680
|
"""
|
|
678
681
|
return self._perform_json("GET", "/admin/licensing/status")
|
|
@@ -681,6 +684,9 @@ class GovernClient(object):
|
|
|
681
684
|
"""
|
|
682
685
|
Sets a new licence for Dataiku Govern
|
|
683
686
|
|
|
687
|
+
Note:
|
|
688
|
+
The API is not available on Cloud. Use the Launchpad or Launchpad API.
|
|
689
|
+
|
|
684
690
|
:param license: license (content of license file)
|
|
685
691
|
:return: None
|
|
686
692
|
"""
|
|
@@ -30,7 +30,7 @@ class LaunchpadGroup:
|
|
|
30
30
|
group = client.build_group("Designers", "Designer group", ["user@example.com"])
|
|
31
31
|
group.launchpad_permissions = {"mayTurnOnSpace": True}
|
|
32
32
|
group.update_permissions({"mayCreateProjects": True}, node_type="dataiku")
|
|
33
|
-
group.update_permissions({"
|
|
33
|
+
group.update_permissions({"isGovernArchitect": True}, node_type="govern")
|
|
34
34
|
group.save()
|
|
35
35
|
|
|
36
36
|
# Get a group
|