From 00869f5ba2c9ca6b8c4be5b74fad07ec98f7f647 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 10 Dec 2025 18:28:29 +0000 Subject: [PATCH 1/9] feat(api): api update --- .stats.yml | 4 ++-- src/mixedbread/resources/stores/stores.py | 12 ++++++++---- src/mixedbread/types/api_key.py | 2 +- src/mixedbread/types/api_key_create_params.py | 2 +- src/mixedbread/types/api_key_created.py | 2 +- src/mixedbread/types/store_create_params.py | 5 ++++- src/mixedbread/types/store_update_params.py | 5 ++++- tests/api_resources/test_stores.py | 4 ++-- 8 files changed, 23 insertions(+), 13 deletions(-) diff --git a/.stats.yml b/.stats.yml index e1032ca..7d30d89 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 62 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/mixedbread%2Fmixedbread-bc57b04eacad32c8e89b4d6eac2a369fd0b013bb7be49b698a3372d6393753f7.yml -openapi_spec_hash: 2591884e7b1b6c328cb5a88449282ccd +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/mixedbread%2Fmixedbread-279da467a40222dd1370f715780778c6465e95530361804843578aa87a25b0df.yml +openapi_spec_hash: 6b638cc6a04d868f8c9247b2b34de83b config_hash: 6fa04d08d4e1a3a45f562e37fab0ea71 diff --git a/src/mixedbread/resources/stores/stores.py b/src/mixedbread/resources/stores/stores.py index 2ac5c02..5f93cc6 100644 --- a/src/mixedbread/resources/stores/stores.py +++ b/src/mixedbread/resources/stores/stores.py @@ -95,7 +95,8 @@ def create( Returns: VectorStore: The response containing the created vector store details. Args: - name: Name for the new store + name: Name for the new store. Can only contain lowercase letters, numbers, periods + (.), and hyphens (-). description: Description of the store @@ -203,7 +204,8 @@ def update( Args: store_identifier: The ID or name of the store - name: New name for the store + name: New name for the store. Can only contain lowercase letters, numbers, periods + (.), and hyphens (-). description: New description @@ -605,7 +607,8 @@ async def create( Returns: VectorStore: The response containing the created vector store details. Args: - name: Name for the new store + name: Name for the new store. Can only contain lowercase letters, numbers, periods + (.), and hyphens (-). description: Description of the store @@ -713,7 +716,8 @@ async def update( Args: store_identifier: The ID or name of the store - name: New name for the store + name: New name for the store. Can only contain lowercase letters, numbers, periods + (.), and hyphens (-). description: New description diff --git a/src/mixedbread/types/api_key.py b/src/mixedbread/types/api_key.py index f3238c1..ab7b375 100644 --- a/src/mixedbread/types/api_key.py +++ b/src/mixedbread/types/api_key.py @@ -10,7 +10,7 @@ class Scope(BaseModel): - method: Literal["read", "write", "delete", "list", "create"] + method: Literal["read", "write", "delete", "list", "create", "search"] resource_type: Optional[Literal["store"]] = None diff --git a/src/mixedbread/types/api_key_create_params.py b/src/mixedbread/types/api_key_create_params.py index a768754..829cd51 100644 --- a/src/mixedbread/types/api_key_create_params.py +++ b/src/mixedbread/types/api_key_create_params.py @@ -23,7 +23,7 @@ class APIKeyCreateParams(TypedDict, total=False): class Scope(TypedDict, total=False): - method: Required[Literal["read", "write", "delete", "list", "create"]] + method: Required[Literal["read", "write", "delete", "list", "create", "search"]] resource_type: Optional[Literal["store"]] diff --git a/src/mixedbread/types/api_key_created.py b/src/mixedbread/types/api_key_created.py index ae74892..3efdb33 100644 --- a/src/mixedbread/types/api_key_created.py +++ b/src/mixedbread/types/api_key_created.py @@ -10,7 +10,7 @@ class Scope(BaseModel): - method: Literal["read", "write", "delete", "list", "create"] + method: Literal["read", "write", "delete", "list", "create", "search"] resource_type: Optional[Literal["store"]] = None diff --git a/src/mixedbread/types/store_create_params.py b/src/mixedbread/types/store_create_params.py index 1c60761..0edfa42 100644 --- a/src/mixedbread/types/store_create_params.py +++ b/src/mixedbread/types/store_create_params.py @@ -13,7 +13,10 @@ class StoreCreateParams(TypedDict, total=False): name: Optional[str] - """Name for the new store""" + """Name for the new store. + + Can only contain lowercase letters, numbers, periods (.), and hyphens (-). + """ description: Optional[str] """Description of the store""" diff --git a/src/mixedbread/types/store_update_params.py b/src/mixedbread/types/store_update_params.py index 6133eb5..e06bbf9 100644 --- a/src/mixedbread/types/store_update_params.py +++ b/src/mixedbread/types/store_update_params.py @@ -12,7 +12,10 @@ class StoreUpdateParams(TypedDict, total=False): name: Optional[str] - """New name for the store""" + """New name for the store. + + Can only contain lowercase letters, numbers, periods (.), and hyphens (-). + """ description: Optional[str] """New description""" diff --git a/tests/api_resources/test_stores.py b/tests/api_resources/test_stores.py index 4771050..bd17237 100644 --- a/tests/api_resources/test_stores.py +++ b/tests/api_resources/test_stores.py @@ -32,7 +32,7 @@ def test_method_create(self, client: Mixedbread) -> None: @parametrize def test_method_create_with_all_params(self, client: Mixedbread) -> None: store = client.stores.create( - name="Technical Documentation", + name="technical-documentation", description="Contains technical specifications and guides", is_public=False, expires_after={ @@ -511,7 +511,7 @@ async def test_method_create(self, async_client: AsyncMixedbread) -> None: @parametrize async def test_method_create_with_all_params(self, async_client: AsyncMixedbread) -> None: store = await async_client.stores.create( - name="Technical Documentation", + name="technical-documentation", description="Contains technical specifications and guides", is_public=False, expires_after={ From 76031acaaf497a052394a8605a714980a9c7c68d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 11 Dec 2025 11:28:29 +0000 Subject: [PATCH 2/9] feat(api): api update --- .stats.yml | 4 ++-- src/mixedbread/resources/stores/stores.py | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 7d30d89..21258d2 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 62 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/mixedbread%2Fmixedbread-279da467a40222dd1370f715780778c6465e95530361804843578aa87a25b0df.yml -openapi_spec_hash: 6b638cc6a04d868f8c9247b2b34de83b +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/mixedbread%2Fmixedbread-f45579e46f468141c6e44bc1467a36da222ab712bbd4e1ed1b329f4691a0cb28.yml +openapi_spec_hash: c71b2dcd10bde03dc38409f0b6f9cbc2 config_hash: 6fa04d08d4e1a3a45f562e37fab0ea71 diff --git a/src/mixedbread/resources/stores/stores.py b/src/mixedbread/resources/stores/stores.py index 5f93cc6..66a55d8 100644 --- a/src/mixedbread/resources/stores/stores.py +++ b/src/mixedbread/resources/stores/stores.py @@ -504,6 +504,10 @@ def search( It supports complex search queries with filters and returns relevance-scored results. + For the special 'mixedbread/web' store, this endpoint performs web search using + a mixture of different providers instead of semantic search. Web search results + are always reranked for consistent scoring. + Args: search_params: Search configuration including: - query text or embeddings - store_identifiers: List of store identifiers to search - file_ids: Optional list of file IDs to filter chunks by (or tuple of list and condition @@ -1016,6 +1020,10 @@ async def search( It supports complex search queries with filters and returns relevance-scored results. + For the special 'mixedbread/web' store, this endpoint performs web search using + a mixture of different providers instead of semantic search. Web search results + are always reranked for consistent scoring. + Args: search_params: Search configuration including: - query text or embeddings - store_identifiers: List of store identifiers to search - file_ids: Optional list of file IDs to filter chunks by (or tuple of list and condition From 23a65dbf0eadce62364a421b474b8e4ffe6b9f22 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 12 Dec 2025 05:53:05 +0000 Subject: [PATCH 3/9] fix(docs): remove extraneous example object fields --- tests/api_resources/stores/test_files.py | 156 +----------- tests/api_resources/test_stores.py | 234 ++---------------- tests/api_resources/test_vector_stores.py | 156 +----------- .../api_resources/vector_stores/test_files.py | 156 +----------- 4 files changed, 54 insertions(+), 648 deletions(-) diff --git a/tests/api_resources/stores/test_files.py b/tests/api_resources/stores/test_files.py index 67a4d8e..16f130c 100644 --- a/tests/api_resources/stores/test_files.py +++ b/tests/api_resources/stores/test_files.py @@ -151,42 +151,9 @@ def test_method_list_with_all_params(self, client: Mixedbread) -> None: include_total=False, statuses=["pending"], metadata_filter={ - "all": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "any": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "none": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], + "all": [{}, {}], + "any": [{}, {}], + "none": [{}, {}], }, q="x", ) @@ -286,42 +253,9 @@ def test_method_search_with_all_params(self, client: Mixedbread) -> None: store_identifiers=["string"], top_k=1, filters={ - "all": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "any": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "none": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], + "all": [{}, {}], + "any": [{}, {}], + "none": [{}, {}], }, file_ids=["123e4567-e89b-12d3-a456-426614174000", "123e4567-e89b-12d3-a456-426614174001"], search_options={ @@ -497,42 +431,9 @@ async def test_method_list_with_all_params(self, async_client: AsyncMixedbread) include_total=False, statuses=["pending"], metadata_filter={ - "all": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "any": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "none": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], + "all": [{}, {}], + "any": [{}, {}], + "none": [{}, {}], }, q="x", ) @@ -632,42 +533,9 @@ async def test_method_search_with_all_params(self, async_client: AsyncMixedbread store_identifiers=["string"], top_k=1, filters={ - "all": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "any": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "none": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], + "all": [{}, {}], + "any": [{}, {}], + "none": [{}, {}], }, file_ids=["123e4567-e89b-12d3-a456-426614174000", "123e4567-e89b-12d3-a456-426614174001"], search_options={ diff --git a/tests/api_resources/test_stores.py b/tests/api_resources/test_stores.py index bd17237..f0d5106 100644 --- a/tests/api_resources/test_stores.py +++ b/tests/api_resources/test_stores.py @@ -244,42 +244,9 @@ def test_method_metadata_facets_with_all_params(self, client: Mixedbread) -> Non store_identifiers=["string"], top_k=1, filters={ - "all": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "any": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "none": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], + "all": [{}, {}], + "any": [{}, {}], + "none": [{}, {}], }, file_ids=["123e4567-e89b-12d3-a456-426614174000", "123e4567-e89b-12d3-a456-426614174001"], search_options={ @@ -331,42 +298,9 @@ def test_method_question_answering_with_all_params(self, client: Mixedbread) -> store_identifiers=["string"], top_k=1, filters={ - "all": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "any": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "none": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], + "all": [{}, {}], + "any": [{}, {}], + "none": [{}, {}], }, file_ids=["123e4567-e89b-12d3-a456-426614174000", "123e4567-e89b-12d3-a456-426614174001"], search_options={ @@ -423,42 +357,9 @@ def test_method_search_with_all_params(self, client: Mixedbread) -> None: store_identifiers=["string"], top_k=1, filters={ - "all": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "any": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "none": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], + "all": [{}, {}], + "any": [{}, {}], + "none": [{}, {}], }, file_ids=["123e4567-e89b-12d3-a456-426614174000", "123e4567-e89b-12d3-a456-426614174001"], search_options={ @@ -723,42 +624,9 @@ async def test_method_metadata_facets_with_all_params(self, async_client: AsyncM store_identifiers=["string"], top_k=1, filters={ - "all": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "any": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "none": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], + "all": [{}, {}], + "any": [{}, {}], + "none": [{}, {}], }, file_ids=["123e4567-e89b-12d3-a456-426614174000", "123e4567-e89b-12d3-a456-426614174001"], search_options={ @@ -810,42 +678,9 @@ async def test_method_question_answering_with_all_params(self, async_client: Asy store_identifiers=["string"], top_k=1, filters={ - "all": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "any": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "none": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], + "all": [{}, {}], + "any": [{}, {}], + "none": [{}, {}], }, file_ids=["123e4567-e89b-12d3-a456-426614174000", "123e4567-e89b-12d3-a456-426614174001"], search_options={ @@ -902,42 +737,9 @@ async def test_method_search_with_all_params(self, async_client: AsyncMixedbread store_identifiers=["string"], top_k=1, filters={ - "all": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "any": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "none": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], + "all": [{}, {}], + "any": [{}, {}], + "none": [{}, {}], }, file_ids=["123e4567-e89b-12d3-a456-426614174000", "123e4567-e89b-12d3-a456-426614174001"], search_options={ diff --git a/tests/api_resources/test_vector_stores.py b/tests/api_resources/test_vector_stores.py index 5b0c443..bfff572 100644 --- a/tests/api_resources/test_vector_stores.py +++ b/tests/api_resources/test_vector_stores.py @@ -282,42 +282,9 @@ def test_method_question_answering_with_all_params(self, client: Mixedbread) -> vector_store_identifiers=["string"], top_k=1, filters={ - "all": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "any": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "none": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], + "all": [{}, {}], + "any": [{}, {}], + "none": [{}, {}], }, file_ids=["123e4567-e89b-12d3-a456-426614174000", "123e4567-e89b-12d3-a456-426614174001"], search_options={ @@ -380,42 +347,9 @@ def test_method_search_with_all_params(self, client: Mixedbread) -> None: vector_store_identifiers=["string"], top_k=1, filters={ - "all": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "any": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "none": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], + "all": [{}, {}], + "any": [{}, {}], + "none": [{}, {}], }, file_ids=["123e4567-e89b-12d3-a456-426614174000", "123e4567-e89b-12d3-a456-426614174001"], search_options={ @@ -720,42 +654,9 @@ async def test_method_question_answering_with_all_params(self, async_client: Asy vector_store_identifiers=["string"], top_k=1, filters={ - "all": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "any": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "none": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], + "all": [{}, {}], + "any": [{}, {}], + "none": [{}, {}], }, file_ids=["123e4567-e89b-12d3-a456-426614174000", "123e4567-e89b-12d3-a456-426614174001"], search_options={ @@ -818,42 +719,9 @@ async def test_method_search_with_all_params(self, async_client: AsyncMixedbread vector_store_identifiers=["string"], top_k=1, filters={ - "all": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "any": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "none": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], + "all": [{}, {}], + "any": [{}, {}], + "none": [{}, {}], }, file_ids=["123e4567-e89b-12d3-a456-426614174000", "123e4567-e89b-12d3-a456-426614174001"], search_options={ diff --git a/tests/api_resources/vector_stores/test_files.py b/tests/api_resources/vector_stores/test_files.py index ab70902..3e1acfd 100644 --- a/tests/api_resources/vector_stores/test_files.py +++ b/tests/api_resources/vector_stores/test_files.py @@ -174,42 +174,9 @@ def test_method_list_with_all_params(self, client: Mixedbread) -> None: include_total=False, statuses=["pending"], metadata_filter={ - "all": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "any": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "none": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], + "all": [{}, {}], + "any": [{}, {}], + "none": [{}, {}], }, ) @@ -324,42 +291,9 @@ def test_method_search_with_all_params(self, client: Mixedbread) -> None: vector_store_identifiers=["string"], top_k=1, filters={ - "all": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "any": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "none": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], + "all": [{}, {}], + "any": [{}, {}], + "none": [{}, {}], }, file_ids=["123e4567-e89b-12d3-a456-426614174000", "123e4567-e89b-12d3-a456-426614174001"], search_options={ @@ -559,42 +493,9 @@ async def test_method_list_with_all_params(self, async_client: AsyncMixedbread) include_total=False, statuses=["pending"], metadata_filter={ - "all": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "any": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "none": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], + "all": [{}, {}], + "any": [{}, {}], + "none": [{}, {}], }, ) @@ -709,42 +610,9 @@ async def test_method_search_with_all_params(self, async_client: AsyncMixedbread vector_store_identifiers=["string"], top_k=1, filters={ - "all": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "any": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], - "none": [ - { - "key": "price", - "value": "100", - "operator": "gt", - }, - { - "key": "color", - "value": "red", - "operator": "eq", - }, - ], + "all": [{}, {}], + "any": [{}, {}], + "none": [{}, {}], }, file_ids=["123e4567-e89b-12d3-a456-426614174000", "123e4567-e89b-12d3-a456-426614174001"], search_options={ From 690449f16b044af30dd68e9ae7a07797cda0991f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 12 Dec 2025 13:28:28 +0000 Subject: [PATCH 4/9] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 21258d2..956447d 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 62 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/mixedbread%2Fmixedbread-f45579e46f468141c6e44bc1467a36da222ab712bbd4e1ed1b329f4691a0cb28.yml -openapi_spec_hash: c71b2dcd10bde03dc38409f0b6f9cbc2 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/mixedbread%2Fmixedbread-165588f2766fcd302a3d3e0a585ffeb2baef966ee18b2f34782390993cee4ffe.yml +openapi_spec_hash: 00a8d8d646f831fd1e6c886158f045dd config_hash: 6fa04d08d4e1a3a45f562e37fab0ea71 From 44e626e171c281c91575f79c3b072653c8915aed Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 13 Dec 2025 11:28:28 +0000 Subject: [PATCH 5/9] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 956447d..423566c 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 62 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/mixedbread%2Fmixedbread-165588f2766fcd302a3d3e0a585ffeb2baef966ee18b2f34782390993cee4ffe.yml -openapi_spec_hash: 00a8d8d646f831fd1e6c886158f045dd +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/mixedbread%2Fmixedbread-d2ce5c8d9c8ebfbc66565825daf31b71268d1d0020bbf0eb5d78d17ea2c9b535.yml +openapi_spec_hash: 8b1f803af02667896645042d6c3bab0f config_hash: 6fa04d08d4e1a3a45f562e37fab0ea71 From 50f57113be74f17642439e03ecce59deac2196f5 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 16 Dec 2025 05:17:56 +0000 Subject: [PATCH 6/9] chore(internal): add missing files argument to base client --- src/mixedbread/_base_client.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/mixedbread/_base_client.py b/src/mixedbread/_base_client.py index 69fd970..9a49fde 100644 --- a/src/mixedbread/_base_client.py +++ b/src/mixedbread/_base_client.py @@ -1247,9 +1247,12 @@ def patch( *, cast_to: Type[ResponseT], body: Body | None = None, + files: RequestFiles | None = None, options: RequestOptions = {}, ) -> ResponseT: - opts = FinalRequestOptions.construct(method="patch", url=path, json_data=body, **options) + opts = FinalRequestOptions.construct( + method="patch", url=path, json_data=body, files=to_httpx_files(files), **options + ) return self.request(cast_to, opts) def put( @@ -1767,9 +1770,12 @@ async def patch( *, cast_to: Type[ResponseT], body: Body | None = None, + files: RequestFiles | None = None, options: RequestOptions = {}, ) -> ResponseT: - opts = FinalRequestOptions.construct(method="patch", url=path, json_data=body, **options) + opts = FinalRequestOptions.construct( + method="patch", url=path, json_data=body, files=to_httpx_files(files), **options + ) return await self.request(cast_to, opts) async def put( From b7b8ed6b1071c1b26dadcd3d795070c9c7d34b26 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 16 Dec 2025 18:28:34 +0000 Subject: [PATCH 7/9] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 423566c..80816b4 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 62 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/mixedbread%2Fmixedbread-d2ce5c8d9c8ebfbc66565825daf31b71268d1d0020bbf0eb5d78d17ea2c9b535.yml -openapi_spec_hash: 8b1f803af02667896645042d6c3bab0f +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/mixedbread%2Fmixedbread-8a9abf45fe3e0db8c9ba59803ff9ef4ce5d0bb780765d3c1a9587dde2a8d6c93.yml +openapi_spec_hash: 0f3af27e4fc27bcbfbb17f0a2c45c060 config_hash: 6fa04d08d4e1a3a45f562e37fab0ea71 From b8d73066a54c466366e934a9e086462bb00a3d75 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 17 Dec 2025 08:01:17 +0000 Subject: [PATCH 8/9] chore: speedup initial import --- src/mixedbread/_client.py | 453 ++++++++++++++++++++++++++++++-------- 1 file changed, 364 insertions(+), 89 deletions(-) diff --git a/src/mixedbread/_client.py b/src/mixedbread/_client.py index 0a01cdd..a70709d 100644 --- a/src/mixedbread/_client.py +++ b/src/mixedbread/_client.py @@ -3,7 +3,7 @@ from __future__ import annotations import os -from typing import Any, Dict, List, Union, Mapping, Iterable, Optional, cast +from typing import TYPE_CHECKING, Any, Dict, List, Union, Mapping, Iterable, Optional, cast from typing_extensions import Self, Literal, override import httpx @@ -31,6 +31,7 @@ get_async_library, async_maybe_transform, ) +from ._compat import cached_property from ._version import __version__ from ._response import ( to_raw_response_wrapper, @@ -38,7 +39,6 @@ async_to_raw_response_wrapper, async_to_streamed_response_wrapper, ) -from .resources import chat, files, api_keys, embeddings from ._streaming import Stream as Stream, AsyncStream as AsyncStream from ._exceptions import APIStatusError, MixedbreadError from ._base_client import ( @@ -47,16 +47,23 @@ AsyncAPIClient, make_request_options, ) -from .resources.stores import stores -from .resources.parsing import parsing from .types.info_response import InfoResponse -from .resources.extractions import extractions from .types.encoding_format import EncodingFormat from .types.rerank_response import RerankResponse -from .resources.data_sources import data_sources -from .resources.vector_stores import vector_stores from .types.embedding_create_response import EmbeddingCreateResponse +if TYPE_CHECKING: + from .resources import chat, files, stores, parsing, api_keys, embeddings, extractions, data_sources, vector_stores + from .resources.chat import ChatResource, AsyncChatResource + from .resources.files import FilesResource, AsyncFilesResource + from .resources.api_keys import APIKeysResource, AsyncAPIKeysResource + from .resources.embeddings import EmbeddingsResource, AsyncEmbeddingsResource + from .resources.stores.stores import StoresResource, AsyncStoresResource + from .resources.parsing.parsing import ParsingResource, AsyncParsingResource + from .resources.extractions.extractions import ExtractionsResource, AsyncExtractionsResource + from .resources.data_sources.data_sources import DataSourcesResource, AsyncDataSourcesResource + from .resources.vector_stores.vector_stores import VectorStoresResource, AsyncVectorStoresResource + __all__ = [ "ENVIRONMENTS", "Timeout", @@ -77,18 +84,6 @@ class Mixedbread(SyncAPIClient): - vector_stores: vector_stores.VectorStoresResource - stores: stores.StoresResource - parsing: parsing.ParsingResource - files: files.FilesResource - extractions: extractions.ExtractionsResource - embeddings: embeddings.EmbeddingsResource - data_sources: data_sources.DataSourcesResource - api_keys: api_keys.APIKeysResource - chat: chat.ChatResource - with_raw_response: MixedbreadWithRawResponse - with_streaming_response: MixedbreadWithStreamedResponse - # client options api_key: str @@ -167,17 +162,67 @@ def __init__( _strict_response_validation=_strict_response_validation, ) - self.vector_stores = vector_stores.VectorStoresResource(self) - self.stores = stores.StoresResource(self) - self.parsing = parsing.ParsingResource(self) - self.files = files.FilesResource(self) - self.extractions = extractions.ExtractionsResource(self) - self.embeddings = embeddings.EmbeddingsResource(self) - self.data_sources = data_sources.DataSourcesResource(self) - self.api_keys = api_keys.APIKeysResource(self) - self.chat = chat.ChatResource(self) - self.with_raw_response = MixedbreadWithRawResponse(self) - self.with_streaming_response = MixedbreadWithStreamedResponse(self) + @cached_property + def vector_stores(self) -> VectorStoresResource: + from .resources.vector_stores import VectorStoresResource + + return VectorStoresResource(self) + + @cached_property + def stores(self) -> StoresResource: + from .resources.stores import StoresResource + + return StoresResource(self) + + @cached_property + def parsing(self) -> ParsingResource: + from .resources.parsing import ParsingResource + + return ParsingResource(self) + + @cached_property + def files(self) -> FilesResource: + from .resources.files import FilesResource + + return FilesResource(self) + + @cached_property + def extractions(self) -> ExtractionsResource: + from .resources.extractions import ExtractionsResource + + return ExtractionsResource(self) + + @cached_property + def embeddings(self) -> EmbeddingsResource: + from .resources.embeddings import EmbeddingsResource + + return EmbeddingsResource(self) + + @cached_property + def data_sources(self) -> DataSourcesResource: + from .resources.data_sources import DataSourcesResource + + return DataSourcesResource(self) + + @cached_property + def api_keys(self) -> APIKeysResource: + from .resources.api_keys import APIKeysResource + + return APIKeysResource(self) + + @cached_property + def chat(self) -> ChatResource: + from .resources.chat import ChatResource + + return ChatResource(self) + + @cached_property + def with_raw_response(self) -> MixedbreadWithRawResponse: + return MixedbreadWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> MixedbreadWithStreamedResponse: + return MixedbreadWithStreamedResponse(self) @property @override @@ -442,18 +487,6 @@ def _make_status_error( class AsyncMixedbread(AsyncAPIClient): - vector_stores: vector_stores.AsyncVectorStoresResource - stores: stores.AsyncStoresResource - parsing: parsing.AsyncParsingResource - files: files.AsyncFilesResource - extractions: extractions.AsyncExtractionsResource - embeddings: embeddings.AsyncEmbeddingsResource - data_sources: data_sources.AsyncDataSourcesResource - api_keys: api_keys.AsyncAPIKeysResource - chat: chat.AsyncChatResource - with_raw_response: AsyncMixedbreadWithRawResponse - with_streaming_response: AsyncMixedbreadWithStreamedResponse - # client options api_key: str @@ -532,17 +565,67 @@ def __init__( _strict_response_validation=_strict_response_validation, ) - self.vector_stores = vector_stores.AsyncVectorStoresResource(self) - self.stores = stores.AsyncStoresResource(self) - self.parsing = parsing.AsyncParsingResource(self) - self.files = files.AsyncFilesResource(self) - self.extractions = extractions.AsyncExtractionsResource(self) - self.embeddings = embeddings.AsyncEmbeddingsResource(self) - self.data_sources = data_sources.AsyncDataSourcesResource(self) - self.api_keys = api_keys.AsyncAPIKeysResource(self) - self.chat = chat.AsyncChatResource(self) - self.with_raw_response = AsyncMixedbreadWithRawResponse(self) - self.with_streaming_response = AsyncMixedbreadWithStreamedResponse(self) + @cached_property + def vector_stores(self) -> AsyncVectorStoresResource: + from .resources.vector_stores import AsyncVectorStoresResource + + return AsyncVectorStoresResource(self) + + @cached_property + def stores(self) -> AsyncStoresResource: + from .resources.stores import AsyncStoresResource + + return AsyncStoresResource(self) + + @cached_property + def parsing(self) -> AsyncParsingResource: + from .resources.parsing import AsyncParsingResource + + return AsyncParsingResource(self) + + @cached_property + def files(self) -> AsyncFilesResource: + from .resources.files import AsyncFilesResource + + return AsyncFilesResource(self) + + @cached_property + def extractions(self) -> AsyncExtractionsResource: + from .resources.extractions import AsyncExtractionsResource + + return AsyncExtractionsResource(self) + + @cached_property + def embeddings(self) -> AsyncEmbeddingsResource: + from .resources.embeddings import AsyncEmbeddingsResource + + return AsyncEmbeddingsResource(self) + + @cached_property + def data_sources(self) -> AsyncDataSourcesResource: + from .resources.data_sources import AsyncDataSourcesResource + + return AsyncDataSourcesResource(self) + + @cached_property + def api_keys(self) -> AsyncAPIKeysResource: + from .resources.api_keys import AsyncAPIKeysResource + + return AsyncAPIKeysResource(self) + + @cached_property + def chat(self) -> AsyncChatResource: + from .resources.chat import AsyncChatResource + + return AsyncChatResource(self) + + @cached_property + def with_raw_response(self) -> AsyncMixedbreadWithRawResponse: + return AsyncMixedbreadWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> AsyncMixedbreadWithStreamedResponse: + return AsyncMixedbreadWithStreamedResponse(self) @property @override @@ -807,16 +890,10 @@ def _make_status_error( class MixedbreadWithRawResponse: + _client: Mixedbread + def __init__(self, client: Mixedbread) -> None: - self.vector_stores = vector_stores.VectorStoresResourceWithRawResponse(client.vector_stores) - self.stores = stores.StoresResourceWithRawResponse(client.stores) - self.parsing = parsing.ParsingResourceWithRawResponse(client.parsing) - self.files = files.FilesResourceWithRawResponse(client.files) - self.extractions = extractions.ExtractionsResourceWithRawResponse(client.extractions) - self.embeddings = embeddings.EmbeddingsResourceWithRawResponse(client.embeddings) - self.data_sources = data_sources.DataSourcesResourceWithRawResponse(client.data_sources) - self.api_keys = api_keys.APIKeysResourceWithRawResponse(client.api_keys) - self.chat = chat.ChatResourceWithRawResponse(client.chat) + self._client = client self.embed = to_raw_response_wrapper( client.embed, @@ -828,18 +905,66 @@ def __init__(self, client: Mixedbread) -> None: client.rerank, ) + @cached_property + def vector_stores(self) -> vector_stores.VectorStoresResourceWithRawResponse: + from .resources.vector_stores import VectorStoresResourceWithRawResponse + + return VectorStoresResourceWithRawResponse(self._client.vector_stores) + + @cached_property + def stores(self) -> stores.StoresResourceWithRawResponse: + from .resources.stores import StoresResourceWithRawResponse + + return StoresResourceWithRawResponse(self._client.stores) + + @cached_property + def parsing(self) -> parsing.ParsingResourceWithRawResponse: + from .resources.parsing import ParsingResourceWithRawResponse + + return ParsingResourceWithRawResponse(self._client.parsing) + + @cached_property + def files(self) -> files.FilesResourceWithRawResponse: + from .resources.files import FilesResourceWithRawResponse + + return FilesResourceWithRawResponse(self._client.files) + + @cached_property + def extractions(self) -> extractions.ExtractionsResourceWithRawResponse: + from .resources.extractions import ExtractionsResourceWithRawResponse + + return ExtractionsResourceWithRawResponse(self._client.extractions) + + @cached_property + def embeddings(self) -> embeddings.EmbeddingsResourceWithRawResponse: + from .resources.embeddings import EmbeddingsResourceWithRawResponse + + return EmbeddingsResourceWithRawResponse(self._client.embeddings) + + @cached_property + def data_sources(self) -> data_sources.DataSourcesResourceWithRawResponse: + from .resources.data_sources import DataSourcesResourceWithRawResponse + + return DataSourcesResourceWithRawResponse(self._client.data_sources) + + @cached_property + def api_keys(self) -> api_keys.APIKeysResourceWithRawResponse: + from .resources.api_keys import APIKeysResourceWithRawResponse + + return APIKeysResourceWithRawResponse(self._client.api_keys) + + @cached_property + def chat(self) -> chat.ChatResourceWithRawResponse: + from .resources.chat import ChatResourceWithRawResponse + + return ChatResourceWithRawResponse(self._client.chat) + class AsyncMixedbreadWithRawResponse: + _client: AsyncMixedbread + def __init__(self, client: AsyncMixedbread) -> None: - self.vector_stores = vector_stores.AsyncVectorStoresResourceWithRawResponse(client.vector_stores) - self.stores = stores.AsyncStoresResourceWithRawResponse(client.stores) - self.parsing = parsing.AsyncParsingResourceWithRawResponse(client.parsing) - self.files = files.AsyncFilesResourceWithRawResponse(client.files) - self.extractions = extractions.AsyncExtractionsResourceWithRawResponse(client.extractions) - self.embeddings = embeddings.AsyncEmbeddingsResourceWithRawResponse(client.embeddings) - self.data_sources = data_sources.AsyncDataSourcesResourceWithRawResponse(client.data_sources) - self.api_keys = api_keys.AsyncAPIKeysResourceWithRawResponse(client.api_keys) - self.chat = chat.AsyncChatResourceWithRawResponse(client.chat) + self._client = client self.embed = async_to_raw_response_wrapper( client.embed, @@ -851,18 +976,66 @@ def __init__(self, client: AsyncMixedbread) -> None: client.rerank, ) + @cached_property + def vector_stores(self) -> vector_stores.AsyncVectorStoresResourceWithRawResponse: + from .resources.vector_stores import AsyncVectorStoresResourceWithRawResponse + + return AsyncVectorStoresResourceWithRawResponse(self._client.vector_stores) + + @cached_property + def stores(self) -> stores.AsyncStoresResourceWithRawResponse: + from .resources.stores import AsyncStoresResourceWithRawResponse + + return AsyncStoresResourceWithRawResponse(self._client.stores) + + @cached_property + def parsing(self) -> parsing.AsyncParsingResourceWithRawResponse: + from .resources.parsing import AsyncParsingResourceWithRawResponse + + return AsyncParsingResourceWithRawResponse(self._client.parsing) + + @cached_property + def files(self) -> files.AsyncFilesResourceWithRawResponse: + from .resources.files import AsyncFilesResourceWithRawResponse + + return AsyncFilesResourceWithRawResponse(self._client.files) + + @cached_property + def extractions(self) -> extractions.AsyncExtractionsResourceWithRawResponse: + from .resources.extractions import AsyncExtractionsResourceWithRawResponse + + return AsyncExtractionsResourceWithRawResponse(self._client.extractions) + + @cached_property + def embeddings(self) -> embeddings.AsyncEmbeddingsResourceWithRawResponse: + from .resources.embeddings import AsyncEmbeddingsResourceWithRawResponse + + return AsyncEmbeddingsResourceWithRawResponse(self._client.embeddings) + + @cached_property + def data_sources(self) -> data_sources.AsyncDataSourcesResourceWithRawResponse: + from .resources.data_sources import AsyncDataSourcesResourceWithRawResponse + + return AsyncDataSourcesResourceWithRawResponse(self._client.data_sources) + + @cached_property + def api_keys(self) -> api_keys.AsyncAPIKeysResourceWithRawResponse: + from .resources.api_keys import AsyncAPIKeysResourceWithRawResponse + + return AsyncAPIKeysResourceWithRawResponse(self._client.api_keys) + + @cached_property + def chat(self) -> chat.AsyncChatResourceWithRawResponse: + from .resources.chat import AsyncChatResourceWithRawResponse + + return AsyncChatResourceWithRawResponse(self._client.chat) + class MixedbreadWithStreamedResponse: + _client: Mixedbread + def __init__(self, client: Mixedbread) -> None: - self.vector_stores = vector_stores.VectorStoresResourceWithStreamingResponse(client.vector_stores) - self.stores = stores.StoresResourceWithStreamingResponse(client.stores) - self.parsing = parsing.ParsingResourceWithStreamingResponse(client.parsing) - self.files = files.FilesResourceWithStreamingResponse(client.files) - self.extractions = extractions.ExtractionsResourceWithStreamingResponse(client.extractions) - self.embeddings = embeddings.EmbeddingsResourceWithStreamingResponse(client.embeddings) - self.data_sources = data_sources.DataSourcesResourceWithStreamingResponse(client.data_sources) - self.api_keys = api_keys.APIKeysResourceWithStreamingResponse(client.api_keys) - self.chat = chat.ChatResourceWithStreamingResponse(client.chat) + self._client = client self.embed = to_streamed_response_wrapper( client.embed, @@ -874,18 +1047,66 @@ def __init__(self, client: Mixedbread) -> None: client.rerank, ) + @cached_property + def vector_stores(self) -> vector_stores.VectorStoresResourceWithStreamingResponse: + from .resources.vector_stores import VectorStoresResourceWithStreamingResponse + + return VectorStoresResourceWithStreamingResponse(self._client.vector_stores) + + @cached_property + def stores(self) -> stores.StoresResourceWithStreamingResponse: + from .resources.stores import StoresResourceWithStreamingResponse + + return StoresResourceWithStreamingResponse(self._client.stores) + + @cached_property + def parsing(self) -> parsing.ParsingResourceWithStreamingResponse: + from .resources.parsing import ParsingResourceWithStreamingResponse + + return ParsingResourceWithStreamingResponse(self._client.parsing) + + @cached_property + def files(self) -> files.FilesResourceWithStreamingResponse: + from .resources.files import FilesResourceWithStreamingResponse + + return FilesResourceWithStreamingResponse(self._client.files) + + @cached_property + def extractions(self) -> extractions.ExtractionsResourceWithStreamingResponse: + from .resources.extractions import ExtractionsResourceWithStreamingResponse + + return ExtractionsResourceWithStreamingResponse(self._client.extractions) + + @cached_property + def embeddings(self) -> embeddings.EmbeddingsResourceWithStreamingResponse: + from .resources.embeddings import EmbeddingsResourceWithStreamingResponse + + return EmbeddingsResourceWithStreamingResponse(self._client.embeddings) + + @cached_property + def data_sources(self) -> data_sources.DataSourcesResourceWithStreamingResponse: + from .resources.data_sources import DataSourcesResourceWithStreamingResponse + + return DataSourcesResourceWithStreamingResponse(self._client.data_sources) + + @cached_property + def api_keys(self) -> api_keys.APIKeysResourceWithStreamingResponse: + from .resources.api_keys import APIKeysResourceWithStreamingResponse + + return APIKeysResourceWithStreamingResponse(self._client.api_keys) + + @cached_property + def chat(self) -> chat.ChatResourceWithStreamingResponse: + from .resources.chat import ChatResourceWithStreamingResponse + + return ChatResourceWithStreamingResponse(self._client.chat) + class AsyncMixedbreadWithStreamedResponse: + _client: AsyncMixedbread + def __init__(self, client: AsyncMixedbread) -> None: - self.vector_stores = vector_stores.AsyncVectorStoresResourceWithStreamingResponse(client.vector_stores) - self.stores = stores.AsyncStoresResourceWithStreamingResponse(client.stores) - self.parsing = parsing.AsyncParsingResourceWithStreamingResponse(client.parsing) - self.files = files.AsyncFilesResourceWithStreamingResponse(client.files) - self.extractions = extractions.AsyncExtractionsResourceWithStreamingResponse(client.extractions) - self.embeddings = embeddings.AsyncEmbeddingsResourceWithStreamingResponse(client.embeddings) - self.data_sources = data_sources.AsyncDataSourcesResourceWithStreamingResponse(client.data_sources) - self.api_keys = api_keys.AsyncAPIKeysResourceWithStreamingResponse(client.api_keys) - self.chat = chat.AsyncChatResourceWithStreamingResponse(client.chat) + self._client = client self.embed = async_to_streamed_response_wrapper( client.embed, @@ -897,6 +1118,60 @@ def __init__(self, client: AsyncMixedbread) -> None: client.rerank, ) + @cached_property + def vector_stores(self) -> vector_stores.AsyncVectorStoresResourceWithStreamingResponse: + from .resources.vector_stores import AsyncVectorStoresResourceWithStreamingResponse + + return AsyncVectorStoresResourceWithStreamingResponse(self._client.vector_stores) + + @cached_property + def stores(self) -> stores.AsyncStoresResourceWithStreamingResponse: + from .resources.stores import AsyncStoresResourceWithStreamingResponse + + return AsyncStoresResourceWithStreamingResponse(self._client.stores) + + @cached_property + def parsing(self) -> parsing.AsyncParsingResourceWithStreamingResponse: + from .resources.parsing import AsyncParsingResourceWithStreamingResponse + + return AsyncParsingResourceWithStreamingResponse(self._client.parsing) + + @cached_property + def files(self) -> files.AsyncFilesResourceWithStreamingResponse: + from .resources.files import AsyncFilesResourceWithStreamingResponse + + return AsyncFilesResourceWithStreamingResponse(self._client.files) + + @cached_property + def extractions(self) -> extractions.AsyncExtractionsResourceWithStreamingResponse: + from .resources.extractions import AsyncExtractionsResourceWithStreamingResponse + + return AsyncExtractionsResourceWithStreamingResponse(self._client.extractions) + + @cached_property + def embeddings(self) -> embeddings.AsyncEmbeddingsResourceWithStreamingResponse: + from .resources.embeddings import AsyncEmbeddingsResourceWithStreamingResponse + + return AsyncEmbeddingsResourceWithStreamingResponse(self._client.embeddings) + + @cached_property + def data_sources(self) -> data_sources.AsyncDataSourcesResourceWithStreamingResponse: + from .resources.data_sources import AsyncDataSourcesResourceWithStreamingResponse + + return AsyncDataSourcesResourceWithStreamingResponse(self._client.data_sources) + + @cached_property + def api_keys(self) -> api_keys.AsyncAPIKeysResourceWithStreamingResponse: + from .resources.api_keys import AsyncAPIKeysResourceWithStreamingResponse + + return AsyncAPIKeysResourceWithStreamingResponse(self._client.api_keys) + + @cached_property + def chat(self) -> chat.AsyncChatResourceWithStreamingResponse: + from .resources.chat import AsyncChatResourceWithStreamingResponse + + return AsyncChatResourceWithStreamingResponse(self._client.chat) + Client = Mixedbread From d3fed5b4d425474e452e92ee1e886d3dd03d3739 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 17 Dec 2025 08:01:39 +0000 Subject: [PATCH 9/9] release: 0.43.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 20 ++++++++++++++++++++ pyproject.toml | 2 +- src/mixedbread/_version.py | 2 +- 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 52afe05..fe87cd9 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.42.0" + ".": "0.43.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f64722..ffe4e4f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,25 @@ # Changelog +## 0.43.0 (2025-12-17) + +Full Changelog: [v0.42.0...v0.43.0](https://github.com/mixedbread-ai/mixedbread-python/compare/v0.42.0...v0.43.0) + +### Features + +* **api:** api update ([76031ac](https://github.com/mixedbread-ai/mixedbread-python/commit/76031acaaf497a052394a8605a714980a9c7c68d)) +* **api:** api update ([00869f5](https://github.com/mixedbread-ai/mixedbread-python/commit/00869f5ba2c9ca6b8c4be5b74fad07ec98f7f647)) + + +### Bug Fixes + +* **docs:** remove extraneous example object fields ([23a65db](https://github.com/mixedbread-ai/mixedbread-python/commit/23a65dbf0eadce62364a421b474b8e4ffe6b9f22)) + + +### Chores + +* **internal:** add missing files argument to base client ([50f5711](https://github.com/mixedbread-ai/mixedbread-python/commit/50f57113be74f17642439e03ecce59deac2196f5)) +* speedup initial import ([b8d7306](https://github.com/mixedbread-ai/mixedbread-python/commit/b8d73066a54c466366e934a9e086462bb00a3d75)) + ## 0.42.0 (2025-12-09) Full Changelog: [v0.41.0...v0.42.0](https://github.com/mixedbread-ai/mixedbread-python/compare/v0.41.0...v0.42.0) diff --git a/pyproject.toml b/pyproject.toml index 110a7d5..00a3fb3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "mixedbread" -version = "0.42.0" +version = "0.43.0" description = "The official Python library for the Mixedbread API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/mixedbread/_version.py b/src/mixedbread/_version.py index 6f179c9..3f42a5c 100644 --- a/src/mixedbread/_version.py +++ b/src/mixedbread/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "mixedbread" -__version__ = "0.42.0" # x-release-please-version +__version__ = "0.43.0" # x-release-please-version