|
36 | 36 | from portkey_ai._vendor.openai.types.shared_params.reasoning import Reasoning |
37 | 37 | from portkey_ai.api_resources.apis.api_resource import APIResource, AsyncAPIResource |
38 | 38 | from portkey_ai.api_resources.client import AsyncPortkey, Portkey |
39 | | -from portkey_ai.api_resources.types.response_type import Response as ResponseType |
| 39 | +from portkey_ai.api_resources.types.response_type import ( |
| 40 | + Response as ResponseType, |
| 41 | + CompactedResponse, |
| 42 | +) |
40 | 43 | from portkey_ai.api_resources.types.responses_input_items_type import InputItemList |
41 | 44 | from portkey_ai.api_resources.types.responses_input_tokens_type import ( |
42 | 45 | InputTokenCountResponse, |
@@ -354,6 +357,35 @@ def cancel( |
354 | 357 | timeout=timeout, |
355 | 358 | ) |
356 | 359 |
|
| 360 | + def compact( |
| 361 | + self, |
| 362 | + *, |
| 363 | + model: Union[str, Omit] = omit, |
| 364 | + input: Union[str, Iterable[ResponseInputItemParam], None, Omit] = omit, |
| 365 | + instructions: Union[Optional[str], Omit] = omit, |
| 366 | + previous_response_id: Union[Optional[str], Omit] = omit, |
| 367 | + **kwargs, |
| 368 | + ) -> CompactedResponse: |
| 369 | + import json |
| 370 | + |
| 371 | + extra_headers = kwargs.pop("extra_headers", None) |
| 372 | + extra_query = kwargs.pop("extra_query", None) |
| 373 | + extra_body = kwargs.pop("extra_body", None) |
| 374 | + timeout = kwargs.pop("timeout", None) |
| 375 | + response = self.openai_client.with_raw_response.responses.compact( |
| 376 | + model=model, # type: ignore[arg-type] |
| 377 | + input=input, |
| 378 | + instructions=instructions, |
| 379 | + previous_response_id=previous_response_id, |
| 380 | + extra_headers=extra_headers, |
| 381 | + extra_query=extra_query, |
| 382 | + extra_body={**(extra_body or {}), **kwargs}, |
| 383 | + timeout=timeout, |
| 384 | + ) |
| 385 | + data = CompactedResponse(**json.loads(response.text)) |
| 386 | + data._headers = response.headers |
| 387 | + return data |
| 388 | + |
357 | 389 |
|
358 | 390 | class InputItems(APIResource): |
359 | 391 | def __init__(self, client: Portkey) -> None: |
@@ -444,6 +476,7 @@ def __init__(self, client: AsyncPortkey) -> None: |
444 | 476 | super().__init__(client) |
445 | 477 | self.openai_client = client.openai_client |
446 | 478 | self.input_items = AsyncInputItems(client) |
| 479 | + self.input_tokens = AsyncInputTokens(client) |
447 | 480 |
|
448 | 481 | @overload |
449 | 482 | async def create( |
@@ -746,6 +779,35 @@ async def cancel( |
746 | 779 | timeout=timeout, |
747 | 780 | ) |
748 | 781 |
|
| 782 | + async def compact( |
| 783 | + self, |
| 784 | + *, |
| 785 | + model: Union[str, Omit] = omit, |
| 786 | + input: Union[str, Iterable[ResponseInputItemParam], None, Omit] = omit, |
| 787 | + instructions: Union[Optional[str], Omit] = omit, |
| 788 | + previous_response_id: Union[Optional[str], Omit] = omit, |
| 789 | + **kwargs, |
| 790 | + ) -> CompactedResponse: |
| 791 | + import json |
| 792 | + |
| 793 | + extra_headers = kwargs.pop("extra_headers", None) |
| 794 | + extra_query = kwargs.pop("extra_query", None) |
| 795 | + extra_body = kwargs.pop("extra_body", None) |
| 796 | + timeout = kwargs.pop("timeout", None) |
| 797 | + response = await self.openai_client.with_raw_response.responses.compact( |
| 798 | + model=model, # type: ignore[arg-type] |
| 799 | + input=input, |
| 800 | + instructions=instructions, |
| 801 | + previous_response_id=previous_response_id, |
| 802 | + extra_headers=extra_headers, |
| 803 | + extra_query=extra_query, |
| 804 | + extra_body={**(extra_body or {}), **kwargs}, |
| 805 | + timeout=timeout, |
| 806 | + ) |
| 807 | + data = CompactedResponse(**json.loads(response.text)) |
| 808 | + data._headers = response.headers |
| 809 | + return data |
| 810 | + |
749 | 811 |
|
750 | 812 | class AsyncInputItems(AsyncAPIResource): |
751 | 813 | def __init__(self, client: AsyncPortkey) -> None: |
|
0 commit comments