diff --git a/.stats.yml b/.stats.yml
index 06d05485..bc2174ee 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,2 +1,2 @@
configured_endpoints: 23
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/mixedbread%2Fmixedbread-650f7cc87f2d7ce09046fff9ce81bb72053420165b687d1c5ef13a30ff9b4073.yml
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/mixedbread%2Fmixedbread-aa9836293a0be28e002df06d47ab3777622f1ab916e4e5f076e2f6dfaaaf870c.yml
diff --git a/api.md b/api.md
index 0b4fe96a..3df1432c 100644
--- a/api.md
+++ b/api.md
@@ -16,16 +16,18 @@ Methods:
## Parse
+### Jobs
+
Types:
```python
-from mixedbread.types.document_ai import ParseCreateJobResponse, ParseRetrieveJobResponse
+from mixedbread.types.document_ai.parse import JobCreateResponse, JobRetrieveResponse
```
Methods:
-- client.document_ai.parse.create_job(\*\*params) -> ParseCreateJobResponse
-- client.document_ai.parse.retrieve_job(job_id) -> ParseRetrieveJobResponse
+- client.document_ai.parse.jobs.create(\*\*params) -> JobCreateResponse
+- client.document_ai.parse.jobs.retrieve(job_id) -> JobRetrieveResponse
# Embeddings
@@ -75,11 +77,11 @@ Types:
```python
from mixedbread.types import (
SearchParams,
- SearchResponse,
VectorStore,
VectorStoreListResponse,
VectorStoreDeleteResponse,
- VectorStoreQuestionAnsweringResponse,
+ VectorStoreQaResponse,
+ VectorStoreSearchResponse,
)
```
@@ -90,8 +92,8 @@ Methods:
- client.vector_stores.update(vector_store_id, \*\*params) -> VectorStore
- client.vector_stores.list(\*\*params) -> VectorStoreListResponse
- client.vector_stores.delete(vector_store_id) -> VectorStoreDeleteResponse
-- client.vector_stores.question_answering(\*\*params) -> object
-- client.vector_stores.search(\*\*params) -> SearchResponse
+- client.vector_stores.qa(\*\*params) -> object
+- client.vector_stores.search(\*\*params) -> VectorStoreSearchResponse
## Files
diff --git a/src/mixedbread/resources/document_ai/document_ai.py b/src/mixedbread/resources/document_ai/document_ai.py
index af35dce6..758b28a0 100644
--- a/src/mixedbread/resources/document_ai/document_ai.py
+++ b/src/mixedbread/resources/document_ai/document_ai.py
@@ -2,7 +2,9 @@
from __future__ import annotations
-from .parse import (
+from ..._compat import cached_property
+from ..._resource import SyncAPIResource, AsyncAPIResource
+from .parse.parse import (
ParseResource,
AsyncParseResource,
ParseResourceWithRawResponse,
@@ -10,8 +12,6 @@
ParseResourceWithStreamingResponse,
AsyncParseResourceWithStreamingResponse,
)
-from ..._compat import cached_property
-from ..._resource import SyncAPIResource, AsyncAPIResource
__all__ = ["DocumentAIResource", "AsyncDocumentAIResource"]
diff --git a/src/mixedbread/resources/document_ai/parse/__init__.py b/src/mixedbread/resources/document_ai/parse/__init__.py
new file mode 100644
index 00000000..4a42d805
--- /dev/null
+++ b/src/mixedbread/resources/document_ai/parse/__init__.py
@@ -0,0 +1,33 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from .jobs import (
+ JobsResource,
+ AsyncJobsResource,
+ JobsResourceWithRawResponse,
+ AsyncJobsResourceWithRawResponse,
+ JobsResourceWithStreamingResponse,
+ AsyncJobsResourceWithStreamingResponse,
+)
+from .parse import (
+ ParseResource,
+ AsyncParseResource,
+ ParseResourceWithRawResponse,
+ AsyncParseResourceWithRawResponse,
+ ParseResourceWithStreamingResponse,
+ AsyncParseResourceWithStreamingResponse,
+)
+
+__all__ = [
+ "JobsResource",
+ "AsyncJobsResource",
+ "JobsResourceWithRawResponse",
+ "AsyncJobsResourceWithRawResponse",
+ "JobsResourceWithStreamingResponse",
+ "AsyncJobsResourceWithStreamingResponse",
+ "ParseResource",
+ "AsyncParseResource",
+ "ParseResourceWithRawResponse",
+ "AsyncParseResourceWithRawResponse",
+ "ParseResourceWithStreamingResponse",
+ "AsyncParseResourceWithStreamingResponse",
+]
diff --git a/src/mixedbread/resources/document_ai/parse.py b/src/mixedbread/resources/document_ai/parse/jobs.py
similarity index 74%
rename from src/mixedbread/resources/document_ai/parse.py
rename to src/mixedbread/resources/document_ai/parse/jobs.py
index bc171afb..7eca8222 100644
--- a/src/mixedbread/resources/document_ai/parse.py
+++ b/src/mixedbread/resources/document_ai/parse/jobs.py
@@ -7,48 +7,48 @@
import httpx
-from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
-from ..._utils import (
+from ...._types import NOT_GIVEN, Body, Query, Headers, NotGiven
+from ...._utils import (
maybe_transform,
async_maybe_transform,
)
-from ..._compat import cached_property
-from ..._resource import SyncAPIResource, AsyncAPIResource
-from ..._response import (
+from ...._compat import cached_property
+from ...._resource import SyncAPIResource, AsyncAPIResource
+from ...._response import (
to_raw_response_wrapper,
to_streamed_response_wrapper,
async_to_raw_response_wrapper,
async_to_streamed_response_wrapper,
)
-from ..._base_client import make_request_options
-from ...types.document_ai import parse_create_job_params
-from ...types.document_ai.parse_create_job_response import ParseCreateJobResponse
-from ...types.document_ai.parse_retrieve_job_response import ParseRetrieveJobResponse
+from ...._base_client import make_request_options
+from ....types.document_ai.parse import job_create_params
+from ....types.document_ai.parse.job_create_response import JobCreateResponse
+from ....types.document_ai.parse.job_retrieve_response import JobRetrieveResponse
-__all__ = ["ParseResource", "AsyncParseResource"]
+__all__ = ["JobsResource", "AsyncJobsResource"]
-class ParseResource(SyncAPIResource):
+class JobsResource(SyncAPIResource):
@cached_property
- def with_raw_response(self) -> ParseResourceWithRawResponse:
+ def with_raw_response(self) -> JobsResourceWithRawResponse:
"""
This property can be used as a prefix for any HTTP method call to return the
the raw response object instead of the parsed content.
For more information, see https://www.github.com/mixedbread-ai/mixedbread-python#accessing-raw-response-data-eg-headers
"""
- return ParseResourceWithRawResponse(self)
+ return JobsResourceWithRawResponse(self)
@cached_property
- def with_streaming_response(self) -> ParseResourceWithStreamingResponse:
+ def with_streaming_response(self) -> JobsResourceWithStreamingResponse:
"""
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
For more information, see https://www.github.com/mixedbread-ai/mixedbread-python#with_streaming_response
"""
- return ParseResourceWithStreamingResponse(self)
+ return JobsResourceWithStreamingResponse(self)
- def create_job(
+ def create(
self,
*,
file_id: str,
@@ -78,7 +78,7 @@ def create_job(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> ParseCreateJobResponse:
+ ) -> JobCreateResponse:
"""
Start a parse job for the provided file.
@@ -104,7 +104,7 @@ def create_job(
timeout: Override the client-level default timeout for this request, in seconds
"""
return cast(
- ParseCreateJobResponse,
+ JobCreateResponse,
self._post(
"/v1/document-ai/parse",
body=maybe_transform(
@@ -114,18 +114,16 @@ def create_job(
"element_types": element_types,
"return_format": return_format,
},
- parse_create_job_params.ParseCreateJobParams,
+ job_create_params.JobCreateParams,
),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=cast(
- Any, ParseCreateJobResponse
- ), # Union types cannot be passed in as arguments in the type system
+ cast_to=cast(Any, JobCreateResponse), # Union types cannot be passed in as arguments in the type system
),
)
- def retrieve_job(
+ def retrieve(
self,
job_id: str,
*,
@@ -135,7 +133,7 @@ def retrieve_job(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> ParseRetrieveJobResponse:
+ ) -> JobRetrieveResponse:
"""
Get detailed information about a specific parse job.
@@ -157,40 +155,40 @@ def retrieve_job(
if not job_id:
raise ValueError(f"Expected a non-empty value for `job_id` but received {job_id!r}")
return cast(
- ParseRetrieveJobResponse,
+ JobRetrieveResponse,
self._get(
f"/v1/document-ai/parse/{job_id}",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=cast(
- Any, ParseRetrieveJobResponse
+ Any, JobRetrieveResponse
), # Union types cannot be passed in as arguments in the type system
),
)
-class AsyncParseResource(AsyncAPIResource):
+class AsyncJobsResource(AsyncAPIResource):
@cached_property
- def with_raw_response(self) -> AsyncParseResourceWithRawResponse:
+ def with_raw_response(self) -> AsyncJobsResourceWithRawResponse:
"""
This property can be used as a prefix for any HTTP method call to return the
the raw response object instead of the parsed content.
For more information, see https://www.github.com/mixedbread-ai/mixedbread-python#accessing-raw-response-data-eg-headers
"""
- return AsyncParseResourceWithRawResponse(self)
+ return AsyncJobsResourceWithRawResponse(self)
@cached_property
- def with_streaming_response(self) -> AsyncParseResourceWithStreamingResponse:
+ def with_streaming_response(self) -> AsyncJobsResourceWithStreamingResponse:
"""
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
For more information, see https://www.github.com/mixedbread-ai/mixedbread-python#with_streaming_response
"""
- return AsyncParseResourceWithStreamingResponse(self)
+ return AsyncJobsResourceWithStreamingResponse(self)
- async def create_job(
+ async def create(
self,
*,
file_id: str,
@@ -220,7 +218,7 @@ async def create_job(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> ParseCreateJobResponse:
+ ) -> JobCreateResponse:
"""
Start a parse job for the provided file.
@@ -246,7 +244,7 @@ async def create_job(
timeout: Override the client-level default timeout for this request, in seconds
"""
return cast(
- ParseCreateJobResponse,
+ JobCreateResponse,
await self._post(
"/v1/document-ai/parse",
body=await async_maybe_transform(
@@ -256,18 +254,16 @@ async def create_job(
"element_types": element_types,
"return_format": return_format,
},
- parse_create_job_params.ParseCreateJobParams,
+ job_create_params.JobCreateParams,
),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=cast(
- Any, ParseCreateJobResponse
- ), # Union types cannot be passed in as arguments in the type system
+ cast_to=cast(Any, JobCreateResponse), # Union types cannot be passed in as arguments in the type system
),
)
- async def retrieve_job(
+ async def retrieve(
self,
job_id: str,
*,
@@ -277,7 +273,7 @@ async def retrieve_job(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> ParseRetrieveJobResponse:
+ ) -> JobRetrieveResponse:
"""
Get detailed information about a specific parse job.
@@ -299,62 +295,62 @@ async def retrieve_job(
if not job_id:
raise ValueError(f"Expected a non-empty value for `job_id` but received {job_id!r}")
return cast(
- ParseRetrieveJobResponse,
+ JobRetrieveResponse,
await self._get(
f"/v1/document-ai/parse/{job_id}",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=cast(
- Any, ParseRetrieveJobResponse
+ Any, JobRetrieveResponse
), # Union types cannot be passed in as arguments in the type system
),
)
-class ParseResourceWithRawResponse:
- def __init__(self, parse: ParseResource) -> None:
- self._parse = parse
+class JobsResourceWithRawResponse:
+ def __init__(self, jobs: JobsResource) -> None:
+ self._jobs = jobs
- self.create_job = to_raw_response_wrapper(
- parse.create_job,
+ self.create = to_raw_response_wrapper(
+ jobs.create,
)
- self.retrieve_job = to_raw_response_wrapper(
- parse.retrieve_job,
+ self.retrieve = to_raw_response_wrapper(
+ jobs.retrieve,
)
-class AsyncParseResourceWithRawResponse:
- def __init__(self, parse: AsyncParseResource) -> None:
- self._parse = parse
+class AsyncJobsResourceWithRawResponse:
+ def __init__(self, jobs: AsyncJobsResource) -> None:
+ self._jobs = jobs
- self.create_job = async_to_raw_response_wrapper(
- parse.create_job,
+ self.create = async_to_raw_response_wrapper(
+ jobs.create,
)
- self.retrieve_job = async_to_raw_response_wrapper(
- parse.retrieve_job,
+ self.retrieve = async_to_raw_response_wrapper(
+ jobs.retrieve,
)
-class ParseResourceWithStreamingResponse:
- def __init__(self, parse: ParseResource) -> None:
- self._parse = parse
+class JobsResourceWithStreamingResponse:
+ def __init__(self, jobs: JobsResource) -> None:
+ self._jobs = jobs
- self.create_job = to_streamed_response_wrapper(
- parse.create_job,
+ self.create = to_streamed_response_wrapper(
+ jobs.create,
)
- self.retrieve_job = to_streamed_response_wrapper(
- parse.retrieve_job,
+ self.retrieve = to_streamed_response_wrapper(
+ jobs.retrieve,
)
-class AsyncParseResourceWithStreamingResponse:
- def __init__(self, parse: AsyncParseResource) -> None:
- self._parse = parse
+class AsyncJobsResourceWithStreamingResponse:
+ def __init__(self, jobs: AsyncJobsResource) -> None:
+ self._jobs = jobs
- self.create_job = async_to_streamed_response_wrapper(
- parse.create_job,
+ self.create = async_to_streamed_response_wrapper(
+ jobs.create,
)
- self.retrieve_job = async_to_streamed_response_wrapper(
- parse.retrieve_job,
+ self.retrieve = async_to_streamed_response_wrapper(
+ jobs.retrieve,
)
diff --git a/src/mixedbread/resources/document_ai/parse/parse.py b/src/mixedbread/resources/document_ai/parse/parse.py
new file mode 100644
index 00000000..274a4760
--- /dev/null
+++ b/src/mixedbread/resources/document_ai/parse/parse.py
@@ -0,0 +1,102 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from __future__ import annotations
+
+from .jobs import (
+ JobsResource,
+ AsyncJobsResource,
+ JobsResourceWithRawResponse,
+ AsyncJobsResourceWithRawResponse,
+ JobsResourceWithStreamingResponse,
+ AsyncJobsResourceWithStreamingResponse,
+)
+from ...._compat import cached_property
+from ...._resource import SyncAPIResource, AsyncAPIResource
+
+__all__ = ["ParseResource", "AsyncParseResource"]
+
+
+class ParseResource(SyncAPIResource):
+ @cached_property
+ def jobs(self) -> JobsResource:
+ return JobsResource(self._client)
+
+ @cached_property
+ def with_raw_response(self) -> ParseResourceWithRawResponse:
+ """
+ This property can be used as a prefix for any HTTP method call to return the
+ the raw response object instead of the parsed content.
+
+ For more information, see https://www.github.com/mixedbread-ai/mixedbread-python#accessing-raw-response-data-eg-headers
+ """
+ return ParseResourceWithRawResponse(self)
+
+ @cached_property
+ def with_streaming_response(self) -> ParseResourceWithStreamingResponse:
+ """
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
+
+ For more information, see https://www.github.com/mixedbread-ai/mixedbread-python#with_streaming_response
+ """
+ return ParseResourceWithStreamingResponse(self)
+
+
+class AsyncParseResource(AsyncAPIResource):
+ @cached_property
+ def jobs(self) -> AsyncJobsResource:
+ return AsyncJobsResource(self._client)
+
+ @cached_property
+ def with_raw_response(self) -> AsyncParseResourceWithRawResponse:
+ """
+ This property can be used as a prefix for any HTTP method call to return the
+ the raw response object instead of the parsed content.
+
+ For more information, see https://www.github.com/mixedbread-ai/mixedbread-python#accessing-raw-response-data-eg-headers
+ """
+ return AsyncParseResourceWithRawResponse(self)
+
+ @cached_property
+ def with_streaming_response(self) -> AsyncParseResourceWithStreamingResponse:
+ """
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
+
+ For more information, see https://www.github.com/mixedbread-ai/mixedbread-python#with_streaming_response
+ """
+ return AsyncParseResourceWithStreamingResponse(self)
+
+
+class ParseResourceWithRawResponse:
+ def __init__(self, parse: ParseResource) -> None:
+ self._parse = parse
+
+ @cached_property
+ def jobs(self) -> JobsResourceWithRawResponse:
+ return JobsResourceWithRawResponse(self._parse.jobs)
+
+
+class AsyncParseResourceWithRawResponse:
+ def __init__(self, parse: AsyncParseResource) -> None:
+ self._parse = parse
+
+ @cached_property
+ def jobs(self) -> AsyncJobsResourceWithRawResponse:
+ return AsyncJobsResourceWithRawResponse(self._parse.jobs)
+
+
+class ParseResourceWithStreamingResponse:
+ def __init__(self, parse: ParseResource) -> None:
+ self._parse = parse
+
+ @cached_property
+ def jobs(self) -> JobsResourceWithStreamingResponse:
+ return JobsResourceWithStreamingResponse(self._parse.jobs)
+
+
+class AsyncParseResourceWithStreamingResponse:
+ def __init__(self, parse: AsyncParseResource) -> None:
+ self._parse = parse
+
+ @cached_property
+ def jobs(self) -> AsyncJobsResourceWithStreamingResponse:
+ return AsyncJobsResourceWithStreamingResponse(self._parse.jobs)
diff --git a/src/mixedbread/resources/vector_stores/vector_stores.py b/src/mixedbread/resources/vector_stores/vector_stores.py
index e890f8b2..31961623 100644
--- a/src/mixedbread/resources/vector_stores/vector_stores.py
+++ b/src/mixedbread/resources/vector_stores/vector_stores.py
@@ -15,11 +15,11 @@
AsyncFilesResourceWithStreamingResponse,
)
from ...types import (
+ vector_store_qa_params,
vector_store_list_params,
vector_store_create_params,
vector_store_search_params,
vector_store_update_params,
- vector_store_question_answering_params,
)
from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
from ..._utils import (
@@ -36,9 +36,9 @@
)
from ..._base_client import make_request_options
from ...types.vector_store import VectorStore
-from ...types.search_response import SearchResponse
from ...types.vector_store_list_response import VectorStoreListResponse
from ...types.vector_store_delete_response import VectorStoreDeleteResponse
+from ...types.vector_store_search_response import VectorStoreSearchResponse
__all__ = ["VectorStoresResource", "AsyncVectorStoresResource"]
@@ -317,15 +317,15 @@ def delete(
cast_to=VectorStoreDeleteResponse,
)
- def question_answering(
+ def qa(
self,
*,
vector_store_ids: List[str],
- filters: Optional[vector_store_question_answering_params.Filters] | NotGiven = NOT_GIVEN,
- pagination: vector_store_question_answering_params.Pagination | NotGiven = NOT_GIVEN,
- qa_options: vector_store_question_answering_params.QaOptions | NotGiven = NOT_GIVEN,
+ filters: Optional[vector_store_qa_params.Filters] | NotGiven = NOT_GIVEN,
+ pagination: vector_store_qa_params.Pagination | NotGiven = NOT_GIVEN,
+ qa_options: vector_store_qa_params.QaOptions | NotGiven = NOT_GIVEN,
query: str | NotGiven = NOT_GIVEN,
- search_options: vector_store_question_answering_params.SearchOptions | NotGiven = NOT_GIVEN,
+ search_options: vector_store_qa_params.SearchOptions | NotGiven = NOT_GIVEN,
stream: bool | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
@@ -373,7 +373,7 @@ def question_answering(
"search_options": search_options,
"stream": stream,
},
- vector_store_question_answering_params.VectorStoreQuestionAnsweringParams,
+ vector_store_qa_params.VectorStoreQaParams,
),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
@@ -395,7 +395,7 @@ def search(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> SearchResponse:
+ ) -> VectorStoreSearchResponse:
"""
Perform a search based on the provided query.
@@ -438,7 +438,7 @@ def search(
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=SearchResponse,
+ cast_to=VectorStoreSearchResponse,
)
@@ -716,15 +716,15 @@ async def delete(
cast_to=VectorStoreDeleteResponse,
)
- async def question_answering(
+ async def qa(
self,
*,
vector_store_ids: List[str],
- filters: Optional[vector_store_question_answering_params.Filters] | NotGiven = NOT_GIVEN,
- pagination: vector_store_question_answering_params.Pagination | NotGiven = NOT_GIVEN,
- qa_options: vector_store_question_answering_params.QaOptions | NotGiven = NOT_GIVEN,
+ filters: Optional[vector_store_qa_params.Filters] | NotGiven = NOT_GIVEN,
+ pagination: vector_store_qa_params.Pagination | NotGiven = NOT_GIVEN,
+ qa_options: vector_store_qa_params.QaOptions | NotGiven = NOT_GIVEN,
query: str | NotGiven = NOT_GIVEN,
- search_options: vector_store_question_answering_params.SearchOptions | NotGiven = NOT_GIVEN,
+ search_options: vector_store_qa_params.SearchOptions | NotGiven = NOT_GIVEN,
stream: bool | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
@@ -772,7 +772,7 @@ async def question_answering(
"search_options": search_options,
"stream": stream,
},
- vector_store_question_answering_params.VectorStoreQuestionAnsweringParams,
+ vector_store_qa_params.VectorStoreQaParams,
),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
@@ -794,7 +794,7 @@ async def search(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> SearchResponse:
+ ) -> VectorStoreSearchResponse:
"""
Perform a search based on the provided query.
@@ -837,7 +837,7 @@ async def search(
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=SearchResponse,
+ cast_to=VectorStoreSearchResponse,
)
@@ -860,8 +860,8 @@ def __init__(self, vector_stores: VectorStoresResource) -> None:
self.delete = to_raw_response_wrapper(
vector_stores.delete,
)
- self.question_answering = to_raw_response_wrapper(
- vector_stores.question_answering,
+ self.qa = to_raw_response_wrapper(
+ vector_stores.qa,
)
self.search = to_raw_response_wrapper(
vector_stores.search,
@@ -891,8 +891,8 @@ def __init__(self, vector_stores: AsyncVectorStoresResource) -> None:
self.delete = async_to_raw_response_wrapper(
vector_stores.delete,
)
- self.question_answering = async_to_raw_response_wrapper(
- vector_stores.question_answering,
+ self.qa = async_to_raw_response_wrapper(
+ vector_stores.qa,
)
self.search = async_to_raw_response_wrapper(
vector_stores.search,
@@ -922,8 +922,8 @@ def __init__(self, vector_stores: VectorStoresResource) -> None:
self.delete = to_streamed_response_wrapper(
vector_stores.delete,
)
- self.question_answering = to_streamed_response_wrapper(
- vector_stores.question_answering,
+ self.qa = to_streamed_response_wrapper(
+ vector_stores.qa,
)
self.search = to_streamed_response_wrapper(
vector_stores.search,
@@ -953,8 +953,8 @@ def __init__(self, vector_stores: AsyncVectorStoresResource) -> None:
self.delete = async_to_streamed_response_wrapper(
vector_stores.delete,
)
- self.question_answering = async_to_streamed_response_wrapper(
- vector_stores.question_answering,
+ self.qa = async_to_streamed_response_wrapper(
+ vector_stores.qa,
)
self.search = async_to_streamed_response_wrapper(
vector_stores.search,
diff --git a/src/mixedbread/types/__init__.py b/src/mixedbread/types/__init__.py
index d64379e8..87d5d5ed 100644
--- a/src/mixedbread/types/__init__.py
+++ b/src/mixedbread/types/__init__.py
@@ -8,13 +8,13 @@
from .info_response import InfoResponse as InfoResponse
from .embed_response import EmbedResponse as EmbedResponse
from .rerank_response import RerankResponse as RerankResponse
-from .search_response import SearchResponse as SearchResponse
from .file_list_params import FileListParams as FileListParams
from .file_create_params import FileCreateParams as FileCreateParams
from .file_list_response import FileListResponse as FileListResponse
from .file_update_params import FileUpdateParams as FileUpdateParams
from .client_embed_params import ClientEmbedParams as ClientEmbedParams
from .client_rerank_params import ClientRerankParams as ClientRerankParams
+from .vector_store_qa_params import VectorStoreQaParams as VectorStoreQaParams
from .embedding_create_params import EmbeddingCreateParams as EmbeddingCreateParams
from .reranking_create_params import RerankingCreateParams as RerankingCreateParams
from .vector_store_list_params import VectorStoreListParams as VectorStoreListParams
@@ -25,6 +25,4 @@
from .vector_store_search_params import VectorStoreSearchParams as VectorStoreSearchParams
from .vector_store_update_params import VectorStoreUpdateParams as VectorStoreUpdateParams
from .vector_store_delete_response import VectorStoreDeleteResponse as VectorStoreDeleteResponse
-from .vector_store_question_answering_params import (
- VectorStoreQuestionAnsweringParams as VectorStoreQuestionAnsweringParams,
-)
+from .vector_store_search_response import VectorStoreSearchResponse as VectorStoreSearchResponse
diff --git a/src/mixedbread/types/document_ai/__init__.py b/src/mixedbread/types/document_ai/__init__.py
index 709be7be..f8ee8b14 100644
--- a/src/mixedbread/types/document_ai/__init__.py
+++ b/src/mixedbread/types/document_ai/__init__.py
@@ -1,7 +1,3 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
from __future__ import annotations
-
-from .parse_create_job_params import ParseCreateJobParams as ParseCreateJobParams
-from .parse_create_job_response import ParseCreateJobResponse as ParseCreateJobResponse
-from .parse_retrieve_job_response import ParseRetrieveJobResponse as ParseRetrieveJobResponse
diff --git a/src/mixedbread/types/document_ai/parse/__init__.py b/src/mixedbread/types/document_ai/parse/__init__.py
new file mode 100644
index 00000000..1b278c49
--- /dev/null
+++ b/src/mixedbread/types/document_ai/parse/__init__.py
@@ -0,0 +1,7 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from __future__ import annotations
+
+from .job_create_params import JobCreateParams as JobCreateParams
+from .job_create_response import JobCreateResponse as JobCreateResponse
+from .job_retrieve_response import JobRetrieveResponse as JobRetrieveResponse
diff --git a/src/mixedbread/types/document_ai/parse_create_job_params.py b/src/mixedbread/types/document_ai/parse/job_create_params.py
similarity index 91%
rename from src/mixedbread/types/document_ai/parse_create_job_params.py
rename to src/mixedbread/types/document_ai/parse/job_create_params.py
index cc230849..a0d4602d 100644
--- a/src/mixedbread/types/document_ai/parse_create_job_params.py
+++ b/src/mixedbread/types/document_ai/parse/job_create_params.py
@@ -5,10 +5,10 @@
from typing import List, Optional
from typing_extensions import Literal, Required, TypedDict
-__all__ = ["ParseCreateJobParams"]
+__all__ = ["JobCreateParams"]
-class ParseCreateJobParams(TypedDict, total=False):
+class JobCreateParams(TypedDict, total=False):
file_id: Required[str]
"""The ID of the file to parse"""
diff --git a/src/mixedbread/types/document_ai/parse_create_job_response.py b/src/mixedbread/types/document_ai/parse/job_create_response.py
similarity index 96%
rename from src/mixedbread/types/document_ai/parse_create_job_response.py
rename to src/mixedbread/types/document_ai/parse/job_create_response.py
index c583524e..8ef119b6 100644
--- a/src/mixedbread/types/document_ai/parse_create_job_response.py
+++ b/src/mixedbread/types/document_ai/parse/job_create_response.py
@@ -5,10 +5,10 @@
from datetime import datetime
from typing_extensions import Literal, TypeAlias
-from ..._models import BaseModel
+from ...._models import BaseModel
__all__ = [
- "ParseCreateJobResponse",
+ "JobCreateResponse",
"RunningJob",
"FailedJob",
"SuccessfulParsingJob",
@@ -158,4 +158,4 @@ class SuccessfulParsingJob(BaseModel):
"""The status of the job"""
-ParseCreateJobResponse: TypeAlias = Union[RunningJob, FailedJob, SuccessfulParsingJob]
+JobCreateResponse: TypeAlias = Union[RunningJob, FailedJob, SuccessfulParsingJob]
diff --git a/src/mixedbread/types/document_ai/parse_retrieve_job_response.py b/src/mixedbread/types/document_ai/parse/job_retrieve_response.py
similarity index 96%
rename from src/mixedbread/types/document_ai/parse_retrieve_job_response.py
rename to src/mixedbread/types/document_ai/parse/job_retrieve_response.py
index 7afbd803..c1bb798f 100644
--- a/src/mixedbread/types/document_ai/parse_retrieve_job_response.py
+++ b/src/mixedbread/types/document_ai/parse/job_retrieve_response.py
@@ -5,10 +5,10 @@
from datetime import datetime
from typing_extensions import Literal, TypeAlias
-from ..._models import BaseModel
+from ...._models import BaseModel
__all__ = [
- "ParseRetrieveJobResponse",
+ "JobRetrieveResponse",
"RunningJob",
"FailedJob",
"SuccessfulParsingJob",
@@ -158,4 +158,4 @@ class SuccessfulParsingJob(BaseModel):
"""The status of the job"""
-ParseRetrieveJobResponse: TypeAlias = Union[RunningJob, FailedJob, SuccessfulParsingJob]
+JobRetrieveResponse: TypeAlias = Union[RunningJob, FailedJob, SuccessfulParsingJob]
diff --git a/src/mixedbread/types/vector_store_question_answering_params.py b/src/mixedbread/types/vector_store_qa_params.py
similarity index 92%
rename from src/mixedbread/types/vector_store_question_answering_params.py
rename to src/mixedbread/types/vector_store_qa_params.py
index 76c31eda..dfb28c93 100644
--- a/src/mixedbread/types/vector_store_question_answering_params.py
+++ b/src/mixedbread/types/vector_store_qa_params.py
@@ -6,7 +6,7 @@
from typing_extensions import Literal, Required, TypeAlias, TypedDict
__all__ = [
- "VectorStoreQuestionAnsweringParams",
+ "VectorStoreQaParams",
"Filters",
"FiltersFilter",
"FiltersFilterAll",
@@ -27,12 +27,11 @@
"FiltersUnionMember2Condition",
"Pagination",
"QaOptions",
- "QaOptionsPrompts",
"SearchOptions",
]
-class VectorStoreQuestionAnsweringParams(TypedDict, total=False):
+class VectorStoreQaParams(TypedDict, total=False):
vector_store_ids: Required[List[str]]
"""IDs of vector stores to search"""
@@ -199,27 +198,10 @@ class Pagination(TypedDict, total=False):
"""Cursor from which to start returning items"""
-class QaOptionsPrompts(TypedDict, total=False):
- citation_prompt: Optional[str]
- """Citation prompt"""
-
- system_prompt: Optional[str]
- """System prompt"""
-
- user_prompt: Optional[str]
- """User prompt"""
-
-
class QaOptions(TypedDict, total=False):
cite: bool
"""Whether to use citations"""
- prompts: QaOptionsPrompts
- """Prompts used for question answering"""
-
- return_sources: bool
- """Whether to return sources"""
-
class SearchOptions(TypedDict, total=False):
return_chunks: bool
diff --git a/src/mixedbread/types/search_response.py b/src/mixedbread/types/vector_store_search_response.py
similarity index 96%
rename from src/mixedbread/types/search_response.py
rename to src/mixedbread/types/vector_store_search_response.py
index 231636c6..4476951a 100644
--- a/src/mixedbread/types/search_response.py
+++ b/src/mixedbread/types/vector_store_search_response.py
@@ -7,7 +7,7 @@
from .._models import BaseModel
__all__ = [
- "SearchResponse",
+ "VectorStoreSearchResponse",
"Data",
"DataChunk",
"DataChunkValue",
@@ -93,7 +93,7 @@ class Pagination(BaseModel):
"""Total number of items available"""
-class SearchResponse(BaseModel):
+class VectorStoreSearchResponse(BaseModel):
data: List[Data]
pagination: Pagination
diff --git a/tests/api_resources/document_ai/parse/__init__.py b/tests/api_resources/document_ai/parse/__init__.py
new file mode 100644
index 00000000..fd8019a9
--- /dev/null
+++ b/tests/api_resources/document_ai/parse/__init__.py
@@ -0,0 +1 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
diff --git a/tests/api_resources/document_ai/parse/test_jobs.py b/tests/api_resources/document_ai/parse/test_jobs.py
new file mode 100644
index 00000000..2a7477ea
--- /dev/null
+++ b/tests/api_resources/document_ai/parse/test_jobs.py
@@ -0,0 +1,180 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from __future__ import annotations
+
+import os
+from typing import Any, cast
+
+import pytest
+
+from mixedbread import Mixedbread, AsyncMixedbread
+from tests.utils import assert_matches_type
+from mixedbread.types.document_ai.parse import JobCreateResponse, JobRetrieveResponse
+
+base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
+
+
+class TestJobs:
+ parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"])
+
+ @parametrize
+ def test_method_create(self, client: Mixedbread) -> None:
+ job = client.document_ai.parse.jobs.create(
+ file_id="file_id",
+ )
+ assert_matches_type(JobCreateResponse, job, path=["response"])
+
+ @parametrize
+ def test_method_create_with_all_params(self, client: Mixedbread) -> None:
+ job = client.document_ai.parse.jobs.create(
+ file_id="file_id",
+ chunking_strategy="page",
+ element_types=["caption"],
+ return_format="html",
+ )
+ assert_matches_type(JobCreateResponse, job, path=["response"])
+
+ @parametrize
+ def test_raw_response_create(self, client: Mixedbread) -> None:
+ response = client.document_ai.parse.jobs.with_raw_response.create(
+ file_id="file_id",
+ )
+
+ assert response.is_closed is True
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
+ job = response.parse()
+ assert_matches_type(JobCreateResponse, job, path=["response"])
+
+ @parametrize
+ def test_streaming_response_create(self, client: Mixedbread) -> None:
+ with client.document_ai.parse.jobs.with_streaming_response.create(
+ file_id="file_id",
+ ) as response:
+ assert not response.is_closed
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
+
+ job = response.parse()
+ assert_matches_type(JobCreateResponse, job, path=["response"])
+
+ assert cast(Any, response.is_closed) is True
+
+ @parametrize
+ def test_method_retrieve(self, client: Mixedbread) -> None:
+ job = client.document_ai.parse.jobs.retrieve(
+ "job_id",
+ )
+ assert_matches_type(JobRetrieveResponse, job, path=["response"])
+
+ @parametrize
+ def test_raw_response_retrieve(self, client: Mixedbread) -> None:
+ response = client.document_ai.parse.jobs.with_raw_response.retrieve(
+ "job_id",
+ )
+
+ assert response.is_closed is True
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
+ job = response.parse()
+ assert_matches_type(JobRetrieveResponse, job, path=["response"])
+
+ @parametrize
+ def test_streaming_response_retrieve(self, client: Mixedbread) -> None:
+ with client.document_ai.parse.jobs.with_streaming_response.retrieve(
+ "job_id",
+ ) as response:
+ assert not response.is_closed
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
+
+ job = response.parse()
+ assert_matches_type(JobRetrieveResponse, job, path=["response"])
+
+ assert cast(Any, response.is_closed) is True
+
+ @parametrize
+ def test_path_params_retrieve(self, client: Mixedbread) -> None:
+ with pytest.raises(ValueError, match=r"Expected a non-empty value for `job_id` but received ''"):
+ client.document_ai.parse.jobs.with_raw_response.retrieve(
+ "",
+ )
+
+
+class TestAsyncJobs:
+ parametrize = pytest.mark.parametrize("async_client", [False, True], indirect=True, ids=["loose", "strict"])
+
+ @parametrize
+ async def test_method_create(self, async_client: AsyncMixedbread) -> None:
+ job = await async_client.document_ai.parse.jobs.create(
+ file_id="file_id",
+ )
+ assert_matches_type(JobCreateResponse, job, path=["response"])
+
+ @parametrize
+ async def test_method_create_with_all_params(self, async_client: AsyncMixedbread) -> None:
+ job = await async_client.document_ai.parse.jobs.create(
+ file_id="file_id",
+ chunking_strategy="page",
+ element_types=["caption"],
+ return_format="html",
+ )
+ assert_matches_type(JobCreateResponse, job, path=["response"])
+
+ @parametrize
+ async def test_raw_response_create(self, async_client: AsyncMixedbread) -> None:
+ response = await async_client.document_ai.parse.jobs.with_raw_response.create(
+ file_id="file_id",
+ )
+
+ assert response.is_closed is True
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
+ job = await response.parse()
+ assert_matches_type(JobCreateResponse, job, path=["response"])
+
+ @parametrize
+ async def test_streaming_response_create(self, async_client: AsyncMixedbread) -> None:
+ async with async_client.document_ai.parse.jobs.with_streaming_response.create(
+ file_id="file_id",
+ ) as response:
+ assert not response.is_closed
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
+
+ job = await response.parse()
+ assert_matches_type(JobCreateResponse, job, path=["response"])
+
+ assert cast(Any, response.is_closed) is True
+
+ @parametrize
+ async def test_method_retrieve(self, async_client: AsyncMixedbread) -> None:
+ job = await async_client.document_ai.parse.jobs.retrieve(
+ "job_id",
+ )
+ assert_matches_type(JobRetrieveResponse, job, path=["response"])
+
+ @parametrize
+ async def test_raw_response_retrieve(self, async_client: AsyncMixedbread) -> None:
+ response = await async_client.document_ai.parse.jobs.with_raw_response.retrieve(
+ "job_id",
+ )
+
+ assert response.is_closed is True
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
+ job = await response.parse()
+ assert_matches_type(JobRetrieveResponse, job, path=["response"])
+
+ @parametrize
+ async def test_streaming_response_retrieve(self, async_client: AsyncMixedbread) -> None:
+ async with async_client.document_ai.parse.jobs.with_streaming_response.retrieve(
+ "job_id",
+ ) as response:
+ assert not response.is_closed
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
+
+ job = await response.parse()
+ assert_matches_type(JobRetrieveResponse, job, path=["response"])
+
+ assert cast(Any, response.is_closed) is True
+
+ @parametrize
+ async def test_path_params_retrieve(self, async_client: AsyncMixedbread) -> None:
+ with pytest.raises(ValueError, match=r"Expected a non-empty value for `job_id` but received ''"):
+ await async_client.document_ai.parse.jobs.with_raw_response.retrieve(
+ "",
+ )
diff --git a/tests/api_resources/document_ai/test_parse.py b/tests/api_resources/document_ai/test_parse.py
deleted file mode 100644
index d832c447..00000000
--- a/tests/api_resources/document_ai/test_parse.py
+++ /dev/null
@@ -1,180 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from __future__ import annotations
-
-import os
-from typing import Any, cast
-
-import pytest
-
-from mixedbread import Mixedbread, AsyncMixedbread
-from tests.utils import assert_matches_type
-from mixedbread.types.document_ai import ParseCreateJobResponse, ParseRetrieveJobResponse
-
-base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
-
-
-class TestParse:
- parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"])
-
- @parametrize
- def test_method_create_job(self, client: Mixedbread) -> None:
- parse = client.document_ai.parse.create_job(
- file_id="file_id",
- )
- assert_matches_type(ParseCreateJobResponse, parse, path=["response"])
-
- @parametrize
- def test_method_create_job_with_all_params(self, client: Mixedbread) -> None:
- parse = client.document_ai.parse.create_job(
- file_id="file_id",
- chunking_strategy="page",
- element_types=["caption"],
- return_format="html",
- )
- assert_matches_type(ParseCreateJobResponse, parse, path=["response"])
-
- @parametrize
- def test_raw_response_create_job(self, client: Mixedbread) -> None:
- response = client.document_ai.parse.with_raw_response.create_job(
- file_id="file_id",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- parse = response.parse()
- assert_matches_type(ParseCreateJobResponse, parse, path=["response"])
-
- @parametrize
- def test_streaming_response_create_job(self, client: Mixedbread) -> None:
- with client.document_ai.parse.with_streaming_response.create_job(
- file_id="file_id",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- parse = response.parse()
- assert_matches_type(ParseCreateJobResponse, parse, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @parametrize
- def test_method_retrieve_job(self, client: Mixedbread) -> None:
- parse = client.document_ai.parse.retrieve_job(
- "job_id",
- )
- assert_matches_type(ParseRetrieveJobResponse, parse, path=["response"])
-
- @parametrize
- def test_raw_response_retrieve_job(self, client: Mixedbread) -> None:
- response = client.document_ai.parse.with_raw_response.retrieve_job(
- "job_id",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- parse = response.parse()
- assert_matches_type(ParseRetrieveJobResponse, parse, path=["response"])
-
- @parametrize
- def test_streaming_response_retrieve_job(self, client: Mixedbread) -> None:
- with client.document_ai.parse.with_streaming_response.retrieve_job(
- "job_id",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- parse = response.parse()
- assert_matches_type(ParseRetrieveJobResponse, parse, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @parametrize
- def test_path_params_retrieve_job(self, client: Mixedbread) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `job_id` but received ''"):
- client.document_ai.parse.with_raw_response.retrieve_job(
- "",
- )
-
-
-class TestAsyncParse:
- parametrize = pytest.mark.parametrize("async_client", [False, True], indirect=True, ids=["loose", "strict"])
-
- @parametrize
- async def test_method_create_job(self, async_client: AsyncMixedbread) -> None:
- parse = await async_client.document_ai.parse.create_job(
- file_id="file_id",
- )
- assert_matches_type(ParseCreateJobResponse, parse, path=["response"])
-
- @parametrize
- async def test_method_create_job_with_all_params(self, async_client: AsyncMixedbread) -> None:
- parse = await async_client.document_ai.parse.create_job(
- file_id="file_id",
- chunking_strategy="page",
- element_types=["caption"],
- return_format="html",
- )
- assert_matches_type(ParseCreateJobResponse, parse, path=["response"])
-
- @parametrize
- async def test_raw_response_create_job(self, async_client: AsyncMixedbread) -> None:
- response = await async_client.document_ai.parse.with_raw_response.create_job(
- file_id="file_id",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- parse = await response.parse()
- assert_matches_type(ParseCreateJobResponse, parse, path=["response"])
-
- @parametrize
- async def test_streaming_response_create_job(self, async_client: AsyncMixedbread) -> None:
- async with async_client.document_ai.parse.with_streaming_response.create_job(
- file_id="file_id",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- parse = await response.parse()
- assert_matches_type(ParseCreateJobResponse, parse, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @parametrize
- async def test_method_retrieve_job(self, async_client: AsyncMixedbread) -> None:
- parse = await async_client.document_ai.parse.retrieve_job(
- "job_id",
- )
- assert_matches_type(ParseRetrieveJobResponse, parse, path=["response"])
-
- @parametrize
- async def test_raw_response_retrieve_job(self, async_client: AsyncMixedbread) -> None:
- response = await async_client.document_ai.parse.with_raw_response.retrieve_job(
- "job_id",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- parse = await response.parse()
- assert_matches_type(ParseRetrieveJobResponse, parse, path=["response"])
-
- @parametrize
- async def test_streaming_response_retrieve_job(self, async_client: AsyncMixedbread) -> None:
- async with async_client.document_ai.parse.with_streaming_response.retrieve_job(
- "job_id",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- parse = await response.parse()
- assert_matches_type(ParseRetrieveJobResponse, parse, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @parametrize
- async def test_path_params_retrieve_job(self, async_client: AsyncMixedbread) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `job_id` but received ''"):
- await async_client.document_ai.parse.with_raw_response.retrieve_job(
- "",
- )
diff --git a/tests/api_resources/test_vector_stores.py b/tests/api_resources/test_vector_stores.py
index b1c9a512..be6820c1 100644
--- a/tests/api_resources/test_vector_stores.py
+++ b/tests/api_resources/test_vector_stores.py
@@ -11,9 +11,9 @@
from tests.utils import assert_matches_type
from mixedbread.types import (
VectorStore,
- SearchResponse,
VectorStoreListResponse,
VectorStoreDeleteResponse,
+ VectorStoreSearchResponse,
)
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
@@ -223,15 +223,15 @@ def test_path_params_delete(self, client: Mixedbread) -> None:
)
@parametrize
- def test_method_question_answering(self, client: Mixedbread) -> None:
- vector_store = client.vector_stores.question_answering(
+ def test_method_qa(self, client: Mixedbread) -> None:
+ vector_store = client.vector_stores.qa(
vector_store_ids=["182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"],
)
assert_matches_type(object, vector_store, path=["response"])
@parametrize
- def test_method_question_answering_with_all_params(self, client: Mixedbread) -> None:
- vector_store = client.vector_stores.question_answering(
+ def test_method_qa_with_all_params(self, client: Mixedbread) -> None:
+ vector_store = client.vector_stores.qa(
vector_store_ids=["182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"],
filters={
"all": [
@@ -260,15 +260,7 @@ def test_method_question_answering_with_all_params(self, client: Mixedbread) ->
"limit": 0,
"offset": 0,
},
- qa_options={
- "cite": True,
- "prompts": {
- "citation_prompt": "x",
- "system_prompt": "x",
- "user_prompt": "x",
- },
- "return_sources": True,
- },
+ qa_options={"cite": True},
query="x",
search_options={
"return_chunks": True,
@@ -281,8 +273,8 @@ def test_method_question_answering_with_all_params(self, client: Mixedbread) ->
assert_matches_type(object, vector_store, path=["response"])
@parametrize
- def test_raw_response_question_answering(self, client: Mixedbread) -> None:
- response = client.vector_stores.with_raw_response.question_answering(
+ def test_raw_response_qa(self, client: Mixedbread) -> None:
+ response = client.vector_stores.with_raw_response.qa(
vector_store_ids=["182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"],
)
@@ -292,8 +284,8 @@ def test_raw_response_question_answering(self, client: Mixedbread) -> None:
assert_matches_type(object, vector_store, path=["response"])
@parametrize
- def test_streaming_response_question_answering(self, client: Mixedbread) -> None:
- with client.vector_stores.with_streaming_response.question_answering(
+ def test_streaming_response_qa(self, client: Mixedbread) -> None:
+ with client.vector_stores.with_streaming_response.qa(
vector_store_ids=["182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"],
) as response:
assert not response.is_closed
@@ -310,7 +302,7 @@ def test_method_search(self, client: Mixedbread) -> None:
query="how to configure SSL",
vector_store_ids=["182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"],
)
- assert_matches_type(SearchResponse, vector_store, path=["response"])
+ assert_matches_type(VectorStoreSearchResponse, vector_store, path=["response"])
@parametrize
def test_method_search_with_all_params(self, client: Mixedbread) -> None:
@@ -351,7 +343,7 @@ def test_method_search_with_all_params(self, client: Mixedbread) -> None:
"score_threshold": 0,
},
)
- assert_matches_type(SearchResponse, vector_store, path=["response"])
+ assert_matches_type(VectorStoreSearchResponse, vector_store, path=["response"])
@parametrize
def test_raw_response_search(self, client: Mixedbread) -> None:
@@ -363,7 +355,7 @@ def test_raw_response_search(self, client: Mixedbread) -> None:
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
vector_store = response.parse()
- assert_matches_type(SearchResponse, vector_store, path=["response"])
+ assert_matches_type(VectorStoreSearchResponse, vector_store, path=["response"])
@parametrize
def test_streaming_response_search(self, client: Mixedbread) -> None:
@@ -375,7 +367,7 @@ def test_streaming_response_search(self, client: Mixedbread) -> None:
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
vector_store = response.parse()
- assert_matches_type(SearchResponse, vector_store, path=["response"])
+ assert_matches_type(VectorStoreSearchResponse, vector_store, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -584,15 +576,15 @@ async def test_path_params_delete(self, async_client: AsyncMixedbread) -> None:
)
@parametrize
- async def test_method_question_answering(self, async_client: AsyncMixedbread) -> None:
- vector_store = await async_client.vector_stores.question_answering(
+ async def test_method_qa(self, async_client: AsyncMixedbread) -> None:
+ vector_store = await async_client.vector_stores.qa(
vector_store_ids=["182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"],
)
assert_matches_type(object, vector_store, path=["response"])
@parametrize
- async def test_method_question_answering_with_all_params(self, async_client: AsyncMixedbread) -> None:
- vector_store = await async_client.vector_stores.question_answering(
+ async def test_method_qa_with_all_params(self, async_client: AsyncMixedbread) -> None:
+ vector_store = await async_client.vector_stores.qa(
vector_store_ids=["182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"],
filters={
"all": [
@@ -621,15 +613,7 @@ async def test_method_question_answering_with_all_params(self, async_client: Asy
"limit": 0,
"offset": 0,
},
- qa_options={
- "cite": True,
- "prompts": {
- "citation_prompt": "x",
- "system_prompt": "x",
- "user_prompt": "x",
- },
- "return_sources": True,
- },
+ qa_options={"cite": True},
query="x",
search_options={
"return_chunks": True,
@@ -642,8 +626,8 @@ async def test_method_question_answering_with_all_params(self, async_client: Asy
assert_matches_type(object, vector_store, path=["response"])
@parametrize
- async def test_raw_response_question_answering(self, async_client: AsyncMixedbread) -> None:
- response = await async_client.vector_stores.with_raw_response.question_answering(
+ async def test_raw_response_qa(self, async_client: AsyncMixedbread) -> None:
+ response = await async_client.vector_stores.with_raw_response.qa(
vector_store_ids=["182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"],
)
@@ -653,8 +637,8 @@ async def test_raw_response_question_answering(self, async_client: AsyncMixedbre
assert_matches_type(object, vector_store, path=["response"])
@parametrize
- async def test_streaming_response_question_answering(self, async_client: AsyncMixedbread) -> None:
- async with async_client.vector_stores.with_streaming_response.question_answering(
+ async def test_streaming_response_qa(self, async_client: AsyncMixedbread) -> None:
+ async with async_client.vector_stores.with_streaming_response.qa(
vector_store_ids=["182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"],
) as response:
assert not response.is_closed
@@ -671,7 +655,7 @@ async def test_method_search(self, async_client: AsyncMixedbread) -> None:
query="how to configure SSL",
vector_store_ids=["182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"],
)
- assert_matches_type(SearchResponse, vector_store, path=["response"])
+ assert_matches_type(VectorStoreSearchResponse, vector_store, path=["response"])
@parametrize
async def test_method_search_with_all_params(self, async_client: AsyncMixedbread) -> None:
@@ -712,7 +696,7 @@ async def test_method_search_with_all_params(self, async_client: AsyncMixedbread
"score_threshold": 0,
},
)
- assert_matches_type(SearchResponse, vector_store, path=["response"])
+ assert_matches_type(VectorStoreSearchResponse, vector_store, path=["response"])
@parametrize
async def test_raw_response_search(self, async_client: AsyncMixedbread) -> None:
@@ -724,7 +708,7 @@ async def test_raw_response_search(self, async_client: AsyncMixedbread) -> None:
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
vector_store = await response.parse()
- assert_matches_type(SearchResponse, vector_store, path=["response"])
+ assert_matches_type(VectorStoreSearchResponse, vector_store, path=["response"])
@parametrize
async def test_streaming_response_search(self, async_client: AsyncMixedbread) -> None:
@@ -736,6 +720,6 @@ async def test_streaming_response_search(self, async_client: AsyncMixedbread) ->
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
vector_store = await response.parse()
- assert_matches_type(SearchResponse, vector_store, path=["response"])
+ assert_matches_type(VectorStoreSearchResponse, vector_store, path=["response"])
assert cast(Any, response.is_closed) is True