scale-gp-beta 0.1.0a42__py3-none-any.whl → 0.1.0a43__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- scale_gp_beta/_base_client.py +5 -2
- scale_gp_beta/_client.py +38 -0
- scale_gp_beta/_compat.py +3 -3
- scale_gp_beta/_utils/_json.py +35 -0
- scale_gp_beta/_version.py +1 -1
- scale_gp_beta/resources/__init__.py +14 -0
- scale_gp_beta/resources/vector_stores.py +1314 -0
- scale_gp_beta/types/__init__.py +15 -0
- scale_gp_beta/types/vector_store.py +42 -0
- scale_gp_beta/types/vector_store_configure_params.py +16 -0
- scale_gp_beta/types/vector_store_count_params.py +13 -0
- scale_gp_beta/types/vector_store_count_response.py +12 -0
- scale_gp_beta/types/vector_store_create_params.py +35 -0
- scale_gp_beta/types/vector_store_delete_params.py +18 -0
- scale_gp_beta/types/vector_store_delete_response.py +12 -0
- scale_gp_beta/types/vector_store_drop_response.py +12 -0
- scale_gp_beta/types/vector_store_list_params.py +19 -0
- scale_gp_beta/types/vector_store_query_params.py +34 -0
- scale_gp_beta/types/vector_store_query_response.py +61 -0
- scale_gp_beta/types/vector_store_upsert_params.py +29 -0
- scale_gp_beta/types/vector_store_upsert_response.py +23 -0
- scale_gp_beta/types/vector_store_vectors_params.py +21 -0
- scale_gp_beta/types/vector_store_vectors_response.py +36 -0
- {scale_gp_beta-0.1.0a42.dist-info → scale_gp_beta-0.1.0a43.dist-info}/METADATA +3 -3
- {scale_gp_beta-0.1.0a42.dist-info → scale_gp_beta-0.1.0a43.dist-info}/RECORD +27 -10
- {scale_gp_beta-0.1.0a42.dist-info → scale_gp_beta-0.1.0a43.dist-info}/WHEEL +0 -0
- {scale_gp_beta-0.1.0a42.dist-info → scale_gp_beta-0.1.0a43.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,1314 @@
|
|
|
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 Dict, Iterable
|
|
6
|
+
from typing_extensions import Literal
|
|
7
|
+
|
|
8
|
+
import httpx
|
|
9
|
+
|
|
10
|
+
from ..types import (
|
|
11
|
+
vector_store_list_params,
|
|
12
|
+
vector_store_count_params,
|
|
13
|
+
vector_store_query_params,
|
|
14
|
+
vector_store_create_params,
|
|
15
|
+
vector_store_delete_params,
|
|
16
|
+
vector_store_upsert_params,
|
|
17
|
+
vector_store_vectors_params,
|
|
18
|
+
vector_store_configure_params,
|
|
19
|
+
)
|
|
20
|
+
from .._types import Body, Omit, Query, Headers, NotGiven, SequenceNotStr, omit, not_given
|
|
21
|
+
from .._utils import maybe_transform, async_maybe_transform
|
|
22
|
+
from .._compat import cached_property
|
|
23
|
+
from .._resource import SyncAPIResource, AsyncAPIResource
|
|
24
|
+
from .._response import (
|
|
25
|
+
to_raw_response_wrapper,
|
|
26
|
+
to_streamed_response_wrapper,
|
|
27
|
+
async_to_raw_response_wrapper,
|
|
28
|
+
async_to_streamed_response_wrapper,
|
|
29
|
+
)
|
|
30
|
+
from ..pagination import SyncCursorPage, AsyncCursorPage
|
|
31
|
+
from .._base_client import AsyncPaginator, make_request_options
|
|
32
|
+
from ..types.vector_store import VectorStore
|
|
33
|
+
from ..types.vector_store_drop_response import VectorStoreDropResponse
|
|
34
|
+
from ..types.vector_store_count_response import VectorStoreCountResponse
|
|
35
|
+
from ..types.vector_store_query_response import VectorStoreQueryResponse
|
|
36
|
+
from ..types.vector_store_delete_response import VectorStoreDeleteResponse
|
|
37
|
+
from ..types.vector_store_upsert_response import VectorStoreUpsertResponse
|
|
38
|
+
from ..types.vector_store_vectors_response import VectorStoreVectorsResponse
|
|
39
|
+
|
|
40
|
+
__all__ = ["VectorStoresResource", "AsyncVectorStoresResource"]
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class VectorStoresResource(SyncAPIResource):
|
|
44
|
+
@cached_property
|
|
45
|
+
def with_raw_response(self) -> VectorStoresResourceWithRawResponse:
|
|
46
|
+
"""
|
|
47
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
48
|
+
the raw response object instead of the parsed content.
|
|
49
|
+
|
|
50
|
+
For more information, see https://www.github.com/scaleapi/sgp-python-beta#accessing-raw-response-data-eg-headers
|
|
51
|
+
"""
|
|
52
|
+
return VectorStoresResourceWithRawResponse(self)
|
|
53
|
+
|
|
54
|
+
@cached_property
|
|
55
|
+
def with_streaming_response(self) -> VectorStoresResourceWithStreamingResponse:
|
|
56
|
+
"""
|
|
57
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
58
|
+
|
|
59
|
+
For more information, see https://www.github.com/scaleapi/sgp-python-beta#with_streaming_response
|
|
60
|
+
"""
|
|
61
|
+
return VectorStoresResourceWithStreamingResponse(self)
|
|
62
|
+
|
|
63
|
+
def create(
|
|
64
|
+
self,
|
|
65
|
+
*,
|
|
66
|
+
embedding_model: Literal[
|
|
67
|
+
"sentence-transformers/all-MiniLM-L12-v2",
|
|
68
|
+
"sentence-transformers/all-mpnet-base-v2",
|
|
69
|
+
"sentence-transformers/multi-qa-distilbert-cos-v1",
|
|
70
|
+
"sentence-transformers/paraphrase-multilingual-mpnet-base-v2",
|
|
71
|
+
"openai/text-embedding-ada-002",
|
|
72
|
+
"openai/text-embedding-3-small",
|
|
73
|
+
"openai/text-embedding-3-large",
|
|
74
|
+
"embed-english-v3.0",
|
|
75
|
+
"embed-english-light-v3.0",
|
|
76
|
+
"embed-multilingual-v3.0",
|
|
77
|
+
],
|
|
78
|
+
name: str,
|
|
79
|
+
indexed_metadata_fields: Dict[str, Literal["string", "number", "boolean", "object", "list"]] | Omit = omit,
|
|
80
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
81
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
82
|
+
extra_headers: Headers | None = None,
|
|
83
|
+
extra_query: Query | None = None,
|
|
84
|
+
extra_body: Body | None = None,
|
|
85
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
86
|
+
) -> VectorStore:
|
|
87
|
+
"""
|
|
88
|
+
Create a new vector store.
|
|
89
|
+
|
|
90
|
+
The vector store will be scoped to the authenticated account. The name must be
|
|
91
|
+
unique within the account.
|
|
92
|
+
|
|
93
|
+
Args: request: Vector store creation parameters including name, dimensions, and
|
|
94
|
+
optional model vector_store_use_case: Injected vector store use case
|
|
95
|
+
|
|
96
|
+
Returns: The created vector store details
|
|
97
|
+
|
|
98
|
+
Args:
|
|
99
|
+
embedding_model: The embedding model to use
|
|
100
|
+
|
|
101
|
+
name: A unique name for the vector store within the account
|
|
102
|
+
|
|
103
|
+
indexed_metadata_fields: Dictionary mapping metadata field names to their types for efficient filtering.
|
|
104
|
+
Only STRING, NUMBER, and BOOLEAN types can be indexed.
|
|
105
|
+
|
|
106
|
+
extra_headers: Send extra headers
|
|
107
|
+
|
|
108
|
+
extra_query: Add additional query parameters to the request
|
|
109
|
+
|
|
110
|
+
extra_body: Add additional JSON properties to the request
|
|
111
|
+
|
|
112
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
113
|
+
"""
|
|
114
|
+
return self._post(
|
|
115
|
+
"/v5/vector-stores/create",
|
|
116
|
+
body=maybe_transform(
|
|
117
|
+
{
|
|
118
|
+
"embedding_model": embedding_model,
|
|
119
|
+
"name": name,
|
|
120
|
+
"indexed_metadata_fields": indexed_metadata_fields,
|
|
121
|
+
},
|
|
122
|
+
vector_store_create_params.VectorStoreCreateParams,
|
|
123
|
+
),
|
|
124
|
+
options=make_request_options(
|
|
125
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
126
|
+
),
|
|
127
|
+
cast_to=VectorStore,
|
|
128
|
+
)
|
|
129
|
+
|
|
130
|
+
def retrieve(
|
|
131
|
+
self,
|
|
132
|
+
vector_store_name: str,
|
|
133
|
+
*,
|
|
134
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
135
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
136
|
+
extra_headers: Headers | None = None,
|
|
137
|
+
extra_query: Query | None = None,
|
|
138
|
+
extra_body: Body | None = None,
|
|
139
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
140
|
+
) -> VectorStore:
|
|
141
|
+
"""
|
|
142
|
+
Get a vector store by name.
|
|
143
|
+
|
|
144
|
+
Args: vector_store_name: The unique name of the vector store within the account
|
|
145
|
+
vector_store_use_case: Injected vector store use case
|
|
146
|
+
|
|
147
|
+
Returns: The vector store details
|
|
148
|
+
|
|
149
|
+
Args:
|
|
150
|
+
vector_store_name: The name of the vector store
|
|
151
|
+
|
|
152
|
+
extra_headers: Send extra headers
|
|
153
|
+
|
|
154
|
+
extra_query: Add additional query parameters to the request
|
|
155
|
+
|
|
156
|
+
extra_body: Add additional JSON properties to the request
|
|
157
|
+
|
|
158
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
159
|
+
"""
|
|
160
|
+
if not vector_store_name:
|
|
161
|
+
raise ValueError(f"Expected a non-empty value for `vector_store_name` but received {vector_store_name!r}")
|
|
162
|
+
return self._get(
|
|
163
|
+
f"/v5/vector-stores/{vector_store_name}",
|
|
164
|
+
options=make_request_options(
|
|
165
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
166
|
+
),
|
|
167
|
+
cast_to=VectorStore,
|
|
168
|
+
)
|
|
169
|
+
|
|
170
|
+
def list(
|
|
171
|
+
self,
|
|
172
|
+
*,
|
|
173
|
+
ending_before: str | Omit = omit,
|
|
174
|
+
limit: int | Omit = omit,
|
|
175
|
+
sort_by: str | Omit = omit,
|
|
176
|
+
sort_order: Literal["asc", "desc"] | Omit = omit,
|
|
177
|
+
starting_after: str | Omit = omit,
|
|
178
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
179
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
180
|
+
extra_headers: Headers | None = None,
|
|
181
|
+
extra_query: Query | None = None,
|
|
182
|
+
extra_body: Body | None = None,
|
|
183
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
184
|
+
) -> SyncCursorPage[VectorStore]:
|
|
185
|
+
"""
|
|
186
|
+
List all vector stores for the current account with pagination.
|
|
187
|
+
|
|
188
|
+
Returns a paginated list of vector stores owned by the authenticated account.
|
|
189
|
+
|
|
190
|
+
Args:
|
|
191
|
+
extra_headers: Send extra headers
|
|
192
|
+
|
|
193
|
+
extra_query: Add additional query parameters to the request
|
|
194
|
+
|
|
195
|
+
extra_body: Add additional JSON properties to the request
|
|
196
|
+
|
|
197
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
198
|
+
"""
|
|
199
|
+
return self._get_api_list(
|
|
200
|
+
"/v5/vector-stores",
|
|
201
|
+
page=SyncCursorPage[VectorStore],
|
|
202
|
+
options=make_request_options(
|
|
203
|
+
extra_headers=extra_headers,
|
|
204
|
+
extra_query=extra_query,
|
|
205
|
+
extra_body=extra_body,
|
|
206
|
+
timeout=timeout,
|
|
207
|
+
query=maybe_transform(
|
|
208
|
+
{
|
|
209
|
+
"ending_before": ending_before,
|
|
210
|
+
"limit": limit,
|
|
211
|
+
"sort_by": sort_by,
|
|
212
|
+
"sort_order": sort_order,
|
|
213
|
+
"starting_after": starting_after,
|
|
214
|
+
},
|
|
215
|
+
vector_store_list_params.VectorStoreListParams,
|
|
216
|
+
),
|
|
217
|
+
),
|
|
218
|
+
model=VectorStore,
|
|
219
|
+
)
|
|
220
|
+
|
|
221
|
+
def delete(
|
|
222
|
+
self,
|
|
223
|
+
vector_store_name: str,
|
|
224
|
+
*,
|
|
225
|
+
filter: Dict[str, object] | Omit = omit,
|
|
226
|
+
ids: SequenceNotStr[str] | Omit = omit,
|
|
227
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
228
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
229
|
+
extra_headers: Headers | None = None,
|
|
230
|
+
extra_query: Query | None = None,
|
|
231
|
+
extra_body: Body | None = None,
|
|
232
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
233
|
+
) -> VectorStoreDeleteResponse:
|
|
234
|
+
"""
|
|
235
|
+
Delete documents from a vector store by IDs or filter.
|
|
236
|
+
|
|
237
|
+
Args: request: Either IDs or filter criteria for deletion vector_store_name: The
|
|
238
|
+
unique name of the vector store vector_store_use_case: Injected vector store use
|
|
239
|
+
case
|
|
240
|
+
|
|
241
|
+
Returns: Number of documents deleted
|
|
242
|
+
|
|
243
|
+
Args:
|
|
244
|
+
vector_store_name: The name of the vector store
|
|
245
|
+
|
|
246
|
+
filter: Metadata filter expression for deletion
|
|
247
|
+
|
|
248
|
+
ids: Array of document IDs to delete
|
|
249
|
+
|
|
250
|
+
extra_headers: Send extra headers
|
|
251
|
+
|
|
252
|
+
extra_query: Add additional query parameters to the request
|
|
253
|
+
|
|
254
|
+
extra_body: Add additional JSON properties to the request
|
|
255
|
+
|
|
256
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
257
|
+
"""
|
|
258
|
+
if not vector_store_name:
|
|
259
|
+
raise ValueError(f"Expected a non-empty value for `vector_store_name` but received {vector_store_name!r}")
|
|
260
|
+
return self._post(
|
|
261
|
+
f"/v5/vector-stores/{vector_store_name}/delete",
|
|
262
|
+
body=maybe_transform(
|
|
263
|
+
{
|
|
264
|
+
"filter": filter,
|
|
265
|
+
"ids": ids,
|
|
266
|
+
},
|
|
267
|
+
vector_store_delete_params.VectorStoreDeleteParams,
|
|
268
|
+
),
|
|
269
|
+
options=make_request_options(
|
|
270
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
271
|
+
),
|
|
272
|
+
cast_to=VectorStoreDeleteResponse,
|
|
273
|
+
)
|
|
274
|
+
|
|
275
|
+
def configure(
|
|
276
|
+
self,
|
|
277
|
+
vector_store_name: str,
|
|
278
|
+
*,
|
|
279
|
+
indexed_metadata_fields: Dict[str, Literal["string", "number", "boolean", "object", "list"]],
|
|
280
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
281
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
282
|
+
extra_headers: Headers | None = None,
|
|
283
|
+
extra_query: Query | None = None,
|
|
284
|
+
extra_body: Body | None = None,
|
|
285
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
286
|
+
) -> VectorStore:
|
|
287
|
+
"""
|
|
288
|
+
Configure the settings of a vector store.
|
|
289
|
+
|
|
290
|
+
Currently only supports updating indexed_metadata_fields. The name,
|
|
291
|
+
embedding_dimensions, and embedding_model are immutable after creation.
|
|
292
|
+
|
|
293
|
+
Args: request: Configuration update with indexed_metadata_fields
|
|
294
|
+
vector_store_name: The unique name of the vector store within the account
|
|
295
|
+
vector_store_use_case: Injected vector store use case
|
|
296
|
+
|
|
297
|
+
Returns: The updated vector store details
|
|
298
|
+
|
|
299
|
+
Args:
|
|
300
|
+
vector_store_name: The name of the vector store
|
|
301
|
+
|
|
302
|
+
indexed_metadata_fields: Dictionary mapping metadata field names to their types. Only STRING, NUMBER, and
|
|
303
|
+
BOOLEAN types can be indexed.
|
|
304
|
+
|
|
305
|
+
extra_headers: Send extra headers
|
|
306
|
+
|
|
307
|
+
extra_query: Add additional query parameters to the request
|
|
308
|
+
|
|
309
|
+
extra_body: Add additional JSON properties to the request
|
|
310
|
+
|
|
311
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
312
|
+
"""
|
|
313
|
+
if not vector_store_name:
|
|
314
|
+
raise ValueError(f"Expected a non-empty value for `vector_store_name` but received {vector_store_name!r}")
|
|
315
|
+
return self._post(
|
|
316
|
+
f"/v5/vector-stores/{vector_store_name}/configure",
|
|
317
|
+
body=maybe_transform(
|
|
318
|
+
{"indexed_metadata_fields": indexed_metadata_fields},
|
|
319
|
+
vector_store_configure_params.VectorStoreConfigureParams,
|
|
320
|
+
),
|
|
321
|
+
options=make_request_options(
|
|
322
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
323
|
+
),
|
|
324
|
+
cast_to=VectorStore,
|
|
325
|
+
)
|
|
326
|
+
|
|
327
|
+
def count(
|
|
328
|
+
self,
|
|
329
|
+
vector_store_name: str,
|
|
330
|
+
*,
|
|
331
|
+
filter: Dict[str, object] | Omit = omit,
|
|
332
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
333
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
334
|
+
extra_headers: Headers | None = None,
|
|
335
|
+
extra_query: Query | None = None,
|
|
336
|
+
extra_body: Body | None = None,
|
|
337
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
338
|
+
) -> VectorStoreCountResponse:
|
|
339
|
+
"""
|
|
340
|
+
Count documents in a vector store, optionally filtered by metadata.
|
|
341
|
+
|
|
342
|
+
Args: vector_store_name: The unique name of the vector store request: Optional
|
|
343
|
+
filter criteria (empty body counts all documents) vector_store_use_case:
|
|
344
|
+
Injected vector store use case
|
|
345
|
+
|
|
346
|
+
Returns: The count of documents matching the criteria
|
|
347
|
+
|
|
348
|
+
Args:
|
|
349
|
+
vector_store_name: The name of the vector store
|
|
350
|
+
|
|
351
|
+
filter: Metadata filter expression
|
|
352
|
+
|
|
353
|
+
extra_headers: Send extra headers
|
|
354
|
+
|
|
355
|
+
extra_query: Add additional query parameters to the request
|
|
356
|
+
|
|
357
|
+
extra_body: Add additional JSON properties to the request
|
|
358
|
+
|
|
359
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
360
|
+
"""
|
|
361
|
+
if not vector_store_name:
|
|
362
|
+
raise ValueError(f"Expected a non-empty value for `vector_store_name` but received {vector_store_name!r}")
|
|
363
|
+
return self._post(
|
|
364
|
+
f"/v5/vector-stores/{vector_store_name}/count",
|
|
365
|
+
body=maybe_transform({"filter": filter}, vector_store_count_params.VectorStoreCountParams),
|
|
366
|
+
options=make_request_options(
|
|
367
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
368
|
+
),
|
|
369
|
+
cast_to=VectorStoreCountResponse,
|
|
370
|
+
)
|
|
371
|
+
|
|
372
|
+
def drop(
|
|
373
|
+
self,
|
|
374
|
+
vector_store_name: str,
|
|
375
|
+
*,
|
|
376
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
377
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
378
|
+
extra_headers: Headers | None = None,
|
|
379
|
+
extra_query: Query | None = None,
|
|
380
|
+
extra_body: Body | None = None,
|
|
381
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
382
|
+
) -> VectorStoreDropResponse:
|
|
383
|
+
"""
|
|
384
|
+
Delete (drop) a vector store by name.
|
|
385
|
+
|
|
386
|
+
This is a hard delete operation that permanently removes the vector store.
|
|
387
|
+
|
|
388
|
+
Args: vector_store_name: The unique name of the vector store within the account
|
|
389
|
+
vector_store_use_case: Injected vector store use case
|
|
390
|
+
|
|
391
|
+
Returns: Deletion confirmation with the vector store ID
|
|
392
|
+
|
|
393
|
+
Args:
|
|
394
|
+
vector_store_name: The name of the vector store
|
|
395
|
+
|
|
396
|
+
extra_headers: Send extra headers
|
|
397
|
+
|
|
398
|
+
extra_query: Add additional query parameters to the request
|
|
399
|
+
|
|
400
|
+
extra_body: Add additional JSON properties to the request
|
|
401
|
+
|
|
402
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
403
|
+
"""
|
|
404
|
+
if not vector_store_name:
|
|
405
|
+
raise ValueError(f"Expected a non-empty value for `vector_store_name` but received {vector_store_name!r}")
|
|
406
|
+
return self._post(
|
|
407
|
+
f"/v5/vector-stores/{vector_store_name}/drop",
|
|
408
|
+
options=make_request_options(
|
|
409
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
410
|
+
),
|
|
411
|
+
cast_to=VectorStoreDropResponse,
|
|
412
|
+
)
|
|
413
|
+
|
|
414
|
+
def query(
|
|
415
|
+
self,
|
|
416
|
+
vector_store_name: str,
|
|
417
|
+
*,
|
|
418
|
+
text: str,
|
|
419
|
+
filter: Dict[str, object] | Omit = omit,
|
|
420
|
+
include_vectors: bool | Omit = omit,
|
|
421
|
+
query_type: Literal["semantic", "lexical", "hybrid"] | Omit = omit,
|
|
422
|
+
rerank: bool | Omit = omit,
|
|
423
|
+
rerank_model: str | Omit = omit,
|
|
424
|
+
rerank_top_n: int | Omit = omit,
|
|
425
|
+
top_k: int | Omit = omit,
|
|
426
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
427
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
428
|
+
extra_headers: Headers | None = None,
|
|
429
|
+
extra_query: Query | None = None,
|
|
430
|
+
extra_body: Body | None = None,
|
|
431
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
432
|
+
) -> VectorStoreQueryResponse:
|
|
433
|
+
"""
|
|
434
|
+
Query documents by similarity search.
|
|
435
|
+
|
|
436
|
+
Supports semantic (vector), lexical (text), or hybrid search modes.
|
|
437
|
+
|
|
438
|
+
Args: request: Query parameters including text, filters, and reranking options
|
|
439
|
+
vector_store_name: The unique name of the vector store vector_store_use_case:
|
|
440
|
+
Injected vector store use case
|
|
441
|
+
|
|
442
|
+
Returns: Matching documents with similarity scores and query metadata
|
|
443
|
+
|
|
444
|
+
Args:
|
|
445
|
+
vector_store_name: The name of the vector store
|
|
446
|
+
|
|
447
|
+
text: Text query for automatic embedding (required)
|
|
448
|
+
|
|
449
|
+
filter: Metadata filter expression
|
|
450
|
+
|
|
451
|
+
include_vectors: Include embedding vectors in response
|
|
452
|
+
|
|
453
|
+
query_type: Query type: semantic, lexical, or hybrid
|
|
454
|
+
|
|
455
|
+
rerank: Enable reranking of search results
|
|
456
|
+
|
|
457
|
+
rerank_model: Reranking model to use (uses system default if not specified)
|
|
458
|
+
|
|
459
|
+
rerank_top_n: Number of results after reranking (defaults to top_k)
|
|
460
|
+
|
|
461
|
+
top_k: Number of search results to return
|
|
462
|
+
|
|
463
|
+
extra_headers: Send extra headers
|
|
464
|
+
|
|
465
|
+
extra_query: Add additional query parameters to the request
|
|
466
|
+
|
|
467
|
+
extra_body: Add additional JSON properties to the request
|
|
468
|
+
|
|
469
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
470
|
+
"""
|
|
471
|
+
if not vector_store_name:
|
|
472
|
+
raise ValueError(f"Expected a non-empty value for `vector_store_name` but received {vector_store_name!r}")
|
|
473
|
+
return self._post(
|
|
474
|
+
f"/v5/vector-stores/{vector_store_name}/query",
|
|
475
|
+
body=maybe_transform(
|
|
476
|
+
{
|
|
477
|
+
"text": text,
|
|
478
|
+
"filter": filter,
|
|
479
|
+
"include_vectors": include_vectors,
|
|
480
|
+
"query_type": query_type,
|
|
481
|
+
"rerank": rerank,
|
|
482
|
+
"rerank_model": rerank_model,
|
|
483
|
+
"rerank_top_n": rerank_top_n,
|
|
484
|
+
"top_k": top_k,
|
|
485
|
+
},
|
|
486
|
+
vector_store_query_params.VectorStoreQueryParams,
|
|
487
|
+
),
|
|
488
|
+
options=make_request_options(
|
|
489
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
490
|
+
),
|
|
491
|
+
cast_to=VectorStoreQueryResponse,
|
|
492
|
+
)
|
|
493
|
+
|
|
494
|
+
def upsert(
|
|
495
|
+
self,
|
|
496
|
+
vector_store_name: str,
|
|
497
|
+
*,
|
|
498
|
+
vectors: Iterable[vector_store_upsert_params.Vector],
|
|
499
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
500
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
501
|
+
extra_headers: Headers | None = None,
|
|
502
|
+
extra_query: Query | None = None,
|
|
503
|
+
extra_body: Body | None = None,
|
|
504
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
505
|
+
) -> VectorStoreUpsertResponse:
|
|
506
|
+
"""
|
|
507
|
+
Insert or update documents in a vector store.
|
|
508
|
+
|
|
509
|
+
Existing documents (by ID) will be updated, new documents will be inserted.
|
|
510
|
+
|
|
511
|
+
Args: request: Array of documents to upsert vector_store_name: The unique name
|
|
512
|
+
of the vector store vector_store_use_case: Injected vector store use case
|
|
513
|
+
|
|
514
|
+
Returns: Batch operation results with success/failure counts
|
|
515
|
+
|
|
516
|
+
Args:
|
|
517
|
+
vector_store_name: The name of the vector store
|
|
518
|
+
|
|
519
|
+
vectors: Array of documents to upsert
|
|
520
|
+
|
|
521
|
+
extra_headers: Send extra headers
|
|
522
|
+
|
|
523
|
+
extra_query: Add additional query parameters to the request
|
|
524
|
+
|
|
525
|
+
extra_body: Add additional JSON properties to the request
|
|
526
|
+
|
|
527
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
528
|
+
"""
|
|
529
|
+
if not vector_store_name:
|
|
530
|
+
raise ValueError(f"Expected a non-empty value for `vector_store_name` but received {vector_store_name!r}")
|
|
531
|
+
return self._post(
|
|
532
|
+
f"/v5/vector-stores/{vector_store_name}/upsert",
|
|
533
|
+
body=maybe_transform({"vectors": vectors}, vector_store_upsert_params.VectorStoreUpsertParams),
|
|
534
|
+
options=make_request_options(
|
|
535
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
536
|
+
),
|
|
537
|
+
cast_to=VectorStoreUpsertResponse,
|
|
538
|
+
)
|
|
539
|
+
|
|
540
|
+
def vectors(
|
|
541
|
+
self,
|
|
542
|
+
vector_store_name: str,
|
|
543
|
+
*,
|
|
544
|
+
cursor: str | Omit = omit,
|
|
545
|
+
filter: str | Omit = omit,
|
|
546
|
+
include_vectors: bool | Omit = omit,
|
|
547
|
+
limit: int | Omit = omit,
|
|
548
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
549
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
550
|
+
extra_headers: Headers | None = None,
|
|
551
|
+
extra_query: Query | None = None,
|
|
552
|
+
extra_body: Body | None = None,
|
|
553
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
554
|
+
) -> VectorStoreVectorsResponse:
|
|
555
|
+
"""
|
|
556
|
+
List documents in a vector store with pagination.
|
|
557
|
+
|
|
558
|
+
Args: vector_store_name: The unique name of the vector store limit: Maximum
|
|
559
|
+
number of documents per page (max 100 with vectors, 1000 without) cursor:
|
|
560
|
+
Pagination cursor from previous response filter_param: Optional metadata filter
|
|
561
|
+
(JSON string) include_vectors: Whether to include embedding vectors
|
|
562
|
+
vector_store_use_case: Injected vector store use case
|
|
563
|
+
|
|
564
|
+
Returns: Paginated list of documents
|
|
565
|
+
|
|
566
|
+
Args:
|
|
567
|
+
vector_store_name: The name of the vector store
|
|
568
|
+
|
|
569
|
+
cursor: Pagination cursor
|
|
570
|
+
|
|
571
|
+
filter: Metadata filter expression (JSON)
|
|
572
|
+
|
|
573
|
+
include_vectors: Include embedding vectors
|
|
574
|
+
|
|
575
|
+
limit: Vectors per page
|
|
576
|
+
|
|
577
|
+
extra_headers: Send extra headers
|
|
578
|
+
|
|
579
|
+
extra_query: Add additional query parameters to the request
|
|
580
|
+
|
|
581
|
+
extra_body: Add additional JSON properties to the request
|
|
582
|
+
|
|
583
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
584
|
+
"""
|
|
585
|
+
if not vector_store_name:
|
|
586
|
+
raise ValueError(f"Expected a non-empty value for `vector_store_name` but received {vector_store_name!r}")
|
|
587
|
+
return self._get(
|
|
588
|
+
f"/v5/vector-stores/{vector_store_name}/vectors",
|
|
589
|
+
options=make_request_options(
|
|
590
|
+
extra_headers=extra_headers,
|
|
591
|
+
extra_query=extra_query,
|
|
592
|
+
extra_body=extra_body,
|
|
593
|
+
timeout=timeout,
|
|
594
|
+
query=maybe_transform(
|
|
595
|
+
{
|
|
596
|
+
"cursor": cursor,
|
|
597
|
+
"filter": filter,
|
|
598
|
+
"include_vectors": include_vectors,
|
|
599
|
+
"limit": limit,
|
|
600
|
+
},
|
|
601
|
+
vector_store_vectors_params.VectorStoreVectorsParams,
|
|
602
|
+
),
|
|
603
|
+
),
|
|
604
|
+
cast_to=VectorStoreVectorsResponse,
|
|
605
|
+
)
|
|
606
|
+
|
|
607
|
+
|
|
608
|
+
class AsyncVectorStoresResource(AsyncAPIResource):
|
|
609
|
+
@cached_property
|
|
610
|
+
def with_raw_response(self) -> AsyncVectorStoresResourceWithRawResponse:
|
|
611
|
+
"""
|
|
612
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
613
|
+
the raw response object instead of the parsed content.
|
|
614
|
+
|
|
615
|
+
For more information, see https://www.github.com/scaleapi/sgp-python-beta#accessing-raw-response-data-eg-headers
|
|
616
|
+
"""
|
|
617
|
+
return AsyncVectorStoresResourceWithRawResponse(self)
|
|
618
|
+
|
|
619
|
+
@cached_property
|
|
620
|
+
def with_streaming_response(self) -> AsyncVectorStoresResourceWithStreamingResponse:
|
|
621
|
+
"""
|
|
622
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
623
|
+
|
|
624
|
+
For more information, see https://www.github.com/scaleapi/sgp-python-beta#with_streaming_response
|
|
625
|
+
"""
|
|
626
|
+
return AsyncVectorStoresResourceWithStreamingResponse(self)
|
|
627
|
+
|
|
628
|
+
async def create(
|
|
629
|
+
self,
|
|
630
|
+
*,
|
|
631
|
+
embedding_model: Literal[
|
|
632
|
+
"sentence-transformers/all-MiniLM-L12-v2",
|
|
633
|
+
"sentence-transformers/all-mpnet-base-v2",
|
|
634
|
+
"sentence-transformers/multi-qa-distilbert-cos-v1",
|
|
635
|
+
"sentence-transformers/paraphrase-multilingual-mpnet-base-v2",
|
|
636
|
+
"openai/text-embedding-ada-002",
|
|
637
|
+
"openai/text-embedding-3-small",
|
|
638
|
+
"openai/text-embedding-3-large",
|
|
639
|
+
"embed-english-v3.0",
|
|
640
|
+
"embed-english-light-v3.0",
|
|
641
|
+
"embed-multilingual-v3.0",
|
|
642
|
+
],
|
|
643
|
+
name: str,
|
|
644
|
+
indexed_metadata_fields: Dict[str, Literal["string", "number", "boolean", "object", "list"]] | Omit = omit,
|
|
645
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
646
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
647
|
+
extra_headers: Headers | None = None,
|
|
648
|
+
extra_query: Query | None = None,
|
|
649
|
+
extra_body: Body | None = None,
|
|
650
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
651
|
+
) -> VectorStore:
|
|
652
|
+
"""
|
|
653
|
+
Create a new vector store.
|
|
654
|
+
|
|
655
|
+
The vector store will be scoped to the authenticated account. The name must be
|
|
656
|
+
unique within the account.
|
|
657
|
+
|
|
658
|
+
Args: request: Vector store creation parameters including name, dimensions, and
|
|
659
|
+
optional model vector_store_use_case: Injected vector store use case
|
|
660
|
+
|
|
661
|
+
Returns: The created vector store details
|
|
662
|
+
|
|
663
|
+
Args:
|
|
664
|
+
embedding_model: The embedding model to use
|
|
665
|
+
|
|
666
|
+
name: A unique name for the vector store within the account
|
|
667
|
+
|
|
668
|
+
indexed_metadata_fields: Dictionary mapping metadata field names to their types for efficient filtering.
|
|
669
|
+
Only STRING, NUMBER, and BOOLEAN types can be indexed.
|
|
670
|
+
|
|
671
|
+
extra_headers: Send extra headers
|
|
672
|
+
|
|
673
|
+
extra_query: Add additional query parameters to the request
|
|
674
|
+
|
|
675
|
+
extra_body: Add additional JSON properties to the request
|
|
676
|
+
|
|
677
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
678
|
+
"""
|
|
679
|
+
return await self._post(
|
|
680
|
+
"/v5/vector-stores/create",
|
|
681
|
+
body=await async_maybe_transform(
|
|
682
|
+
{
|
|
683
|
+
"embedding_model": embedding_model,
|
|
684
|
+
"name": name,
|
|
685
|
+
"indexed_metadata_fields": indexed_metadata_fields,
|
|
686
|
+
},
|
|
687
|
+
vector_store_create_params.VectorStoreCreateParams,
|
|
688
|
+
),
|
|
689
|
+
options=make_request_options(
|
|
690
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
691
|
+
),
|
|
692
|
+
cast_to=VectorStore,
|
|
693
|
+
)
|
|
694
|
+
|
|
695
|
+
async def retrieve(
|
|
696
|
+
self,
|
|
697
|
+
vector_store_name: str,
|
|
698
|
+
*,
|
|
699
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
700
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
701
|
+
extra_headers: Headers | None = None,
|
|
702
|
+
extra_query: Query | None = None,
|
|
703
|
+
extra_body: Body | None = None,
|
|
704
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
705
|
+
) -> VectorStore:
|
|
706
|
+
"""
|
|
707
|
+
Get a vector store by name.
|
|
708
|
+
|
|
709
|
+
Args: vector_store_name: The unique name of the vector store within the account
|
|
710
|
+
vector_store_use_case: Injected vector store use case
|
|
711
|
+
|
|
712
|
+
Returns: The vector store details
|
|
713
|
+
|
|
714
|
+
Args:
|
|
715
|
+
vector_store_name: The name of the vector store
|
|
716
|
+
|
|
717
|
+
extra_headers: Send extra headers
|
|
718
|
+
|
|
719
|
+
extra_query: Add additional query parameters to the request
|
|
720
|
+
|
|
721
|
+
extra_body: Add additional JSON properties to the request
|
|
722
|
+
|
|
723
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
724
|
+
"""
|
|
725
|
+
if not vector_store_name:
|
|
726
|
+
raise ValueError(f"Expected a non-empty value for `vector_store_name` but received {vector_store_name!r}")
|
|
727
|
+
return await self._get(
|
|
728
|
+
f"/v5/vector-stores/{vector_store_name}",
|
|
729
|
+
options=make_request_options(
|
|
730
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
731
|
+
),
|
|
732
|
+
cast_to=VectorStore,
|
|
733
|
+
)
|
|
734
|
+
|
|
735
|
+
def list(
|
|
736
|
+
self,
|
|
737
|
+
*,
|
|
738
|
+
ending_before: str | Omit = omit,
|
|
739
|
+
limit: int | Omit = omit,
|
|
740
|
+
sort_by: str | Omit = omit,
|
|
741
|
+
sort_order: Literal["asc", "desc"] | Omit = omit,
|
|
742
|
+
starting_after: str | Omit = omit,
|
|
743
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
744
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
745
|
+
extra_headers: Headers | None = None,
|
|
746
|
+
extra_query: Query | None = None,
|
|
747
|
+
extra_body: Body | None = None,
|
|
748
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
749
|
+
) -> AsyncPaginator[VectorStore, AsyncCursorPage[VectorStore]]:
|
|
750
|
+
"""
|
|
751
|
+
List all vector stores for the current account with pagination.
|
|
752
|
+
|
|
753
|
+
Returns a paginated list of vector stores owned by the authenticated account.
|
|
754
|
+
|
|
755
|
+
Args:
|
|
756
|
+
extra_headers: Send extra headers
|
|
757
|
+
|
|
758
|
+
extra_query: Add additional query parameters to the request
|
|
759
|
+
|
|
760
|
+
extra_body: Add additional JSON properties to the request
|
|
761
|
+
|
|
762
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
763
|
+
"""
|
|
764
|
+
return self._get_api_list(
|
|
765
|
+
"/v5/vector-stores",
|
|
766
|
+
page=AsyncCursorPage[VectorStore],
|
|
767
|
+
options=make_request_options(
|
|
768
|
+
extra_headers=extra_headers,
|
|
769
|
+
extra_query=extra_query,
|
|
770
|
+
extra_body=extra_body,
|
|
771
|
+
timeout=timeout,
|
|
772
|
+
query=maybe_transform(
|
|
773
|
+
{
|
|
774
|
+
"ending_before": ending_before,
|
|
775
|
+
"limit": limit,
|
|
776
|
+
"sort_by": sort_by,
|
|
777
|
+
"sort_order": sort_order,
|
|
778
|
+
"starting_after": starting_after,
|
|
779
|
+
},
|
|
780
|
+
vector_store_list_params.VectorStoreListParams,
|
|
781
|
+
),
|
|
782
|
+
),
|
|
783
|
+
model=VectorStore,
|
|
784
|
+
)
|
|
785
|
+
|
|
786
|
+
async def delete(
|
|
787
|
+
self,
|
|
788
|
+
vector_store_name: str,
|
|
789
|
+
*,
|
|
790
|
+
filter: Dict[str, object] | Omit = omit,
|
|
791
|
+
ids: SequenceNotStr[str] | Omit = omit,
|
|
792
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
793
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
794
|
+
extra_headers: Headers | None = None,
|
|
795
|
+
extra_query: Query | None = None,
|
|
796
|
+
extra_body: Body | None = None,
|
|
797
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
798
|
+
) -> VectorStoreDeleteResponse:
|
|
799
|
+
"""
|
|
800
|
+
Delete documents from a vector store by IDs or filter.
|
|
801
|
+
|
|
802
|
+
Args: request: Either IDs or filter criteria for deletion vector_store_name: The
|
|
803
|
+
unique name of the vector store vector_store_use_case: Injected vector store use
|
|
804
|
+
case
|
|
805
|
+
|
|
806
|
+
Returns: Number of documents deleted
|
|
807
|
+
|
|
808
|
+
Args:
|
|
809
|
+
vector_store_name: The name of the vector store
|
|
810
|
+
|
|
811
|
+
filter: Metadata filter expression for deletion
|
|
812
|
+
|
|
813
|
+
ids: Array of document IDs to delete
|
|
814
|
+
|
|
815
|
+
extra_headers: Send extra headers
|
|
816
|
+
|
|
817
|
+
extra_query: Add additional query parameters to the request
|
|
818
|
+
|
|
819
|
+
extra_body: Add additional JSON properties to the request
|
|
820
|
+
|
|
821
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
822
|
+
"""
|
|
823
|
+
if not vector_store_name:
|
|
824
|
+
raise ValueError(f"Expected a non-empty value for `vector_store_name` but received {vector_store_name!r}")
|
|
825
|
+
return await self._post(
|
|
826
|
+
f"/v5/vector-stores/{vector_store_name}/delete",
|
|
827
|
+
body=await async_maybe_transform(
|
|
828
|
+
{
|
|
829
|
+
"filter": filter,
|
|
830
|
+
"ids": ids,
|
|
831
|
+
},
|
|
832
|
+
vector_store_delete_params.VectorStoreDeleteParams,
|
|
833
|
+
),
|
|
834
|
+
options=make_request_options(
|
|
835
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
836
|
+
),
|
|
837
|
+
cast_to=VectorStoreDeleteResponse,
|
|
838
|
+
)
|
|
839
|
+
|
|
840
|
+
async def configure(
|
|
841
|
+
self,
|
|
842
|
+
vector_store_name: str,
|
|
843
|
+
*,
|
|
844
|
+
indexed_metadata_fields: Dict[str, Literal["string", "number", "boolean", "object", "list"]],
|
|
845
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
846
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
847
|
+
extra_headers: Headers | None = None,
|
|
848
|
+
extra_query: Query | None = None,
|
|
849
|
+
extra_body: Body | None = None,
|
|
850
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
851
|
+
) -> VectorStore:
|
|
852
|
+
"""
|
|
853
|
+
Configure the settings of a vector store.
|
|
854
|
+
|
|
855
|
+
Currently only supports updating indexed_metadata_fields. The name,
|
|
856
|
+
embedding_dimensions, and embedding_model are immutable after creation.
|
|
857
|
+
|
|
858
|
+
Args: request: Configuration update with indexed_metadata_fields
|
|
859
|
+
vector_store_name: The unique name of the vector store within the account
|
|
860
|
+
vector_store_use_case: Injected vector store use case
|
|
861
|
+
|
|
862
|
+
Returns: The updated vector store details
|
|
863
|
+
|
|
864
|
+
Args:
|
|
865
|
+
vector_store_name: The name of the vector store
|
|
866
|
+
|
|
867
|
+
indexed_metadata_fields: Dictionary mapping metadata field names to their types. Only STRING, NUMBER, and
|
|
868
|
+
BOOLEAN types can be indexed.
|
|
869
|
+
|
|
870
|
+
extra_headers: Send extra headers
|
|
871
|
+
|
|
872
|
+
extra_query: Add additional query parameters to the request
|
|
873
|
+
|
|
874
|
+
extra_body: Add additional JSON properties to the request
|
|
875
|
+
|
|
876
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
877
|
+
"""
|
|
878
|
+
if not vector_store_name:
|
|
879
|
+
raise ValueError(f"Expected a non-empty value for `vector_store_name` but received {vector_store_name!r}")
|
|
880
|
+
return await self._post(
|
|
881
|
+
f"/v5/vector-stores/{vector_store_name}/configure",
|
|
882
|
+
body=await async_maybe_transform(
|
|
883
|
+
{"indexed_metadata_fields": indexed_metadata_fields},
|
|
884
|
+
vector_store_configure_params.VectorStoreConfigureParams,
|
|
885
|
+
),
|
|
886
|
+
options=make_request_options(
|
|
887
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
888
|
+
),
|
|
889
|
+
cast_to=VectorStore,
|
|
890
|
+
)
|
|
891
|
+
|
|
892
|
+
async def count(
|
|
893
|
+
self,
|
|
894
|
+
vector_store_name: str,
|
|
895
|
+
*,
|
|
896
|
+
filter: Dict[str, object] | Omit = omit,
|
|
897
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
898
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
899
|
+
extra_headers: Headers | None = None,
|
|
900
|
+
extra_query: Query | None = None,
|
|
901
|
+
extra_body: Body | None = None,
|
|
902
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
903
|
+
) -> VectorStoreCountResponse:
|
|
904
|
+
"""
|
|
905
|
+
Count documents in a vector store, optionally filtered by metadata.
|
|
906
|
+
|
|
907
|
+
Args: vector_store_name: The unique name of the vector store request: Optional
|
|
908
|
+
filter criteria (empty body counts all documents) vector_store_use_case:
|
|
909
|
+
Injected vector store use case
|
|
910
|
+
|
|
911
|
+
Returns: The count of documents matching the criteria
|
|
912
|
+
|
|
913
|
+
Args:
|
|
914
|
+
vector_store_name: The name of the vector store
|
|
915
|
+
|
|
916
|
+
filter: Metadata filter expression
|
|
917
|
+
|
|
918
|
+
extra_headers: Send extra headers
|
|
919
|
+
|
|
920
|
+
extra_query: Add additional query parameters to the request
|
|
921
|
+
|
|
922
|
+
extra_body: Add additional JSON properties to the request
|
|
923
|
+
|
|
924
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
925
|
+
"""
|
|
926
|
+
if not vector_store_name:
|
|
927
|
+
raise ValueError(f"Expected a non-empty value for `vector_store_name` but received {vector_store_name!r}")
|
|
928
|
+
return await self._post(
|
|
929
|
+
f"/v5/vector-stores/{vector_store_name}/count",
|
|
930
|
+
body=await async_maybe_transform({"filter": filter}, vector_store_count_params.VectorStoreCountParams),
|
|
931
|
+
options=make_request_options(
|
|
932
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
933
|
+
),
|
|
934
|
+
cast_to=VectorStoreCountResponse,
|
|
935
|
+
)
|
|
936
|
+
|
|
937
|
+
async def drop(
|
|
938
|
+
self,
|
|
939
|
+
vector_store_name: str,
|
|
940
|
+
*,
|
|
941
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
942
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
943
|
+
extra_headers: Headers | None = None,
|
|
944
|
+
extra_query: Query | None = None,
|
|
945
|
+
extra_body: Body | None = None,
|
|
946
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
947
|
+
) -> VectorStoreDropResponse:
|
|
948
|
+
"""
|
|
949
|
+
Delete (drop) a vector store by name.
|
|
950
|
+
|
|
951
|
+
This is a hard delete operation that permanently removes the vector store.
|
|
952
|
+
|
|
953
|
+
Args: vector_store_name: The unique name of the vector store within the account
|
|
954
|
+
vector_store_use_case: Injected vector store use case
|
|
955
|
+
|
|
956
|
+
Returns: Deletion confirmation with the vector store ID
|
|
957
|
+
|
|
958
|
+
Args:
|
|
959
|
+
vector_store_name: The name of the vector store
|
|
960
|
+
|
|
961
|
+
extra_headers: Send extra headers
|
|
962
|
+
|
|
963
|
+
extra_query: Add additional query parameters to the request
|
|
964
|
+
|
|
965
|
+
extra_body: Add additional JSON properties to the request
|
|
966
|
+
|
|
967
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
968
|
+
"""
|
|
969
|
+
if not vector_store_name:
|
|
970
|
+
raise ValueError(f"Expected a non-empty value for `vector_store_name` but received {vector_store_name!r}")
|
|
971
|
+
return await self._post(
|
|
972
|
+
f"/v5/vector-stores/{vector_store_name}/drop",
|
|
973
|
+
options=make_request_options(
|
|
974
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
975
|
+
),
|
|
976
|
+
cast_to=VectorStoreDropResponse,
|
|
977
|
+
)
|
|
978
|
+
|
|
979
|
+
async def query(
|
|
980
|
+
self,
|
|
981
|
+
vector_store_name: str,
|
|
982
|
+
*,
|
|
983
|
+
text: str,
|
|
984
|
+
filter: Dict[str, object] | Omit = omit,
|
|
985
|
+
include_vectors: bool | Omit = omit,
|
|
986
|
+
query_type: Literal["semantic", "lexical", "hybrid"] | Omit = omit,
|
|
987
|
+
rerank: bool | Omit = omit,
|
|
988
|
+
rerank_model: str | Omit = omit,
|
|
989
|
+
rerank_top_n: int | Omit = omit,
|
|
990
|
+
top_k: int | Omit = omit,
|
|
991
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
992
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
993
|
+
extra_headers: Headers | None = None,
|
|
994
|
+
extra_query: Query | None = None,
|
|
995
|
+
extra_body: Body | None = None,
|
|
996
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
997
|
+
) -> VectorStoreQueryResponse:
|
|
998
|
+
"""
|
|
999
|
+
Query documents by similarity search.
|
|
1000
|
+
|
|
1001
|
+
Supports semantic (vector), lexical (text), or hybrid search modes.
|
|
1002
|
+
|
|
1003
|
+
Args: request: Query parameters including text, filters, and reranking options
|
|
1004
|
+
vector_store_name: The unique name of the vector store vector_store_use_case:
|
|
1005
|
+
Injected vector store use case
|
|
1006
|
+
|
|
1007
|
+
Returns: Matching documents with similarity scores and query metadata
|
|
1008
|
+
|
|
1009
|
+
Args:
|
|
1010
|
+
vector_store_name: The name of the vector store
|
|
1011
|
+
|
|
1012
|
+
text: Text query for automatic embedding (required)
|
|
1013
|
+
|
|
1014
|
+
filter: Metadata filter expression
|
|
1015
|
+
|
|
1016
|
+
include_vectors: Include embedding vectors in response
|
|
1017
|
+
|
|
1018
|
+
query_type: Query type: semantic, lexical, or hybrid
|
|
1019
|
+
|
|
1020
|
+
rerank: Enable reranking of search results
|
|
1021
|
+
|
|
1022
|
+
rerank_model: Reranking model to use (uses system default if not specified)
|
|
1023
|
+
|
|
1024
|
+
rerank_top_n: Number of results after reranking (defaults to top_k)
|
|
1025
|
+
|
|
1026
|
+
top_k: Number of search results to return
|
|
1027
|
+
|
|
1028
|
+
extra_headers: Send extra headers
|
|
1029
|
+
|
|
1030
|
+
extra_query: Add additional query parameters to the request
|
|
1031
|
+
|
|
1032
|
+
extra_body: Add additional JSON properties to the request
|
|
1033
|
+
|
|
1034
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
1035
|
+
"""
|
|
1036
|
+
if not vector_store_name:
|
|
1037
|
+
raise ValueError(f"Expected a non-empty value for `vector_store_name` but received {vector_store_name!r}")
|
|
1038
|
+
return await self._post(
|
|
1039
|
+
f"/v5/vector-stores/{vector_store_name}/query",
|
|
1040
|
+
body=await async_maybe_transform(
|
|
1041
|
+
{
|
|
1042
|
+
"text": text,
|
|
1043
|
+
"filter": filter,
|
|
1044
|
+
"include_vectors": include_vectors,
|
|
1045
|
+
"query_type": query_type,
|
|
1046
|
+
"rerank": rerank,
|
|
1047
|
+
"rerank_model": rerank_model,
|
|
1048
|
+
"rerank_top_n": rerank_top_n,
|
|
1049
|
+
"top_k": top_k,
|
|
1050
|
+
},
|
|
1051
|
+
vector_store_query_params.VectorStoreQueryParams,
|
|
1052
|
+
),
|
|
1053
|
+
options=make_request_options(
|
|
1054
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
1055
|
+
),
|
|
1056
|
+
cast_to=VectorStoreQueryResponse,
|
|
1057
|
+
)
|
|
1058
|
+
|
|
1059
|
+
async def upsert(
|
|
1060
|
+
self,
|
|
1061
|
+
vector_store_name: str,
|
|
1062
|
+
*,
|
|
1063
|
+
vectors: Iterable[vector_store_upsert_params.Vector],
|
|
1064
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
1065
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
1066
|
+
extra_headers: Headers | None = None,
|
|
1067
|
+
extra_query: Query | None = None,
|
|
1068
|
+
extra_body: Body | None = None,
|
|
1069
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1070
|
+
) -> VectorStoreUpsertResponse:
|
|
1071
|
+
"""
|
|
1072
|
+
Insert or update documents in a vector store.
|
|
1073
|
+
|
|
1074
|
+
Existing documents (by ID) will be updated, new documents will be inserted.
|
|
1075
|
+
|
|
1076
|
+
Args: request: Array of documents to upsert vector_store_name: The unique name
|
|
1077
|
+
of the vector store vector_store_use_case: Injected vector store use case
|
|
1078
|
+
|
|
1079
|
+
Returns: Batch operation results with success/failure counts
|
|
1080
|
+
|
|
1081
|
+
Args:
|
|
1082
|
+
vector_store_name: The name of the vector store
|
|
1083
|
+
|
|
1084
|
+
vectors: Array of documents to upsert
|
|
1085
|
+
|
|
1086
|
+
extra_headers: Send extra headers
|
|
1087
|
+
|
|
1088
|
+
extra_query: Add additional query parameters to the request
|
|
1089
|
+
|
|
1090
|
+
extra_body: Add additional JSON properties to the request
|
|
1091
|
+
|
|
1092
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
1093
|
+
"""
|
|
1094
|
+
if not vector_store_name:
|
|
1095
|
+
raise ValueError(f"Expected a non-empty value for `vector_store_name` but received {vector_store_name!r}")
|
|
1096
|
+
return await self._post(
|
|
1097
|
+
f"/v5/vector-stores/{vector_store_name}/upsert",
|
|
1098
|
+
body=await async_maybe_transform({"vectors": vectors}, vector_store_upsert_params.VectorStoreUpsertParams),
|
|
1099
|
+
options=make_request_options(
|
|
1100
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
1101
|
+
),
|
|
1102
|
+
cast_to=VectorStoreUpsertResponse,
|
|
1103
|
+
)
|
|
1104
|
+
|
|
1105
|
+
async def vectors(
|
|
1106
|
+
self,
|
|
1107
|
+
vector_store_name: str,
|
|
1108
|
+
*,
|
|
1109
|
+
cursor: str | Omit = omit,
|
|
1110
|
+
filter: str | Omit = omit,
|
|
1111
|
+
include_vectors: bool | Omit = omit,
|
|
1112
|
+
limit: int | Omit = omit,
|
|
1113
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
1114
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
1115
|
+
extra_headers: Headers | None = None,
|
|
1116
|
+
extra_query: Query | None = None,
|
|
1117
|
+
extra_body: Body | None = None,
|
|
1118
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1119
|
+
) -> VectorStoreVectorsResponse:
|
|
1120
|
+
"""
|
|
1121
|
+
List documents in a vector store with pagination.
|
|
1122
|
+
|
|
1123
|
+
Args: vector_store_name: The unique name of the vector store limit: Maximum
|
|
1124
|
+
number of documents per page (max 100 with vectors, 1000 without) cursor:
|
|
1125
|
+
Pagination cursor from previous response filter_param: Optional metadata filter
|
|
1126
|
+
(JSON string) include_vectors: Whether to include embedding vectors
|
|
1127
|
+
vector_store_use_case: Injected vector store use case
|
|
1128
|
+
|
|
1129
|
+
Returns: Paginated list of documents
|
|
1130
|
+
|
|
1131
|
+
Args:
|
|
1132
|
+
vector_store_name: The name of the vector store
|
|
1133
|
+
|
|
1134
|
+
cursor: Pagination cursor
|
|
1135
|
+
|
|
1136
|
+
filter: Metadata filter expression (JSON)
|
|
1137
|
+
|
|
1138
|
+
include_vectors: Include embedding vectors
|
|
1139
|
+
|
|
1140
|
+
limit: Vectors per page
|
|
1141
|
+
|
|
1142
|
+
extra_headers: Send extra headers
|
|
1143
|
+
|
|
1144
|
+
extra_query: Add additional query parameters to the request
|
|
1145
|
+
|
|
1146
|
+
extra_body: Add additional JSON properties to the request
|
|
1147
|
+
|
|
1148
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
1149
|
+
"""
|
|
1150
|
+
if not vector_store_name:
|
|
1151
|
+
raise ValueError(f"Expected a non-empty value for `vector_store_name` but received {vector_store_name!r}")
|
|
1152
|
+
return await self._get(
|
|
1153
|
+
f"/v5/vector-stores/{vector_store_name}/vectors",
|
|
1154
|
+
options=make_request_options(
|
|
1155
|
+
extra_headers=extra_headers,
|
|
1156
|
+
extra_query=extra_query,
|
|
1157
|
+
extra_body=extra_body,
|
|
1158
|
+
timeout=timeout,
|
|
1159
|
+
query=await async_maybe_transform(
|
|
1160
|
+
{
|
|
1161
|
+
"cursor": cursor,
|
|
1162
|
+
"filter": filter,
|
|
1163
|
+
"include_vectors": include_vectors,
|
|
1164
|
+
"limit": limit,
|
|
1165
|
+
},
|
|
1166
|
+
vector_store_vectors_params.VectorStoreVectorsParams,
|
|
1167
|
+
),
|
|
1168
|
+
),
|
|
1169
|
+
cast_to=VectorStoreVectorsResponse,
|
|
1170
|
+
)
|
|
1171
|
+
|
|
1172
|
+
|
|
1173
|
+
class VectorStoresResourceWithRawResponse:
|
|
1174
|
+
def __init__(self, vector_stores: VectorStoresResource) -> None:
|
|
1175
|
+
self._vector_stores = vector_stores
|
|
1176
|
+
|
|
1177
|
+
self.create = to_raw_response_wrapper(
|
|
1178
|
+
vector_stores.create,
|
|
1179
|
+
)
|
|
1180
|
+
self.retrieve = to_raw_response_wrapper(
|
|
1181
|
+
vector_stores.retrieve,
|
|
1182
|
+
)
|
|
1183
|
+
self.list = to_raw_response_wrapper(
|
|
1184
|
+
vector_stores.list,
|
|
1185
|
+
)
|
|
1186
|
+
self.delete = to_raw_response_wrapper(
|
|
1187
|
+
vector_stores.delete,
|
|
1188
|
+
)
|
|
1189
|
+
self.configure = to_raw_response_wrapper(
|
|
1190
|
+
vector_stores.configure,
|
|
1191
|
+
)
|
|
1192
|
+
self.count = to_raw_response_wrapper(
|
|
1193
|
+
vector_stores.count,
|
|
1194
|
+
)
|
|
1195
|
+
self.drop = to_raw_response_wrapper(
|
|
1196
|
+
vector_stores.drop,
|
|
1197
|
+
)
|
|
1198
|
+
self.query = to_raw_response_wrapper(
|
|
1199
|
+
vector_stores.query,
|
|
1200
|
+
)
|
|
1201
|
+
self.upsert = to_raw_response_wrapper(
|
|
1202
|
+
vector_stores.upsert,
|
|
1203
|
+
)
|
|
1204
|
+
self.vectors = to_raw_response_wrapper(
|
|
1205
|
+
vector_stores.vectors,
|
|
1206
|
+
)
|
|
1207
|
+
|
|
1208
|
+
|
|
1209
|
+
class AsyncVectorStoresResourceWithRawResponse:
|
|
1210
|
+
def __init__(self, vector_stores: AsyncVectorStoresResource) -> None:
|
|
1211
|
+
self._vector_stores = vector_stores
|
|
1212
|
+
|
|
1213
|
+
self.create = async_to_raw_response_wrapper(
|
|
1214
|
+
vector_stores.create,
|
|
1215
|
+
)
|
|
1216
|
+
self.retrieve = async_to_raw_response_wrapper(
|
|
1217
|
+
vector_stores.retrieve,
|
|
1218
|
+
)
|
|
1219
|
+
self.list = async_to_raw_response_wrapper(
|
|
1220
|
+
vector_stores.list,
|
|
1221
|
+
)
|
|
1222
|
+
self.delete = async_to_raw_response_wrapper(
|
|
1223
|
+
vector_stores.delete,
|
|
1224
|
+
)
|
|
1225
|
+
self.configure = async_to_raw_response_wrapper(
|
|
1226
|
+
vector_stores.configure,
|
|
1227
|
+
)
|
|
1228
|
+
self.count = async_to_raw_response_wrapper(
|
|
1229
|
+
vector_stores.count,
|
|
1230
|
+
)
|
|
1231
|
+
self.drop = async_to_raw_response_wrapper(
|
|
1232
|
+
vector_stores.drop,
|
|
1233
|
+
)
|
|
1234
|
+
self.query = async_to_raw_response_wrapper(
|
|
1235
|
+
vector_stores.query,
|
|
1236
|
+
)
|
|
1237
|
+
self.upsert = async_to_raw_response_wrapper(
|
|
1238
|
+
vector_stores.upsert,
|
|
1239
|
+
)
|
|
1240
|
+
self.vectors = async_to_raw_response_wrapper(
|
|
1241
|
+
vector_stores.vectors,
|
|
1242
|
+
)
|
|
1243
|
+
|
|
1244
|
+
|
|
1245
|
+
class VectorStoresResourceWithStreamingResponse:
|
|
1246
|
+
def __init__(self, vector_stores: VectorStoresResource) -> None:
|
|
1247
|
+
self._vector_stores = vector_stores
|
|
1248
|
+
|
|
1249
|
+
self.create = to_streamed_response_wrapper(
|
|
1250
|
+
vector_stores.create,
|
|
1251
|
+
)
|
|
1252
|
+
self.retrieve = to_streamed_response_wrapper(
|
|
1253
|
+
vector_stores.retrieve,
|
|
1254
|
+
)
|
|
1255
|
+
self.list = to_streamed_response_wrapper(
|
|
1256
|
+
vector_stores.list,
|
|
1257
|
+
)
|
|
1258
|
+
self.delete = to_streamed_response_wrapper(
|
|
1259
|
+
vector_stores.delete,
|
|
1260
|
+
)
|
|
1261
|
+
self.configure = to_streamed_response_wrapper(
|
|
1262
|
+
vector_stores.configure,
|
|
1263
|
+
)
|
|
1264
|
+
self.count = to_streamed_response_wrapper(
|
|
1265
|
+
vector_stores.count,
|
|
1266
|
+
)
|
|
1267
|
+
self.drop = to_streamed_response_wrapper(
|
|
1268
|
+
vector_stores.drop,
|
|
1269
|
+
)
|
|
1270
|
+
self.query = to_streamed_response_wrapper(
|
|
1271
|
+
vector_stores.query,
|
|
1272
|
+
)
|
|
1273
|
+
self.upsert = to_streamed_response_wrapper(
|
|
1274
|
+
vector_stores.upsert,
|
|
1275
|
+
)
|
|
1276
|
+
self.vectors = to_streamed_response_wrapper(
|
|
1277
|
+
vector_stores.vectors,
|
|
1278
|
+
)
|
|
1279
|
+
|
|
1280
|
+
|
|
1281
|
+
class AsyncVectorStoresResourceWithStreamingResponse:
|
|
1282
|
+
def __init__(self, vector_stores: AsyncVectorStoresResource) -> None:
|
|
1283
|
+
self._vector_stores = vector_stores
|
|
1284
|
+
|
|
1285
|
+
self.create = async_to_streamed_response_wrapper(
|
|
1286
|
+
vector_stores.create,
|
|
1287
|
+
)
|
|
1288
|
+
self.retrieve = async_to_streamed_response_wrapper(
|
|
1289
|
+
vector_stores.retrieve,
|
|
1290
|
+
)
|
|
1291
|
+
self.list = async_to_streamed_response_wrapper(
|
|
1292
|
+
vector_stores.list,
|
|
1293
|
+
)
|
|
1294
|
+
self.delete = async_to_streamed_response_wrapper(
|
|
1295
|
+
vector_stores.delete,
|
|
1296
|
+
)
|
|
1297
|
+
self.configure = async_to_streamed_response_wrapper(
|
|
1298
|
+
vector_stores.configure,
|
|
1299
|
+
)
|
|
1300
|
+
self.count = async_to_streamed_response_wrapper(
|
|
1301
|
+
vector_stores.count,
|
|
1302
|
+
)
|
|
1303
|
+
self.drop = async_to_streamed_response_wrapper(
|
|
1304
|
+
vector_stores.drop,
|
|
1305
|
+
)
|
|
1306
|
+
self.query = async_to_streamed_response_wrapper(
|
|
1307
|
+
vector_stores.query,
|
|
1308
|
+
)
|
|
1309
|
+
self.upsert = async_to_streamed_response_wrapper(
|
|
1310
|
+
vector_stores.upsert,
|
|
1311
|
+
)
|
|
1312
|
+
self.vectors = async_to_streamed_response_wrapper(
|
|
1313
|
+
vector_stores.vectors,
|
|
1314
|
+
)
|