From fc99412c9b2b9f2c235182af2ea37c55686a4e44 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 21 Aug 2025 11:27:29 +0000 Subject: [PATCH 1/2] feat(api): api update --- .stats.yml | 4 +- api.md | 2 +- .../resources/vector_stores/files.py | 40 +++++++++---------- .../resources/vector_stores/vector_stores.py | 16 ++------ src/mixedbread/types/__init__.py | 1 - .../types/embedding_create_response.py | 4 +- src/mixedbread/types/object_type.py | 21 ---------- .../vector_store_question_answering_params.py | 6 +-- .../types/vector_store_search_params.py | 4 +- .../types/vector_stores/file_create_params.py | 6 +-- .../types/vector_stores/file_list_response.py | 23 +---------- .../types/vector_stores/file_search_params.py | 4 +- .../vector_stores/scored_vector_store_file.py | 2 +- tests/api_resources/test_vector_stores.py | 34 +++++++++++----- .../api_resources/vector_stores/test_files.py | 12 ++++-- 15 files changed, 68 insertions(+), 111 deletions(-) delete mode 100644 src/mixedbread/types/object_type.py diff --git a/.stats.yml b/.stats.yml index aecb65ef..1ac23eea 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 49 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/mixedbread%2Fmixedbread-4983c57f5143aaeadfbb4af35595570e613035ae500ff1597fdf600cc2a48959.yml -openapi_spec_hash: ecc0a6cfe61c3c959d034d094f36befe +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/mixedbread%2Fmixedbread-7c2a2a34f9dcbbc872b3b3a920ad90e64f2313cb45150bc54b66cf49da5c847f.yml +openapi_spec_hash: 458f00057a397021bab7b374f0191f18 config_hash: 22524d9aa927566851636768f6a861cd diff --git a/api.md b/api.md index f251791d..2a054ea2 100644 --- a/api.md +++ b/api.md @@ -166,7 +166,7 @@ Methods: Types: ```python -from mixedbread.types import EncodingFormat, ObjectType +from mixedbread.types import EncodingFormat ``` Methods: diff --git a/src/mixedbread/resources/vector_stores/files.py b/src/mixedbread/resources/vector_stores/files.py index 7f1ef7c7..0519d32e 100644 --- a/src/mixedbread/resources/vector_stores/files.py +++ b/src/mixedbread/resources/vector_stores/files.py @@ -53,9 +53,9 @@ def create( self, vector_store_identifier: str, *, - file_id: str, metadata: object | NotGiven = NOT_GIVEN, experimental: file_create_params.Experimental | NotGiven = NOT_GIVEN, + file_id: str, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -64,22 +64,22 @@ def create( timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, ) -> VectorStoreFile: """ - Upload a new file to a vector store for indexing. + Add an already uploaded file to a vector store. - Args: vector_store_identifier: The ID or name of the vector store to upload to - file: The file to upload and index + Args: vector_store_identifier: The ID or name of the vector store to add the + file to file: The file to add and index - Returns: VectorStoreFile: Details of the uploaded and indexed file + Returns: VectorStoreFile: Details of the added and indexed file Args: vector_store_identifier: The ID or name of the vector store - file_id: ID of the file to add - metadata: Optional metadata for the file experimental: Strategy for adding the file + file_id: ID of the file to add + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -96,9 +96,9 @@ def create( f"/v1/vector_stores/{vector_store_identifier}/files", body=maybe_transform( { - "file_id": file_id, "metadata": metadata, "experimental": experimental, + "file_id": file_id, }, file_create_params.FileCreateParams, ), @@ -286,8 +286,7 @@ def search( self, *, query: str, - vector_store_identifiers: Optional[List[str]] | NotGiven = NOT_GIVEN, - vector_store_ids: Optional[List[str]] | NotGiven = NOT_GIVEN, + vector_store_identifiers: List[str], top_k: int | NotGiven = NOT_GIVEN, filters: Optional[file_search_params.Filters] | NotGiven = NOT_GIVEN, file_ids: Union[Iterable[object], List[str], None] | NotGiven = NOT_GIVEN, @@ -344,7 +343,6 @@ def search( { "query": query, "vector_store_identifiers": vector_store_identifiers, - "vector_store_ids": vector_store_ids, "top_k": top_k, "filters": filters, "file_ids": file_ids, @@ -489,9 +487,9 @@ async def create( self, vector_store_identifier: str, *, - file_id: str, metadata: object | NotGiven = NOT_GIVEN, experimental: file_create_params.Experimental | NotGiven = NOT_GIVEN, + file_id: str, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -500,22 +498,22 @@ async def create( timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, ) -> VectorStoreFile: """ - Upload a new file to a vector store for indexing. + Add an already uploaded file to a vector store. - Args: vector_store_identifier: The ID or name of the vector store to upload to - file: The file to upload and index + Args: vector_store_identifier: The ID or name of the vector store to add the + file to file: The file to add and index - Returns: VectorStoreFile: Details of the uploaded and indexed file + Returns: VectorStoreFile: Details of the added and indexed file Args: vector_store_identifier: The ID or name of the vector store - file_id: ID of the file to add - metadata: Optional metadata for the file experimental: Strategy for adding the file + file_id: ID of the file to add + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -532,9 +530,9 @@ async def create( f"/v1/vector_stores/{vector_store_identifier}/files", body=await async_maybe_transform( { - "file_id": file_id, "metadata": metadata, "experimental": experimental, + "file_id": file_id, }, file_create_params.FileCreateParams, ), @@ -724,8 +722,7 @@ async def search( self, *, query: str, - vector_store_identifiers: Optional[List[str]] | NotGiven = NOT_GIVEN, - vector_store_ids: Optional[List[str]] | NotGiven = NOT_GIVEN, + vector_store_identifiers: List[str], top_k: int | NotGiven = NOT_GIVEN, filters: Optional[file_search_params.Filters] | NotGiven = NOT_GIVEN, file_ids: Union[Iterable[object], List[str], None] | NotGiven = NOT_GIVEN, @@ -782,7 +779,6 @@ async def search( { "query": query, "vector_store_identifiers": vector_store_identifiers, - "vector_store_ids": vector_store_ids, "top_k": top_k, "filters": filters, "file_ids": file_ids, diff --git a/src/mixedbread/resources/vector_stores/vector_stores.py b/src/mixedbread/resources/vector_stores/vector_stores.py index 7fb443de..6ebf46c5 100644 --- a/src/mixedbread/resources/vector_stores/vector_stores.py +++ b/src/mixedbread/resources/vector_stores/vector_stores.py @@ -351,8 +351,7 @@ def question_answering( self, *, query: str | NotGiven = NOT_GIVEN, - vector_store_identifiers: Optional[List[str]] | NotGiven = NOT_GIVEN, - vector_store_ids: Optional[List[str]] | NotGiven = NOT_GIVEN, + vector_store_identifiers: List[str], top_k: int | NotGiven = NOT_GIVEN, filters: Optional[vector_store_question_answering_params.Filters] | NotGiven = NOT_GIVEN, file_ids: Union[Iterable[object], List[str], None] | NotGiven = NOT_GIVEN, @@ -402,7 +401,6 @@ def question_answering( { "query": query, "vector_store_identifiers": vector_store_identifiers, - "vector_store_ids": vector_store_ids, "top_k": top_k, "filters": filters, "file_ids": file_ids, @@ -422,8 +420,7 @@ def search( self, *, query: str, - vector_store_identifiers: Optional[List[str]] | NotGiven = NOT_GIVEN, - vector_store_ids: Optional[List[str]] | NotGiven = NOT_GIVEN, + vector_store_identifiers: List[str], top_k: int | NotGiven = NOT_GIVEN, filters: Optional[vector_store_search_params.Filters] | NotGiven = NOT_GIVEN, file_ids: Union[Iterable[object], List[str], None] | NotGiven = NOT_GIVEN, @@ -481,7 +478,6 @@ def search( { "query": query, "vector_store_identifiers": vector_store_identifiers, - "vector_store_ids": vector_store_ids, "top_k": top_k, "filters": filters, "file_ids": file_ids, @@ -804,8 +800,7 @@ async def question_answering( self, *, query: str | NotGiven = NOT_GIVEN, - vector_store_identifiers: Optional[List[str]] | NotGiven = NOT_GIVEN, - vector_store_ids: Optional[List[str]] | NotGiven = NOT_GIVEN, + vector_store_identifiers: List[str], top_k: int | NotGiven = NOT_GIVEN, filters: Optional[vector_store_question_answering_params.Filters] | NotGiven = NOT_GIVEN, file_ids: Union[Iterable[object], List[str], None] | NotGiven = NOT_GIVEN, @@ -855,7 +850,6 @@ async def question_answering( { "query": query, "vector_store_identifiers": vector_store_identifiers, - "vector_store_ids": vector_store_ids, "top_k": top_k, "filters": filters, "file_ids": file_ids, @@ -875,8 +869,7 @@ async def search( self, *, query: str, - vector_store_identifiers: Optional[List[str]] | NotGiven = NOT_GIVEN, - vector_store_ids: Optional[List[str]] | NotGiven = NOT_GIVEN, + vector_store_identifiers: List[str], top_k: int | NotGiven = NOT_GIVEN, filters: Optional[vector_store_search_params.Filters] | NotGiven = NOT_GIVEN, file_ids: Union[Iterable[object], List[str], None] | NotGiven = NOT_GIVEN, @@ -934,7 +927,6 @@ async def search( { "query": query, "vector_store_identifiers": vector_store_identifiers, - "vector_store_ids": vector_store_ids, "top_k": top_k, "filters": filters, "file_ids": file_ids, diff --git a/src/mixedbread/types/__init__.py b/src/mixedbread/types/__init__.py index aca3e061..da6af5f0 100644 --- a/src/mixedbread/types/__init__.py +++ b/src/mixedbread/types/__init__.py @@ -9,7 +9,6 @@ from .embedding import Embedding as Embedding from .data_source import DataSource as DataSource from .file_object import FileObject as FileObject -from .object_type import ObjectType as ObjectType from .vector_store import VectorStore as VectorStore from .expires_after import ExpiresAfter as ExpiresAfter from .info_response import InfoResponse as InfoResponse diff --git a/src/mixedbread/types/embedding_create_response.py b/src/mixedbread/types/embedding_create_response.py index d7389135..ba5adbf6 100644 --- a/src/mixedbread/types/embedding_create_response.py +++ b/src/mixedbread/types/embedding_create_response.py @@ -1,10 +1,10 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Union, Optional +from typing_extensions import Literal from .._models import BaseModel from .embedding import Embedding -from .object_type import ObjectType from .shared.usage import Usage from .encoding_format import EncodingFormat from .multi_encoding_embedding import MultiEncodingEmbedding @@ -22,7 +22,7 @@ class EmbeddingCreateResponse(BaseModel): data: Union[List[Embedding], List[MultiEncodingEmbedding]] """The created embeddings.""" - object: Optional[ObjectType] = None + object: Optional[Literal["list"]] = None """The object type of the response""" normalized: bool diff --git a/src/mixedbread/types/object_type.py b/src/mixedbread/types/object_type.py deleted file mode 100644 index fe19bc12..00000000 --- a/src/mixedbread/types/object_type.py +++ /dev/null @@ -1,21 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing_extensions import Literal, TypeAlias - -__all__ = ["ObjectType"] - -ObjectType: TypeAlias = Literal[ - "list", - "parsing_job", - "extraction_job", - "embedding", - "embedding_dict", - "rank_result", - "file", - "vector_store", - "vector_store.file", - "api_key", - "data_source", - "data_source.connector", - "vector_store.histogram", -] diff --git a/src/mixedbread/types/vector_store_question_answering_params.py b/src/mixedbread/types/vector_store_question_answering_params.py index b34189b3..80c56b44 100644 --- a/src/mixedbread/types/vector_store_question_answering_params.py +++ b/src/mixedbread/types/vector_store_question_answering_params.py @@ -3,7 +3,7 @@ from __future__ import annotations from typing import List, Union, Iterable, Optional -from typing_extensions import TypeAlias, TypedDict +from typing_extensions import Required, TypeAlias, TypedDict from .shared_params.search_filter_condition import SearchFilterCondition from .vector_store_chunk_search_options_param import VectorStoreChunkSearchOptionsParam @@ -18,11 +18,9 @@ class VectorStoreQuestionAnsweringParams(TypedDict, total=False): If not provided, the question will be extracted from the passed messages. """ - vector_store_identifiers: Optional[List[str]] + vector_store_identifiers: Required[List[str]] """IDs or names of vector stores to search""" - vector_store_ids: Optional[List[str]] - top_k: int """Number of results to return""" diff --git a/src/mixedbread/types/vector_store_search_params.py b/src/mixedbread/types/vector_store_search_params.py index 48fc21e1..fc08a5ae 100644 --- a/src/mixedbread/types/vector_store_search_params.py +++ b/src/mixedbread/types/vector_store_search_params.py @@ -15,11 +15,9 @@ class VectorStoreSearchParams(TypedDict, total=False): query: Required[str] """Search query text""" - vector_store_identifiers: Optional[List[str]] + vector_store_identifiers: Required[List[str]] """IDs or names of vector stores to search""" - vector_store_ids: Optional[List[str]] - top_k: int """Number of results to return""" diff --git a/src/mixedbread/types/vector_stores/file_create_params.py b/src/mixedbread/types/vector_stores/file_create_params.py index e94f5505..ce39cfd1 100644 --- a/src/mixedbread/types/vector_stores/file_create_params.py +++ b/src/mixedbread/types/vector_stores/file_create_params.py @@ -8,15 +8,15 @@ class FileCreateParams(TypedDict, total=False): - file_id: Required[str] - """ID of the file to add""" - metadata: object """Optional metadata for the file""" experimental: Experimental """Strategy for adding the file""" + file_id: Required[str] + """ID of the file to add""" + class Experimental(TypedDict, total=False): parsing_strategy: Literal["fast", "high_quality"] diff --git a/src/mixedbread/types/vector_stores/file_list_response.py b/src/mixedbread/types/vector_stores/file_list_response.py index 252d1c93..afdcc55d 100644 --- a/src/mixedbread/types/vector_stores/file_list_response.py +++ b/src/mixedbread/types/vector_stores/file_list_response.py @@ -39,28 +39,7 @@ class Pagination(BaseModel): class FileListResponse(BaseModel): pagination: Pagination - """Response model for cursor-based pagination. - - Examples: Forward pagination response: { "has_more": true, "first_cursor": - "eyJjcmVhdGVkX2F0IjoiMjAyNC0xMi0zMSIsImlkIjoiYWJjMTIzIn0=", "last_cursor": - "eyJjcmVhdGVkX2F0IjoiMjAyNC0xMi0zMCIsImlkIjoieHl6Nzg5In0=", "total": null } - - Final page response: - { - "has_more": false, - "first_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNC0xMi0yOSIsImlkIjoibGFzdDEyMyJ9", - "last_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNC0xMi0yOCIsImlkIjoiZmluYWw0NTYifQ==", - "total": 42 - } - - Empty results: - { - "has_more": false, - "first_cursor": null, - "last_cursor": null, - "total": 0 - } - """ + """Response model for cursor-based pagination.""" object: Optional[Literal["list"]] = None """The object type of the response""" diff --git a/src/mixedbread/types/vector_stores/file_search_params.py b/src/mixedbread/types/vector_stores/file_search_params.py index 3c289bc1..03805405 100644 --- a/src/mixedbread/types/vector_stores/file_search_params.py +++ b/src/mixedbread/types/vector_stores/file_search_params.py @@ -15,11 +15,9 @@ class FileSearchParams(TypedDict, total=False): query: Required[str] """Search query text""" - vector_store_identifiers: Optional[List[str]] + vector_store_identifiers: Required[List[str]] """IDs or names of vector stores to search""" - vector_store_ids: Optional[List[str]] - top_k: int """Number of results to return""" diff --git a/src/mixedbread/types/vector_stores/scored_vector_store_file.py b/src/mixedbread/types/vector_stores/scored_vector_store_file.py index ca72a30f..12d8ddd0 100644 --- a/src/mixedbread/types/vector_stores/scored_vector_store_file.py +++ b/src/mixedbread/types/vector_stores/scored_vector_store_file.py @@ -52,7 +52,7 @@ class ScoredVectorStoreFile(BaseModel): """Type of the object""" chunks: Optional[List[Chunk]] = None - """chunks""" + """Array of scored file chunks""" score: float """score of the file""" diff --git a/tests/api_resources/test_vector_stores.py b/tests/api_resources/test_vector_stores.py index ab5f0c96..fa109005 100644 --- a/tests/api_resources/test_vector_stores.py +++ b/tests/api_resources/test_vector_stores.py @@ -236,7 +236,9 @@ def test_path_params_delete(self, client: Mixedbread) -> None: @parametrize def test_method_question_answering(self, client: Mixedbread) -> None: - vector_store = client.vector_stores.question_answering() + vector_store = client.vector_stores.question_answering( + vector_store_identifiers=["string"], + ) assert_matches_type(VectorStoreQuestionAnsweringResponse, vector_store, path=["response"]) @parametrize @@ -244,7 +246,6 @@ def test_method_question_answering_with_all_params(self, client: Mixedbread) -> vector_store = client.vector_stores.question_answering( query="x", vector_store_identifiers=["string"], - vector_store_ids=["string"], top_k=1, filters={ "all": [], @@ -269,7 +270,9 @@ def test_method_question_answering_with_all_params(self, client: Mixedbread) -> @parametrize def test_raw_response_question_answering(self, client: Mixedbread) -> None: - response = client.vector_stores.with_raw_response.question_answering() + response = client.vector_stores.with_raw_response.question_answering( + vector_store_identifiers=["string"], + ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -278,7 +281,9 @@ def test_raw_response_question_answering(self, client: Mixedbread) -> None: @parametrize def test_streaming_response_question_answering(self, client: Mixedbread) -> None: - with client.vector_stores.with_streaming_response.question_answering() as response: + with client.vector_stores.with_streaming_response.question_answering( + vector_store_identifiers=["string"], + ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -291,6 +296,7 @@ def test_streaming_response_question_answering(self, client: Mixedbread) -> None def test_method_search(self, client: Mixedbread) -> None: vector_store = client.vector_stores.search( query="how to configure SSL", + vector_store_identifiers=["string"], ) assert_matches_type(VectorStoreSearchResponse, vector_store, path=["response"]) @@ -299,7 +305,6 @@ def test_method_search_with_all_params(self, client: Mixedbread) -> None: vector_store = client.vector_stores.search( query="how to configure SSL", vector_store_identifiers=["string"], - vector_store_ids=["string"], top_k=1, filters={ "all": [], @@ -321,6 +326,7 @@ def test_method_search_with_all_params(self, client: Mixedbread) -> None: def test_raw_response_search(self, client: Mixedbread) -> None: response = client.vector_stores.with_raw_response.search( query="how to configure SSL", + vector_store_identifiers=["string"], ) assert response.is_closed is True @@ -332,6 +338,7 @@ def test_raw_response_search(self, client: Mixedbread) -> None: def test_streaming_response_search(self, client: Mixedbread) -> None: with client.vector_stores.with_streaming_response.search( query="how to configure SSL", + vector_store_identifiers=["string"], ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -560,7 +567,9 @@ async def test_path_params_delete(self, async_client: AsyncMixedbread) -> None: @parametrize async def test_method_question_answering(self, async_client: AsyncMixedbread) -> None: - vector_store = await async_client.vector_stores.question_answering() + vector_store = await async_client.vector_stores.question_answering( + vector_store_identifiers=["string"], + ) assert_matches_type(VectorStoreQuestionAnsweringResponse, vector_store, path=["response"]) @parametrize @@ -568,7 +577,6 @@ async def test_method_question_answering_with_all_params(self, async_client: Asy vector_store = await async_client.vector_stores.question_answering( query="x", vector_store_identifiers=["string"], - vector_store_ids=["string"], top_k=1, filters={ "all": [], @@ -593,7 +601,9 @@ async def test_method_question_answering_with_all_params(self, async_client: Asy @parametrize async def test_raw_response_question_answering(self, async_client: AsyncMixedbread) -> None: - response = await async_client.vector_stores.with_raw_response.question_answering() + response = await async_client.vector_stores.with_raw_response.question_answering( + vector_store_identifiers=["string"], + ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -602,7 +612,9 @@ async def test_raw_response_question_answering(self, async_client: AsyncMixedbre @parametrize async def test_streaming_response_question_answering(self, async_client: AsyncMixedbread) -> None: - async with async_client.vector_stores.with_streaming_response.question_answering() as response: + async with async_client.vector_stores.with_streaming_response.question_answering( + vector_store_identifiers=["string"], + ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -615,6 +627,7 @@ async def test_streaming_response_question_answering(self, async_client: AsyncMi async def test_method_search(self, async_client: AsyncMixedbread) -> None: vector_store = await async_client.vector_stores.search( query="how to configure SSL", + vector_store_identifiers=["string"], ) assert_matches_type(VectorStoreSearchResponse, vector_store, path=["response"]) @@ -623,7 +636,6 @@ async def test_method_search_with_all_params(self, async_client: AsyncMixedbread vector_store = await async_client.vector_stores.search( query="how to configure SSL", vector_store_identifiers=["string"], - vector_store_ids=["string"], top_k=1, filters={ "all": [], @@ -645,6 +657,7 @@ async def test_method_search_with_all_params(self, async_client: AsyncMixedbread async def test_raw_response_search(self, async_client: AsyncMixedbread) -> None: response = await async_client.vector_stores.with_raw_response.search( query="how to configure SSL", + vector_store_identifiers=["string"], ) assert response.is_closed is True @@ -656,6 +669,7 @@ async def test_raw_response_search(self, async_client: AsyncMixedbread) -> None: async def test_streaming_response_search(self, async_client: AsyncMixedbread) -> None: async with async_client.vector_stores.with_streaming_response.search( query="how to configure SSL", + vector_store_identifiers=["string"], ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" diff --git a/tests/api_resources/vector_stores/test_files.py b/tests/api_resources/vector_stores/test_files.py index 15a1c34b..6d7726a2 100644 --- a/tests/api_resources/vector_stores/test_files.py +++ b/tests/api_resources/vector_stores/test_files.py @@ -34,12 +34,12 @@ def test_method_create(self, client: Mixedbread) -> None: def test_method_create_with_all_params(self, client: Mixedbread) -> None: file = client.vector_stores.files.create( vector_store_identifier="vector_store_identifier", - file_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", metadata={}, experimental={ "parsing_strategy": "fast", "contextualization": True, }, + file_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", ) assert_matches_type(VectorStoreFile, file, path=["response"]) @@ -249,6 +249,7 @@ def test_path_params_delete(self, client: Mixedbread) -> None: def test_method_search(self, client: Mixedbread) -> None: file = client.vector_stores.files.search( query="how to configure SSL", + vector_store_identifiers=["string"], ) assert_matches_type(FileSearchResponse, file, path=["response"]) @@ -257,7 +258,6 @@ def test_method_search_with_all_params(self, client: Mixedbread) -> None: file = client.vector_stores.files.search( query="how to configure SSL", vector_store_identifiers=["string"], - vector_store_ids=["string"], top_k=1, filters={ "all": [], @@ -281,6 +281,7 @@ def test_method_search_with_all_params(self, client: Mixedbread) -> None: def test_raw_response_search(self, client: Mixedbread) -> None: response = client.vector_stores.files.with_raw_response.search( query="how to configure SSL", + vector_store_identifiers=["string"], ) assert response.is_closed is True @@ -292,6 +293,7 @@ def test_raw_response_search(self, client: Mixedbread) -> None: def test_streaming_response_search(self, client: Mixedbread) -> None: with client.vector_stores.files.with_streaming_response.search( query="how to configure SSL", + vector_store_identifiers=["string"], ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -319,12 +321,12 @@ async def test_method_create(self, async_client: AsyncMixedbread) -> None: async def test_method_create_with_all_params(self, async_client: AsyncMixedbread) -> None: file = await async_client.vector_stores.files.create( vector_store_identifier="vector_store_identifier", - file_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", metadata={}, experimental={ "parsing_strategy": "fast", "contextualization": True, }, + file_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", ) assert_matches_type(VectorStoreFile, file, path=["response"]) @@ -534,6 +536,7 @@ async def test_path_params_delete(self, async_client: AsyncMixedbread) -> None: async def test_method_search(self, async_client: AsyncMixedbread) -> None: file = await async_client.vector_stores.files.search( query="how to configure SSL", + vector_store_identifiers=["string"], ) assert_matches_type(FileSearchResponse, file, path=["response"]) @@ -542,7 +545,6 @@ async def test_method_search_with_all_params(self, async_client: AsyncMixedbread file = await async_client.vector_stores.files.search( query="how to configure SSL", vector_store_identifiers=["string"], - vector_store_ids=["string"], top_k=1, filters={ "all": [], @@ -566,6 +568,7 @@ async def test_method_search_with_all_params(self, async_client: AsyncMixedbread async def test_raw_response_search(self, async_client: AsyncMixedbread) -> None: response = await async_client.vector_stores.files.with_raw_response.search( query="how to configure SSL", + vector_store_identifiers=["string"], ) assert response.is_closed is True @@ -577,6 +580,7 @@ async def test_raw_response_search(self, async_client: AsyncMixedbread) -> None: async def test_streaming_response_search(self, async_client: AsyncMixedbread) -> None: async with async_client.vector_stores.files.with_streaming_response.search( query="how to configure SSL", + vector_store_identifiers=["string"], ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" From 3176b8b70326eeed5414302f9e3adeda57a58e0c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 21 Aug 2025 11:27:50 +0000 Subject: [PATCH 2/2] release: 0.28.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 8 ++++++++ pyproject.toml | 2 +- src/mixedbread/_version.py | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 59acac47..8935e932 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.27.0" + ".": "0.28.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index ff4417b2..07150aaf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.28.0 (2025-08-21) + +Full Changelog: [v0.27.0...v0.28.0](https://github.com/mixedbread-ai/mixedbread-python/compare/v0.27.0...v0.28.0) + +### Features + +* **api:** api update ([fc99412](https://github.com/mixedbread-ai/mixedbread-python/commit/fc99412c9b2b9f2c235182af2ea37c55686a4e44)) + ## 0.27.0 (2025-08-17) Full Changelog: [v0.26.0...v0.27.0](https://github.com/mixedbread-ai/mixedbread-python/compare/v0.26.0...v0.27.0) diff --git a/pyproject.toml b/pyproject.toml index aaae9579..a60f88e7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "mixedbread" -version = "0.27.0" +version = "0.28.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 064f5087..f6fccb29 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.27.0" # x-release-please-version +__version__ = "0.28.0" # x-release-please-version