fiddler-client 3.1.0.dev1__py3-none-any.whl → 3.1.0.dev2__py3-none-any.whl

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.
fiddler/VERSION CHANGED
@@ -1 +1 @@
1
- 3.1.0.dev1
1
+ 3.1.0.dev2
fiddler/entities/model.py CHANGED
@@ -548,6 +548,7 @@ class Model(
548
548
  class ModelCompact:
549
549
  id: UUID
550
550
  name: str
551
+ version: str | None = None
551
552
 
552
553
  def fetch(self) -> Model:
553
554
  """Fetch model instance"""
@@ -565,4 +566,8 @@ class ModelCompactMixin:
565
566
  'response.'
566
567
  )
567
568
 
568
- return ModelCompact(id=response.model.id, name=response.model.name)
569
+ return ModelCompact(
570
+ id=response.model.id,
571
+ name=response.model.name,
572
+ version=response.model.version,
573
+ )
@@ -1,4 +1,4 @@
1
- from typing import Any, Dict, List, Optional, Type, TypeVar
1
+ from typing import Any, Dict, List, Optional, Type, TypeVar, Literal
2
2
 
3
3
  from pydantic import BaseModel, validator
4
4
 
@@ -10,18 +10,12 @@ CustomFeatureTypeVar = TypeVar('CustomFeatureTypeVar', bound='CustomFeature')
10
10
 
11
11
  class CustomFeature(BaseModel):
12
12
  name: str
13
- type: CustomFeatureType
14
- n_clusters: Optional[int] = DEFAULT_NUM_CLUSTERS
15
- centroids: Optional[List] = None
16
-
17
- @validator('n_clusters')
18
- def validate_n_clusters(cls, value: int) -> int: # noqa: N805
19
- if value < 0:
20
- raise ValueError('n_clusters must be greater than 0')
21
- return value
13
+ type: Any
22
14
 
23
15
  class Config:
24
16
  allow_mutation = False
17
+ use_enum_values = True
18
+ discriminator = 'type'
25
19
 
26
20
  @classmethod
