Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.35.0"
".": "0.36.0"
}
4 changes: 2 additions & 2 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 61
configured_endpoints: 62
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/mixedbread%2Fmixedbread-d4c4a6e0d99b371dc5e84a63cf447770fc684d6a0650b2e36013404245a5876b.yml
openapi_spec_hash: 9d377ce6164438d3207d8a50c954a9cd
config_hash: 2de40c343cf7b242d5925e3405ee8908
config_hash: 1f4b314dbc7ae3afe6d669e36217b842
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

## 0.36.0 (2025-10-30)

Full Changelog: [v0.35.0...v0.36.0](https://github.com/mixedbread-ai/mixedbread-python/compare/v0.35.0...v0.36.0)

### Features

* **api:** update via SDK Studio ([979a334](https://github.com/mixedbread-ai/mixedbread-python/commit/979a33419c7700c2e20c6df2cd532249517a0a00))

## 0.35.0 (2025-10-30)

Full Changelog: [v0.34.0...v0.35.0](https://github.com/mixedbread-ai/mixedbread-python/compare/v0.34.0...v0.35.0)
Expand Down
2 changes: 2 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ from mixedbread.types import (
Store,
StoreChunkSearchOptions,
StoreDeleteResponse,
StoreMetadataFacetsResponse,
StoreQuestionAnsweringResponse,
StoreSearchResponse,
)
Expand All @@ -98,6 +99,7 @@ Methods:
- <code title="put /v1/stores/{store_identifier}">client.stores.<a href="./src/mixedbread/resources/stores/stores.py">update</a>(store_identifier, \*\*<a href="src/mixedbread/types/store_update_params.py">params</a>) -> <a href="./src/mixedbread/types/store.py">Store</a></code>
- <code title="get /v1/stores">client.stores.<a href="./src/mixedbread/resources/stores/stores.py">list</a>(\*\*<a href="src/mixedbread/types/store_list_params.py">params</a>) -> <a href="./src/mixedbread/types/store.py">SyncCursor[Store]</a></code>
- <code title="delete /v1/stores/{store_identifier}">client.stores.<a href="./src/mixedbread/resources/stores/stores.py">delete</a>(store_identifier) -> <a href="./src/mixedbread/types/store_delete_response.py">StoreDeleteResponse</a></code>
- <code title="post /v1/stores/{store_identifier}/metadata-facets">client.stores.<a href="./src/mixedbread/resources/stores/stores.py">metadata_facets</a>(store_identifier, \*\*<a href="src/mixedbread/types/store_metadata_facets_params.py">params</a>) -> <a href="./src/mixedbread/types/store_metadata_facets_response.py">StoreMetadataFacetsResponse</a></code>
- <code title="post /v1/stores/question-answering">client.stores.<a href="./src/mixedbread/resources/stores/stores.py">question_answering</a>(\*\*<a href="src/mixedbread/types/store_question_answering_params.py">params</a>) -> <a href="./src/mixedbread/types/store_question_answering_response.py">StoreQuestionAnsweringResponse</a></code>
- <code title="post /v1/stores/search">client.stores.<a href="./src/mixedbread/resources/stores/stores.py">search</a>(\*\*<a href="src/mixedbread/types/store_search_params.py">params</a>) -> <a href="./src/mixedbread/types/store_search_response.py">StoreSearchResponse</a></code>

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "mixedbread"
version = "0.35.0"
version = "0.36.0"
description = "The official Python library for the Mixedbread API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion src/mixedbread/_version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

__title__ = "mixedbread"
__version__ = "0.35.0" # x-release-please-version
__version__ = "0.36.0" # x-release-please-version
110 changes: 110 additions & 0 deletions src/mixedbread/resources/stores/stores.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
store_create_params,
store_search_params,
store_update_params,
store_metadata_facets_params,
store_question_answering_params,
)
from ..._types import Body, Omit, Query, Headers, NotGiven, SequenceNotStr, omit, not_given
Expand All @@ -37,6 +38,7 @@
from ...types.expires_after_param import ExpiresAfterParam
from ...types.store_delete_response import StoreDeleteResponse
from ...types.store_search_response import StoreSearchResponse
from ...types.store_metadata_facets_response import StoreMetadataFacetsResponse
from ...types.store_chunk_search_options_param import StoreChunkSearchOptionsParam
from ...types.store_question_answering_response import StoreQuestionAnsweringResponse

Expand Down Expand Up @@ -341,6 +343,54 @@ def delete(
cast_to=StoreDeleteResponse,
)

def metadata_facets(
self,
store_identifier: str,
*,
filters: Optional[store_metadata_facets_params.Filters] | Omit = omit,
facets: Optional[SequenceNotStr[str]] | Omit = omit,
# 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,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> StoreMetadataFacetsResponse:
"""
Get metadata facets

Args:
store_identifier: The ID or name of the store

filters: Optional filter conditions

facets: Optional list of facets to return. Use dot for nested fields.

extra_headers: Send extra headers

extra_query: Add additional query parameters to the request

extra_body: Add additional JSON properties to the request

timeout: Override the client-level default timeout for this request, in seconds
"""
if not store_identifier:
raise ValueError(f"Expected a non-empty value for `store_identifier` but received {store_identifier!r}")
return self._post(
f"/v1/stores/{store_identifier}/metadata-facets",
body=maybe_transform(
{
"filters": filters,
"facets": facets,
},
store_metadata_facets_params.StoreMetadataFacetsParams,
),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=StoreMetadataFacetsResponse,
)

def question_answering(
self,
*,
Expand Down Expand Up @@ -784,6 +834,54 @@ async def delete(
cast_to=StoreDeleteResponse,
)

async def metadata_facets(
self,
store_identifier: str,
*,
filters: Optional[store_metadata_facets_params.Filters] | Omit = omit,
facets: Optional[SequenceNotStr[str]] | Omit = omit,
# 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,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> StoreMetadataFacetsResponse:
"""
Get metadata facets

Args:
store_identifier: The ID or name of the store

filters: Optional filter conditions

facets: Optional list of facets to return. Use dot for nested fields.

extra_headers: Send extra headers

extra_query: Add additional query parameters to the request

extra_body: Add additional JSON properties to the request

timeout: Override the client-level default timeout for this request, in seconds
"""
if not store_identifier:
raise ValueError(f"Expected a non-empty value for `store_identifier` but received {store_identifier!r}")
return await self._post(
f"/v1/stores/{store_identifier}/metadata-facets",
body=await async_maybe_transform(
{
"filters": filters,
"facets": facets,
},
store_metadata_facets_params.StoreMetadataFacetsParams,
),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=StoreMetadataFacetsResponse,
)

async def question_answering(
self,
*,
Expand Down Expand Up @@ -948,6 +1046,9 @@ def __init__(self, stores: StoresResource) -> None:
self.delete = to_raw_response_wrapper(
stores.delete,
)
self.metadata_facets = to_raw_response_wrapper(
stores.metadata_facets,
)
self.question_answering = to_raw_response_wrapper(
stores.question_answering,
)
Expand Down Expand Up @@ -979,6 +1080,9 @@ def __init__(self, stores: AsyncStoresResource) -> None:
self.delete = async_to_raw_response_wrapper(
stores.delete,
)
self.metadata_facets = async_to_raw_response_wrapper(
stores.metadata_facets,
)
self.question_answering = async_to_raw_response_wrapper(
stores.question_answering,
)
Expand Down Expand Up @@ -1010,6 +1114,9 @@ def __init__(self, stores: StoresResource) -> None:
self.delete = to_streamed_response_wrapper(
stores.delete,
)
self.metadata_facets = to_streamed_response_wrapper(
stores.metadata_facets,
)
self.question_answering = to_streamed_response_wrapper(
stores.question_answering,
)
Expand Down Expand Up @@ -1041,6 +1148,9 @@ def __init__(self, stores: AsyncStoresResource) -> None:
self.delete = async_to_streamed_response_wrapper(
stores.delete,
)
self.metadata_facets = async_to_streamed_response_wrapper(
stores.metadata_facets,
)
self.question_answering = async_to_streamed_response_wrapper(
stores.question_answering,
)
Expand Down
2 changes: 2 additions & 0 deletions src/mixedbread/types/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,10 @@
from .scored_audio_url_input_chunk import ScoredAudioURLInputChunk as ScoredAudioURLInputChunk
from .scored_image_url_input_chunk import ScoredImageURLInputChunk as ScoredImageURLInputChunk
from .scored_video_url_input_chunk import ScoredVideoURLInputChunk as ScoredVideoURLInputChunk
from .store_metadata_facets_params import StoreMetadataFacetsParams as StoreMetadataFacetsParams
from .vector_store_delete_response import VectorStoreDeleteResponse as VectorStoreDeleteResponse
from .vector_store_search_response import VectorStoreSearchResponse as VectorStoreSearchResponse
from .store_metadata_facets_response import StoreMetadataFacetsResponse as StoreMetadataFacetsResponse
from .store_question_answering_params import StoreQuestionAnsweringParams as StoreQuestionAnsweringParams
from .store_chunk_search_options_param import StoreChunkSearchOptionsParam as StoreChunkSearchOptionsParam
from .store_question_answering_response import StoreQuestionAnsweringResponse as StoreQuestionAnsweringResponse
Expand Down
26 changes: 26 additions & 0 deletions src/mixedbread/types/store_metadata_facets_params.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from __future__ import annotations

from typing import Union, Iterable, Optional
from typing_extensions import TypeAlias, TypedDict

from .._types import SequenceNotStr
from .shared_params.search_filter_condition import SearchFilterCondition

__all__ = ["StoreMetadataFacetsParams", "Filters", "FiltersUnionMember2"]


class StoreMetadataFacetsParams(TypedDict, total=False):
filters: Optional[Filters]
"""Optional filter conditions"""

facets: Optional[SequenceNotStr[str]]
"""Optional list of facets to return. Use dot for nested fields."""


FiltersUnionMember2: TypeAlias = Union["SearchFilter", SearchFilterCondition]

Filters: TypeAlias = Union["SearchFilter", SearchFilterCondition, Iterable[FiltersUnionMember2]]

from .shared_params.search_filter import SearchFilter
12 changes: 12 additions & 0 deletions src/mixedbread/types/store_metadata_facets_response.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from typing import Dict

from .._models import BaseModel

__all__ = ["StoreMetadataFacetsResponse"]


class StoreMetadataFacetsResponse(BaseModel):
facets: Dict[str, Dict[str, object]]
"""Metadata facets"""
Loading
Loading