payi 0.1.0a82__py3-none-any.whl → 0.1.0a84__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.
Potentially problematic release.
This version of payi might be problematic. Click here for more details.
- payi/_version.py +1 -1
- payi/lib/AnthropicInstrumentor.py +92 -62
- payi/lib/BedrockInstrumentor.py +95 -108
- payi/lib/GoogleGenAiInstrumentor.py +31 -115
- payi/lib/OpenAIInstrumentor.py +13 -9
- payi/lib/VertexInstrumentor.py +168 -111
- payi/lib/instrument.py +135 -73
- payi/resources/categories/__init__.py +14 -0
- payi/resources/categories/categories.py +32 -0
- payi/resources/categories/fixed_cost_resources.py +196 -0
- payi/resources/ingest.py +14 -0
- payi/resources/limits/limits.py +4 -0
- payi/types/categories/__init__.py +1 -0
- payi/types/categories/fixed_cost_resource_create_params.py +21 -0
- payi/types/ingest_event_param.py +13 -1
- payi/types/ingest_units_params.py +11 -1
- payi/types/limit_create_params.py +2 -0
- payi/types/limit_history_response.py +3 -3
- {payi-0.1.0a82.dist-info → payi-0.1.0a84.dist-info}/METADATA +1 -1
- {payi-0.1.0a82.dist-info → payi-0.1.0a84.dist-info}/RECORD +22 -20
- {payi-0.1.0a82.dist-info → payi-0.1.0a84.dist-info}/WHEEL +0 -0
- {payi-0.1.0a82.dist-info → payi-0.1.0a84.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,196 @@
|
|
|
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 List, Union
|
|
6
|
+
from datetime import datetime
|
|
7
|
+
|
|
8
|
+
import httpx
|
|
9
|
+
|
|
10
|
+
from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
|
|
11
|
+
from ..._utils import maybe_transform, async_maybe_transform
|
|
12
|
+
from ..._compat import cached_property
|
|
13
|
+
from ..._resource import SyncAPIResource, AsyncAPIResource
|
|
14
|
+
from ..._response import (
|
|
15
|
+
to_raw_response_wrapper,
|
|
16
|
+
to_streamed_response_wrapper,
|
|
17
|
+
async_to_raw_response_wrapper,
|
|
18
|
+
async_to_streamed_response_wrapper,
|
|
19
|
+
)
|
|
20
|
+
from ..._base_client import make_request_options
|
|
21
|
+
from ...types.categories import fixed_cost_resource_create_params
|
|
22
|
+
from ...types.category_resource_response import CategoryResourceResponse
|
|
23
|
+
|
|
24
|
+
__all__ = ["FixedCostResourcesResource", "AsyncFixedCostResourcesResource"]
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class FixedCostResourcesResource(SyncAPIResource):
|
|
28
|
+
@cached_property
|
|
29
|
+
def with_raw_response(self) -> FixedCostResourcesResourceWithRawResponse:
|
|
30
|
+
"""
|
|
31
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
32
|
+
the raw response object instead of the parsed content.
|
|
33
|
+
|
|
34
|
+
For more information, see https://www.github.com/Pay-i/pay-i-python#accessing-raw-response-data-eg-headers
|
|
35
|
+
"""
|
|
36
|
+
return FixedCostResourcesResourceWithRawResponse(self)
|
|
37
|
+
|
|
38
|
+
@cached_property
|
|
39
|
+
def with_streaming_response(self) -> FixedCostResourcesResourceWithStreamingResponse:
|
|
40
|
+
"""
|
|
41
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
42
|
+
|
|
43
|
+
For more information, see https://www.github.com/Pay-i/pay-i-python#with_streaming_response
|
|
44
|
+
"""
|
|
45
|
+
return FixedCostResourcesResourceWithStreamingResponse(self)
|
|
46
|
+
|
|
47
|
+
def create(
|
|
48
|
+
self,
|
|
49
|
+
resource: str,
|
|
50
|
+
*,
|
|
51
|
+
category: str,
|
|
52
|
+
units: List[str],
|
|
53
|
+
cost_per_hour: float | NotGiven = NOT_GIVEN,
|
|
54
|
+
start_timestamp: Union[str, datetime, None] | NotGiven = NOT_GIVEN,
|
|
55
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
56
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
57
|
+
extra_headers: Headers | None = None,
|
|
58
|
+
extra_query: Query | None = None,
|
|
59
|
+
extra_body: Body | None = None,
|
|
60
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
61
|
+
) -> CategoryResourceResponse:
|
|
62
|
+
"""
|
|
63
|
+
Create a fixed cost resource
|
|
64
|
+
|
|
65
|
+
Args:
|
|
66
|
+
extra_headers: Send extra headers
|
|
67
|
+
|
|
68
|
+
extra_query: Add additional query parameters to the request
|
|
69
|
+
|
|
70
|
+
extra_body: Add additional JSON properties to the request
|
|
71
|
+
|
|
72
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
73
|
+
"""
|
|
74
|
+
if not category:
|
|
75
|
+
raise ValueError(f"Expected a non-empty value for `category` but received {category!r}")
|
|
76
|
+
if not resource:
|
|
77
|
+
raise ValueError(f"Expected a non-empty value for `resource` but received {resource!r}")
|
|
78
|
+
return self._post(
|
|
79
|
+
f"/api/v1/categories/{category}/fixed_cost_resources/{resource}",
|
|
80
|
+
body=maybe_transform(
|
|
81
|
+
{
|
|
82
|
+
"units": units,
|
|
83
|
+
"cost_per_hour": cost_per_hour,
|
|
84
|
+
"start_timestamp": start_timestamp,
|
|
85
|
+
},
|
|
86
|
+
fixed_cost_resource_create_params.FixedCostResourceCreateParams,
|
|
87
|
+
),
|
|
88
|
+
options=make_request_options(
|
|
89
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
90
|
+
),
|
|
91
|
+
cast_to=CategoryResourceResponse,
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
class AsyncFixedCostResourcesResource(AsyncAPIResource):
|
|
96
|
+
@cached_property
|
|
97
|
+
def with_raw_response(self) -> AsyncFixedCostResourcesResourceWithRawResponse:
|
|
98
|
+
"""
|
|
99
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
100
|
+
the raw response object instead of the parsed content.
|
|
101
|
+
|
|
102
|
+
For more information, see https://www.github.com/Pay-i/pay-i-python#accessing-raw-response-data-eg-headers
|
|
103
|
+
"""
|
|
104
|
+
return AsyncFixedCostResourcesResourceWithRawResponse(self)
|
|
105
|
+
|
|
106
|
+
@cached_property
|
|
107
|
+
def with_streaming_response(self) -> AsyncFixedCostResourcesResourceWithStreamingResponse:
|
|
108
|
+
"""
|
|
109
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
110
|
+
|
|
111
|
+
For more information, see https://www.github.com/Pay-i/pay-i-python#with_streaming_response
|
|
112
|
+
"""
|
|
113
|
+
return AsyncFixedCostResourcesResourceWithStreamingResponse(self)
|
|
114
|
+
|
|
115
|
+
async def create(
|
|
116
|
+
self,
|
|
117
|
+
resource: str,
|
|
118
|
+
*,
|
|
119
|
+
category: str,
|
|
120
|
+
units: List[str],
|
|
121
|
+
cost_per_hour: float | NotGiven = NOT_GIVEN,
|
|
122
|
+
start_timestamp: Union[str, datetime, None] | NotGiven = NOT_GIVEN,
|
|
123
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
124
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
125
|
+
extra_headers: Headers | None = None,
|
|
126
|
+
extra_query: Query | None = None,
|
|
127
|
+
extra_body: Body | None = None,
|
|
128
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
129
|
+
) -> CategoryResourceResponse:
|
|
130
|
+
"""
|
|
131
|
+
Create a fixed cost resource
|
|
132
|
+
|
|
133
|
+
Args:
|
|
134
|
+
extra_headers: Send extra headers
|
|
135
|
+
|
|
136
|
+
extra_query: Add additional query parameters to the request
|
|
137
|
+
|
|
138
|
+
extra_body: Add additional JSON properties to the request
|
|
139
|
+
|
|
140
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
141
|
+
"""
|
|
142
|
+
if not category:
|
|
143
|
+
raise ValueError(f"Expected a non-empty value for `category` but received {category!r}")
|
|
144
|
+
if not resource:
|
|
145
|
+
raise ValueError(f"Expected a non-empty value for `resource` but received {resource!r}")
|
|
146
|
+
return await self._post(
|
|
147
|
+
f"/api/v1/categories/{category}/fixed_cost_resources/{resource}",
|
|
148
|
+
body=await async_maybe_transform(
|
|
149
|
+
{
|
|
150
|
+
"units": units,
|
|
151
|
+
"cost_per_hour": cost_per_hour,
|
|
152
|
+
"start_timestamp": start_timestamp,
|
|
153
|
+
},
|
|
154
|
+
fixed_cost_resource_create_params.FixedCostResourceCreateParams,
|
|
155
|
+
),
|
|
156
|
+
options=make_request_options(
|
|
157
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
158
|
+
),
|
|
159
|
+
cast_to=CategoryResourceResponse,
|
|
160
|
+
)
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
class FixedCostResourcesResourceWithRawResponse:
|
|
164
|
+
def __init__(self, fixed_cost_resources: FixedCostResourcesResource) -> None:
|
|
165
|
+
self._fixed_cost_resources = fixed_cost_resources
|
|
166
|
+
|
|
167
|
+
self.create = to_raw_response_wrapper(
|
|
168
|
+
fixed_cost_resources.create,
|
|
169
|
+
)
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
class AsyncFixedCostResourcesResourceWithRawResponse:
|
|
173
|
+
def __init__(self, fixed_cost_resources: AsyncFixedCostResourcesResource) -> None:
|
|
174
|
+
self._fixed_cost_resources = fixed_cost_resources
|
|
175
|
+
|
|
176
|
+
self.create = async_to_raw_response_wrapper(
|
|
177
|
+
fixed_cost_resources.create,
|
|
178
|
+
)
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
class FixedCostResourcesResourceWithStreamingResponse:
|
|
182
|
+
def __init__(self, fixed_cost_resources: FixedCostResourcesResource) -> None:
|
|
183
|
+
self._fixed_cost_resources = fixed_cost_resources
|
|
184
|
+
|
|
185
|
+
self.create = to_streamed_response_wrapper(
|
|
186
|
+
fixed_cost_resources.create,
|
|
187
|
+
)
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
class AsyncFixedCostResourcesResourceWithStreamingResponse:
|
|
191
|
+
def __init__(self, fixed_cost_resources: AsyncFixedCostResourcesResource) -> None:
|
|
192
|
+
self._fixed_cost_resources = fixed_cost_resources
|
|
193
|
+
|
|
194
|
+
self.create = async_to_streamed_response_wrapper(
|
|
195
|
+
fixed_cost_resources.create,
|
|
196
|
+
)
|
payi/resources/ingest.py
CHANGED
|
@@ -95,10 +95,14 @@ class IngestResource(SyncAPIResource):
|
|
|
95
95
|
properties: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
96
96
|
provider_request_headers: Optional[Iterable[PayICommonModelsAPIRouterHeaderInfoParam]] | NotGiven = NOT_GIVEN,
|
|
97
97
|
provider_request_json: Optional[str] | NotGiven = NOT_GIVEN,
|
|
98
|
+
provider_request_reasoning_json: Optional[str] | NotGiven = NOT_GIVEN,
|
|
99
|
+
provider_response_function_calls: Optional[Iterable[ingest_units_params.ProviderResponseFunctionCall]]
|
|
100
|
+
| NotGiven = NOT_GIVEN,
|
|
98
101
|
provider_response_headers: Optional[Iterable[PayICommonModelsAPIRouterHeaderInfoParam]] | NotGiven = NOT_GIVEN,
|
|
99
102
|
provider_response_id: Optional[str] | NotGiven = NOT_GIVEN,
|
|
100
103
|
provider_response_json: Union[str, List[str], None] | NotGiven = NOT_GIVEN,
|
|
101
104
|
provider_uri: Optional[str] | NotGiven = NOT_GIVEN,
|
|
105
|
+
time_to_first_completion_token_ms: Optional[int] | NotGiven = NOT_GIVEN,
|
|
102
106
|
time_to_first_token_ms: Optional[int] | NotGiven = NOT_GIVEN,
|
|
103
107
|
use_case_properties: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
104
108
|
limit_ids: Optional[list[str]] | NotGiven = NOT_GIVEN,
|
|
@@ -242,10 +246,13 @@ class IngestResource(SyncAPIResource):
|
|
|
242
246
|
"properties": properties,
|
|
243
247
|
"provider_request_headers": provider_request_headers,
|
|
244
248
|
"provider_request_json": provider_request_json,
|
|
249
|
+
"provider_request_reasoning_json": provider_request_reasoning_json,
|
|
250
|
+
"provider_response_function_calls": provider_response_function_calls,
|
|
245
251
|
"provider_response_headers": provider_response_headers,
|
|
246
252
|
"provider_response_id": provider_response_id,
|
|
247
253
|
"provider_response_json": provider_response_json,
|
|
248
254
|
"provider_uri": provider_uri,
|
|
255
|
+
"time_to_first_completion_token_ms": time_to_first_completion_token_ms,
|
|
249
256
|
"time_to_first_token_ms": time_to_first_token_ms,
|
|
250
257
|
"use_case_properties": use_case_properties,
|
|
251
258
|
},
|
|
@@ -323,10 +330,14 @@ class AsyncIngestResource(AsyncAPIResource):
|
|
|
323
330
|
properties: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
324
331
|
provider_request_headers: Optional[Iterable[PayICommonModelsAPIRouterHeaderInfoParam]] | NotGiven = NOT_GIVEN,
|
|
325
332
|
provider_request_json: Optional[str] | NotGiven = NOT_GIVEN,
|
|
333
|
+
provider_request_reasoning_json: Optional[str] | NotGiven = NOT_GIVEN,
|
|
334
|
+
provider_response_function_calls: Optional[Iterable[ingest_units_params.ProviderResponseFunctionCall]]
|
|
335
|
+
| NotGiven = NOT_GIVEN,
|
|
326
336
|
provider_response_headers: Optional[Iterable[PayICommonModelsAPIRouterHeaderInfoParam]] | NotGiven = NOT_GIVEN,
|
|
327
337
|
provider_response_id: Optional[str] | NotGiven = NOT_GIVEN,
|
|
328
338
|
provider_response_json: Union[str, List[str], None] | NotGiven = NOT_GIVEN,
|
|
329
339
|
provider_uri: Optional[str] | NotGiven = NOT_GIVEN,
|
|
340
|
+
time_to_first_completion_token_ms: Optional[int] | NotGiven = NOT_GIVEN,
|
|
330
341
|
time_to_first_token_ms: Optional[int] | NotGiven = NOT_GIVEN,
|
|
331
342
|
use_case_properties: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
332
343
|
limit_ids: Optional[list[str]] | NotGiven = NOT_GIVEN,
|
|
@@ -468,10 +479,13 @@ class AsyncIngestResource(AsyncAPIResource):
|
|
|
468
479
|
"properties": properties,
|
|
469
480
|
"provider_request_headers": provider_request_headers,
|
|
470
481
|
"provider_request_json": provider_request_json,
|
|
482
|
+
"provider_request_reasoning_json": provider_request_reasoning_json,
|
|
483
|
+
"provider_response_function_calls": provider_response_function_calls,
|
|
471
484
|
"provider_response_headers": provider_response_headers,
|
|
472
485
|
"provider_response_id": provider_response_id,
|
|
473
486
|
"provider_response_json": provider_response_json,
|
|
474
487
|
"provider_uri": provider_uri,
|
|
488
|
+
"time_to_first_completion_token_ms": time_to_first_completion_token_ms,
|
|
475
489
|
"time_to_first_token_ms": time_to_first_token_ms,
|
|
476
490
|
"use_case_properties": use_case_properties,
|
|
477
491
|
},
|
payi/resources/limits/limits.py
CHANGED
|
@@ -66,6 +66,7 @@ class LimitsResource(SyncAPIResource):
|
|
|
66
66
|
*,
|
|
67
67
|
limit_name: str,
|
|
68
68
|
max: float,
|
|
69
|
+
limit_id: Optional[str] | NotGiven = NOT_GIVEN,
|
|
69
70
|
limit_tags: Optional[List[str]] | NotGiven = NOT_GIVEN,
|
|
70
71
|
limit_type: Literal["block", "allow"] | NotGiven = NOT_GIVEN,
|
|
71
72
|
threshold: Optional[float] | NotGiven = NOT_GIVEN,
|
|
@@ -94,6 +95,7 @@ class LimitsResource(SyncAPIResource):
|
|
|
94
95
|
{
|
|
95
96
|
"limit_name": limit_name,
|
|
96
97
|
"max": max,
|
|
98
|
+
"limit_id": limit_id,
|
|
97
99
|
"limit_tags": limit_tags,
|
|
98
100
|
"limit_type": limit_type,
|
|
99
101
|
"threshold": threshold,
|
|
@@ -331,6 +333,7 @@ class AsyncLimitsResource(AsyncAPIResource):
|
|
|
331
333
|
*,
|
|
332
334
|
limit_name: str,
|
|
333
335
|
max: float,
|
|
336
|
+
limit_id: Optional[str] | NotGiven = NOT_GIVEN,
|
|
334
337
|
limit_tags: Optional[List[str]] | NotGiven = NOT_GIVEN,
|
|
335
338
|
limit_type: Literal["block", "allow"] | NotGiven = NOT_GIVEN,
|
|
336
339
|
threshold: Optional[float] | NotGiven = NOT_GIVEN,
|
|
@@ -359,6 +362,7 @@ class AsyncLimitsResource(AsyncAPIResource):
|
|
|
359
362
|
{
|
|
360
363
|
"limit_name": limit_name,
|
|
361
364
|
"max": max,
|
|
365
|
+
"limit_id": limit_id,
|
|
362
366
|
"limit_tags": limit_tags,
|
|
363
367
|
"limit_type": limit_type,
|
|
364
368
|
"threshold": threshold,
|
|
@@ -4,3 +4,4 @@ from __future__ import annotations
|
|
|
4
4
|
|
|
5
5
|
from .resource_list_params import ResourceListParams as ResourceListParams
|
|
6
6
|
from .resource_create_params import ResourceCreateParams as ResourceCreateParams
|
|
7
|
+
from .fixed_cost_resource_create_params import FixedCostResourceCreateParams as FixedCostResourceCreateParams
|
|
@@ -0,0 +1,21 @@
|
|
|
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 List, Union
|
|
6
|
+
from datetime import datetime
|
|
7
|
+
from typing_extensions import Required, Annotated, TypedDict
|
|
8
|
+
|
|
9
|
+
from ..._utils import PropertyInfo
|
|
10
|
+
|
|
11
|
+
__all__ = ["FixedCostResourceCreateParams"]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class FixedCostResourceCreateParams(TypedDict, total=False):
|
|
15
|
+
category: Required[str]
|
|
16
|
+
|
|
17
|
+
units: Required[List[str]]
|
|
18
|
+
|
|
19
|
+
cost_per_hour: float
|
|
20
|
+
|
|
21
|
+
start_timestamp: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
|
payi/types/ingest_event_param.py
CHANGED
|
@@ -10,7 +10,13 @@ from .._utils import PropertyInfo
|
|
|
10
10
|
from .shared_params.ingest_units import IngestUnits
|
|
11
11
|
from .pay_i_common_models_api_router_header_info_param import PayICommonModelsAPIRouterHeaderInfoParam
|
|
12
12
|
|
|
13
|
-
__all__ = ["IngestEventParam"]
|
|
13
|
+
__all__ = ["IngestEventParam", "ProviderResponseFunctionCall"]
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class ProviderResponseFunctionCall(TypedDict, total=False):
|
|
17
|
+
name: Required[str]
|
|
18
|
+
|
|
19
|
+
arguments: Optional[str]
|
|
14
20
|
|
|
15
21
|
|
|
16
22
|
class IngestEventParam(TypedDict, total=False):
|
|
@@ -42,6 +48,10 @@ class IngestEventParam(TypedDict, total=False):
|
|
|
42
48
|
|
|
43
49
|
provider_request_json: Optional[str]
|
|
44
50
|
|
|
51
|
+
provider_request_reasoning_json: Optional[str]
|
|
52
|
+
|
|
53
|
+
provider_response_function_calls: Optional[Iterable[ProviderResponseFunctionCall]]
|
|
54
|
+
|
|
45
55
|
provider_response_headers: Optional[Iterable[PayICommonModelsAPIRouterHeaderInfoParam]]
|
|
46
56
|
|
|
47
57
|
provider_response_id: Optional[str]
|
|
@@ -52,6 +62,8 @@ class IngestEventParam(TypedDict, total=False):
|
|
|
52
62
|
|
|
53
63
|
request_tags: Optional[List[str]]
|
|
54
64
|
|
|
65
|
+
time_to_first_completion_token_ms: Optional[int]
|
|
66
|
+
|
|
55
67
|
time_to_first_token_ms: Optional[int]
|
|
56
68
|
|
|
57
69
|
use_case_id: Optional[str]
|
|
@@ -10,7 +10,7 @@ from .._utils import PropertyInfo
|
|
|
10
10
|
from .shared_params.ingest_units import IngestUnits
|
|
11
11
|
from .pay_i_common_models_api_router_header_info_param import PayICommonModelsAPIRouterHeaderInfoParam
|
|
12
12
|
|
|
13
|
-
__all__ = ["IngestUnitsParams"]
|
|
13
|
+
__all__ = ["IngestUnitsParams", "ProviderResponseFunctionCall"]
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
class IngestUnitsParams(TypedDict, total=False):
|
|
@@ -34,6 +34,10 @@ class IngestUnitsParams(TypedDict, total=False):
|
|
|
34
34
|
|
|
35
35
|
provider_request_json: Optional[str]
|
|
36
36
|
|
|
37
|
+
provider_request_reasoning_json: Optional[str]
|
|
38
|
+
|
|
39
|
+
provider_response_function_calls: Optional[Iterable[ProviderResponseFunctionCall]]
|
|
40
|
+
|
|
37
41
|
provider_response_headers: Optional[Iterable[PayICommonModelsAPIRouterHeaderInfoParam]]
|
|
38
42
|
|
|
39
43
|
provider_response_id: Optional[str]
|
|
@@ -42,6 +46,8 @@ class IngestUnitsParams(TypedDict, total=False):
|
|
|
42
46
|
|
|
43
47
|
provider_uri: Optional[str]
|
|
44
48
|
|
|
49
|
+
time_to_first_completion_token_ms: Optional[int]
|
|
50
|
+
|
|
45
51
|
time_to_first_token_ms: Optional[int]
|
|
46
52
|
|
|
47
53
|
use_case_properties: Optional[Dict[str, str]]
|
|
@@ -66,6 +72,10 @@ class IngestUnitsParams(TypedDict, total=False):
|
|
|
66
72
|
|
|
67
73
|
user_id: Annotated[Union[str, None], PropertyInfo(alias="xProxy-User-ID")]
|
|
68
74
|
|
|
75
|
+
class ProviderResponseFunctionCall(TypedDict, total=False):
|
|
76
|
+
name: Required[str]
|
|
77
|
+
|
|
78
|
+
arguments: Optional[str]
|
|
69
79
|
|
|
70
80
|
class Units(TypedDict, total=False):
|
|
71
81
|
input: int
|
|
@@ -11,9 +11,11 @@ __all__ = ["LimitHistoryResponse", "LimitHistory"]
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
class LimitHistory(BaseModel):
|
|
14
|
+
limit_id: Optional[str] = None
|
|
15
|
+
|
|
14
16
|
limit_name: Optional[str] = None
|
|
15
17
|
|
|
16
|
-
|
|
18
|
+
totals: TotalCostData
|
|
17
19
|
|
|
18
20
|
limit_reset_timestamp: Optional[datetime] = None
|
|
19
21
|
|
|
@@ -23,8 +25,6 @@ class LimitHistory(BaseModel):
|
|
|
23
25
|
|
|
24
26
|
max: Optional[float] = None
|
|
25
27
|
|
|
26
|
-
totals: Optional[TotalCostData] = None
|
|
27
|
-
|
|
28
28
|
|
|
29
29
|
class LimitHistoryResponse(BaseModel):
|
|
30
30
|
limit_history: LimitHistory
|
|
@@ -11,7 +11,7 @@ payi/_resource.py,sha256=j2jIkTr8OIC8sU6-05nxSaCyj4MaFlbZrwlyg4_xJos,1088
|
|
|
11
11
|
payi/_response.py,sha256=rh9oJAvCKcPwQFm4iqH_iVrmK8bNx--YP_A2a4kN1OU,28776
|
|
12
12
|
payi/_streaming.py,sha256=Z_wIyo206T6Jqh2rolFg2VXZgX24PahLmpURp0-NssU,10092
|
|
13
13
|
payi/_types.py,sha256=7jE5MoQQFVoVxw5vVzvZ2Ao0kcjfNOGsBgyJfLBEnMo,6195
|
|
14
|
-
payi/_version.py,sha256=
|
|
14
|
+
payi/_version.py,sha256=lCWwKkasA-Houy8Bfybd7ekbmtRr61Z83LeYAtyhWkE,165
|
|
15
15
|
payi/pagination.py,sha256=k2356QGPOUSjRF2vHpwLBdF6P-2vnQzFfRIJQAHGQ7A,1258
|
|
16
16
|
payi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
17
|
payi/_utils/__init__.py,sha256=PNZ_QJuzZEgyYXqkO1HVhGkj5IU9bglVUcw7H-Knjzw,2062
|
|
@@ -25,18 +25,19 @@ payi/_utils/_transform.py,sha256=n7kskEWz6o__aoNvhFoGVyDoalNe6mJwp-g7BWkdj88,156
|
|
|
25
25
|
payi/_utils/_typing.py,sha256=D0DbbNu8GnYQTSICnTSHDGsYXj8TcAKyhejb0XcnjtY,4602
|
|
26
26
|
payi/_utils/_utils.py,sha256=ts4CiiuNpFiGB6YMdkQRh2SZvYvsl7mAF-JWHCcLDf4,12312
|
|
27
27
|
payi/lib/.keep,sha256=wuNrz-5SXo3jJaJOJgz4vFHM41YH_g20F5cRQo0vLes,224
|
|
28
|
-
payi/lib/AnthropicInstrumentor.py,sha256=
|
|
29
|
-
payi/lib/BedrockInstrumentor.py,sha256=
|
|
30
|
-
payi/lib/GoogleGenAiInstrumentor.py,sha256=
|
|
31
|
-
payi/lib/OpenAIInstrumentor.py,sha256=
|
|
28
|
+
payi/lib/AnthropicInstrumentor.py,sha256=ilpR-iqO5yLp8rDM38i53WoX4GWOTSn18OD-hpkLcYs,10058
|
|
29
|
+
payi/lib/BedrockInstrumentor.py,sha256=v-pHaWTSqEgENjLA6EslcreCpTFnp3-gttY_Up7-Pxw,14124
|
|
30
|
+
payi/lib/GoogleGenAiInstrumentor.py,sha256=KJZT7QzrEe8H4TOaIdYimcNF_LXl7YuIPlfnSLBUi00,10399
|
|
31
|
+
payi/lib/OpenAIInstrumentor.py,sha256=FjIRlQk5t95ySspH0VXsBv7my_f-c6HluvReY2hRvmM,18852
|
|
32
32
|
payi/lib/Stopwatch.py,sha256=7OJlxvr2Jyb6Zr1LYCYKczRB7rDVKkIR7gc4YoleNdE,764
|
|
33
|
-
payi/lib/VertexInstrumentor.py,sha256=
|
|
33
|
+
payi/lib/VertexInstrumentor.py,sha256=3pvxzgfB2H_sAcXC6njTeBjiims4Zyh-LXcRxBup-Gk,14841
|
|
34
34
|
payi/lib/helpers.py,sha256=K1KAfWrpPT1UUGNxspLe1lHzQjP3XV5Pkh9IU4pKMok,4624
|
|
35
|
-
payi/lib/instrument.py,sha256=
|
|
35
|
+
payi/lib/instrument.py,sha256=Uh4QasU6zzVOif5W_TP1O8oigjtgkDMY32XrlfIUlqo,66432
|
|
36
36
|
payi/resources/__init__.py,sha256=1rtrPLWbNt8oJGOp6nwPumKLJ-ftez0B6qwLFyfcoP4,2972
|
|
37
|
-
payi/resources/ingest.py,sha256=
|
|
38
|
-
payi/resources/categories/__init__.py,sha256=
|
|
39
|
-
payi/resources/categories/categories.py,sha256=
|
|
37
|
+
payi/resources/ingest.py,sha256=Z4WHv-INZoIlBzFw4o1j_PHykDsNACpkkF42Kik0UMg,23758
|
|
38
|
+
payi/resources/categories/__init__.py,sha256=WeotN_d-0Ri8ohsrNPbve7RyViD9_N0NA9DrV3WYg3w,1701
|
|
39
|
+
payi/resources/categories/categories.py,sha256=yYCkCxaYPWees9I9cx9CPy_H9wZK2X7jq8tRh-G__v8,20653
|
|
40
|
+
payi/resources/categories/fixed_cost_resources.py,sha256=tLJlZ06KDIOHpVF4iq8S9IPocGohbOYh9LO0cWGznUA,7824
|
|
40
41
|
payi/resources/categories/resources.py,sha256=nY5mKJPEy7-6J_UsyXZebNmUs6WK5ONx_qON9z6DwUg,19979
|
|
41
42
|
payi/resources/experiences/__init__.py,sha256=Qiyv7Tv6UC-wWpb7XVTyHvBRE0IZTnEpykFpP27xKe0,1556
|
|
42
43
|
payi/resources/experiences/experiences.py,sha256=m_-C_gF-dX8aBL0OYLTsT6-NSyXTaDFWoxv8l6tPOZI,14580
|
|
@@ -45,7 +46,7 @@ payi/resources/experiences/types/__init__.py,sha256=42loJPPtbwZ4qrqa1gKEg2CG5PLx
|
|
|
45
46
|
payi/resources/experiences/types/limit_config.py,sha256=ZIgtlrcfcYIInc1XYeyHOk2ycF2xyLvou_NpGRGpcfU,10604
|
|
46
47
|
payi/resources/experiences/types/types.py,sha256=rOgZjIvk5IOIlBT9fJ7HOlXAUpQnC2nF7OS_888XL7Q,21915
|
|
47
48
|
payi/resources/limits/__init__.py,sha256=URXh9vglDH-dqbVGk-XcrDa8H5Bg2pgFuVQQecgEtaA,976
|
|
48
|
-
payi/resources/limits/limits.py,sha256=
|
|
49
|
+
payi/resources/limits/limits.py,sha256=kyzyLrgjrK3qgMvSjzHAJGyFTNTFWUnAr7uw4bRpBp4,25196
|
|
49
50
|
payi/resources/limits/tags.py,sha256=gPW2ds6Zh7-BV7_SwtbRGcMMgj94NciGzcui6FRRQ-o,18964
|
|
50
51
|
payi/resources/requests/__init__.py,sha256=k7ipgDb5QXAv7WYhgQq0-6Zn9INJikMzRGexufceHeI,1530
|
|
51
52
|
payi/resources/requests/properties.py,sha256=_zAm72vLZq-X8lMO-qSttV9gw_uPfXsoJn2C4GJzpbw,6448
|
|
@@ -73,11 +74,11 @@ payi/types/cost_details.py,sha256=w9p79opEG3kcsjkRRP7niaMcUswdfB4Y7HCkVTcQ1zQ,30
|
|
|
73
74
|
payi/types/default_response.py,sha256=o617LpRsCIZHCZxAc5nVI2JQ3HPGZo4gCDvSDkxkIJ8,270
|
|
74
75
|
payi/types/experience_instance_response.py,sha256=G07YSRjXrUa5IAS4zEJHGiCNMNlVjycYhqS42ZnVs-Q,336
|
|
75
76
|
payi/types/ingest_bulk_params.py,sha256=A-IRb39d2tmVzEQqrvhlF_3si-9ufHBKYLlvdXupAHU,362
|
|
76
|
-
payi/types/ingest_event_param.py,sha256=
|
|
77
|
+
payi/types/ingest_event_param.py,sha256=Nxf-sRKlks8gXaSM_52s_3TkvG0SJICxsvgkRch_Yxk,2054
|
|
77
78
|
payi/types/ingest_response.py,sha256=JwcZ6OL793uXTuDmZAzkzhGcdtDsSXfSy_ERjzc7MZY,378
|
|
78
|
-
payi/types/ingest_units_params.py,sha256=
|
|
79
|
-
payi/types/limit_create_params.py,sha256=
|
|
80
|
-
payi/types/limit_history_response.py,sha256=
|
|
79
|
+
payi/types/ingest_units_params.py,sha256=MjPgtC-AEASeEgyG2Kdvg-D590vyCZtgE1aCipnx5FQ,2690
|
|
80
|
+
payi/types/limit_create_params.py,sha256=_STjwITl7Co62DNcTfeA7tis8h2s25ZnmXKcX-Vvqt4,582
|
|
81
|
+
payi/types/limit_history_response.py,sha256=vJnVVa5BROfYHRPvpfymcOabjDhcJtFowQF-L-apNgw,770
|
|
81
82
|
payi/types/limit_list_params.py,sha256=OYlK0anDA5G71FfwrMDzhEX4S5AlASLRiR0tmyD9tTU,322
|
|
82
83
|
payi/types/limit_list_response.py,sha256=8UMtHrO38HqOkn8qAC9R90N902VVRZrZYp0C7fPEX1g,622
|
|
83
84
|
payi/types/limit_reset_params.py,sha256=vgqImSM89pRYY0Z2RNrJuQ6WeDX72ZPg3GWpL9EVEKs,476
|
|
@@ -87,7 +88,8 @@ payi/types/pay_i_common_models_api_router_header_info_param.py,sha256=91djoPLmoa
|
|
|
87
88
|
payi/types/requests_data.py,sha256=coHpXgOIQv8oKaX354G-uYoJMzbJcjIW1oX1wuQppts,307
|
|
88
89
|
payi/types/total_cost_data.py,sha256=1xoiInVI0UaKup_8poAHNgcpK8gu09RQnMrdorQtFgQ,301
|
|
89
90
|
payi/types/use_case_instance_response.py,sha256=khdcmoU1L8djNVYLu4rSmWkaceZmGwkE9eHLedN1ePU,328
|
|
90
|
-
payi/types/categories/__init__.py,sha256=
|
|
91
|
+
payi/types/categories/__init__.py,sha256=mpdvOCRgkzQgIqgcb30nvunzZFqMrDOAoa_N0MJZouE,389
|
|
92
|
+
payi/types/categories/fixed_cost_resource_create_params.py,sha256=7aCIr-qIGTRkDtYwcnnFgt_iSOIrVbelw23rYYP1IgI,567
|
|
91
93
|
payi/types/categories/resource_create_params.py,sha256=HVzUWhvmUhVu9h70DmUrBPUcO-g2VUIc5cg0sxbG3fs,745
|
|
92
94
|
payi/types/categories/resource_list_params.py,sha256=vHKNPb3RVbg25-0g6yN-LXoNKlkYlnZb47hxlTuizUw,346
|
|
93
95
|
payi/types/experiences/__init__.py,sha256=UCNgXSeJ2fj_Zbs7kU2v1yj54U4688eh_yWGQ-KuJr8,467
|
|
@@ -142,7 +144,7 @@ payi/types/use_cases/definitions/kpi_retrieve_response.py,sha256=uQXliSvS3k-yDYw
|
|
|
142
144
|
payi/types/use_cases/definitions/kpi_update_params.py,sha256=jbawdWAdMnsTWVH0qfQGb8W7_TXe3lq4zjSRu44d8p8,373
|
|
143
145
|
payi/types/use_cases/definitions/kpi_update_response.py,sha256=zLyEoT0S8d7XHsnXZYT8tM7yDw0Aze0Mk-_Z6QeMtc8,459
|
|
144
146
|
payi/types/use_cases/definitions/limit_config_create_params.py,sha256=pzQza_16N3z8cFNEKr6gPbFvuGFrwNuGxAYb--Kbo2M,449
|
|
145
|
-
payi-0.1.
|
|
146
|
-
payi-0.1.
|
|
147
|
-
payi-0.1.
|
|
148
|
-
payi-0.1.
|
|
147
|
+
payi-0.1.0a84.dist-info/METADATA,sha256=k8Eh_7p9Gy358aKkQVKY95OVMvqJTgHZ0jBPvP8PO8E,15180
|
|
148
|
+
payi-0.1.0a84.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
|
149
|
+
payi-0.1.0a84.dist-info/licenses/LICENSE,sha256=CQt03aM-P4a3Yg5qBg3JSLVoQS3smMyvx7tYg_6V7Gk,11334
|
|
150
|
+
payi-0.1.0a84.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|