Skip to content

Commit dfc7cf9

Browse files
authored
Merge pull request #242 from mixedbread-ai/release-please--branches--main--changes--next
release: 0.32.0
2 parents fbac622 + 6a91063 commit dfc7cf9

47 files changed

Lines changed: 4584 additions & 86 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.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.31.0"
2+
".": "0.32.0"
33
}

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 49
1+
configured_endpoints: 61
22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/mixedbread%2Fmixedbread-34b8fc657696023cc3a74eee6febe0d2fc0decda668f874bfa42abe6222d8566.yml
33
openapi_spec_hash: dcd015b362c3fcb4ef449606a8027873
4-
config_hash: a2549e1f1923904c8cee4ea4f5ff58e1
4+
config_hash: 2de40c343cf7b242d5925e3405ee8908

CHANGELOG.md

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

3+
## 0.32.0 (2025-10-01)
4+
5+
Full Changelog: [v0.31.0...v0.32.0](https://github.com/mixedbread-ai/mixedbread-python/compare/v0.31.0...v0.32.0)
6+
7+
### Features
8+
9+
* **api:** update via SDK Studio ([cdca00d](https://github.com/mixedbread-ai/mixedbread-python/commit/cdca00d9f31579e66e3992cd08e43aa70a9079d1))
10+
311
## 0.31.0 (2025-10-01)
412

513
Full Changelog: [v0.30.0...v0.31.0](https://github.com/mixedbread-ai/mixedbread-python/compare/v0.30.0...v0.31.0)

README.md

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ client = Mixedbread(
3434
environment="development",
3535
)
3636

37-
vector_store = client.vector_stores.create()
38-
print(vector_store.id)
37+
store = client.stores.create()
38+
print(store.id)
3939
```
4040

4141
While you can provide an `api_key` keyword argument,
@@ -60,8 +60,8 @@ client = AsyncMixedbread(
6060

6161

6262
async def main() -> None:
63-
vector_store = await client.vector_stores.create()
64-
print(vector_store.id)
63+
store = await client.stores.create()
64+
print(store.id)
6565

6666

6767
asyncio.run(main())
@@ -93,8 +93,8 @@ async def main() -> None:
9393
api_key="My API Key",
9494
http_client=DefaultAioHttpClient(),
9595
) as client:
96-
vector_store = await client.vector_stores.create()
97-
print(vector_store.id)
96+
store = await client.stores.create()
97+
print(store.id)
9898

9999

100100
asyncio.run(main())
@@ -120,12 +120,12 @@ from mixedbread import Mixedbread
120120

121121
client = Mixedbread()
122122

123-
all_vector_stores = []
123+
all_stores = []
124124
# Automatically fetches more pages as needed.
125-
for vector_store in client.vector_stores.list():
126-
# Do something with vector_store here
127-
all_vector_stores.append(vector_store)
128-
print(all_vector_stores)
125+
for store in client.stores.list():
126+
# Do something with store here
127+
all_stores.append(store)
128+
print(all_stores)
129129
```
130130

131131
Or, asynchronously:
@@ -138,11 +138,11 @@ client = AsyncMixedbread()
138138

139139

140140
async def main() -> None:
141-
all_vector_stores = []
141+
all_stores = []
142142
# Iterate through items across all pages, issuing requests as needed.
143-
async for vector_store in client.vector_stores.list():
144-
all_vector_stores.append(vector_store)
145-
print(all_vector_stores)
143+
async for store in client.stores.list():
144+
all_stores.append(store)
145+
print(all_stores)
146146

147147

148148
asyncio.run(main())
@@ -151,7 +151,7 @@ asyncio.run(main())
151151
Alternatively, you can use the `.has_next_page()`, `.next_page_info()`, or `.get_next_page()` methods for more granular control working with pages:
152152

153153
```python
154-
first_page = await client.vector_stores.list()
154+
first_page = await client.stores.list()
155155
if first_page.has_next_page():
156156
print(f"will fetch next page using these details: {first_page.next_page_info()}")
157157
next_page = await first_page.get_next_page()
@@ -163,11 +163,11 @@ if first_page.has_next_page():
163163
Or just work directly with the returned data:
164164

165165
```python
166-
first_page = await client.vector_stores.list()
166+
first_page = await client.stores.list()
167167

168168
print(f"next page cursor: {first_page.pagination.last_cursor}") # => "next page cursor: ..."
169-
for vector_store in first_page.data:
170-
print(vector_store.id)
169+
for store in first_page.data:
170+
print(store.id)
171171

172172
# Remove `await` for non-async usage.
173173
```
@@ -181,10 +181,10 @@ from mixedbread import Mixedbread
181181

182182
client = Mixedbread()
183183

184-
vector_store = client.vector_stores.create(
184+
store = client.stores.create(
185185
expires_after={},
186186
)
187-
print(vector_store.expires_after)
187+
print(store.expires_after)
188188
```
189189

190190
## File uploads
@@ -220,7 +220,7 @@ from mixedbread import Mixedbread
220220
client = Mixedbread()
221221

222222
try:
223-
client.vector_stores.create()
223+
client.stores.create()
224224
except mixedbread.APIConnectionError as e:
225225
print("The server could not be reached")
226226
print(e.__cause__) # an underlying Exception, likely raised within httpx.
@@ -263,7 +263,7 @@ client = Mixedbread(
263263
)
264264

265265
# Or, configure per-request:
266-
client.with_options(max_retries=5).vector_stores.create()
266+
client.with_options(max_retries=5).stores.create()
267267
```
268268

269269
### Timeouts
@@ -286,7 +286,7 @@ client = Mixedbread(
286286
)
287287

288288
# Override per-request:
289-
client.with_options(timeout=5.0).vector_stores.create()
289+
client.with_options(timeout=5.0).stores.create()
290290
```
291291

292292
On timeout, an `APITimeoutError` is thrown.
@@ -327,11 +327,11 @@ The "raw" Response object can be accessed by prefixing `.with_raw_response.` to
327327
from mixedbread import Mixedbread
328328

329329
client = Mixedbread()
330-
response = client.vector_stores.with_raw_response.create()
330+
response = client.stores.with_raw_response.create()
331331
print(response.headers.get('X-My-Header'))
332332

333-
vector_store = response.parse() # get the object that `vector_stores.create()` would have returned
334-
print(vector_store.id)
333+
store = response.parse() # get the object that `stores.create()` would have returned
334+
print(store.id)
335335
```
336336

337337
These methods return an [`APIResponse`](https://github.com/mixedbread-ai/mixedbread-python/tree/main/src/mixedbread/_response.py) object.
@@ -345,7 +345,7 @@ The above interface eagerly reads the full response body when you make the reque
345345
To stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.
346346

347347
```python
348-
with client.vector_stores.with_streaming_response.create() as response:
348+
with client.stores.with_streaming_response.create() as response:
349349
print(response.headers.get("X-My-Header"))
350350

351351
for line in response.iter_lines():

api.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,53 @@ Methods:
7777
- <code title="delete /v1/vector_stores/{vector_store_identifier}/files/{file_id}">client.vector_stores.files.<a href="./src/mixedbread/resources/vector_stores/files.py">delete</a>(file_id, \*, vector_store_identifier) -> <a href="./src/mixedbread/types/vector_stores/file_delete_response.py">FileDeleteResponse</a></code>
7878
- <code title="post /v1/vector_stores/files/search">client.vector_stores.files.<a href="./src/mixedbread/resources/vector_stores/files.py">search</a>(\*\*<a href="src/mixedbread/types/vector_stores/file_search_params.py">params</a>) -> <a href="./src/mixedbread/types/vector_stores/file_search_response.py">FileSearchResponse</a></code>
7979

80+
# Stores
81+
82+
Types:
83+
84+
```python
85+
from mixedbread.types import (
86+
Store,
87+
StoreChunkSearchOptions,
88+
StoreDeleteResponse,
89+
StoreQuestionAnsweringResponse,
90+
StoreSearchResponse,
91+
)
92+
```
93+
94+
Methods:
95+
96+
- <code title="post /v1/stores">client.stores.<a href="./src/mixedbread/resources/stores/stores.py">create</a>(\*\*<a href="src/mixedbread/types/store_create_params.py">params</a>) -> <a href="./src/mixedbread/types/store.py">Store</a></code>
97+
- <code title="get /v1/stores/{store_identifier}">client.stores.<a href="./src/mixedbread/resources/stores/stores.py">retrieve</a>(store_identifier) -> <a href="./src/mixedbread/types/store.py">Store</a></code>
98+
- <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>
99+
- <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>
100+
- <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>
101+
- <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>
102+
- <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>
103+
104+
## Files
105+
106+
Types:
107+
108+
```python
109+
from mixedbread.types.stores import (
110+
ScoredStoreFile,
111+
StoreFileStatus,
112+
StoreFile,
113+
FileListResponse,
114+
FileDeleteResponse,
115+
FileSearchResponse,
116+
)
117+
```
118+
119+
Methods:
120+
121+
- <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>
122+
- <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>
123+
- <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>
124+
- <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>
125+
- <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>
126+
80127
# Parsing
81128

82129
## Jobs

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.31.0"
3+
version = "0.32.0"
44
description = "The official Python library for the Mixedbread API"
55
dynamic = ["readme"]
66
license = "Apache-2.0"

src/mixedbread/_client.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
AsyncAPIClient,
4848
make_request_options,
4949
)
50+
from .resources.stores import stores
5051
from .resources.parsing import parsing
5152
from .types.info_response import InfoResponse
5253
from .resources.extractions import extractions
@@ -77,6 +78,7 @@
7778

7879
class Mixedbread(SyncAPIClient):
7980
vector_stores: vector_stores.VectorStoresResource
81+
stores: stores.StoresResource
8082
parsing: parsing.ParsingResource
8183
files: files.FilesResource
8284
extractions: extractions.ExtractionsResource
@@ -166,6 +168,7 @@ def __init__(
166168
)
167169

168170
self.vector_stores = vector_stores.VectorStoresResource(self)
171+
self.stores = stores.StoresResource(self)
169172
self.parsing = parsing.ParsingResource(self)
170173
self.files = files.FilesResource(self)
171174
self.extractions = extractions.ExtractionsResource(self)
@@ -440,6 +443,7 @@ def _make_status_error(
440443

441444
class AsyncMixedbread(AsyncAPIClient):
442445
vector_stores: vector_stores.AsyncVectorStoresResource
446+
stores: stores.AsyncStoresResource
443447
parsing: parsing.AsyncParsingResource
444448
files: files.AsyncFilesResource
445449
extractions: extractions.AsyncExtractionsResource
@@ -529,6 +533,7 @@ def __init__(
529533
)
530534

531535
self.vector_stores = vector_stores.AsyncVectorStoresResource(self)
536+
self.stores = stores.AsyncStoresResource(self)
532537
self.parsing = parsing.AsyncParsingResource(self)
533538
self.files = files.AsyncFilesResource(self)
534539
self.extractions = extractions.AsyncExtractionsResource(self)
@@ -804,6 +809,7 @@ def _make_status_error(
804809
class MixedbreadWithRawResponse:
805810
def __init__(self, client: Mixedbread) -> None:
806811
self.vector_stores = vector_stores.VectorStoresResourceWithRawResponse(client.vector_stores)
812+
self.stores = stores.StoresResourceWithRawResponse(client.stores)
807813
self.parsing = parsing.ParsingResourceWithRawResponse(client.parsing)
808814
self.files = files.FilesResourceWithRawResponse(client.files)
809815
self.extractions = extractions.ExtractionsResourceWithRawResponse(client.extractions)
@@ -826,6 +832,7 @@ def __init__(self, client: Mixedbread) -> None:
826832
class AsyncMixedbreadWithRawResponse:
827833
def __init__(self, client: AsyncMixedbread) -> None:
828834
self.vector_stores = vector_stores.AsyncVectorStoresResourceWithRawResponse(client.vector_stores)
835+
self.stores = stores.AsyncStoresResourceWithRawResponse(client.stores)
829836
self.parsing = parsing.AsyncParsingResourceWithRawResponse(client.parsing)
830837
self.files = files.AsyncFilesResourceWithRawResponse(client.files)
831838
self.extractions = extractions.AsyncExtractionsResourceWithRawResponse(client.extractions)
@@ -848,6 +855,7 @@ def __init__(self, client: AsyncMixedbread) -> None:
848855
class MixedbreadWithStreamedResponse:
849856
def __init__(self, client: Mixedbread) -> None:
850857
self.vector_stores = vector_stores.VectorStoresResourceWithStreamingResponse(client.vector_stores)
858+
self.stores = stores.StoresResourceWithStreamingResponse(client.stores)
851859
self.parsing = parsing.ParsingResourceWithStreamingResponse(client.parsing)
852860
self.files = files.FilesResourceWithStreamingResponse(client.files)
853861
self.extractions = extractions.ExtractionsResourceWithStreamingResponse(client.extractions)
@@ -870,6 +878,7 @@ def __init__(self, client: Mixedbread) -> None:
870878
class AsyncMixedbreadWithStreamedResponse:
871879
def __init__(self, client: AsyncMixedbread) -> None:
872880
self.vector_stores = vector_stores.AsyncVectorStoresResourceWithStreamingResponse(client.vector_stores)
881+
self.stores = stores.AsyncStoresResourceWithStreamingResponse(client.stores)
873882
self.parsing = parsing.AsyncParsingResourceWithStreamingResponse(client.parsing)
874883
self.files = files.AsyncFilesResourceWithStreamingResponse(client.files)
875884
self.extractions = extractions.AsyncExtractionsResourceWithStreamingResponse(client.extractions)

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.31.0" # x-release-please-version
4+
__version__ = "0.32.0" # x-release-please-version

src/mixedbread/resources/__init__.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,14 @@
1616
FilesResourceWithStreamingResponse,
1717
AsyncFilesResourceWithStreamingResponse,
1818
)
19+
from .stores import (
20+
StoresResource,
21+
AsyncStoresResource,
22+
StoresResourceWithRawResponse,
23+
AsyncStoresResourceWithRawResponse,
24+
StoresResourceWithStreamingResponse,
25+
AsyncStoresResourceWithStreamingResponse,
26+
)
1927
from .parsing import (
2028
ParsingResource,
2129
AsyncParsingResource,
@@ -72,6 +80,12 @@
7280
"AsyncVectorStoresResourceWithRawResponse",
7381
"VectorStoresResourceWithStreamingResponse",
7482
"AsyncVectorStoresResourceWithStreamingResponse",
83+
"StoresResource",
84+
"AsyncStoresResource",
85+
"StoresResourceWithRawResponse",
86+
"AsyncStoresResourceWithRawResponse",
87+
"StoresResourceWithStreamingResponse",
88+
"AsyncStoresResourceWithStreamingResponse",
7589
"ParsingResource",
7690
"AsyncParsingResource",
7791
"ParsingResourceWithRawResponse",
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from .files import (
4+
FilesResource,
5+
AsyncFilesResource,
6+
FilesResourceWithRawResponse,
7+
AsyncFilesResourceWithRawResponse,
8+
FilesResourceWithStreamingResponse,
9+
AsyncFilesResourceWithStreamingResponse,
10+
)
11+
from .stores import (
12+
StoresResource,
13+
AsyncStoresResource,
14+
StoresResourceWithRawResponse,
15+
AsyncStoresResourceWithRawResponse,
16+
StoresResourceWithStreamingResponse,
17+
AsyncStoresResourceWithStreamingResponse,
18+
)
19+
20+
__all__ = [
21+
"FilesResource",
22+
"AsyncFilesResource",
23+
"FilesResourceWithRawResponse",
24+
"AsyncFilesResourceWithRawResponse",
25+
"FilesResourceWithStreamingResponse",
26+
"AsyncFilesResourceWithStreamingResponse",
27+
"StoresResource",
28+
"AsyncStoresResource",
29+
"StoresResourceWithRawResponse",
30+
"AsyncStoresResourceWithRawResponse",
31+
"StoresResourceWithStreamingResponse",
32+
"AsyncStoresResourceWithStreamingResponse",
33+
]

0 commit comments

Comments
 (0)