Skip to content

Commit c21dcec

Browse files
feat: Cid/fetching endpoints
1 parent 178a9d7 commit c21dcec

File tree

8 files changed

+601
-10
lines changed

8 files changed

+601
-10
lines changed

.stats.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
configured_endpoints: 28
2-
openapi_spec_hash: 5f7962599290c70cb47c05c3b29fdbd8
3-
config_hash: f1c0c034bd832878eb47146c51afdd55
1+
configured_endpoints: 29
2+
openapi_spec_hash: 20caa671b1b1a87c0a5cb6ebd7e4b064
3+
config_hash: aaf12ae1da71c62ca5195fc2b66f657c

api.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ Types:
122122
from openlayer.types import (
123123
InferencePipelineRetrieveResponse,
124124
InferencePipelineUpdateResponse,
125+
InferencePipelineRetrieveSessionsResponse,
125126
InferencePipelineRetrieveUsersResponse,
126127
)
127128
```
@@ -131,7 +132,8 @@ Methods:
131132
- <code title="get /inference-pipelines/{inferencePipelineId}">client.inference_pipelines.<a href="./src/openlayer/resources/inference_pipelines/inference_pipelines.py">retrieve</a>(inference_pipeline_id, \*\*<a href="src/openlayer/types/inference_pipeline_retrieve_params.py">params</a>) -> <a href="./src/openlayer/types/inference_pipeline_retrieve_response.py">InferencePipelineRetrieveResponse</a></code>
132133
- <code title="put /inference-pipelines/{inferencePipelineId}">client.inference_pipelines.<a href="./src/openlayer/resources/inference_pipelines/inference_pipelines.py">update</a>(inference_pipeline_id, \*\*<a href="src/openlayer/types/inference_pipeline_update_params.py">params</a>) -> <a href="./src/openlayer/types/inference_pipeline_update_response.py">InferencePipelineUpdateResponse</a></code>
133134
- <code title="delete /inference-pipelines/{inferencePipelineId}">client.inference_pipelines.<a href="./src/openlayer/resources/inference_pipelines/inference_pipelines.py">delete</a>(inference_pipeline_id) -> None</code>
134-
- <code title="get /inference-pipelines/{inferencePipelineId}/users">client.inference_pipelines.<a href="./src/openlayer/resources/inference_pipelines/inference_pipelines.py">retrieve_users</a>(inference_pipeline_id, \*\*<a href="src/openlayer/types/inference_pipeline_retrieve_users_params.py">params</a>) -> <a href="./src/openlayer/types/inference_pipeline_retrieve_users_response.py">InferencePipelineRetrieveUsersResponse</a></code>
135+
- <code title="post /inference-pipelines/{inferencePipelineId}/sessions">client.inference_pipelines.<a href="./src/openlayer/resources/inference_pipelines/inference_pipelines.py">retrieve_sessions</a>(inference_pipeline_id, \*\*<a href="src/openlayer/types/inference_pipeline_retrieve_sessions_params.py">params</a>) -> <a href="./src/openlayer/types/inference_pipeline_retrieve_sessions_response.py">InferencePipelineRetrieveSessionsResponse</a></code>
136+
- <code title="post /inference-pipelines/{inferencePipelineId}/users">client.inference_pipelines.<a href="./src/openlayer/resources/inference_pipelines/inference_pipelines.py">retrieve_users</a>(inference_pipeline_id, \*\*<a href="src/openlayer/types/inference_pipeline_retrieve_users_params.py">params</a>) -> <a href="./src/openlayer/types/inference_pipeline_retrieve_users_response.py">InferencePipelineRetrieveUsersResponse</a></code>
135137

136138
## Data
137139

src/openlayer/resources/inference_pipelines/inference_pipelines.py

Lines changed: 242 additions & 4 deletions
Large diffs are not rendered by default.

src/openlayer/types/__init__.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,9 @@
2424
from .inference_pipeline_retrieve_users_response import (
2525
InferencePipelineRetrieveUsersResponse as InferencePipelineRetrieveUsersResponse,
2626
)
27+
from .inference_pipeline_retrieve_sessions_params import (
28+
InferencePipelineRetrieveSessionsParams as InferencePipelineRetrieveSessionsParams,
29+
)
30+
from .inference_pipeline_retrieve_sessions_response import (
31+
InferencePipelineRetrieveSessionsResponse as InferencePipelineRetrieveSessionsResponse,
32+
)
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from __future__ import annotations
4+
5+
from typing import Union, Iterable, Optional
6+
from typing_extensions import Literal, Required, Annotated, TypeAlias, TypedDict
7+
8+
from .._types import SequenceNotStr
9+
from .._utils import PropertyInfo
10+
11+
__all__ = [
12+
"InferencePipelineRetrieveSessionsParams",
13+
"ColumnFilter",
14+
"ColumnFilterSetColumnFilter",
15+
"ColumnFilterNumericColumnFilter",
16+
"ColumnFilterStringColumnFilter",
17+
]
18+
19+
20+
class InferencePipelineRetrieveSessionsParams(TypedDict, total=False):
21+
asc: bool
22+
"""Whether or not to sort on the sortColumn in ascending order."""
23+
24+
page: int
25+
"""The page to return in a paginated query."""
26+
27+
per_page: Annotated[int, PropertyInfo(alias="perPage")]
28+
"""Maximum number of items to return per page."""
29+
30+
sort_column: Annotated[str, PropertyInfo(alias="sortColumn")]
31+
"""Name of the column to sort on"""
32+
33+
column_filters: Annotated[Optional[Iterable[ColumnFilter]], PropertyInfo(alias="columnFilters")]
34+
35+
exclude_row_id_list: Annotated[Optional[Iterable[int]], PropertyInfo(alias="excludeRowIdList")]
36+
37+
not_search_query_and: Annotated[Optional[SequenceNotStr[str]], PropertyInfo(alias="notSearchQueryAnd")]
38+
39+
not_search_query_or: Annotated[Optional[SequenceNotStr[str]], PropertyInfo(alias="notSearchQueryOr")]
40+
41+
row_id_list: Annotated[Optional[Iterable[int]], PropertyInfo(alias="rowIdList")]
42+
43+
search_query_and: Annotated[Optional[SequenceNotStr[str]], PropertyInfo(alias="searchQueryAnd")]
44+
45+
search_query_or: Annotated[Optional[SequenceNotStr[str]], PropertyInfo(alias="searchQueryOr")]
46+
47+
48+
class ColumnFilterSetColumnFilter(TypedDict, total=False):
49+
measurement: Required[str]
50+
"""The name of the column."""
51+
52+
operator: Required[Literal["contains_none", "contains_any", "contains_all", "one_of", "none_of"]]
53+
54+
value: Required[SequenceNotStr[Union[str, float]]]
55+
56+
57+
class ColumnFilterNumericColumnFilter(TypedDict, total=False):
58+
measurement: Required[str]
59+
"""The name of the column."""
60+
61+
operator: Required[Literal[">", ">=", "is", "<", "<=", "!="]]
62+
63+
value: Required[Optional[float]]
64+
65+
66+
class ColumnFilterStringColumnFilter(TypedDict, total=False):
67+
measurement: Required[str]
68+
"""The name of the column."""
69+
70+
operator: Required[Literal["is", "!="]]
71+
72+
value: Required[Union[str, bool]]
73+
74+
75+
ColumnFilter: TypeAlias = Union[
76+
ColumnFilterSetColumnFilter, ColumnFilterNumericColumnFilter, ColumnFilterStringColumnFilter
77+
]
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from typing import Dict, List
4+
from datetime import datetime
5+
6+
from pydantic import Field as FieldInfo
7+
8+
from .._models import BaseModel
9+
10+
__all__ = ["InferencePipelineRetrieveSessionsResponse", "Item"]
11+
12+
13+
class Item(BaseModel):
14+
id: str
15+
"""The unique session identifier"""
16+
17+
cost: float
18+
"""Total cost for the session"""
19+
20+
date_created: datetime = FieldInfo(alias="dateCreated")
21+
"""Latest/most recent timestamp in the session"""
22+
23+
date_of_first_record: datetime = FieldInfo(alias="dateOfFirstRecord")
24+
"""Timestamp of the first request in the session"""
25+
26+
date_of_last_record: datetime = FieldInfo(alias="dateOfLastRecord")
27+
"""Timestamp of the last request in the session"""
28+
29+
duration: float
30+
"""Duration between first and last request (in milliseconds)"""
31+
32+
first_record: Dict[str, object] = FieldInfo(alias="firstRecord")
33+
"""The complete first record in the session"""
34+
35+
last_record: Dict[str, object] = FieldInfo(alias="lastRecord")
36+
"""The complete last record in the session"""
37+
38+
latency: float
39+
"""Total latency for the session (in milliseconds)"""
40+
41+
records: int
42+
"""Total number of records/traces in the session"""
43+
44+
tokens: float
45+
"""Total token count for the session"""
46+
47+
user_ids: List[str] = FieldInfo(alias="userIds")
48+
"""List of unique user IDs that participated in this session"""
49+
50+
51+
class InferencePipelineRetrieveSessionsResponse(BaseModel):
52+
items: List[Item]
53+
"""Array of session aggregation data"""

src/openlayer/types/inference_pipeline_retrieve_users_params.py

Lines changed: 62 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,76 @@
22

33
from __future__ import annotations
44

5-
from typing_extensions import Annotated, TypedDict
5+
from typing import Union, Iterable, Optional
6+
from typing_extensions import Literal, Required, Annotated, TypeAlias, TypedDict
67

8+
from .._types import SequenceNotStr
79
from .._utils import PropertyInfo
810

9-
__all__ = ["InferencePipelineRetrieveUsersParams"]
11+
__all__ = [
12+
"InferencePipelineRetrieveUsersParams",
13+
"ColumnFilter",
14+
"ColumnFilterSetColumnFilter",
15+
"ColumnFilterNumericColumnFilter",
16+
"ColumnFilterStringColumnFilter",
17+
]
1018

1119

1220
class InferencePipelineRetrieveUsersParams(TypedDict, total=False):
21+
asc: bool
22+
"""Whether or not to sort on the sortColumn in ascending order."""
23+
1324
page: int
1425
"""The page to return in a paginated query."""
1526

1627
per_page: Annotated[int, PropertyInfo(alias="perPage")]
1728
"""Maximum number of items to return per page."""
29+
30+
sort_column: Annotated[str, PropertyInfo(alias="sortColumn")]
31+
"""Name of the column to sort on"""
32+
33+
column_filters: Annotated[Optional[Iterable[ColumnFilter]], PropertyInfo(alias="columnFilters")]
34+
35+
exclude_row_id_list: Annotated[Optional[Iterable[int]], PropertyInfo(alias="excludeRowIdList")]
36+
37+
not_search_query_and: Annotated[Optional[SequenceNotStr[str]], PropertyInfo(alias="notSearchQueryAnd")]
38+
39+
not_search_query_or: Annotated[Optional[SequenceNotStr[str]], PropertyInfo(alias="notSearchQueryOr")]
40+
41+
row_id_list: Annotated[Optional[Iterable[int]], PropertyInfo(alias="rowIdList")]
42+
43+
search_query_and: Annotated[Optional[SequenceNotStr[str]], PropertyInfo(alias="searchQueryAnd")]
44+
45+
search_query_or: Annotated[Optional[SequenceNotStr[str]], PropertyInfo(alias="searchQueryOr")]
46+
47+
48+
class ColumnFilterSetColumnFilter(TypedDict, total=False):
49+
measurement: Required[str]
50+
"""The name of the column."""
51+
52+
operator: Required[Literal["contains_none", "contains_any", "contains_all", "one_of", "none_of"]]
53+
54+
value: Required[SequenceNotStr[Union[str, float]]]
55+
56+
57+
class ColumnFilterNumericColumnFilter(TypedDict, total=False):
58+
measurement: Required[str]
59+
"""The name of the column."""
60+
61+
operator: Required[Literal[">", ">=", "is", "<", "<=", "!="]]
62+
63+
value: Required[Optional[float]]
64+
65+
66+
class ColumnFilterStringColumnFilter(TypedDict, total=False):
67+
measurement: Required[str]
68+
"""The name of the column."""
69+
70+
operator: Required[Literal["is", "!="]]
71+
72+
value: Required[Union[str, bool]]
73+
74+
75+
ColumnFilter: TypeAlias = Union[
76+
ColumnFilterSetColumnFilter, ColumnFilterNumericColumnFilter, ColumnFilterStringColumnFilter
77+
]

0 commit comments

Comments
 (0)