Skip to content

Commit ae72f63

Browse files
feat(api): update via SDK Studio
1 parent b509fd0 commit ae72f63

7 files changed

Lines changed: 395 additions & 3 deletions

File tree

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 48
1+
configured_endpoints: 49
22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/mixedbread%2Fmixedbread-4983c57f5143aaeadfbb4af35595570e613035ae500ff1597fdf600cc2a48959.yml
33
openapi_spec_hash: ecc0a6cfe61c3c959d034d094f36befe
4-
config_hash: d98614cc5eec7ec8807fcc86c1799d62
4+
config_hash: ac27678c24558b71ee39b3db54fa12da

api.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ from mixedbread.types.vector_stores import (
6363
ScoredVectorStoreFile,
6464
VectorStoreFileStatus,
6565
VectorStoreFile,
66+
FileListResponse,
6667
FileDeleteResponse,
6768
FileSearchResponse,
6869
)
@@ -72,6 +73,7 @@ Methods:
7273

7374
- <code title="post /v1/vector_stores/{vector_store_identifier}/files">client.vector_stores.files.<a href="./src/mixedbread/resources/vector_stores/files.py">create</a>(vector_store_identifier, \*\*<a href="src/mixedbread/types/vector_stores/file_create_params.py">params</a>) -> <a href="./src/mixedbread/types/vector_stores/vector_store_file.py">VectorStoreFile</a></code>
7475
- <code title="get /v1/vector_stores/{vector_store_identifier}/files/{file_id}">client.vector_stores.files.<a href="./src/mixedbread/resources/vector_stores/files.py">retrieve</a>(file_id, \*, vector_store_identifier, \*\*<a href="src/mixedbread/types/vector_stores/file_retrieve_params.py">params</a>) -> <a href="./src/mixedbread/types/vector_stores/vector_store_file.py">VectorStoreFile</a></code>
76+
- <code title="post /v1/vector_stores/{vector_store_identifier}/files/list">client.vector_stores.files.<a href="./src/mixedbread/resources/vector_stores/files.py">list</a>(vector_store_identifier, \*\*<a href="src/mixedbread/types/vector_stores/file_list_params.py">params</a>) -> <a href="./src/mixedbread/types/vector_stores/file_list_response.py">FileListResponse</a></code>
7577
- <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>
7678
- <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>
7779

src/mixedbread/resources/vector_stores/files.py

Lines changed: 161 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,12 @@
1919
async_to_streamed_response_wrapper,
2020
)
2121
from ..._base_client import make_request_options
22-
from ...types.vector_stores import file_create_params, file_search_params, file_retrieve_params
22+
from ...types.vector_stores import file_list_params, file_create_params, file_search_params, file_retrieve_params
2323
from ...types.vector_stores.vector_store_file import VectorStoreFile
24+
from ...types.vector_stores.file_list_response import FileListResponse
2425
from ...types.vector_stores.file_delete_response import FileDeleteResponse
2526
from ...types.vector_stores.file_search_response import FileSearchResponse
27+
from ...types.vector_stores.vector_store_file_status import VectorStoreFileStatus
2628

2729
__all__ = ["FilesResource", "AsyncFilesResource"]
2830

@@ -160,6 +162,79 @@ def retrieve(
160162
cast_to=VectorStoreFile,
161163
)
162164