27
21
  def from_columns(
@@ -53,12 +47,13 @@ class CustomFeature(BaseModel):
53
47
  return_dict: Dict[str, Any] = {
54
48
  'name': self.name,
55
49
  'type': self.type.value,
56
- 'n_clusters': self.n_clusters,
57
50
  }
58
51
  if isinstance(self, Multivariate):
59
52
  return_dict['columns'] = self.columns
53
+ return_dict['n_clusters'] = self.n_clusters
60
54
  elif isinstance(self, VectorFeature):
61
55
  return_dict['column'] = self.column
56
+ return_dict['n_clusters'] = self.n_clusters
62
57
  if isinstance(self, (ImageEmbedding, TextEmbedding)):
63
58
  return_dict['source_column'] = self.source_column
64
59
  if isinstance(self, TextEmbedding):
@@ -74,7 +69,9 @@ class CustomFeature(BaseModel):
74
69
 
75
70
 
76
71
  class Multivariate(CustomFeature):
77
- type: CustomFeatureType = CustomFeatureType.FROM_COLUMNS
72
+ type: Literal['FROM_COLUMNS'] = CustomFeatureType.FROM_COLUMNS.value
73
+ n_clusters: Optional[int] = DEFAULT_NUM_CLUSTERS
74
+ centroids: Optional[List] = None
78
75
  columns: List[str]
79
76
  monitor_components: bool = False
80
77
 
@@ -84,22 +81,31 @@ class Multivariate(CustomFeature):
84
81
  raise ValueError('Multivariate columns must be greater than 1')
85
82
  return value
86
83
 
84
+ @validator('n_clusters')
85
+ def validate_n_clusters(cls, value: int) -> int: # noqa: N805
86
+ if value < 0:
87
+ raise ValueError('n_clusters must be greater than 0')
88
+ return value
89
+
87
90
 
88
91
  class VectorFeature(CustomFeature):
89
- type: CustomFeatureType = CustomFeatureType.FROM_VECTOR
90
- source_column: Optional[str] = None
92
+ type: Literal['FROM_VECTOR'] = CustomFeatureType.FROM_VECTOR.value
93
+ n_clusters: Optional[int] = DEFAULT_NUM_CLUSTERS
94
+ centroids: Optional[List] = None
91
95
  column: str
92
96
 
97
+ @validator('n_clusters')
98
+ def validate_n_clusters(cls, value: int) -> int: # noqa: N805
99
+ if value < 0:
100
+ raise ValueError('n_clusters must be greater than 0')
101
+ return value
102
+
93
103
 
94
104
  class TextEmbedding(VectorFeature):
95
- type: CustomFeatureType = CustomFeatureType.FROM_TEXT_EMBEDDING
105
+ type: Literal['FROM_TEXT_EMBEDDING'] = CustomFeatureType.FROM_TEXT_EMBEDDING.value # type: ignore
106
+ source_column: str
96
107
  n_tags: Optional[int] = DEFAULT_NUM_TAGS
97
-
98
- @validator('source_column')
99
- def validate_source_column(cls, value: str) -> str: # noqa: N805
100
- if value is None:
101
- raise ValueError('source_column must be specified')
102
- return value
108
+ tf_idf: Optional[Dict[str, List]] = None
103
109
 
104
110
  @validator('n_tags')
105
111
  def validate_n_tags(cls, value: int) -> int: # noqa: N805
@@ -109,13 +115,8 @@ class TextEmbedding(VectorFeature):
109
115
 
110
116
 
111
117
  class ImageEmbedding(VectorFeature):
112
- type: CustomFeatureType = CustomFeatureType.FROM_IMAGE_EMBEDDING
113
-
114
- @validator('source_column')
115
- def validate_source_column(cls, value: str) -> str: # noqa: N805
116
- if value is None:
117
- raise ValueError('source_column must be specified')
118
- return value
118
+ type: Literal['FROM_IMAGE_EMBEDDING'] = CustomFeatureType.FROM_IMAGE_EMBEDDING.value # type: ignore
119
+ source_column: str
119
120
 
120
121
 
121
122
  class Enrichment(CustomFeature):
@@ -134,7 +135,7 @@ class Enrichment(CustomFeature):
134
135
  """
135
136
 
136
137
  # Setting the feature type to ENRICHMENT
137
- type: CustomFeatureType = CustomFeatureType.ENRICHMENT
138
+ type: Literal['ENRICHMENT'] = CustomFeatureType.ENRICHMENT.value
138
139
 
139
140
  # List of input column names used to generate the enrichment
140
141
  columns: List[str]
fiddler/schemas/model.py CHANGED
@@ -17,6 +17,7 @@ from fiddler.schemas.xai_params import XaiParams
17
17
  class ModelCompactResp(BaseModel):
18
18
  id: UUID
19
19
  name: str
20
+ version: Optional[str]
20
21
 
21
22
 
22
23
  class ModelResp(BaseModel):
@@ -1,8 +1,8 @@
1
- from typing import List
1
+ from typing import List, Union
2
2
 
3
- from pydantic import BaseModel
3
+ from pydantic import BaseModel, Field
4
4
 
5
- from fiddler.schemas.custom_features import CustomFeature
5
+ from fiddler.schemas.custom_features import Multivariate, VectorFeature, TextEmbedding, ImageEmbedding, Enrichment
6
6
 
7
7
 
8
8
  class ModelSpec(BaseModel):
@@ -11,20 +11,22 @@ class ModelSpec(BaseModel):
11
11
  schema_version: int = 1
12
12
  """Schema version"""
13
13
 
14
- inputs: List[str] = []
14
+ inputs: List[str] = Field(default_factory=list)
15
15
  """Feature columns"""
16
16
 
17
- outputs: List[str] = []
17
+ outputs: List[str] = Field(default_factory=list)
18
18
  """Prediction columns"""
19
19
 
20
- targets: List[str] = []
20
+ targets: List[str] = Field(default_factory=list)
21
21
  """Label columns"""
22
22
 
23
- decisions: List[str] = []
23
+ decisions: List[str] = Field(default_factory=list)
24
24
  """Decisions columns"""
25
25
 
26
- metadata: List[str] = []
26
+ metadata: List[str] = Field(default_factory=list)
27
27
  """Metadata columns"""
28
28
 
29
- custom_features: List[CustomFeature] = []
29
+ custom_features: List[Union[Multivariate, VectorFeature, TextEmbedding, ImageEmbedding, Enrichment]] = Field(
30
+ default_factory=list
31
+ )
30
32
  """Custom feature definitions"""
@@ -20,6 +20,7 @@ from fiddler.tests.constants import (
20
20
  DATASET_NAME,
21
21
  MODEL_ID,
22
22
  MODEL_NAME,
23
+ MODEL_VERSION,
23
24
  PROJECT_ID,
24
25
  PROJECT_NAME,
25
26
  USER_EMAIL,
@@ -39,7 +40,9 @@ class DummyEntity(
39
40
  def __init__(self) -> None:
40
41
  self._resp = mock.MagicMock()
41
42
  self._resp.project = ProjectCompactResp(id=PROJECT_ID, name=PROJECT_NAME)
42
- self._resp.model = ModelCompactResp(id=MODEL_ID, name=MODEL_NAME)
43
+ self._resp.model = ModelCompactResp(
44
+ id=MODEL_ID, name=MODEL_NAME, version=MODEL_VERSION
45
+ )
43
46
  self._resp.dataset = DatasetCompactResp(
44
47
  id=DATASET_ID, name=DATASET_NAME, type=EnvType.PRE_PRODUCTION
45
48
  )
@@ -0,0 +1,45 @@
1
+ Metadata-Version: 2.1
2
+ Name: fiddler-client
3
+ Version: 3.1.0.dev2
4
+ Summary: Python client for Fiddler Platform
5
+ Home-page: https://fiddler.ai
6
+ Author: Fiddler Labs
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: License :: OSI Approved :: Apache Software License
9
+ Classifier: Operating System :: OS Independent
10
+ Requires-Python: >3.8.0
11
+ Description-Content-Type: text/markdown
12
+ License-File: LICENSE.txt
13
+ Requires-Dist: pip >=21.0
14
+ Requires-Dist: requests <3
15
+ Requires-Dist: requests-toolbelt
16
+ Requires-Dist: pandas >=1.2.5
17
+ Requires-Dist: pydantic <2,>=1.9.0
18
+ Requires-Dist: deprecated ==1.2.13
19
+ Requires-Dist: tqdm
20
+ Requires-Dist: simplejson >=3.17.0
21
+ Requires-Dist: pyarrow >=7.0.0
22
+ Requires-Dist: pyyaml
23
+
24
+ Fiddler Client
25
+ =============
26
+
27
+ Python client for interacting with Fiddler. Provides a user-friendly interface to our REST API and enables event
28
+ publishing for use with our monitoring features.
29
+
30
+ Requirements
31
+ ------------
32
+ Requires Python >= Python-3.6.3 and pip >= 19.0
33
+
34
+ Installation
35
+ ------------
36
+
37
+ $ pip3 install fiddler-client
38
+
39
+ API Example Usage
40
+ -------------
41
+ Documentation for the API can be found [here](https://docs.fiddler.ai/reference/about-the-fiddler-client). For examples of interacting with our APIs, please check out our [Quick Start Guide](https://docs.fiddler.ai/docs/quick-start) as well as the notebooks found on our [Examples Github](https://github.com/fiddler-labs/fiddler-examples).
42
+
43
+ Version History
44
+ -------------
45
+ Version history is available on [Fiddler documentation page](https://docs.fiddler.ai/page/python-client-version-history).
@@ -1,4 +1,4 @@
1
- fiddler/VERSION,sha256=OSg_m1-GiMUFyiK5ruWqv__EjzZJf10D747c9UNhJwA,11
1
+ fiddler/VERSION,sha256=WD4o9JNY0sUSbj2lyaWkw1u_ZLCHeKFmWEpL-GcrgSI,11
2
2
  fiddler/__init__.py,sha256=U9g19CmjOoli4bMAcD_LD-qTmFFBG3uCCIFm34vcTac,3757
3
3
  fiddler/configs.py,sha256=ZimSo0Gk7j1BFkjDHdRdycrGZ8oh-7G5TBXYiOh1HvU,217
4
4
  fiddler/connection.py,sha256=fLdSXpu5dwoK-h4Vtc9nbdKENOJ7jfEmrnDhVAtChck,5677
@@ -25,7 +25,7 @@ fiddler/entities/dataset.py,sha256=kwD1pZMG6DQGIjejU7A2KUUBRgOi0o1qbbUX-PSlnGg,4
25
25
  fiddler/entities/events.py,sha256=SGA4GFmEzS9U7osodTNslfyoXhJe0j_GgyGmgkCXluk,4291
26
26
  fiddler/entities/file.py,sha256=dk8ISfjy0--F2eF23Ae8vGiEZmJW6e9LMqNmKfrY2mE,4710
27
27
  fiddler/entities/job.py,sha256=Feiqo6ns4bRcp2uaV-kuGYAKs90-aYXvzqqi1yLivYE,5220
28
- fiddler/entities/model.py,sha256=J9jb-5BH_DWSyyOoFW9yT45K4BBAvTRcY8G5vgoQiT8,18503
28
+ fiddler/entities/model.py,sha256=NS_pTF2XyfsSVPbcttf3E1b1-BCwbGlvm5GOJNu_Oxw,18613
29
29
  fiddler/entities/model_artifact.py,sha256=Y7o1mFs-nVDz7HI9mVBu9ICwkqGD_QbT3q6vf8KKesk,5520
30
30
  fiddler/entities/model_deployment.py,sha256=mxEsMYiUO-m9X1ND7UuJ1b3LgEcyvOM5PMEmRvOuftk,3769
31
31
  fiddler/entities/organization.py,sha256=XvUAdBUOYXzdmblxIs4hi0mAg45NtAwy5DBaMiqi47o,1074
@@ -49,16 +49,16 @@ fiddler/schemas/alert_rule.py,sha256=-V0AibEImrfcEZfJ4J_Ed5SuZISOGsk-nIoVlX5mOOg
49
49
  fiddler/schemas/base.py,sha256=upzAmneEz169h_w-UDH_tY0Abo7DeK68YOZ5qVwIMa8,189
50
50
  fiddler/schemas/baseline.py,sha256=tBQji1GLYt0ZYgEK6ZTmXxk5nUYTI6oxMmSjNXnRfWw,933
51
51
  fiddler/schemas/custom_expression.py,sha256=6Y4Q89HIOjUwVS9u9-wMAXvcPMmtQ7puLEkx27Gr-wY,844
52
- fiddler/schemas/custom_features.py,sha256=G0UqikCyvhnLg6oUAutvq4mEsGgVcLkPlJaMCbRZj68,5382
52
+ fiddler/schemas/custom_features.py,sha256=U33Rlyt9TxNqEQ2_3aQTgvlIuI2_QPg-6YnQBzJuyoE,5531
53
53
  fiddler/schemas/dataset.py,sha256=rGmpMrMfPLSs9d3_sxDTjrKqWp-o-bCe9pf_nlYyHfw,657
54
54
  fiddler/schemas/events.py,sha256=dH6SGPBO_rgGZetIhSo4Fq0L1pTU7TEKR7zW7gg3fnI,409
55
55
  fiddler/schemas/file.py,sha256=z_7bOxKbwQsgI8F7MMQvC6RE5dgdzYCMyD5XcBirjCc,462
56
56
  fiddler/schemas/filter_query.py,sha256=XP8SoFGSJOo9yf3fA9dPqpKdCJuaUpbKbYixn46lBF0,1325
57
57
  fiddler/schemas/job.py,sha256=6q3SiHp43ah0R0eIO77DNgJRug-dejI13NZAd_7c0sk,354
58
- fiddler/schemas/model.py,sha256=mGMTszQL-VpcRl9yXsYdN5UnTXuCA0B8rvmyxktNUZs,1378
58
+ fiddler/schemas/model.py,sha256=d9NZy-RvQ1rOj8KaPXF4jQcUfsw6qJteMyG3LgyR3Lc,1405
59
59
  fiddler/schemas/model_deployment.py,sha256=s1moOBT7JIMWgGZ4ALxgZJhB4ulVK6i2VkNp7_mOJKo,1128
60
60
  fiddler/schemas/model_schema.py,sha256=nagwbYFoWG6CzBTYYYuQNMpGfA6i9da_WPa8uO2IBCo,1914
61
- fiddler/schemas/model_spec.py,sha256=RiZd-efabsJVfHCI5kXRs_6RrWj4xZB6vqajHSDqxgc,642
61
+ fiddler/schemas/model_spec.py,sha256=alDjVaDwh0PPuSCO58C_HaR9v5xOHv9WrUDjQ6e7QW4,941
62
62
  fiddler/schemas/model_task_params.py,sha256=pDueFuk0yNqBLxQFW0ZhwdvU_JwYmXBSiRY4BoJOS8w,691
63
63
  fiddler/schemas/organization.py,sha256=cZ80vIWAzmDhiSlrelSLJ66eKdSr0oX64z4t4rR0Gqo,281
64
64
  fiddler/schemas/project.py,sha256=gOVFpt-gFQt5opMlBUiDtcSjJtgyHauyBVVyPpnbYt4,379
@@ -86,7 +86,7 @@ fiddler/tests/apis/test_events.py,sha256=GzdfSqBN0WAGCIjWKmz1WPHsRafBiZnWtmd8fei
86
86
  fiddler/tests/apis/test_files.py,sha256=-BisPck7bHMSW3N40ffdQJe027Qe3079tjTlU2OI9DU,4501
87
87
  fiddler/tests/apis/test_generate_model.py,sha256=J8foDsZIUoHJyzLODQM57jw8OFVD81jc67RIubq-CVs,5089
88
88
  fiddler/tests/apis/test_job.py,sha256=GlJXhxK60q9u5QJ6ToLrw4y1G3M0DzAAR2u-JDbk3D0,1891
89
- fiddler/tests/apis/test_mixin.py,sha256=CmiyAch8Mzoi3Jru-8PWVxWlX-y30WMuoymSc9QXFwc,2453
89
+ fiddler/tests/apis/test_mixin.py,sha256=RhA2pY1MXrqxNQG8ujVLvTMBT4iZBwa6Y3Nk0TRfI1o,2517
90
90
  fiddler/tests/apis/test_model.py,sha256=AL4BdP8vZjRLkh0XESFKjLzg5gVG-vxhnyE6adku6tA,18346
91
91
  fiddler/tests/apis/test_model_artifact.py,sha256=oQVasstDc41EesAzN39wCTZi7KtpeQdVcGcLxERjmw0,5635
92
92
  fiddler/tests/apis/test_model_deployment.py,sha256=AWGdbepFrU3qT17XAZC68n8LlXh7OKNqSwg3_ug9G5I,2441
@@ -101,8 +101,8 @@ fiddler/utils/logger.py,sha256=FdJ3LkS9dbRjWsw5oJmNNsd7q0XRVEIvx5-TWys7L0k,669
101
101
  fiddler/utils/model_generator.py,sha256=TwQMQDpy-0gcq6HyL68s37N-sk_nGPq33mmppK6i7hI,2203
102
102
  fiddler/utils/validations.py,sha256=i8NtgrpCsitq6BPa5lygpKDh07oaOXu7PAlCIcMvqzY,408
103
103
  fiddler/utils/version.py,sha256=iC8Ry7UFl9EJW_xU1WbzO_l4yK6V7eQ6U5exB3xT864,531
104
- fiddler_client-3.1.0.dev1.dist-info/LICENSE.txt,sha256=w8-LUAb_VLBWSsCNmih0pAqLIicJfGu8OJXpDjkIg_o,559
105
- fiddler_client-3.1.0.dev1.dist-info/METADATA,sha256=V8DvhQQmpuFptAUCsonzdA6mmbEVYzQmtU_qxMR0pUU,20679
106
- fiddler_client-3.1.0.dev1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
107
- fiddler_client-3.1.0.dev1.dist-info/top_level.txt,sha256=ndC6LqvKmrTTs8czRlBOYdYgSqZbHuMf0zHt_HWpzzk,8
108
- fiddler_client-3.1.0.dev1.dist-info/RECORD,,
104
+ fiddler_client-3.1.0.dev2.dist-info/LICENSE.txt,sha256=w8-LUAb_VLBWSsCNmih0pAqLIicJfGu8OJXpDjkIg_o,559
105
+ fiddler_client-3.1.0.dev2.dist-info/METADATA,sha256=5DHmXRtXAVN1tadTh3bHPQf0s4l00jTzcJjaEHZlBDA,1556
106
+ fiddler_client-3.1.0.dev2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
107
+ fiddler_client-3.1.0.dev2.dist-info/top_level.txt,sha256=ndC6LqvKmrTTs8czRlBOYdYgSqZbHuMf0zHt_HWpzzk,8
108
+ fiddler_client-3.1.0.dev2.dist-info/RECORD,,
@@ -1,538 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: fiddler-client
3
- Version: 3.1.0.dev1
4
- Summary: Python client for Fiddler Platform
5
- Home-page: https://fiddler.ai
6
- Author: Fiddler Labs
7
- Classifier: Programming Language :: Python :: 3
8
- Classifier: License :: OSI Approved :: Apache Software License
9
- Classifier: Operating System :: OS Independent
10
- Requires-Python: >3.8.0
11
- Description-Content-Type: text/markdown
12
- License-File: LICENSE.txt
13
- Requires-Dist: pip >=21.0
14
- Requires-Dist: requests <3
15
- Requires-Dist: requests-toolbelt
16
- Requires-Dist: pandas >=1.2.5
17
- Requires-Dist: pydantic <2,>=1.9.0
18
- Requires-Dist: deprecated ==1.2.13
19
- Requires-Dist: tqdm
20
- Requires-Dist: simplejson >=3.17.0
21
- Requires-Dist: pyarrow >=7.0.0
22
- Requires-Dist: pyyaml
23
-
24
- Fiddler Client
25
- =============
26
-
27
- Python client for interacting with Fiddler. Provides a user-friendly interface to our REST API and enables event
28
- publishing for use with our monitoring features.
29
-
30
- Requirements
31
- ------------
32
- Requires Python >= Python-3.6.3 and pip >= 19.0
33
-
34
- Installation
35
- ------------
36
-
37
- $ pip3 install fiddler-client
38
-
39
- API Example Usage
40
- -------------
41
- Documentation for the API can be found [here](https://docs.fiddler.ai/reference/about-the-fiddler-client). For examples of interacting with our APIs, please check out our [Quick Start Guide](https://docs.fiddler.ai/docs/quick-start) as well as the notebooks found on our [Examples Github](https://github.com/fiddler-labs/fiddler-examples).
42
-
43
- Version History
44
- -------------
45
- ### 2.5.0
46
- - #### **New Features**
47
- - Add support for enrichments
48
- - Allow pausing multiple alerts at once
49
- - Add percentage violation metrics for alert
50
- - Support for alert revisions
51
-
52
- ### 2.4.1
53
- - ### **Modifications**
54
- - Fix slice query with `vector` type columns
55
-
56
- ### 2.4.0
57
- - ### **New Features**
58
- - Add support for segments
59
- - #### **Modifications**
60
- - Ensure `TextEmbedding` and `ImageEmbedding` is supported for vectors in metadata
61
-
62
- ### 2.3.0
63
- - #### **New Features**
64
- - Added support for creating alerts on the `Frequency` metric.
65
- - #### **Modifications**
66
- - Relax pydantic version to allow any version between 1.9 and 2
67
-
68
- ### 2.2.1
69
- - #### **Modifications**
70
- - Relax pydantic version to allow any version between 1.9 and 2
71
-
72
- ### 2.2.0
73
- - #### **Modifications**
74
- - `add_custom_metric()` supports an optional `description` parameter
75
- - `fql` is renamed to `definition` in `add_custom_metric()`
76
- - A new `get_custom_metric()` function to get details about a single custom metric.
77
-
78
- ### 2.1.2
79
- - #### **Modifications**
80
- - Relax pydantic version to allow any version between 1.9 and 2
81
-
82
- ### 2.1.1
83
- - #### **Modifications**
84
- - Update `pyarrow` requirement to `7.0.0`.
85
-
86
- ### 2.1.0
87
- - #### **New Features**
88
- - Introduce Model Tasks `NOT_SET` and `LLM`
89
- - Relax Target / Output specification for model tasks `NOT_SET` and `LLM`
90
- - Support custom metrics
91
- - #### **Modifications**
92
- - `DatasetDataSource` and `EventIdDataSource` will take `dataset_id` instead of `dataset_name`
93
- - `list_baselines()` to return baseline names instead of baseline objects
94
-
95
- ### 2.0.8
96
- - #### **Modifications**
97
- - Relax pydantic version to allow any version between 1.9 and 2
98
-
99
- ### 2.0.7
100
- - #### **Modifications**
101
- - Support string metric types for alert creation, for server 23.7.
102
-
103
- ### 2.0.6
104
- - #### **Modifications**
105
- - Update `pyarrow` requirement to `7.0.0`.
106
-
107
- ### 2.0.5
108
- - #### **Modifications**
109
- - Fix for a minor bug in `fdl.DatasetInfo.from_dataframe()`
110
-
111
- ### 2.0.4
112
- - #### **Modifications**
113
- - Update `pyarrow` requirement to `13.0.0`.
114
-
115
- ### 2.0.3
116
- - #### **Modifications**
117
- - Relax pandas version for 2.0.
118
- - get_slice() `query` parameter reverted to `sql_query`
119
-
120
- ### 2.0.2
121
- - #### **Modifications**
122
- - Fix Parquet conversion issue in `upload_dataset` and `publish_event_batch`
123
-
124
- ### 2.0.1
125
- - #### **Removed**
126
- - Following methods are removed
127
- - register_model
128
- - upload_model_package
129
- - update_model
130
- - trigger_pre_computation
131
- - _trigger_model_predictions
132
- - generate_sample_events
133
- - list_teams
134
- - list_project_roles
135
- - list_org_roles
136
- - unshare_project
137
- - share_project
138
- - process_avro
139
- - process_csv
140
- - #### **New Features**
141
- - Add `monitor_components` as an attribute for `CustomFeature` of type `FROM_COLUMNS`. Default as `False`
142
- - Adds new statistic type `SUM` to supported alert metrics
143
- - Support `CustomFeature` of type `FROM_VECTOR` `FROM_TEXT_EMBEDDING` and `FROM_IMAGE_EMBEDDING`
144
- - #### **Modificatiosn**
145
- - Remove `column` as a parameter in `add_alert_rule` and `get_alert_rules` functions
146
- - Default `FileType` Parquet in `upload_dataset` and `publish_event_batch`
147
- - - get_slice() `sql_query` parameter changed to `query`
148
-
149
- ### 1.8.6
150
- - #### **Modifications**
151
- - Relax pandas version for 2.0.
152
-
153
- ### 1.8.4
154
- - #### **New Features**
155
- - New DeploymentType enum for `MANUAL` deployment
156
-
157
- ### 1.8.3
158
- - #### **Modifications**
159
- - New `columns` parameter in add_alert_rule and get_alert_rules to support multiple columns to be used for server version >= 23.3.0
160
- - get_triggered_alerts supports `alert_value` as a float as well as a dict
161
-
162
- ### 1.8.2
163
- - #### **Modifications**
164
- - Fixed a bug where `min` and `max` for columns of type `float` in `dataset_info` are cast into `int` after uploaded
165
-
166
- ### 1.8.1
167
- - #### **Modifications**
168
- - Fixed a bug wherein null string was going in request body if body wasn't specified.
169
- - Fix `categorical_target_class_details` when passed as an array
170
- - Fix a bug where `fdl.ModelInputType.TEXT` were not being accepted properly
171
- - Fix `categorical_target_class_details` when passed as an empty list
172
-
173
-
174
- ### 1.8.0
175
- - #### **Modifications**
176
- - Add new alert type - `statistic` for setting alerts
177
- - Add `target_class_order` as a required field of `ModelInfo` object when `model_task` is `MULTICLASS_CLASSIFICATION`,
178
- `RANKING` or `BINARY_CLASSIFICATION`. Only applies for `BINARY_CLASSIFICATION` when target column is of type `CATEGORY`
179
- - Add `columns` as a parameter in `add_alert_rule` and `get_alert_rules` functions
180
- - Add deprecation warning for `column` as a parameter in `add_alert_rule` and `get_alert_rules` functions
181
-
182
- ### 1.7.4
183
- - #### **Modification**
184
- - Do not typecast column with strings in get_slice()
185
-
186
- ### 1.7.3
187
- - #### **Modification**
188
- - Send row and column count information to dataset upload api
189
-
190
- ### 1.7.2
191
- - #### **Modification**
192
- - Bring back `WeightingParams` object
193
-
194
- ### 1.7.1
195
- - #### **Modification**
196
- - Relaxed boto3 version constraint
197
-
198
- ### 1.7.0
199
- - #### **Removed**
200
- - Remove support for initializing fiddler client with version=1
201
- - Following methods are removed
202
- - get_segment_info
203
- - delete_segment
204
- - deactivate_segment
205
- - activate_segment
206
- - list_segments
207
- - upload_segment
208
- - add_monitoring_config
209
- - publish_parquet_s3
210
- - publish_events_log
211
-
212
- ### 1.6.2
213
- - #### **Modifications**
214
- - Make dataset_id a required field in add_model()
215
- - Update max_inferred_cardinality to 100
216
- - #### **New Features**
217
- - New method for updating a model artifact `update_model_artifact`
218
-
219
- ### 1.5.3
220
- - #### **Modifications**
221
- - Fix add_model_artifact error for NLP models
222
- - Add model_info validation during add_model
223
-
224
- ### 1.5.2
225
- - #### **Modifications**
226
- - Add fix for self signed certificate not working by adding verify param to FiddlerApi
227
-
228
- ### 1.5.1
229
- - #### **Modifications**
230
- - Fix in `violation_of_type` to include numpy dtypes such as `int64`
231
-
232
- ### 1.5.0
233
- - #### **New Features**
234
- - New methods addition for alert rules: `add_alert_rule`, `get_alert_rules`, `delete_alert_rule`
235
- - New method to get triggered alerts for an alert rule: `get_triggered_alerts`
236
-
237
- ### 1.4.5
238
- - #### **Modifications**
239
- - Assert nullable columns in `missing_value_encodings`(If users send non-nullable columns as `missing_value_encodings`, Fiddler converts them as nullable automatically with a warning)
240
-
241
- ### 1.4.4
242
- - #### **Modifications**
243
- - Allow types other than `Column data_type` for `missing_value_encodings`.
244
-
245
- ### 1.4.3
246
- - #### **Modifications**
247
- - Accept `string` `'inf'` in `float` columns in `missing_value_encodings`.
248
-
249
- ### 1.4.2
250
- - #### **New Features**
251
- - Support `missing_value_encodings` as a new field of `model_info` object.
252
- ### 1.4.1
253
- - #### **Modifications**
254
- - Minor bug fix to handle string nan
255
-
256
- ### 1.4.0
257
- - #### **Modifications**
258
- - Default client initiation is now the v2 client
259
- - `publish_events_batch` is now async, returns status id and doesn't wait for the upload to complete.
260
- - Default behavior of all publish data in v2 client is async (`is_sync = False`)
261
-
262
- ### 1.3.0
263
- - #### **New Features**
264
- - New capabilities for Artifact-less Monitoring
265
-
266
- ### 1.2.8
267
- - ### **Modifications**
268
- - Change the `batch_size` argument default to 1000 for `trigger_pre_computation`
269
- - Updated the `delete_model` API default value for the `delete_prod` parameter from False to True.
270
- - We will by default delete all the events associated with the model.
271
-
272
-
273
- ### 1.2.7
274
- - ### **Modifications**
275
- - Added check for "model" key before access in from_dict
276
- - Allow changing artifact_status when updating the model
277
- - Adds docstrings for add_model, add_model_surrogate and add_model_artifact
278
-
279
- ### 1.2.6
280
- - ### **Modifications**
281
- - Fixed publish_events_batch_schema backward compatible.
282
-
283
- ### 1.2.5
284
- - ### **Modifications**
285
- - Added add_model_surrogate and add_model_artifact APIs for artifactless monitoring
286
- - Simplifies the add_model API by removing unnecessary parameters
287
- - Fixed publish_events_batch_schema parameter names.
288
-
289
-
290
- ### 1.2.4
291
- - ### **Modifications**
292
- - Fixed a type coercion bug that caused some get_slice calls to fail cryptically
293
-
294
- ### 1.2.3
295
- - ### **Modifications**
296
- - Map Tree shap values from log odds space to probability space
297
- - Added add_model API for artifactless monitoring
298
- - Fixed bug in request when creating a model using add_model
299
-
300
- ### 1.2.2
301
- - ### **Modifications**
302
- - Fixed a bug that prevented importing the client in some environments.
303
-
304
- ### 1.2.1
305
- - ### **Modifications**
306
- - Removed unnecessary server-client version check that produced an uninformative warning.
307
-
308
- ### 1.2.0
309
- - #### **New Features**
310
- - New `WeightingParams` object. This enables weighted histograms for class-imbalanced models.
311
- - #### **Modifications**
312
- - `update_model` allows some small modifications in model info for the following fields: custom_explanation_names, preferred_explanation_method, display_name, description, framework, algorithm and model_deployment_params
313
-
314
-
315
- ### 1.1.0
316
- - #### **New Features**
317
- - Add v2 client. v2 methods can be accessed either via sub-module (`client.v2.`) or by instantiating the `FiddlerApi` and passing `version=2`.
318
- - #### **Modifications**
319
- - Remove handlers from root logger
320
- - Add url, org_id, auth_token and version validation while instantiating client
321
- - Fix dataset ingestion file extension issue
322
- - init monitoring issue
323
- - Fix publish_event request header bug
324
- - Add `publish_events_batch_dataframe` and `upload_dataset_dataframe` methods
325
- - Support for DatasetInfo class
326
- - Using `http_client` package. A wrapper over `requetsts`.
327
-
328
- ### 1.0.6
329
- - #### **Modifications**
330
- - Add client v2 sub-package.
331
- ### 1.0.5
332
- - ##### **Modifications**
333
- - relax the version requirements for `requests`.
334
- - adds flag to init_monitoring to enable synchronous initialization
335
- ### 1.0.4
336
- - ##### **Modifications**
337
- - Fixed the JSON transformation issue which was forcing `requests` package upgrade issue
338
- ### 1.0.3
339
- - ##### **New Features**
340
- - Tree SHAP Helper.
341
- - ##### **Modifications**
342
- - `fdl.ModelInfo` has an additional optional parameter to enabled Tree Shap
343
-
344
- ### 1.0.2
345
- - ##### **New Features**
346
- - Integrated Gradients Keras TF2 Helpers.
347
- - ##### **Modifications**
348
- - Relax `botocore` version requirements.
349
-
350
- ### 1.0.1
351
- - ##### **Modifications**
352
- - Minor bug fixes and improvements.
353
- - `run_explanation` has two additional optional arguments (`n_permutation` and `n_background`) allowing users to change the default parameters for Fiddler SHAP explanations.
354
-
355
- ### 1.0.0
356
-
357
- Inaugural client for Fiddler 22.0! This version includes numerous improvements for stability, performance, and usability.
358
-
359
- Compatible with server versions >=22.0.0.
360
-
361
- ### 0.8.1.8
362
- - ##### **Modifications**
363
- - Minor bug fixes and improvements.
364
-
365
- ### 0.8.1.7
366
- - ##### **Modifications**
367
- - Minor bug fixes and improvements.
368
-
369
- ### 0.8.1.6
370
- - ##### **Modifications**
371
- - Add a parameter in list_projects API to get detailed project information
372
- - Minor bug fix for the datetime format.
373
-
374
- ### 0.8.1.5
375
- - ##### **Modifications**
376
- - Add a parameter in list_projects API to get detailed project information
377
- - Allow `run_explanation` api call to pass a list of explanation with `ig_flex` and one of the shap algorithm
378
-
379
- ### 0.8.1.4
380
- - ##### **Modifications**
381
- - Minor bugfix for categorical feature drift
382
-
383
- ### 0.8.1.3
384
- - ##### **Modifications**
385
- - Addressed an issue with categorical features with string literals containing numeric content
386
-
387
- ### 0.8.1.2
388
- - ##### **Modifications**
389
- - Implement a ranking surrogate model for ranking task models
390
-
391
- ### 0.8.1.1
392
- - ##### **Modifications**
393
- - change the dependecy of requests package to 0.25.1
394
-
395
- ### 0.8.1
396
- - ##### **Modifications**
397
- - Improved `SegmentInfo` validation.
398
- - make the dependency versions less strict.
399
-
400
- ### 0.8.0
401
- - ##### **New Features**
402
- - New `publish_events_batch_schema` API call, Publishes a batch events object to Fiddler Service using the passed `publish_schema` as a template.
403
- - New Ranking Monitoring capability available with publish_events_batch API
404
- - ##### **Modifications**
405
- - Enforced package versions in setup.py
406
- - `trigger_pre_computation` has an additional optional argument (`cache_dataset`) to enable/disable dataset histograms caching.
407
- - `register_model` has 3 additional optional arguments to enable/disable pdp caching (set to False by default), feature importance caching (set to True by default) and dataset histograms caching (set to True by default).
408
-
409
- ### 0.7.6
410
- - ##### **New Features**
411
- - New segment monitoring related functionality (currently in preview):
412
- - Ability to create and validate `SegmentInfo` objects,
413
- - `upload_segment` BE call,
414
- - `activate_segment` BE call,
415
- - `deactivate_segment` BE call, and
416
- - `list_segments` BE call,
417
- - ##### **Modifications**
418
- - Upon connecting to the server, the client now performs a version check for the *server* by default. Earlier the default was to only do a version check for the client.
419
-
420
- ### 0.7.5
421
- - ##### **New Features**
422
- - New `update_event` parameter for `publish_events_batch` API.
423
- - Changes to `fdl.publish_event()`:
424
- - Renamed parameter `event_time_stamp` to `event_timestamp`
425
- - Added new parameter: `timestamp_format`
426
- - Allows specification of timestamp format using the `FiddlerTimestamp` class
427
-
428
- ### 0.7.4
429
- - ##### **New Features**
430
- - New `initialize_monitoring` API call, sets up monitoring for a model. Intended to also work retroactively for legacy schema.
431
- - ##### **Modifications**
432
- - Modified `DatasetInfo.from_dataframe` and `ModelInfo.from_dataset_info` to take additional `dataset_id` as parameter.
433
- - Modified the `outputs` parameter of `ModelInfo.from_dataset_info` to now expect a dictionary in case of regression tasks, specifying output range.
434
- - Modified the `preferred_explanation_method` parameter of `ModelInfo.from_dataset_info` to accept string names from `custom_explanation_names`. Details in docstring.
435
- - Misc bug fixes and documentation enhancements.
436
-
437
- ### 0.7.3
438
- - ##### **New Features**
439
- - Changed the default display for `ModelInfo` and `DatasetInfo` to render HTML instead of plaintext, when accessed via jupyter notebooks
440
- - Added support for GCP Storage ingestion of log events using `fdl.BatchPublishType.GCP_STORAGE`
441
-
442
- ### 0.7.2
443
- - ##### **New Features**
444
- - Restructured the following arguments for `fdl.ModelInfo.from_dataset_info()`
445
- - Added: `categorical_target_class_details`:
446
- - Mandatory for Multiclass classification tasks, optional for Binary (unused for Regression)
447
- - Used to specify the positive class for Binary classification, and the class order for Multiclass classification
448
- - Modified: `target`:
449
- - No longer optional, models must specify target columns
450
-
451
- ### 0.7.1
452
- - ##### **New Features**
453
- - Restructured the following arguments for `fdl.publish_events_batch()`
454
- - Added: `id_field`:
455
- - Column to extract `id` value from
456
- - Added: `timestamp_format`:
457
- - Format of timestamp within batch object. Can be one of:
458
- - `fdl.FiddlerTimestamp.INFER`
459
- - `fdl.FiddlerTimestamp.EPOCH_MILLISECONDS`
460
- - `fdl.FiddlerTimestamp.EPOCH_SECONDS`
461
- - `fdl.FiddlerTimestamp.ISO_8601`
462
- Removed: `default_timestamp`
463
- - Minor bug fixes
464
- - ##### **Deprecation Warning**
465
- - Support `fdl.publish_events_log` and `fdl.publish_parquet_s3` will soon be
466
- deprecated in favor of `fdl.publish_events_batch()`
467
-
468
-
469
- ### 0.7.0
470
- - ##### **Dataset Refactor**
471
- - Datasets refactored to be members of a Project
472
- - *This is a change promoting Datasets to be first class within Fiddler. It will affects both the UI and several API in Fiddler*
473
- - Many API utilizing Projects will now require `project_id` passed as a parameter
474
- - ##### **New Features**
475
- - Added `fdl.update_model()` to client
476
- - *update the specified model, with model binary and package.py from
477
- the specified model_dir*
478
- - Added `fdl.get_model()` to client
479
- - *download the model binary, package.py and model.yaml to the given
480
- output dir.*
481
- - Added `fdl.publish_events_batch()` to client
482
- - *Publishes a batch events object to Fiddler Service.*
483
- - *Note: Support for other batch methods including `fdl.publish_events_log()`
484
- and `fdl.publish_parquet_s3()` will be deprecated in the near future
485
- in favor of `fdl.publish_events_batch()`*
486
- - ##### **Changes**
487
- - Simplified logic within `fld.upload-dataset()`
488
- - Added client/server handshake for checking version compatibilities
489
- - *Warning issued in case of mismatch*
490
- - Deleted redundant APIs
491
- - `fdl.create_surrogate_model()`
492
- - `fdl.upload_model_sklearn()`
493
- - Restructured APIs to be more duck typing-friendly (relaxing data type restrictions)
494
- - Patches for minor bug-fixes
495
-
496
-
497
- ### 0.6.18
498
- - ##### **Features**
499
- - Minor updates to ease use of binary classification labels
500
-
501
- ### 0.6.17
502
- - ##### **Features**
503
- - Added new arguments to `ModelInfo.from_dataset_info()`
504
- - `preferred_explanation_method` to express a preferred default explanation algorithm for a model
505
- - `custom_explanation_names` to support user-provided explanation algorithms which the user will implement on their model object via package.py.
506
-
507
- ### 0.6.16
508
- - ##### **Features**
509
- - Minor improvements to `publish_events_log()` to circumvent datatype conversion issues
510
-
511
- ### 0.6.15
512
- - ##### **Features**
513
- - Added strict name checks
514
-
515
- ### 0.6.14
516
- - ##### **Features**
517
- - Added client-native multithreading support for `publish_events_log()`
518
- using new parameters `num_threads` and `batch_size`
519
-
520
- ### 0.6.13
521
- - ##### **Features**
522
- - Added `fdl.generate_sample_events()` to client
523
- - *API for generating monitoring traffic to test out Fiddler*
524
- - Added `fdl.trigger_pre_computation()` to client
525
- - *Triggers various precomputation steps within the Fiddler service based on input parameters.*
526
- - Optionally add proxies to FiddlerApi() init
527
-
528
- ### 0.6.12
529
- - ##### **Features**
530
- - Added `fdl.publish_parquet_s3()` to client
531
- - *Publishes parquet events file from S3 to Fiddler instance.
532
- Experimental and may be expanded in the future.*
533
-
534
- ### 0.6.10
535
- - ##### **Features**
536
- - Added `fdl.register_model()` to client
537
- - *Register a model in fiddler. This will generate a surrogate model,
538
- which can be replaced later with original model.*