Skip to content

Commit b37f4d4

Browse files
authored
Merge pull request #252 from mixedbread-ai/release-please--branches--main--changes--next
release: 0.37.0
2 parents 0a3e5ee + 537b24f commit b37f4d4

19 files changed

Lines changed: 256 additions & 127 deletions

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "0.36.1"
2+
".": "0.37.0"
33
}

.stats.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 62
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/mixedbread%2Fmixedbread-fd92f46929d60af07c2abfd39a9850b71e4ba2ebfd67627f6ebec99e48dee5db.yml
3-
openapi_spec_hash: 450000939194685c6b33fec0dee1ce30
4-
config_hash: 1f4b314dbc7ae3afe6d669e36217b842
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/mixedbread%2Fmixedbread-b091721a627d75feb8567f628f99405d5778b0b88e9cc09fc664dd8e97c6d720.yml
3+
openapi_spec_hash: a23a2aecdcff5fa1d6c8cdc0df0bdfb7
4+
config_hash: 22ce3b96e325037f81e7dbf22bdd8d24

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
# Changelog
22

3+
## 0.37.0 (2025-11-03)
4+
5+
Full Changelog: [v0.36.1...v0.37.0](https://github.com/mixedbread-ai/mixedbread-python/compare/v0.36.1...v0.37.0)
6+
7+
### Features
8+
9+
* **api:** api update ([4a78563](https://github.com/mixedbread-ai/mixedbread-python/commit/4a78563a989f5ad8501e99539a352c4b054510d3))
10+
* **api:** update via SDK Studio ([1eb35c4](https://github.com/mixedbread-ai/mixedbread-python/commit/1eb35c40f676cf43b8de275320858c953c103036))
11+
312
## 0.36.1 (2025-10-31)
413

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

api.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ Methods:
9999
- <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>
100100
- <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>
101101
- <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>
102-
- <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>
102+
- <code title="post /v1/stores/metadata-facets">client.stores.<a href="./src/mixedbread/resources/stores/stores.py">metadata_facets</a>(\*\*<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>
103103
- <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>
104104
- <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>
105105

@@ -121,7 +121,7 @@ from mixedbread.types.stores import (
121121
Methods:
122122

123123
- <code title="post /v1/stores/{store_identifier}/files">client.stores.files.<a href="./src/mixedbread/resources/stores/files.py">create</a>(store_identifier, \*\*<a href="src/mixedbread/types/stores/file_create_params.py">params</a>) -> <a href="./src/mixedbread/types/stores/store_file.py">StoreFile</a></code>
124-
- <code title="get /v1/stores/{store_identifier}/files/{file_id}">client.stores.files.<a href="./src/mixedbread/resources/stores/files.py">retrieve</a>(file_id, \*, store_identifier, \*\*<a href="src/mixedbread/types/stores/file_retrieve_params.py">params</a>) -> <a href="./src/mixedbread/types/stores/store_file.py">StoreFile</a></code>
124+
- <code title="get /v1/stores/{store_identifier}/files/{file_identifier}">client.stores.files.<a href="./src/mixedbread/resources/stores/files.py">retrieve</a>(file_identifier, \*, store_identifier, \*\*<a href="src/mixedbread/types/stores/file_retrieve_params.py">params</a>) -> <a href="./src/mixedbread/types/stores/store_file.py">StoreFile</a></code>
125125
- <code title="post /v1/stores/{store_identifier}/files/list">client.stores.files.<a href="./src/mixedbread/resources/stores/files.py">list</a>(store_identifier, \*\*<a href="src/mixedbread/types/stores/file_list_params.py">params</a>) -> <a href="./src/mixedbread/types/stores/file_list_response.py">FileListResponse</a></code>
126126
- <code title="delete /v1/stores/{store_identifier}/files/{file_id}">client.stores.files.<a href="./src/mixedbread/resources/stores/files.py">delete</a>(file_id, \*, store_identifier) -> <a href="./src/mixedbread/types/stores/file_delete_response.py">FileDeleteResponse</a></code>
127127
- <code title="post /v1/stores/files/search">client.stores.files.<a href="./src/mixedbread/resources/stores/files.py">search</a>(\*\*<a href="src/mixedbread/types/stores/file_search_params.py">params</a>) -> <a href="./src/mixedbread/types/stores/file_search_response.py">FileSearchResponse</a></code>

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "mixedbread"
3-
version = "0.36.1"
3+
version = "0.37.0"
44
description = "The official Python library for the Mixedbread API"
55
dynamic = ["readme"]
66
license = "Apache-2.0"

src/mixedbread/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22

33
__title__ = "mixedbread"
4-
__version__ = "0.36.1" # x-release-please-version
4+
__version__ = "0.37.0" # x-release-please-version

src/mixedbread/resources/stores/files.py

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ def create(
5555
*,
5656
metadata: object | Omit = omit,
5757
config: file_create_params.Config | Omit = omit,
58+
external_id: Optional[str] | Omit = omit,
59+
overwrite: bool | Omit = omit,
5860
file_id: str,
5961
experimental: Optional[file_create_params.Experimental] | Omit = omit,
6062
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -80,6 +82,10 @@ def create(
8082
8183
config: Configuration for adding the file
8284
85+
external_id: External identifier for this file in the store
86+
87+
overwrite: If true, overwrite an existing file with the same external_id
88+
8389
file_id: ID of the file to add
8490
8591
experimental: Configuration for a file.
@@ -100,6 +106,8 @@ def create(
100106
{
101107
"metadata": metadata,
102108
"config": config,
109+
"external_id": external_id,
110+
"overwrite": overwrite,
103111
"file_id": file_id,
104112
"experimental": experimental,
105113
},
@@ -113,7 +121,7 @@ def create(
113121

114122
def retrieve(
115123
self,
116-
file_id: str,
124+
file_identifier: str,
117125
*,
118126
store_identifier: str,
119127
return_chunks: bool | Omit = omit,
@@ -136,7 +144,7 @@ def retrieve(
136144
Args:
137145
store_identifier: The ID or name of the store
138146
139-
file_id: The ID or name of the file
147+
file_identifier: The ID or name of the file
140148
141149
return_chunks: Whether to return the chunks for the file
142150
@@ -150,10 +158,10 @@ def retrieve(
150158
"""
151159
if not store_identifier:
152160
raise ValueError(f"Expected a non-empty value for `store_identifier` but received {store_identifier!r}")
153-
if not file_id:
154-
raise ValueError(f"Expected a non-empty value for `file_id` but received {file_id!r}")
161+
if not file_identifier:
162+
raise ValueError(f"Expected a non-empty value for `file_identifier` but received {file_identifier!r}")
155163
return self._get(
156-
f"/v1/stores/{store_identifier}/files/{file_id}",
164+
f"/v1/stores/{store_identifier}/files/{file_identifier}",
157165
options=make_request_options(
158166
extra_headers=extra_headers,
159167
extra_query=extra_query,
@@ -479,6 +487,8 @@ async def create(
479487
*,
480488
metadata: object | Omit = omit,
481489
config: file_create_params.Config | Omit = omit,
490+
external_id: Optional[str] | Omit = omit,
491+
overwrite: bool | Omit = omit,
482492
file_id: str,
483493
experimental: Optional[file_create_params.Experimental] | Omit = omit,
484494
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -504,6 +514,10 @@ async def create(
504514
505515
config: Configuration for adding the file
506516
517+
external_id: External identifier for this file in the store
518+
519+
overwrite: If true, overwrite an existing file with the same external_id
520+
507521
file_id: ID of the file to add
508522
509523
experimental: Configuration for a file.
@@ -524,6 +538,8 @@ async def create(
524538
{
525539
"metadata": metadata,
526540
"config": config,
541+
"external_id": external_id,
542+
"overwrite": overwrite,
527543
"file_id": file_id,
528544
"experimental": experimental,
529545
},
@@ -537,7 +553,7 @@ async def create(
537553

538554
async def retrieve(
539555
self,
540-
file_id: str,
556+
file_identifier: str,
541557
*,
542558
store_identifier: str,
543559
return_chunks: bool | Omit = omit,
@@ -560,7 +576,7 @@ async def retrieve(
560576
Args:
561577
store_identifier: The ID or name of the store
562578
563-
file_id: The ID or name of the file
579+
file_identifier: The ID or name of the file
564580
565581
return_chunks: Whether to return the chunks for the file
566582
@@ -574,10 +590,10 @@ async def retrieve(
574590
"""
575591
if not store_identifier:
576592
raise ValueError(f"Expected a non-empty value for `store_identifier` but received {store_identifier!r}")
577-
if not file_id:
578-
raise ValueError(f"Expected a non-empty value for `file_id` but received {file_id!r}")
593+
if not file_identifier:
594+
raise ValueError(f"Expected a non-empty value for `file_identifier` but received {file_identifier!r}")
579595
return await self._get(
580-
f"/v1/stores/{store_identifier}/files/{file_id}",
596+
f"/v1/stores/{store_identifier}/files/{file_identifier}",
581597
options=make_request_options(
582598
extra_headers=extra_headers,
583599
extra_query=extra_query,

src/mixedbread/resources/stores/stores.py

Lines changed: 48 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ def create(
7777
is_public: bool | Omit = omit,
7878
expires_after: Optional[ExpiresAfterParam] | Omit = omit,
7979
metadata: object | Omit = omit,
80+
config: Optional[store_create_params.Config] | Omit = omit,
8081
file_ids: Optional[SequenceNotStr[str]] | Omit = omit,
8182
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
8283
# The extra values given here take precedence over values defined on the client or passed to this method.
@@ -104,6 +105,8 @@ def create(
104105
105106
metadata: Optional metadata key-value pairs
106107
108+
config: Configuration for a store.
109+
107110
file_ids: Optional list of file IDs
108111
109112
extra_headers: Send extra headers
@@ -123,6 +126,7 @@ def create(
123126
"is_public": is_public,
124127
"expires_after": expires_after,
125128
"metadata": metadata,
129+
"config": config,
126130
"file_ids": file_ids,
127131
},
128132
store_create_params.StoreCreateParams,
@@ -345,9 +349,13 @@ def delete(
345349

346350
def metadata_facets(
347351
self,
348-
store_identifier: str,
349352
*,
353+
query: Optional[str] | Omit = omit,
354+
store_identifiers: SequenceNotStr[str],
355+
top_k: int | Omit = omit,
350356
filters: Optional[store_metadata_facets_params.Filters] | Omit = omit,
357+
file_ids: Union[Iterable[object], SequenceNotStr[str], None] | Omit = omit,
358+
search_options: StoreChunkSearchOptionsParam | Omit = omit,
351359
facets: Optional[SequenceNotStr[str]] | Omit = omit,
352360
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
353361
# The extra values given here take precedence over values defined on the client or passed to this method.
@@ -360,10 +368,18 @@ def metadata_facets(
360368
Get metadata facets
361369
362370
Args:
363-
store_identifier: The ID or name of the store
371+
query: Search query text
372+
373+
store_identifiers: IDs or names of stores to search
374+
375+
top_k: Number of results to return
364376
365377
filters: Optional filter conditions
366378
379+
file_ids: Optional list of file IDs to filter chunks by (inclusion filter)
380+
381+
search_options: Search configuration options
382+
367383
facets: Optional list of facets to return. Use dot for nested fields.
368384
369385
extra_headers: Send extra headers
@@ -374,13 +390,16 @@ def metadata_facets(
374390
375391
timeout: Override the client-level default timeout for this request, in seconds
376392
"""
377-
if not store_identifier:
378-
raise ValueError(f"Expected a non-empty value for `store_identifier` but received {store_identifier!r}")
379393
return self._post(
380-
f"/v1/stores/{store_identifier}/metadata-facets",
394+
"/v1/stores/metadata-facets",
381395
body=maybe_transform(
382396
{
397+
"query": query,
398+
"store_identifiers": store_identifiers,
399+
"top_k": top_k,
383400
"filters": filters,
401+
"file_ids": file_ids,
402+
"search_options": search_options,
384403
"facets": facets,
385404
},
386405
store_metadata_facets_params.StoreMetadataFacetsParams,
@@ -568,6 +587,7 @@ async def create(
568587
is_public: bool | Omit = omit,
569588
expires_after: Optional[ExpiresAfterParam] | Omit = omit,
570589
metadata: object | Omit = omit,
590+
config: Optional[store_create_params.Config] | Omit = omit,
571591
file_ids: Optional[SequenceNotStr[str]] | Omit = omit,
572592
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
573593
# The extra values given here take precedence over values defined on the client or passed to this method.
@@ -595,6 +615,8 @@ async def create(
595615
596616
metadata: Optional metadata key-value pairs
597617
618+
config: Configuration for a store.
619+
598620
file_ids: Optional list of file IDs
599621
600622
extra_headers: Send extra headers
@@ -614,6 +636,7 @@ async def create(
614636
"is_public": is_public,
615637
"expires_after": expires_after,
616638
"metadata": metadata,
639+
"config": config,
617640
"file_ids": file_ids,
618641
},
619642
store_create_params.StoreCreateParams,
@@ -836,9 +859,13 @@ async def delete(
836859

837860
async def metadata_facets(
838861
self,
839-
store_identifier: str,
840862
*,
863+
query: Optional[str] | Omit = omit,
864+
store_identifiers: SequenceNotStr[str],
865+
top_k: int | Omit = omit,
841866
filters: Optional[store_metadata_facets_params.Filters] | Omit = omit,
867+
file_ids: Union[Iterable[object], SequenceNotStr[str], None] | Omit = omit,
868+
search_options: StoreChunkSearchOptionsParam | Omit = omit,
842869
facets: Optional[SequenceNotStr[str]] | Omit = omit,
843870
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
844871
# The extra values given here take precedence over values defined on the client or passed to this method.
@@ -851,10 +878,18 @@ async def metadata_facets(
851878
Get metadata facets
852879
853880
Args:
854-
store_identifier: The ID or name of the store
881+
query: Search query text
882+
883+
store_identifiers: IDs or names of stores to search
884+
885+
top_k: Number of results to return
855886
856887
filters: Optional filter conditions
857888
889+
file_ids: Optional list of file IDs to filter chunks by (inclusion filter)
890+
891+
search_options: Search configuration options
892+
858893
facets: Optional list of facets to return. Use dot for nested fields.
859894
860895
extra_headers: Send extra headers
@@ -865,13 +900,16 @@ async def metadata_facets(
865900
866901
timeout: Override the client-level default timeout for this request, in seconds
867902
"""
868-
if not store_identifier:
869-
raise ValueError(f"Expected a non-empty value for `store_identifier` but received {store_identifier!r}")
870903
return await self._post(
871-
f"/v1/stores/{store_identifier}/metadata-facets",
904+
"/v1/stores/metadata-facets",
872905
body=await async_maybe_transform(
873906
{
907+
"query": query,
908+
"store_identifiers": store_identifiers,
909+
"top_k": top_k,
874910
"filters": filters,
911+
"file_ids": file_ids,
912+
"search_options": search_options,
875913
"facets": facets,
876914
},
877915
store_metadata_facets_params.StoreMetadataFacetsParams,

0 commit comments

Comments
 (0)