165+
def list(
166+
self,
167+
vector_store_identifier: str,
168+
*,
169+
limit: int | NotGiven = NOT_GIVEN,
170+
after: Optional[str] | NotGiven = NOT_GIVEN,
171+
before: Optional[str] | NotGiven = NOT_GIVEN,
172+
include_total: bool | NotGiven = NOT_GIVEN,
173+
statuses: Optional[List[VectorStoreFileStatus]] | NotGiven = NOT_GIVEN,
174+
metadata_filter: Optional[file_list_params.MetadataFilter] | NotGiven = NOT_GIVEN,
175+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
176+
# The extra values given here take precedence over values defined on the client or passed to this method.
177+
extra_headers: Headers | None = None,
178+
extra_query: Query | None = None,
179+
extra_body: Body | None = None,
180+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
181+
) -> FileListResponse:
182+
"""
183+
List files indexed in a vector store with pagination and metadata filter.
184+
185+
Args: vector_store_identifier: The ID or name of the vector store pagination:
186+
Pagination parameters and metadata filter
187+
188+
Returns: VectorStoreFileListResponse: Paginated list of vector store files
189+
190+
Args:
191+
vector_store_identifier: The ID or name of the vector store
192+
193+
limit: Maximum number of items to return per page (1-100)
194+
195+
after: Cursor for forward pagination - get items after this position. Use last_cursor
196+
from previous response.
197+
198+
before: Cursor for backward pagination - get items before this position. Use
199+
first_cursor from previous response.
200+
201+
include_total: Whether to include total count in response (expensive operation)
202+
203+
statuses: Status to filter by
204+
205+
metadata_filter: Metadata filter to apply to the query
206+
207+
extra_headers: Send extra headers
208+
209+
extra_query: Add additional query parameters to the request
210+
211+
extra_body: Add additional JSON properties to the request
212+
213+
timeout: Override the client-level default timeout for this request, in seconds
214+
"""
215+
if not vector_store_identifier:
216+
raise ValueError(
217+
f"Expected a non-empty value for `vector_store_identifier` but received {vector_store_identifier!r}"
218+
)
219+
return self._post(
220+
f"/v1/vector_stores/{vector_store_identifier}/files/list",
221+
body=maybe_transform(
222+
{
223+
"limit": limit,
224+
"after": after,
225+
"before": before,
226+
"include_total": include_total,
227+
"statuses": statuses,
228+
"metadata_filter": metadata_filter,
229+
},
230+
file_list_params.FileListParams,
231+
),
232+
options=make_request_options(
233+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
234+
),
235+
cast_to=FileListResponse,
236+
)
237+
163238
def delete(
164239
self,
165240
file_id: str,
@@ -525,6 +600,79 @@ async def retrieve(
525600
cast_to=VectorStoreFile,
526601
)
527602

603+
async def list(
604+
self,
605+
vector_store_identifier: str,
606+
*,
607+
limit: int | NotGiven = NOT_GIVEN,
608+
after: Optional[str] | NotGiven = NOT_GIVEN,
609+
before: Optional[str] | NotGiven = NOT_GIVEN,
610+
include_total: bool | NotGiven = NOT_GIVEN,
611+
statuses: Optional[List[VectorStoreFileStatus]] | NotGiven = NOT_GIVEN,
612+
metadata_filter: Optional[file_list_params.MetadataFilter] | NotGiven = NOT_GIVEN,
613+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
614+
# The extra values given here take precedence over values defined on the client or passed to this method.
615+
extra_headers: Headers | None = None,
616+
extra_query: Query | None = None,
617+
extra_body: Body | None = None,
618+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
619+
) -> FileListResponse:
620+
"""
621+
List files indexed in a vector store with pagination and metadata filter.
622+
623+
Args: vector_store_identifier: The ID or name of the vector store pagination:
624+
Pagination parameters and metadata filter
625+
626+
Returns: VectorStoreFileListResponse: Paginated list of vector store files
627+
628+
Args:
629+
vector_store_identifier: The ID or name of the vector store
630+
631+
limit: Maximum number of items to return per page (1-100)
632+
633+
after: Cursor for forward pagination - get items after this position. Use last_cursor
634+
from previous response.
635+
636+
before: Cursor for backward pagination - get items before this position. Use
637+
first_cursor from previous response.
638+
639+
include_total: Whether to include total count in response (expensive operation)
640+
641+
statuses: Status to filter by
642+
643+
metadata_filter: Metadata filter to apply to the query
644+
645+
extra_headers: Send extra headers
646+
647+
extra_query: Add additional query parameters to the request
648+
649+
extra_body: Add additional JSON properties to the request
650+
651+
timeout: Override the client-level default timeout for this request, in seconds
652+
"""
653+
if not vector_store_identifier:
654+
raise ValueError(
655+
f"Expected a non-empty value for `vector_store_identifier` but received {vector_store_identifier!r}"
656+
)
657+
return await self._post(
658+
f"/v1/vector_stores/{vector_store_identifier}/files/list",
659+
body=await async_maybe_transform(
660+
{
661+
"limit": limit,
662+
"after": after,
663+
"before": before,
664+
"include_total": include_total,
665+
"statuses": statuses,
666+
"metadata_filter": metadata_filter,
667+
},
668+
file_list_params.FileListParams,
669+
),
670+
options=make_request_options(
671+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
672+
),
673+
cast_to=FileListResponse,
674+
)
675+
528676
async def delete(
529677
self,
530678
file_id: str,
@@ -769,6 +917,9 @@ def __init__(self, files: FilesResource) -> None:
769917
self.retrieve = to_raw_response_wrapper(
770918
files.retrieve,
771919
)
920+
self.list = to_raw_response_wrapper(
921+
files.list,
922+
)
772923
self.delete = to_raw_response_wrapper(
773924
files.delete,
774925
)
@@ -787,6 +938,9 @@ def __init__(self, files: AsyncFilesResource) -> None:
787938
self.retrieve = async_to_raw_response_wrapper(
788939
files.retrieve,
789940
)
941+
self.list = async_to_raw_response_wrapper(
942+
files.list,
943+
)
790944
self.delete = async_to_raw_response_wrapper(
791945
files.delete,
792946
)
@@ -805,6 +959,9 @@ def __init__(self, files: FilesResource) -> None:
805959
self.retrieve = to_streamed_response_wrapper(
806960
files.retrieve,
807961
)
962+
self.list = to_streamed_response_wrapper(
963+
files.list,
964+
)
808965
self.delete = to_streamed_response_wrapper(
809966
files.delete,
810967
)
@@ -823,6 +980,9 @@ def __init__(self, files: AsyncFilesResource) -> None:
823980
self.retrieve = async_to_streamed_response_wrapper(
824981
files.retrieve,
825982
)
983+
self.list = async_to_streamed_response_wrapper(
984+
files.list,
985+
)
826986
self.delete = async_to_streamed_response_wrapper(
827987
files.delete,
828988
)

src/mixedbread/types/vector_stores/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22

33
from __future__ import annotations
44

5+
from .file_list_params import FileListParams as FileListParams
56
from .vector_store_file import VectorStoreFile as VectorStoreFile
67
from .file_create_params import FileCreateParams as FileCreateParams
8+
from .file_list_response import FileListResponse as FileListResponse
79
from .file_search_params import FileSearchParams as FileSearchParams
810
from .rerank_config_param import RerankConfigParam as RerankConfigParam
911
from .file_delete_response import FileDeleteResponse as FileDeleteResponse
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from __future__ import annotations
4+
5+
from typing import List, Union, Iterable, Optional
6+
from typing_extensions import TypeAlias, TypedDict
7+
8+
from .vector_store_file_status import VectorStoreFileStatus
9+
from ..shared_params.search_filter_condition import SearchFilterCondition
10+
11+
__all__ = ["FileListParams", "MetadataFilter", "MetadataFilterUnionMember2"]
12+
13+
14+
class FileListParams(TypedDict, total=False):
15+
limit: int
16+
"""Maximum number of items to return per page (1-100)"""
17+
18+
after: Optional[str]
19+
"""Cursor for forward pagination - get items after this position.
20+
21+
Use last_cursor from previous response.
22+
"""
23+
24+
before: Optional[str]
25+
"""Cursor for backward pagination - get items before this position.
26+
27+
Use first_cursor from previous response.
28+
"""
29+
30+
include_total: bool
31+
"""Whether to include total count in response (expensive operation)"""
32+
33+
statuses: Optional[List[VectorStoreFileStatus]]
34+
"""Status to filter by"""
35+
36+
metadata_filter: Optional[MetadataFilter]
37+
"""Metadata filter to apply to the query"""
38+
39+
40+
MetadataFilterUnionMember2: TypeAlias = Union["SearchFilter", SearchFilterCondition]
41+
42+
MetadataFilter: TypeAlias = Union["SearchFilter", SearchFilterCondition, Iterable[MetadataFilterUnionMember2]]
43+
44+
from ..shared_params.search_filter import SearchFilter
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from typing import List, Optional
4+
from typing_extensions import Literal
5+
6+
from ..._models import BaseModel
7+
from .vector_store_file import VectorStoreFile
8+
9+
__all__ = ["FileListResponse", "Pagination"]
10+
11+
12+
class Pagination(BaseModel):
13+
has_more: bool
14+
"""
15+
Contextual direction-aware flag: True if more items exist in the requested
16+
pagination direction. For 'after': more items after this page. For 'before':
17+
more items before this page.
18+
"""
19+
20+
first_cursor: Optional[str] = None
21+
"""Cursor of the first item in this page.
22+
23+
Use for backward pagination. None if page is empty.
24+
"""
25+
26+
last_cursor: Optional[str] = None
27+
"""Cursor of the last item in this page.
28+
29+
Use for forward pagination. None if page is empty.
30+
"""
31+
32+
total: Optional[int] = None
33+
"""Total number of items available across all pages.
34+
35+
Only included when include_total=true was requested. Expensive operation - use
36+
sparingly.
37+
"""
38+
39+
40+
class FileListResponse(BaseModel):
41+
pagination: Pagination
42+
"""Response model for cursor-based pagination.
43+
44+
Examples: Forward pagination response: { "has_more": true, "first_cursor":
45+
"eyJjcmVhdGVkX2F0IjoiMjAyNC0xMi0zMSIsImlkIjoiYWJjMTIzIn0=", "last_cursor":
46+
"eyJjcmVhdGVkX2F0IjoiMjAyNC0xMi0zMCIsImlkIjoieHl6Nzg5In0=", "total": null }
47+
48+
Final page response:
49+
{
50+
"has_more": false,
51+
"first_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNC0xMi0yOSIsImlkIjoibGFzdDEyMyJ9",
52+
"last_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNC0xMi0yOCIsImlkIjoiZmluYWw0NTYifQ==",
53+
"total": 42
54+
}
55+
56+
Empty results:
57+
{
58+
"has_more": false,
59+
"first_cursor": null,
60+
"last_cursor": null,
61+
"total": 0
62+
}
63+
"""
64+
65+
object: Optional[Literal["list"]] = None
66+
"""The object type of the response"""
67+
68+
data: List[VectorStoreFile]
69+
"""The list of vector store files"""

0 commit comments

Comments
 (0)