diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 270368cb..f8093838 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.3.0-alpha.5" + ".": "0.3.0-alpha.6" } diff --git a/.stats.yml b/.stats.yml index 721d5772..bf6aaffb 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 115 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack%2Fllama-stack-client-8a12a05ba6892999ac506f69d5cbbc7218f28ee1a11bf8e0e548c603435bb643.yml -openapi_spec_hash: 871ce212a98bdad4a44ec7fbf58d9fcb -config_hash: 4c1ba9dc45c31189cd1b039d003a3544 +configured_endpoints: 111 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack%2Fllama-stack-client-15a929a0b71de779accc56bd09d1e5f580e216affdb408cf9890bc7a37847e9e.yml +openapi_spec_hash: 5db9f7c7e80427cfa0298cbb01689559 +config_hash: 06758df5c4f261f9c97eafcef7e0028f diff --git a/CHANGELOG.md b/CHANGELOG.md index b4c4268b..cc3fcc10 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## 0.3.0-alpha.6 (2025-10-13) + +Full Changelog: [v0.3.0-alpha.5...v0.3.0-alpha.6](https://github.com/llamastack/llama-stack-client-python/compare/v0.3.0-alpha.5...v0.3.0-alpha.6) + +### Features + +* **api:** updates to vector_store, etc. ([6c796ca](https://github.com/llamastack/llama-stack-client-python/commit/6c796ca49ee5e38c2951216558151fe349a303bf)) + + +### Chores + +* **internal:** detect missing future annotations with ruff ([e497f03](https://github.com/llamastack/llama-stack-client-python/commit/e497f0391aad3e75dceee288e299e0f74bd7f294)) + ## 0.3.0-alpha.5 (2025-10-10) Full Changelog: [v0.3.0-alpha.4...v0.3.0-alpha.5](https://github.com/llamastack/llama-stack-client-python/compare/v0.3.0-alpha.4...v0.3.0-alpha.5) diff --git a/api.md b/api.md index af028626..f0155d69 100644 --- a/api.md +++ b/api.md @@ -234,26 +234,6 @@ Methods: - client.vector_io.insert(\*\*params) -> None - client.vector_io.query(\*\*params) -> QueryChunksResponse -# VectorDBs - -Types: - -```python -from llama_stack_client.types import ( - ListVectorDBsResponse, - VectorDBRetrieveResponse, - VectorDBListResponse, - VectorDBRegisterResponse, -) -``` - -Methods: - -- client.vector_dbs.retrieve(vector_db_id) -> VectorDBRetrieveResponse -- client.vector_dbs.list() -> VectorDBListResponse -- client.vector_dbs.register(\*\*params) -> VectorDBRegisterResponse -- client.vector_dbs.unregister(vector_db_id) -> None - # VectorStores Types: diff --git a/pyproject.toml b/pyproject.toml index 660038c5..63c6129a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "llama_stack_client" -version = "0.3.0-alpha.5" +version = "0.3.0-alpha.6" description = "The official Python library for the llama-stack-client API" dynamic = ["readme"] license = "MIT" @@ -194,6 +194,8 @@ select = [ "B", # remove unused imports "F401", + # check for missing future annotations + "FA102", # bare except statements "E722", # unused arguments @@ -216,6 +218,8 @@ unfixable = [ "T203", ] +extend-safe-fixes = ["FA102"] + [tool.ruff.lint.flake8-tidy-imports.banned-api] "functools.lru_cache".msg = "This function does not retain type information for the wrapped function's arguments; The `lru_cache` function from `_utils` should be used instead" diff --git a/src/llama_stack_client/_client.py b/src/llama_stack_client/_client.py index a9252b61..4fe29cbb 100644 --- a/src/llama_stack_client/_client.py +++ b/src/llama_stack_client/_client.py @@ -51,7 +51,6 @@ benchmarks, embeddings, toolgroups, - vector_dbs, completions, moderations, tool_runtime, @@ -75,7 +74,6 @@ from .resources.benchmarks import BenchmarksResource, AsyncBenchmarksResource from .resources.embeddings import EmbeddingsResource, AsyncEmbeddingsResource from .resources.toolgroups import ToolgroupsResource, AsyncToolgroupsResource - from .resources.vector_dbs import VectorDBsResource, AsyncVectorDBsResource from .resources.alpha.alpha import AlphaResource, AsyncAlphaResource from .resources.completions import CompletionsResource, AsyncCompletionsResource from .resources.moderations import ModerationsResource, AsyncModerationsResource @@ -225,12 +223,6 @@ def vector_io(self) -> VectorIoResource: return VectorIoResource(self) - @cached_property - def vector_dbs(self) -> VectorDBsResource: - from .resources.vector_dbs import VectorDBsResource - - return VectorDBsResource(self) - @cached_property def vector_stores(self) -> VectorStoresResource: from .resources.vector_stores import VectorStoresResource @@ -553,12 +545,6 @@ def vector_io(self) -> AsyncVectorIoResource: return AsyncVectorIoResource(self) - @cached_property - def vector_dbs(self) -> AsyncVectorDBsResource: - from .resources.vector_dbs import AsyncVectorDBsResource - - return AsyncVectorDBsResource(self) - @cached_property def vector_stores(self) -> AsyncVectorStoresResource: from .resources.vector_stores import AsyncVectorStoresResource @@ -830,12 +816,6 @@ def vector_io(self) -> vector_io.VectorIoResourceWithRawResponse: return VectorIoResourceWithRawResponse(self._client.vector_io) - @cached_property - def vector_dbs(self) -> vector_dbs.VectorDBsResourceWithRawResponse: - from .resources.vector_dbs import VectorDBsResourceWithRawResponse - - return VectorDBsResourceWithRawResponse(self._client.vector_dbs) - @cached_property def vector_stores(self) -> vector_stores.VectorStoresResourceWithRawResponse: from .resources.vector_stores import VectorStoresResourceWithRawResponse @@ -993,12 +973,6 @@ def vector_io(self) -> vector_io.AsyncVectorIoResourceWithRawResponse: return AsyncVectorIoResourceWithRawResponse(self._client.vector_io) - @cached_property - def vector_dbs(self) -> vector_dbs.AsyncVectorDBsResourceWithRawResponse: - from .resources.vector_dbs import AsyncVectorDBsResourceWithRawResponse - - return AsyncVectorDBsResourceWithRawResponse(self._client.vector_dbs) - @cached_property def vector_stores(self) -> vector_stores.AsyncVectorStoresResourceWithRawResponse: from .resources.vector_stores import AsyncVectorStoresResourceWithRawResponse @@ -1158,12 +1132,6 @@ def vector_io(self) -> vector_io.VectorIoResourceWithStreamingResponse: return VectorIoResourceWithStreamingResponse(self._client.vector_io) - @cached_property - def vector_dbs(self) -> vector_dbs.VectorDBsResourceWithStreamingResponse: - from .resources.vector_dbs import VectorDBsResourceWithStreamingResponse - - return VectorDBsResourceWithStreamingResponse(self._client.vector_dbs) - @cached_property def vector_stores(self) -> vector_stores.VectorStoresResourceWithStreamingResponse: from .resources.vector_stores import VectorStoresResourceWithStreamingResponse @@ -1323,12 +1291,6 @@ def vector_io(self) -> vector_io.AsyncVectorIoResourceWithStreamingResponse: return AsyncVectorIoResourceWithStreamingResponse(self._client.vector_io) - @cached_property - def vector_dbs(self) -> vector_dbs.AsyncVectorDBsResourceWithStreamingResponse: - from .resources.vector_dbs import AsyncVectorDBsResourceWithStreamingResponse - - return AsyncVectorDBsResourceWithStreamingResponse(self._client.vector_dbs) - @cached_property def vector_stores(self) -> vector_stores.AsyncVectorStoresResourceWithStreamingResponse: from .resources.vector_stores import AsyncVectorStoresResourceWithStreamingResponse diff --git a/src/llama_stack_client/resources/__init__.py b/src/llama_stack_client/resources/__init__.py index 2ceae6c3..b1a7a120 100644 --- a/src/llama_stack_client/resources/__init__.py +++ b/src/llama_stack_client/resources/__init__.py @@ -144,14 +144,6 @@ ToolgroupsResourceWithStreamingResponse, AsyncToolgroupsResourceWithStreamingResponse, ) -from .vector_dbs import ( - VectorDBsResource, - AsyncVectorDBsResource, - VectorDBsResourceWithRawResponse, - AsyncVectorDBsResourceWithRawResponse, - VectorDBsResourceWithStreamingResponse, - AsyncVectorDBsResourceWithStreamingResponse, -) from .completions import ( CompletionsResource, AsyncCompletionsResource, @@ -276,12 +268,6 @@ "AsyncVectorIoResourceWithRawResponse", "VectorIoResourceWithStreamingResponse", "AsyncVectorIoResourceWithStreamingResponse", - "VectorDBsResource", - "AsyncVectorDBsResource", - "VectorDBsResourceWithRawResponse", - "AsyncVectorDBsResourceWithRawResponse", - "VectorDBsResourceWithStreamingResponse", - "AsyncVectorDBsResourceWithStreamingResponse", "VectorStoresResource", "AsyncVectorStoresResource", "VectorStoresResourceWithRawResponse", diff --git a/src/llama_stack_client/resources/completions.py b/src/llama_stack_client/resources/completions.py index 8791e16e..a4a148d9 100644 --- a/src/llama_stack_client/resources/completions.py +++ b/src/llama_stack_client/resources/completions.py @@ -54,13 +54,11 @@ def create( best_of: int | Omit = omit, echo: bool | Omit = omit, frequency_penalty: float | Omit = omit, - guided_choice: SequenceNotStr[str] | Omit = omit, logit_bias: Dict[str, float] | Omit = omit, logprobs: bool | Omit = omit, max_tokens: int | Omit = omit, n: int | Omit = omit, presence_penalty: float | Omit = omit, - prompt_logprobs: int | Omit = omit, seed: int | Omit = omit, stop: Union[str, SequenceNotStr[str]] | Omit = omit, stream: Literal[False] | Omit = omit, @@ -139,13 +137,11 @@ def create( best_of: int | Omit = omit, echo: bool | Omit = omit, frequency_penalty: float | Omit = omit, - guided_choice: SequenceNotStr[str] | Omit = omit, logit_bias: Dict[str, float] | Omit = omit, logprobs: bool | Omit = omit, max_tokens: int | Omit = omit, n: int | Omit = omit, presence_penalty: float | Omit = omit, - prompt_logprobs: int | Omit = omit, seed: int | Omit = omit, stop: Union[str, SequenceNotStr[str]] | Omit = omit, stream_options: Dict[str, Union[bool, float, str, Iterable[object], object, None]] | Omit = omit, @@ -223,13 +219,11 @@ def create( best_of: int | Omit = omit, echo: bool | Omit = omit, frequency_penalty: float | Omit = omit, - guided_choice: SequenceNotStr[str] | Omit = omit, logit_bias: Dict[str, float] | Omit = omit, logprobs: bool | Omit = omit, max_tokens: int | Omit = omit, n: int | Omit = omit, presence_penalty: float | Omit = omit, - prompt_logprobs: int | Omit = omit, seed: int | Omit = omit, stop: Union[str, SequenceNotStr[str]] | Omit = omit, stream_options: Dict[str, Union[bool, float, str, Iterable[object], object, None]] | Omit = omit, @@ -306,13 +300,11 @@ def create( best_of: int | Omit = omit, echo: bool | Omit = omit, frequency_penalty: float | Omit = omit, - guided_choice: SequenceNotStr[str] | Omit = omit, logit_bias: Dict[str, float] | Omit = omit, logprobs: bool | Omit = omit, max_tokens: int | Omit = omit, n: int | Omit = omit, presence_penalty: float | Omit = omit, - prompt_logprobs: int | Omit = omit, seed: int | Omit = omit, stop: Union[str, SequenceNotStr[str]] | Omit = omit, stream: Literal[False] | Literal[True] | Omit = omit, @@ -337,13 +329,11 @@ def create( "best_of": best_of, "echo": echo, "frequency_penalty": frequency_penalty, - "guided_choice": guided_choice, "logit_bias": logit_bias, "logprobs": logprobs, "max_tokens": max_tokens, "n": n, "presence_penalty": presence_penalty, - "prompt_logprobs": prompt_logprobs, "seed": seed, "stop": stop, "stream": stream, @@ -395,13 +385,11 @@ async def create( best_of: int | Omit = omit, echo: bool | Omit = omit, frequency_penalty: float | Omit = omit, - guided_choice: SequenceNotStr[str] | Omit = omit, logit_bias: Dict[str, float] | Omit = omit, logprobs: bool | Omit = omit, max_tokens: int | Omit = omit, n: int | Omit = omit, presence_penalty: float | Omit = omit, - prompt_logprobs: int | Omit = omit, seed: int | Omit = omit, stop: Union[str, SequenceNotStr[str]] | Omit = omit, stream: Literal[False] | Omit = omit, @@ -480,13 +468,11 @@ async def create( best_of: int | Omit = omit, echo: bool | Omit = omit, frequency_penalty: float | Omit = omit, - guided_choice: SequenceNotStr[str] | Omit = omit, logit_bias: Dict[str, float] | Omit = omit, logprobs: bool | Omit = omit, max_tokens: int | Omit = omit, n: int | Omit = omit, presence_penalty: float | Omit = omit, - prompt_logprobs: int | Omit = omit, seed: int | Omit = omit, stop: Union[str, SequenceNotStr[str]] | Omit = omit, stream_options: Dict[str, Union[bool, float, str, Iterable[object], object, None]] | Omit = omit, @@ -564,13 +550,11 @@ async def create( best_of: int | Omit = omit, echo: bool | Omit = omit, frequency_penalty: float | Omit = omit, - guided_choice: SequenceNotStr[str] | Omit = omit, logit_bias: Dict[str, float] | Omit = omit, logprobs: bool | Omit = omit, max_tokens: int | Omit = omit, n: int | Omit = omit, presence_penalty: float | Omit = omit, - prompt_logprobs: int | Omit = omit, seed: int | Omit = omit, stop: Union[str, SequenceNotStr[str]] | Omit = omit, stream_options: Dict[str, Union[bool, float, str, Iterable[object], object, None]] | Omit = omit, @@ -647,13 +631,11 @@ async def create( best_of: int | Omit = omit, echo: bool | Omit = omit, frequency_penalty: float | Omit = omit, - guided_choice: SequenceNotStr[str] | Omit = omit, logit_bias: Dict[str, float] | Omit = omit, logprobs: bool | Omit = omit, max_tokens: int | Omit = omit, n: int | Omit = omit, presence_penalty: float | Omit = omit, - prompt_logprobs: int | Omit = omit, seed: int | Omit = omit, stop: Union[str, SequenceNotStr[str]] | Omit = omit, stream: Literal[False] | Literal[True] | Omit = omit, @@ -678,13 +660,11 @@ async def create( "best_of": best_of, "echo": echo, "frequency_penalty": frequency_penalty, - "guided_choice": guided_choice, "logit_bias": logit_bias, "logprobs": logprobs, "max_tokens": max_tokens, "n": n, "presence_penalty": presence_penalty, - "prompt_logprobs": prompt_logprobs, "seed": seed, "stop": stop, "stream": stream, diff --git a/src/llama_stack_client/resources/safety.py b/src/llama_stack_client/resources/safety.py index 8468a9ef..38aaf19e 100644 --- a/src/llama_stack_client/resources/safety.py +++ b/src/llama_stack_client/resources/safety.py @@ -19,7 +19,6 @@ ) from .._base_client import make_request_options from ..types.run_shield_response import RunShieldResponse -from ..types.shared_params.message import Message __all__ = ["SafetyResource", "AsyncSafetyResource"] @@ -47,7 +46,7 @@ def with_streaming_response(self) -> SafetyResourceWithStreamingResponse: def run_shield( self, *, - messages: Iterable[Message], + messages: Iterable[safety_run_shield_params.Message], params: Dict[str, Union[bool, float, str, Iterable[object], object, None]], shield_id: str, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -116,7 +115,7 @@ def with_streaming_response(self) -> AsyncSafetyResourceWithStreamingResponse: async def run_shield( self, *, - messages: Iterable[Message], + messages: Iterable[safety_run_shield_params.Message], params: Dict[str, Union[bool, float, str, Iterable[object], object, None]], shield_id: str, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. diff --git a/src/llama_stack_client/resources/vector_dbs.py b/src/llama_stack_client/resources/vector_dbs.py deleted file mode 100644 index 3524bdf2..00000000 --- a/src/llama_stack_client/resources/vector_dbs.py +++ /dev/null @@ -1,438 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing import Type, cast - -import httpx - -from ..types import vector_db_register_params -from .._types import Body, Omit, Query, Headers, NoneType, NotGiven, omit, not_given -from .._utils import maybe_transform, async_maybe_transform -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 .._wrappers import DataWrapper -from .._base_client import make_request_options -from ..types.vector_db_list_response import VectorDBListResponse -from ..types.vector_db_register_response import VectorDBRegisterResponse -from ..types.vector_db_retrieve_response import VectorDBRetrieveResponse - -__all__ = ["VectorDBsResource", "AsyncVectorDBsResource"] - - -class VectorDBsResource(SyncAPIResource): - @cached_property - def with_raw_response(self) -> VectorDBsResourceWithRawResponse: - """ - This property can be used as a prefix for any HTTP method call to return - the raw response object instead of the parsed content. - - For more information, see https://www.github.com/llamastack/llama-stack-client-python#accessing-raw-response-data-eg-headers - """ - return VectorDBsResourceWithRawResponse(self) - - @cached_property - def with_streaming_response(self) -> VectorDBsResourceWithStreamingResponse: - """ - An alternative to `.with_raw_response` that doesn't eagerly read the response body. - - For more information, see https://www.github.com/llamastack/llama-stack-client-python#with_streaming_response - """ - return VectorDBsResourceWithStreamingResponse(self) - - def retrieve( - self, - vector_db_id: str, - *, - # 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. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> VectorDBRetrieveResponse: - """ - Get a vector database by its identifier. - - Args: - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not vector_db_id: - raise ValueError(f"Expected a non-empty value for `vector_db_id` but received {vector_db_id!r}") - return self._get( - f"/v1/vector-dbs/{vector_db_id}", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=VectorDBRetrieveResponse, - ) - - def list( - self, - *, - # 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. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> VectorDBListResponse: - """List all vector databases.""" - return self._get( - "/v1/vector-dbs", - options=make_request_options( - extra_headers=extra_headers, - extra_query=extra_query, - extra_body=extra_body, - timeout=timeout, - post_parser=DataWrapper[VectorDBListResponse]._unwrapper, - ), - cast_to=cast(Type[VectorDBListResponse], DataWrapper[VectorDBListResponse]), - ) - - def register( - self, - *, - embedding_model: str, - vector_db_id: str, - embedding_dimension: int | Omit = omit, - provider_id: str | Omit = omit, - provider_vector_db_id: str | Omit = omit, - vector_db_name: str | Omit = omit, - # 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. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> VectorDBRegisterResponse: - """ - Register a vector database. - - Args: - embedding_model: The embedding model to use. - - vector_db_id: The identifier of the vector database to register. - - embedding_dimension: The dimension of the embedding model. - - provider_id: The identifier of the provider. - - provider_vector_db_id: The identifier of the vector database in the provider. - - vector_db_name: The name of the vector database. - - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - return self._post( - "/v1/vector-dbs", - body=maybe_transform( - { - "embedding_model": embedding_model, - "vector_db_id": vector_db_id, - "embedding_dimension": embedding_dimension, - "provider_id": provider_id, - "provider_vector_db_id": provider_vector_db_id, - "vector_db_name": vector_db_name, - }, - vector_db_register_params.VectorDBRegisterParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=VectorDBRegisterResponse, - ) - - def unregister( - self, - vector_db_id: str, - *, - # 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. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> None: - """ - Unregister a vector database. - - Args: - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not vector_db_id: - raise ValueError(f"Expected a non-empty value for `vector_db_id` but received {vector_db_id!r}") - extra_headers = {"Accept": "*/*", **(extra_headers or {})} - return self._delete( - f"/v1/vector-dbs/{vector_db_id}", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=NoneType, - ) - - -class AsyncVectorDBsResource(AsyncAPIResource): - @cached_property - def with_raw_response(self) -> AsyncVectorDBsResourceWithRawResponse: - """ - This property can be used as a prefix for any HTTP method call to return - the raw response object instead of the parsed content. - - For more information, see https://www.github.com/llamastack/llama-stack-client-python#accessing-raw-response-data-eg-headers - """ - return AsyncVectorDBsResourceWithRawResponse(self) - - @cached_property - def with_streaming_response(self) -> AsyncVectorDBsResourceWithStreamingResponse: - """ - An alternative to `.with_raw_response` that doesn't eagerly read the response body. - - For more information, see https://www.github.com/llamastack/llama-stack-client-python#with_streaming_response - """ - return AsyncVectorDBsResourceWithStreamingResponse(self) - - async def retrieve( - self, - vector_db_id: str, - *, - # 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. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> VectorDBRetrieveResponse: - """ - Get a vector database by its identifier. - - Args: - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not vector_db_id: - raise ValueError(f"Expected a non-empty value for `vector_db_id` but received {vector_db_id!r}") - return await self._get( - f"/v1/vector-dbs/{vector_db_id}", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=VectorDBRetrieveResponse, - ) - - async def list( - self, - *, - # 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. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> VectorDBListResponse: - """List all vector databases.""" - return await self._get( - "/v1/vector-dbs", - options=make_request_options( - extra_headers=extra_headers, - extra_query=extra_query, - extra_body=extra_body, - timeout=timeout, - post_parser=DataWrapper[VectorDBListResponse]._unwrapper, - ), - cast_to=cast(Type[VectorDBListResponse], DataWrapper[VectorDBListResponse]), - ) - - async def register( - self, - *, - embedding_model: str, - vector_db_id: str, - embedding_dimension: int | Omit = omit, - provider_id: str | Omit = omit, - provider_vector_db_id: str | Omit = omit, - vector_db_name: str | Omit = omit, - # 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. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> VectorDBRegisterResponse: - """ - Register a vector database. - - Args: - embedding_model: The embedding model to use. - - vector_db_id: The identifier of the vector database to register. - - embedding_dimension: The dimension of the embedding model. - - provider_id: The identifier of the provider. - - provider_vector_db_id: The identifier of the vector database in the provider. - - vector_db_name: The name of the vector database. - - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - return await self._post( - "/v1/vector-dbs", - body=await async_maybe_transform( - { - "embedding_model": embedding_model, - "vector_db_id": vector_db_id, - "embedding_dimension": embedding_dimension, - "provider_id": provider_id, - "provider_vector_db_id": provider_vector_db_id, - "vector_db_name": vector_db_name, - }, - vector_db_register_params.VectorDBRegisterParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=VectorDBRegisterResponse, - ) - - async def unregister( - self, - vector_db_id: str, - *, - # 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. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> None: - """ - Unregister a vector database. - - Args: - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not vector_db_id: - raise ValueError(f"Expected a non-empty value for `vector_db_id` but received {vector_db_id!r}") - extra_headers = {"Accept": "*/*", **(extra_headers or {})} - return await self._delete( - f"/v1/vector-dbs/{vector_db_id}", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=NoneType, - ) - - -class VectorDBsResourceWithRawResponse: - def __init__(self, vector_dbs: VectorDBsResource) -> None: - self._vector_dbs = vector_dbs - - self.retrieve = to_raw_response_wrapper( - vector_dbs.retrieve, - ) - self.list = to_raw_response_wrapper( - vector_dbs.list, - ) - self.register = to_raw_response_wrapper( - vector_dbs.register, - ) - self.unregister = to_raw_response_wrapper( - vector_dbs.unregister, - ) - - -class AsyncVectorDBsResourceWithRawResponse: - def __init__(self, vector_dbs: AsyncVectorDBsResource) -> None: - self._vector_dbs = vector_dbs - - self.retrieve = async_to_raw_response_wrapper( - vector_dbs.retrieve, - ) - self.list = async_to_raw_response_wrapper( - vector_dbs.list, - ) - self.register = async_to_raw_response_wrapper( - vector_dbs.register, - ) - self.unregister = async_to_raw_response_wrapper( - vector_dbs.unregister, - ) - - -class VectorDBsResourceWithStreamingResponse: - def __init__(self, vector_dbs: VectorDBsResource) -> None: - self._vector_dbs = vector_dbs - - self.retrieve = to_streamed_response_wrapper( - vector_dbs.retrieve, - ) - self.list = to_streamed_response_wrapper( - vector_dbs.list, - ) - self.register = to_streamed_response_wrapper( - vector_dbs.register, - ) - self.unregister = to_streamed_response_wrapper( - vector_dbs.unregister, - ) - - -class AsyncVectorDBsResourceWithStreamingResponse: - def __init__(self, vector_dbs: AsyncVectorDBsResource) -> None: - self._vector_dbs = vector_dbs - - self.retrieve = async_to_streamed_response_wrapper( - vector_dbs.retrieve, - ) - self.list = async_to_streamed_response_wrapper( - vector_dbs.list, - ) - self.register = async_to_streamed_response_wrapper( - vector_dbs.register, - ) - self.unregister = async_to_streamed_response_wrapper( - vector_dbs.unregister, - ) diff --git a/src/llama_stack_client/resources/vector_stores/file_batches.py b/src/llama_stack_client/resources/vector_stores/file_batches.py index bdeb14b6..9d1ecf30 100644 --- a/src/llama_stack_client/resources/vector_stores/file_batches.py +++ b/src/llama_stack_client/resources/vector_stores/file_batches.py @@ -59,15 +59,17 @@ def create( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> VectorStoreFileBatches: - """ - Create a vector store file batch. + """Create a vector store file batch. + + Generate an OpenAI-compatible vector store + file batch for the given vector store. Args: - file_ids: A list of File IDs that the vector store should use. + file_ids: A list of File IDs that the vector store should use - attributes: (Optional) Key-value attributes to store with the files. + attributes: (Optional) Key-value attributes to store with the files - chunking_strategy: (Optional) The chunking strategy used to chunk the file(s). Defaults to auto. + chunking_strategy: (Optional) The chunking strategy used to chunk the file(s). Defaults to auto extra_headers: Send extra headers @@ -271,15 +273,17 @@ async def create( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> VectorStoreFileBatches: - """ - Create a vector store file batch. + """Create a vector store file batch. + + Generate an OpenAI-compatible vector store + file batch for the given vector store. Args: - file_ids: A list of File IDs that the vector store should use. + file_ids: A list of File IDs that the vector store should use - attributes: (Optional) Key-value attributes to store with the files. + attributes: (Optional) Key-value attributes to store with the files - chunking_strategy: (Optional) The chunking strategy used to chunk the file(s). Defaults to auto. + chunking_strategy: (Optional) The chunking strategy used to chunk the file(s). Defaults to auto extra_headers: Send extra headers diff --git a/src/llama_stack_client/resources/vector_stores/vector_stores.py b/src/llama_stack_client/resources/vector_stores/vector_stores.py index 86bb0e06..5c6e00f7 100644 --- a/src/llama_stack_client/resources/vector_stores/vector_stores.py +++ b/src/llama_stack_client/resources/vector_stores/vector_stores.py @@ -79,13 +79,10 @@ def create( self, *, chunking_strategy: Dict[str, Union[bool, float, str, Iterable[object], object, None]] | Omit = omit, - embedding_dimension: int | Omit = omit, - embedding_model: str | Omit = omit, expires_after: Dict[str, Union[bool, float, str, Iterable[object], object, None]] | Omit = omit, file_ids: SequenceNotStr[str] | Omit = omit, metadata: Dict[str, Union[bool, float, str, Iterable[object], object, None]] | Omit = omit, name: str | Omit = omit, - provider_id: str | Omit = omit, # 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. extra_headers: Headers | None = None, @@ -93,27 +90,21 @@ def create( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> VectorStore: - """ - Creates a vector store. - - Args: - chunking_strategy: The chunking strategy used to chunk the file(s). If not set, will use the `auto` - strategy. - - embedding_dimension: The dimension of the embedding vectors (default: 384). + """Creates a vector store. - embedding_model: The embedding model to use for this vector store. + Generate an OpenAI-compatible vector store with the + given parameters. - expires_after: The expiration policy for a vector store. + Args: + chunking_strategy: (Optional) Strategy for splitting files into chunks - file_ids: A list of File IDs that the vector store should use. Useful for tools like - `file_search` that can access files. + expires_after: (Optional) Expiration policy for the vector store - metadata: Set of 16 key-value pairs that can be attached to an object. + file_ids: List of file IDs to include in the vector store - name: A name for the vector store. + metadata: Set of key-value pairs that can be attached to the vector store - provider_id: The ID of the provider to use for this vector store. + name: (Optional) A name for the vector store extra_headers: Send extra headers @@ -128,13 +119,10 @@ def create( body=maybe_transform( { "chunking_strategy": chunking_strategy, - "embedding_dimension": embedding_dimension, - "embedding_model": embedding_model, "expires_after": expires_after, "file_ids": file_ids, "metadata": metadata, "name": name, - "provider_id": provider_id, }, vector_store_create_params.VectorStoreCreateParams, ), @@ -417,13 +405,10 @@ async def create( self, *, chunking_strategy: Dict[str, Union[bool, float, str, Iterable[object], object, None]] | Omit = omit, - embedding_dimension: int | Omit = omit, - embedding_model: str | Omit = omit, expires_after: Dict[str, Union[bool, float, str, Iterable[object], object, None]] | Omit = omit, file_ids: SequenceNotStr[str] | Omit = omit, metadata: Dict[str, Union[bool, float, str, Iterable[object], object, None]] | Omit = omit, name: str | Omit = omit, - provider_id: str | Omit = omit, # 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. extra_headers: Headers | None = None, @@ -431,27 +416,21 @@ async def create( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> VectorStore: - """ - Creates a vector store. - - Args: - chunking_strategy: The chunking strategy used to chunk the file(s). If not set, will use the `auto` - strategy. - - embedding_dimension: The dimension of the embedding vectors (default: 384). + """Creates a vector store. - embedding_model: The embedding model to use for this vector store. + Generate an OpenAI-compatible vector store with the + given parameters. - expires_after: The expiration policy for a vector store. + Args: + chunking_strategy: (Optional) Strategy for splitting files into chunks - file_ids: A list of File IDs that the vector store should use. Useful for tools like - `file_search` that can access files. + expires_after: (Optional) Expiration policy for the vector store - metadata: Set of 16 key-value pairs that can be attached to an object. + file_ids: List of file IDs to include in the vector store - name: A name for the vector store. + metadata: Set of key-value pairs that can be attached to the vector store - provider_id: The ID of the provider to use for this vector store. + name: (Optional) A name for the vector store extra_headers: Send extra headers @@ -466,13 +445,10 @@ async def create( body=await async_maybe_transform( { "chunking_strategy": chunking_strategy, - "embedding_dimension": embedding_dimension, - "embedding_model": embedding_model, "expires_after": expires_after, "file_ids": file_ids, "metadata": metadata, "name": name, - "provider_id": provider_id, }, vector_store_create_params.VectorStoreCreateParams, ), diff --git a/src/llama_stack_client/types/__init__.py b/src/llama_stack_client/types/__init__.py index 2b769b76..5660e0e2 100644 --- a/src/llama_stack_client/types/__init__.py +++ b/src/llama_stack_client/types/__init__.py @@ -77,11 +77,9 @@ from .list_providers_response import ListProvidersResponse as ListProvidersResponse from .scoring_fn_params_param import ScoringFnParamsParam as ScoringFnParamsParam from .toolgroup_list_response import ToolgroupListResponse as ToolgroupListResponse -from .vector_db_list_response import VectorDBListResponse as VectorDBListResponse from .vector_io_insert_params import VectorIoInsertParams as VectorIoInsertParams from .completion_create_params import CompletionCreateParams as CompletionCreateParams from .list_benchmarks_response import ListBenchmarksResponse as ListBenchmarksResponse -from .list_vector_dbs_response import ListVectorDBsResponse as ListVectorDBsResponse from .moderation_create_params import ModerationCreateParams as ModerationCreateParams from .response_delete_response import ResponseDeleteResponse as ResponseDeleteResponse from .safety_run_shield_params import SafetyRunShieldParams as SafetyRunShieldParams @@ -93,7 +91,6 @@ from .dataset_retrieve_response import DatasetRetrieveResponse as DatasetRetrieveResponse from .list_tool_groups_response import ListToolGroupsResponse as ListToolGroupsResponse from .toolgroup_register_params import ToolgroupRegisterParams as ToolgroupRegisterParams -from .vector_db_register_params import VectorDBRegisterParams as VectorDBRegisterParams from .completion_create_response import CompletionCreateResponse as CompletionCreateResponse from .conversation_create_params import ConversationCreateParams as ConversationCreateParams from .conversation_update_params import ConversationUpdateParams as ConversationUpdateParams @@ -104,8 +101,6 @@ from .vector_store_update_params import VectorStoreUpdateParams as VectorStoreUpdateParams from .list_vector_stores_response import ListVectorStoresResponse as ListVectorStoresResponse from .telemetry_get_span_response import TelemetryGetSpanResponse as TelemetryGetSpanResponse -from .vector_db_register_response import VectorDBRegisterResponse as VectorDBRegisterResponse -from .vector_db_retrieve_response import VectorDBRetrieveResponse as VectorDBRetrieveResponse from .conversation_delete_response import ConversationDeleteResponse as ConversationDeleteResponse from .scoring_score_batch_response import ScoringScoreBatchResponse as ScoringScoreBatchResponse from .telemetry_query_spans_params import TelemetryQuerySpansParams as TelemetryQuerySpansParams diff --git a/src/llama_stack_client/types/chat_completion_chunk.py b/src/llama_stack_client/types/chat_completion_chunk.py index 91cae09a..7a39e616 100644 --- a/src/llama_stack_client/types/chat_completion_chunk.py +++ b/src/llama_stack_client/types/chat_completion_chunk.py @@ -48,6 +48,11 @@ class ChoiceDelta(BaseModel): content: Optional[str] = None """(Optional) The content of the delta""" + reasoning_content: Optional[str] = None + """ + (Optional) The reasoning content from the model (non-standard, for o1/o3 models) + """ + refusal: Optional[str] = None """(Optional) The refusal of the delta""" diff --git a/src/llama_stack_client/types/completion_create_params.py b/src/llama_stack_client/types/completion_create_params.py index f8ca049f..52acd356 100644 --- a/src/llama_stack_client/types/completion_create_params.py +++ b/src/llama_stack_client/types/completion_create_params.py @@ -30,8 +30,6 @@ class CompletionCreateParamsBase(TypedDict, total=False): frequency_penalty: float """(Optional) The penalty for repeated tokens.""" - guided_choice: SequenceNotStr[str] - logit_bias: Dict[str, float] """(Optional) The logit bias to use.""" @@ -47,8 +45,6 @@ class CompletionCreateParamsBase(TypedDict, total=False): presence_penalty: float """(Optional) The penalty for repeated tokens.""" - prompt_logprobs: int - seed: int """(Optional) The seed to use.""" diff --git a/src/llama_stack_client/types/list_vector_dbs_response.py b/src/llama_stack_client/types/list_vector_dbs_response.py deleted file mode 100644 index 5ff7d5e5..00000000 --- a/src/llama_stack_client/types/list_vector_dbs_response.py +++ /dev/null @@ -1,11 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from .._models import BaseModel -from .vector_db_list_response import VectorDBListResponse - -__all__ = ["ListVectorDBsResponse"] - - -class ListVectorDBsResponse(BaseModel): - data: VectorDBListResponse - """List of vector databases""" diff --git a/src/llama_stack_client/types/response_object_stream.py b/src/llama_stack_client/types/response_object_stream.py index acb9c38e..aef34c17 100644 --- a/src/llama_stack_client/types/response_object_stream.py +++ b/src/llama_stack_client/types/response_object_stream.py @@ -86,6 +86,25 @@ "OpenAIResponseObjectStreamResponseContentPartDonePartOpenAIResponseContentPartOutputTextAnnotationOpenAIResponseAnnotationFilePath", "OpenAIResponseObjectStreamResponseContentPartDonePartOpenAIResponseContentPartRefusal", "OpenAIResponseObjectStreamResponseContentPartDonePartOpenAIResponseContentPartReasoningText", + "OpenAIResponseObjectStreamResponseReasoningTextDelta", + "OpenAIResponseObjectStreamResponseReasoningTextDone", + "OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded", + "OpenAIResponseObjectStreamResponseReasoningSummaryPartAddedPart", + "OpenAIResponseObjectStreamResponseReasoningSummaryPartDone", + "OpenAIResponseObjectStreamResponseReasoningSummaryPartDonePart", + "OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta", + "OpenAIResponseObjectStreamResponseReasoningSummaryTextDone", + "OpenAIResponseObjectStreamResponseRefusalDelta", + "OpenAIResponseObjectStreamResponseRefusalDone", + "OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded", + "OpenAIResponseObjectStreamResponseOutputTextAnnotationAddedAnnotation", + "OpenAIResponseObjectStreamResponseOutputTextAnnotationAddedAnnotationOpenAIResponseAnnotationFileCitation", + "OpenAIResponseObjectStreamResponseOutputTextAnnotationAddedAnnotationOpenAIResponseAnnotationCitation", + "OpenAIResponseObjectStreamResponseOutputTextAnnotationAddedAnnotationOpenAIResponseAnnotationContainerFileCitation", + "OpenAIResponseObjectStreamResponseOutputTextAnnotationAddedAnnotationOpenAIResponseAnnotationFilePath", + "OpenAIResponseObjectStreamResponseFileSearchCallInProgress", + "OpenAIResponseObjectStreamResponseFileSearchCallSearching", + "OpenAIResponseObjectStreamResponseFileSearchCallCompleted", "OpenAIResponseObjectStreamResponseIncomplete", "OpenAIResponseObjectStreamResponseFailed", "OpenAIResponseObjectStreamResponseCompleted", @@ -1149,6 +1168,315 @@ class OpenAIResponseObjectStreamResponseContentPartDone(BaseModel): """Event type identifier, always "response.content_part.done" """ +class OpenAIResponseObjectStreamResponseReasoningTextDelta(BaseModel): + content_index: int + """Index position of the reasoning content part""" + + delta: str + """Incremental reasoning text being added""" + + item_id: str + """Unique identifier of the output item being updated""" + + output_index: int + """Index position of the item in the output list""" + + sequence_number: int + """Sequential number for ordering streaming events""" + + type: Literal["response.reasoning_text.delta"] + """Event type identifier, always "response.reasoning_text.delta" """ + + +class OpenAIResponseObjectStreamResponseReasoningTextDone(BaseModel): + content_index: int + """Index position of the reasoning content part""" + + item_id: str + """Unique identifier of the completed output item""" + + output_index: int + """Index position of the item in the output list""" + + sequence_number: int + """Sequential number for ordering streaming events""" + + text: str + """Final complete reasoning text""" + + type: Literal["response.reasoning_text.done"] + """Event type identifier, always "response.reasoning_text.done" """ + + +class OpenAIResponseObjectStreamResponseReasoningSummaryPartAddedPart(BaseModel): + text: str + """Summary text""" + + type: Literal["summary_text"] + """Content part type identifier, always "summary_text" """ + + +class OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded(BaseModel): + item_id: str + """Unique identifier of the output item""" + + output_index: int + """Index position of the output item""" + + part: OpenAIResponseObjectStreamResponseReasoningSummaryPartAddedPart + """The summary part that was added""" + + sequence_number: int + """Sequential number for ordering streaming events""" + + summary_index: int + """Index of the summary part within the reasoning summary""" + + type: Literal["response.reasoning_summary_part.added"] + """Event type identifier, always "response.reasoning_summary_part.added" """ + + +class OpenAIResponseObjectStreamResponseReasoningSummaryPartDonePart(BaseModel): + text: str + """Summary text""" + + type: Literal["summary_text"] + """Content part type identifier, always "summary_text" """ + + +class OpenAIResponseObjectStreamResponseReasoningSummaryPartDone(BaseModel): + item_id: str + """Unique identifier of the output item""" + + output_index: int + """Index position of the output item""" + + part: OpenAIResponseObjectStreamResponseReasoningSummaryPartDonePart + """The completed summary part""" + + sequence_number: int + """Sequential number for ordering streaming events""" + + summary_index: int + """Index of the summary part within the reasoning summary""" + + type: Literal["response.reasoning_summary_part.done"] + """Event type identifier, always "response.reasoning_summary_part.done" """ + + +class OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta(BaseModel): + delta: str + """Incremental summary text being added""" + + item_id: str + """Unique identifier of the output item""" + + output_index: int + """Index position of the output item""" + + sequence_number: int + """Sequential number for ordering streaming events""" + + summary_index: int + """Index of the summary part within the reasoning summary""" + + type: Literal["response.reasoning_summary_text.delta"] + """Event type identifier, always "response.reasoning_summary_text.delta" """ + + +class OpenAIResponseObjectStreamResponseReasoningSummaryTextDone(BaseModel): + item_id: str + """Unique identifier of the output item""" + + output_index: int + """Index position of the output item""" + + sequence_number: int + """Sequential number for ordering streaming events""" + + summary_index: int + """Index of the summary part within the reasoning summary""" + + text: str + """Final complete summary text""" + + type: Literal["response.reasoning_summary_text.done"] + """Event type identifier, always "response.reasoning_summary_text.done" """ + + +class OpenAIResponseObjectStreamResponseRefusalDelta(BaseModel): + content_index: int + """Index position of the content part""" + + delta: str + """Incremental refusal text being added""" + + item_id: str + """Unique identifier of the output item""" + + output_index: int + """Index position of the item in the output list""" + + sequence_number: int + """Sequential number for ordering streaming events""" + + type: Literal["response.refusal.delta"] + """Event type identifier, always "response.refusal.delta" """ + + +class OpenAIResponseObjectStreamResponseRefusalDone(BaseModel): + content_index: int + """Index position of the content part""" + + item_id: str + """Unique identifier of the output item""" + + output_index: int + """Index position of the item in the output list""" + + refusal: str + """Final complete refusal text""" + + sequence_number: int + """Sequential number for ordering streaming events""" + + type: Literal["response.refusal.done"] + """Event type identifier, always "response.refusal.done" """ + + +class OpenAIResponseObjectStreamResponseOutputTextAnnotationAddedAnnotationOpenAIResponseAnnotationFileCitation( + BaseModel +): + file_id: str + """Unique identifier of the referenced file""" + + filename: str + """Name of the referenced file""" + + index: int + """Position index of the citation within the content""" + + type: Literal["file_citation"] + """Annotation type identifier, always "file_citation" """ + + +class OpenAIResponseObjectStreamResponseOutputTextAnnotationAddedAnnotationOpenAIResponseAnnotationCitation(BaseModel): + end_index: int + """End position of the citation span in the content""" + + start_index: int + """Start position of the citation span in the content""" + + title: str + """Title of the referenced web resource""" + + type: Literal["url_citation"] + """Annotation type identifier, always "url_citation" """ + + url: str + """URL of the referenced web resource""" + + +class OpenAIResponseObjectStreamResponseOutputTextAnnotationAddedAnnotationOpenAIResponseAnnotationContainerFileCitation( + BaseModel +): + container_id: str + + end_index: int + + file_id: str + + filename: str + + start_index: int + + type: Literal["container_file_citation"] + + +class OpenAIResponseObjectStreamResponseOutputTextAnnotationAddedAnnotationOpenAIResponseAnnotationFilePath(BaseModel): + file_id: str + + index: int + + type: Literal["file_path"] + + +OpenAIResponseObjectStreamResponseOutputTextAnnotationAddedAnnotation: TypeAlias = Annotated[ + Union[ + OpenAIResponseObjectStreamResponseOutputTextAnnotationAddedAnnotationOpenAIResponseAnnotationFileCitation, + OpenAIResponseObjectStreamResponseOutputTextAnnotationAddedAnnotationOpenAIResponseAnnotationCitation, + OpenAIResponseObjectStreamResponseOutputTextAnnotationAddedAnnotationOpenAIResponseAnnotationContainerFileCitation, + OpenAIResponseObjectStreamResponseOutputTextAnnotationAddedAnnotationOpenAIResponseAnnotationFilePath, + ], + PropertyInfo(discriminator="type"), +] + + +class OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded(BaseModel): + annotation: OpenAIResponseObjectStreamResponseOutputTextAnnotationAddedAnnotation + """The annotation object being added""" + + annotation_index: int + """Index of the annotation within the content part""" + + content_index: int + """Index position of the content part within the output item""" + + item_id: str + """Unique identifier of the item to which the annotation is being added""" + + output_index: int + """Index position of the output item in the response's output array""" + + sequence_number: int + """Sequential number for ordering streaming events""" + + type: Literal["response.output_text.annotation.added"] + """Event type identifier, always "response.output_text.annotation.added" """ + + +class OpenAIResponseObjectStreamResponseFileSearchCallInProgress(BaseModel): + item_id: str + """Unique identifier of the file search call""" + + output_index: int + """Index position of the item in the output list""" + + sequence_number: int + """Sequential number for ordering streaming events""" + + type: Literal["response.file_search_call.in_progress"] + """Event type identifier, always "response.file_search_call.in_progress" """ + + +class OpenAIResponseObjectStreamResponseFileSearchCallSearching(BaseModel): + item_id: str + """Unique identifier of the file search call""" + + output_index: int + """Index position of the item in the output list""" + + sequence_number: int + """Sequential number for ordering streaming events""" + + type: Literal["response.file_search_call.searching"] + """Event type identifier, always "response.file_search_call.searching" """ + + +class OpenAIResponseObjectStreamResponseFileSearchCallCompleted(BaseModel): + item_id: str + """Unique identifier of the completed file search call""" + + output_index: int + """Index position of the item in the output list""" + + sequence_number: int + """Sequential number for ordering streaming events""" + + type: Literal["response.file_search_call.completed"] + """Event type identifier, always "response.file_search_call.completed" """ + + class OpenAIResponseObjectStreamResponseIncomplete(BaseModel): response: ResponseObject """Response object describing the incomplete state""" @@ -1202,6 +1530,18 @@ class OpenAIResponseObjectStreamResponseCompleted(BaseModel): OpenAIResponseObjectStreamResponseMcpCallCompleted, OpenAIResponseObjectStreamResponseContentPartAdded, OpenAIResponseObjectStreamResponseContentPartDone, + OpenAIResponseObjectStreamResponseReasoningTextDelta, + OpenAIResponseObjectStreamResponseReasoningTextDone, + OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded, + OpenAIResponseObjectStreamResponseReasoningSummaryPartDone, + OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta, + OpenAIResponseObjectStreamResponseReasoningSummaryTextDone, + OpenAIResponseObjectStreamResponseRefusalDelta, + OpenAIResponseObjectStreamResponseRefusalDone, + OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded, + OpenAIResponseObjectStreamResponseFileSearchCallInProgress, + OpenAIResponseObjectStreamResponseFileSearchCallSearching, + OpenAIResponseObjectStreamResponseFileSearchCallCompleted, OpenAIResponseObjectStreamResponseIncomplete, OpenAIResponseObjectStreamResponseFailed, OpenAIResponseObjectStreamResponseCompleted, diff --git a/src/llama_stack_client/types/safety_run_shield_params.py b/src/llama_stack_client/types/safety_run_shield_params.py index 764be674..4e687a06 100644 --- a/src/llama_stack_client/types/safety_run_shield_params.py +++ b/src/llama_stack_client/types/safety_run_shield_params.py @@ -3,11 +3,29 @@ from __future__ import annotations from typing import Dict, Union, Iterable -from typing_extensions import Required, TypedDict +from typing_extensions import Literal, Required, TypeAlias, TypedDict -from .shared_params.message import Message - -__all__ = ["SafetyRunShieldParams"] +__all__ = [ + "SafetyRunShieldParams", + "Message", + "MessageOpenAIUserMessageParam", + "MessageOpenAIUserMessageParamContentUnionMember1", + "MessageOpenAIUserMessageParamContentUnionMember1OpenAIChatCompletionContentPartTextParam", + "MessageOpenAIUserMessageParamContentUnionMember1OpenAIChatCompletionContentPartImageParam", + "MessageOpenAIUserMessageParamContentUnionMember1OpenAIChatCompletionContentPartImageParamImageURL", + "MessageOpenAIUserMessageParamContentUnionMember1OpenAIFile", + "MessageOpenAIUserMessageParamContentUnionMember1OpenAIFileFile", + "MessageOpenAISystemMessageParam", + "MessageOpenAISystemMessageParamContentUnionMember1", + "MessageOpenAIAssistantMessageParam", + "MessageOpenAIAssistantMessageParamContentUnionMember1", + "MessageOpenAIAssistantMessageParamToolCall", + "MessageOpenAIAssistantMessageParamToolCallFunction", + "MessageOpenAIToolMessageParam", + "MessageOpenAIToolMessageParamContentUnionMember1", + "MessageOpenAIDeveloperMessageParam", + "MessageOpenAIDeveloperMessageParamContentUnionMember1", +] class SafetyRunShieldParams(TypedDict, total=False): @@ -19,3 +37,181 @@ class SafetyRunShieldParams(TypedDict, total=False): shield_id: Required[str] """The identifier of the shield to run.""" + + +class MessageOpenAIUserMessageParamContentUnionMember1OpenAIChatCompletionContentPartTextParam(TypedDict, total=False): + text: Required[str] + """The text content of the message""" + + type: Required[Literal["text"]] + """Must be "text" to identify this as text content""" + + +class MessageOpenAIUserMessageParamContentUnionMember1OpenAIChatCompletionContentPartImageParamImageURL( + TypedDict, total=False +): + url: Required[str] + """URL of the image to include in the message""" + + detail: str + """(Optional) Level of detail for image processing. + + Can be "low", "high", or "auto" + """ + + +class MessageOpenAIUserMessageParamContentUnionMember1OpenAIChatCompletionContentPartImageParam(TypedDict, total=False): + image_url: Required[ + MessageOpenAIUserMessageParamContentUnionMember1OpenAIChatCompletionContentPartImageParamImageURL + ] + """Image URL specification and processing details""" + + type: Required[Literal["image_url"]] + """Must be "image_url" to identify this as image content""" + + +class MessageOpenAIUserMessageParamContentUnionMember1OpenAIFileFile(TypedDict, total=False): + file_data: str + + file_id: str + + filename: str + + +class MessageOpenAIUserMessageParamContentUnionMember1OpenAIFile(TypedDict, total=False): + file: Required[MessageOpenAIUserMessageParamContentUnionMember1OpenAIFileFile] + + type: Required[Literal["file"]] + + +MessageOpenAIUserMessageParamContentUnionMember1: TypeAlias = Union[ + MessageOpenAIUserMessageParamContentUnionMember1OpenAIChatCompletionContentPartTextParam, + MessageOpenAIUserMessageParamContentUnionMember1OpenAIChatCompletionContentPartImageParam, + MessageOpenAIUserMessageParamContentUnionMember1OpenAIFile, +] + + +class MessageOpenAIUserMessageParam(TypedDict, total=False): + content: Required[Union[str, Iterable[MessageOpenAIUserMessageParamContentUnionMember1]]] + """The content of the message, which can include text and other media""" + + role: Required[Literal["user"]] + """Must be "user" to identify this as a user message""" + + name: str + """(Optional) The name of the user message participant.""" + + +class MessageOpenAISystemMessageParamContentUnionMember1(TypedDict, total=False): + text: Required[str] + """The text content of the message""" + + type: Required[Literal["text"]] + """Must be "text" to identify this as text content""" + + +class MessageOpenAISystemMessageParam(TypedDict, total=False): + content: Required[Union[str, Iterable[MessageOpenAISystemMessageParamContentUnionMember1]]] + """The content of the "system prompt". + + If multiple system messages are provided, they are concatenated. The underlying + Llama Stack code may also add other system messages (for example, for formatting + tool definitions). + """ + + role: Required[Literal["system"]] + """Must be "system" to identify this as a system message""" + + name: str + """(Optional) The name of the system message participant.""" + + +class MessageOpenAIAssistantMessageParamContentUnionMember1(TypedDict, total=False): + text: Required[str] + """The text content of the message""" + + type: Required[Literal["text"]] + """Must be "text" to identify this as text content""" + + +class MessageOpenAIAssistantMessageParamToolCallFunction(TypedDict, total=False): + arguments: str + """(Optional) Arguments to pass to the function as a JSON string""" + + name: str + """(Optional) Name of the function to call""" + + +class MessageOpenAIAssistantMessageParamToolCall(TypedDict, total=False): + type: Required[Literal["function"]] + """Must be "function" to identify this as a function call""" + + id: str + """(Optional) Unique identifier for the tool call""" + + function: MessageOpenAIAssistantMessageParamToolCallFunction + """(Optional) Function call details""" + + index: int + """(Optional) Index of the tool call in the list""" + + +class MessageOpenAIAssistantMessageParam(TypedDict, total=False): + role: Required[Literal["assistant"]] + """Must be "assistant" to identify this as the model's response""" + + content: Union[str, Iterable[MessageOpenAIAssistantMessageParamContentUnionMember1]] + """The content of the model's response""" + + name: str + """(Optional) The name of the assistant message participant.""" + + tool_calls: Iterable[MessageOpenAIAssistantMessageParamToolCall] + """List of tool calls. Each tool call is an OpenAIChatCompletionToolCall object.""" + + +class MessageOpenAIToolMessageParamContentUnionMember1(TypedDict, total=False): + text: Required[str] + """The text content of the message""" + + type: Required[Literal["text"]] + """Must be "text" to identify this as text content""" + + +class MessageOpenAIToolMessageParam(TypedDict, total=False): + content: Required[Union[str, Iterable[MessageOpenAIToolMessageParamContentUnionMember1]]] + """The response content from the tool""" + + role: Required[Literal["tool"]] + """Must be "tool" to identify this as a tool response""" + + tool_call_id: Required[str] + """Unique identifier for the tool call this response is for""" + + +class MessageOpenAIDeveloperMessageParamContentUnionMember1(TypedDict, total=False): + text: Required[str] + """The text content of the message""" + + type: Required[Literal["text"]] + """Must be "text" to identify this as text content""" + + +class MessageOpenAIDeveloperMessageParam(TypedDict, total=False): + content: Required[Union[str, Iterable[MessageOpenAIDeveloperMessageParamContentUnionMember1]]] + """The content of the developer message""" + + role: Required[Literal["developer"]] + """Must be "developer" to identify this as a developer message""" + + name: str + """(Optional) The name of the developer message participant.""" + + +Message: TypeAlias = Union[ + MessageOpenAIUserMessageParam, + MessageOpenAISystemMessageParam, + MessageOpenAIAssistantMessageParam, + MessageOpenAIToolMessageParam, + MessageOpenAIDeveloperMessageParam, +] diff --git a/src/llama_stack_client/types/vector_db_list_response.py b/src/llama_stack_client/types/vector_db_list_response.py deleted file mode 100644 index 18034f52..00000000 --- a/src/llama_stack_client/types/vector_db_list_response.py +++ /dev/null @@ -1,30 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import List, Optional -from typing_extensions import Literal, TypeAlias - -from .._models import BaseModel - -__all__ = ["VectorDBListResponse", "VectorDBListResponseItem"] - - -class VectorDBListResponseItem(BaseModel): - embedding_dimension: int - """Dimension of the embedding vectors""" - - embedding_model: str - """Name of the embedding model to use for vector generation""" - - identifier: str - - provider_id: str - - type: Literal["vector_db"] - """Type of resource, always 'vector_db' for vector databases""" - - provider_resource_id: Optional[str] = None - - vector_db_name: Optional[str] = None - - -VectorDBListResponse: TypeAlias = List[VectorDBListResponseItem] diff --git a/src/llama_stack_client/types/vector_db_register_params.py b/src/llama_stack_client/types/vector_db_register_params.py deleted file mode 100644 index f7e3e7c7..00000000 --- a/src/llama_stack_client/types/vector_db_register_params.py +++ /dev/null @@ -1,27 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing_extensions import Required, TypedDict - -__all__ = ["VectorDBRegisterParams"] - - -class VectorDBRegisterParams(TypedDict, total=False): - embedding_model: Required[str] - """The embedding model to use.""" - - vector_db_id: Required[str] - """The identifier of the vector database to register.""" - - embedding_dimension: int - """The dimension of the embedding model.""" - - provider_id: str - """The identifier of the provider.""" - - provider_vector_db_id: str - """The identifier of the vector database in the provider.""" - - vector_db_name: str - """The name of the vector database.""" diff --git a/src/llama_stack_client/types/vector_db_register_response.py b/src/llama_stack_client/types/vector_db_register_response.py deleted file mode 100644 index cf48dd5a..00000000 --- a/src/llama_stack_client/types/vector_db_register_response.py +++ /dev/null @@ -1,27 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional -from typing_extensions import Literal - -from .._models import BaseModel - -__all__ = ["VectorDBRegisterResponse"] - - -class VectorDBRegisterResponse(BaseModel): - embedding_dimension: int - """Dimension of the embedding vectors""" - - embedding_model: str - """Name of the embedding model to use for vector generation""" - - identifier: str - - provider_id: str - - type: Literal["vector_db"] - """Type of resource, always 'vector_db' for vector databases""" - - provider_resource_id: Optional[str] = None - - vector_db_name: Optional[str] = None diff --git a/src/llama_stack_client/types/vector_db_retrieve_response.py b/src/llama_stack_client/types/vector_db_retrieve_response.py deleted file mode 100644 index aa349d1c..00000000 --- a/src/llama_stack_client/types/vector_db_retrieve_response.py +++ /dev/null @@ -1,27 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional -from typing_extensions import Literal - -from .._models import BaseModel - -__all__ = ["VectorDBRetrieveResponse"] - - -class VectorDBRetrieveResponse(BaseModel): - embedding_dimension: int - """Dimension of the embedding vectors""" - - embedding_model: str - """Name of the embedding model to use for vector generation""" - - identifier: str - - provider_id: str - - type: Literal["vector_db"] - """Type of resource, always 'vector_db' for vector databases""" - - provider_resource_id: Optional[str] = None - - vector_db_name: Optional[str] = None diff --git a/src/llama_stack_client/types/vector_store_create_params.py b/src/llama_stack_client/types/vector_store_create_params.py index ccdb15c4..7eb3743b 100644 --- a/src/llama_stack_client/types/vector_store_create_params.py +++ b/src/llama_stack_client/types/vector_store_create_params.py @@ -12,31 +12,16 @@ class VectorStoreCreateParams(TypedDict, total=False): chunking_strategy: Dict[str, Union[bool, float, str, Iterable[object], object, None]] - """The chunking strategy used to chunk the file(s). - - If not set, will use the `auto` strategy. - """ - - embedding_dimension: int - """The dimension of the embedding vectors (default: 384).""" - - embedding_model: str - """The embedding model to use for this vector store.""" + """(Optional) Strategy for splitting files into chunks""" expires_after: Dict[str, Union[bool, float, str, Iterable[object], object, None]] - """The expiration policy for a vector store.""" + """(Optional) Expiration policy for the vector store""" file_ids: SequenceNotStr[str] - """A list of File IDs that the vector store should use. - - Useful for tools like `file_search` that can access files. - """ + """List of file IDs to include in the vector store""" metadata: Dict[str, Union[bool, float, str, Iterable[object], object, None]] - """Set of 16 key-value pairs that can be attached to an object.""" + """Set of key-value pairs that can be attached to the vector store""" name: str - """A name for the vector store.""" - - provider_id: str - """The ID of the provider to use for this vector store.""" + """(Optional) A name for the vector store""" diff --git a/src/llama_stack_client/types/vector_stores/file_batch_create_params.py b/src/llama_stack_client/types/vector_stores/file_batch_create_params.py index e6eba90a..ed1f28fe 100644 --- a/src/llama_stack_client/types/vector_stores/file_batch_create_params.py +++ b/src/llama_stack_client/types/vector_stores/file_batch_create_params.py @@ -18,13 +18,13 @@ class FileBatchCreateParams(TypedDict, total=False): file_ids: Required[SequenceNotStr[str]] - """A list of File IDs that the vector store should use.""" + """A list of File IDs that the vector store should use""" attributes: Dict[str, Union[bool, float, str, Iterable[object], object, None]] - """(Optional) Key-value attributes to store with the files.""" + """(Optional) Key-value attributes to store with the files""" chunking_strategy: ChunkingStrategy - """(Optional) The chunking strategy used to chunk the file(s). Defaults to auto.""" + """(Optional) The chunking strategy used to chunk the file(s). Defaults to auto""" class ChunkingStrategyVectorStoreChunkingStrategyAuto(TypedDict, total=False): diff --git a/tests/api_resources/test_completions.py b/tests/api_resources/test_completions.py index 355384b0..23964bdf 100644 --- a/tests/api_resources/test_completions.py +++ b/tests/api_resources/test_completions.py @@ -33,13 +33,11 @@ def test_method_create_with_all_params_overload_1(self, client: LlamaStackClient best_of=0, echo=True, frequency_penalty=0, - guided_choice=["string"], logit_bias={"foo": 0}, logprobs=True, max_tokens=0, n=0, presence_penalty=0, - prompt_logprobs=0, seed=0, stop="string", stream=False, @@ -95,13 +93,11 @@ def test_method_create_with_all_params_overload_2(self, client: LlamaStackClient best_of=0, echo=True, frequency_penalty=0, - guided_choice=["string"], logit_bias={"foo": 0}, logprobs=True, max_tokens=0, n=0, presence_penalty=0, - prompt_logprobs=0, seed=0, stop="string", stream_options={"foo": True}, @@ -161,13 +157,11 @@ async def test_method_create_with_all_params_overload_1(self, async_client: Asyn best_of=0, echo=True, frequency_penalty=0, - guided_choice=["string"], logit_bias={"foo": 0}, logprobs=True, max_tokens=0, n=0, presence_penalty=0, - prompt_logprobs=0, seed=0, stop="string", stream=False, @@ -223,13 +217,11 @@ async def test_method_create_with_all_params_overload_2(self, async_client: Asyn best_of=0, echo=True, frequency_penalty=0, - guided_choice=["string"], logit_bias={"foo": 0}, logprobs=True, max_tokens=0, n=0, presence_penalty=0, - prompt_logprobs=0, seed=0, stop="string", stream_options={"foo": True}, diff --git a/tests/api_resources/test_vector_dbs.py b/tests/api_resources/test_vector_dbs.py deleted file mode 100644 index 1c4b855a..00000000 --- a/tests/api_resources/test_vector_dbs.py +++ /dev/null @@ -1,322 +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 tests.utils import assert_matches_type -from llama_stack_client import LlamaStackClient, AsyncLlamaStackClient -from llama_stack_client.types import ( - VectorDBListResponse, - VectorDBRegisterResponse, - VectorDBRetrieveResponse, -) - -base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") - - -class TestVectorDBs: - parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) - - @parametrize - def test_method_retrieve(self, client: LlamaStackClient) -> None: - vector_db = client.vector_dbs.retrieve( - "vector_db_id", - ) - assert_matches_type(VectorDBRetrieveResponse, vector_db, path=["response"]) - - @parametrize - def test_raw_response_retrieve(self, client: LlamaStackClient) -> None: - response = client.vector_dbs.with_raw_response.retrieve( - "vector_db_id", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - vector_db = response.parse() - assert_matches_type(VectorDBRetrieveResponse, vector_db, path=["response"]) - - @parametrize - def test_streaming_response_retrieve(self, client: LlamaStackClient) -> None: - with client.vector_dbs.with_streaming_response.retrieve( - "vector_db_id", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - vector_db = response.parse() - assert_matches_type(VectorDBRetrieveResponse, vector_db, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_path_params_retrieve(self, client: LlamaStackClient) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `vector_db_id` but received ''"): - client.vector_dbs.with_raw_response.retrieve( - "", - ) - - @parametrize - def test_method_list(self, client: LlamaStackClient) -> None: - vector_db = client.vector_dbs.list() - assert_matches_type(VectorDBListResponse, vector_db, path=["response"]) - - @parametrize - def test_raw_response_list(self, client: LlamaStackClient) -> None: - response = client.vector_dbs.with_raw_response.list() - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - vector_db = response.parse() - assert_matches_type(VectorDBListResponse, vector_db, path=["response"]) - - @parametrize - def test_streaming_response_list(self, client: LlamaStackClient) -> None: - with client.vector_dbs.with_streaming_response.list() as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - vector_db = response.parse() - assert_matches_type(VectorDBListResponse, vector_db, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_method_register(self, client: LlamaStackClient) -> None: - vector_db = client.vector_dbs.register( - embedding_model="embedding_model", - vector_db_id="vector_db_id", - ) - assert_matches_type(VectorDBRegisterResponse, vector_db, path=["response"]) - - @parametrize - def test_method_register_with_all_params(self, client: LlamaStackClient) -> None: - vector_db = client.vector_dbs.register( - embedding_model="embedding_model", - vector_db_id="vector_db_id", - embedding_dimension=0, - provider_id="provider_id", - provider_vector_db_id="provider_vector_db_id", - vector_db_name="vector_db_name", - ) - assert_matches_type(VectorDBRegisterResponse, vector_db, path=["response"]) - - @parametrize - def test_raw_response_register(self, client: LlamaStackClient) -> None: - response = client.vector_dbs.with_raw_response.register( - embedding_model="embedding_model", - vector_db_id="vector_db_id", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - vector_db = response.parse() - assert_matches_type(VectorDBRegisterResponse, vector_db, path=["response"]) - - @parametrize - def test_streaming_response_register(self, client: LlamaStackClient) -> None: - with client.vector_dbs.with_streaming_response.register( - embedding_model="embedding_model", - vector_db_id="vector_db_id", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - vector_db = response.parse() - assert_matches_type(VectorDBRegisterResponse, vector_db, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_method_unregister(self, client: LlamaStackClient) -> None: - vector_db = client.vector_dbs.unregister( - "vector_db_id", - ) - assert vector_db is None - - @parametrize - def test_raw_response_unregister(self, client: LlamaStackClient) -> None: - response = client.vector_dbs.with_raw_response.unregister( - "vector_db_id", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - vector_db = response.parse() - assert vector_db is None - - @parametrize - def test_streaming_response_unregister(self, client: LlamaStackClient) -> None: - with client.vector_dbs.with_streaming_response.unregister( - "vector_db_id", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - vector_db = response.parse() - assert vector_db is None - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_path_params_unregister(self, client: LlamaStackClient) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `vector_db_id` but received ''"): - client.vector_dbs.with_raw_response.unregister( - "", - ) - - -class TestAsyncVectorDBs: - parametrize = pytest.mark.parametrize( - "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] - ) - - @parametrize - async def test_method_retrieve(self, async_client: AsyncLlamaStackClient) -> None: - vector_db = await async_client.vector_dbs.retrieve( - "vector_db_id", - ) - assert_matches_type(VectorDBRetrieveResponse, vector_db, path=["response"]) - - @parametrize - async def test_raw_response_retrieve(self, async_client: AsyncLlamaStackClient) -> None: - response = await async_client.vector_dbs.with_raw_response.retrieve( - "vector_db_id", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - vector_db = await response.parse() - assert_matches_type(VectorDBRetrieveResponse, vector_db, path=["response"]) - - @parametrize - async def test_streaming_response_retrieve(self, async_client: AsyncLlamaStackClient) -> None: - async with async_client.vector_dbs.with_streaming_response.retrieve( - "vector_db_id", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - vector_db = await response.parse() - assert_matches_type(VectorDBRetrieveResponse, vector_db, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_path_params_retrieve(self, async_client: AsyncLlamaStackClient) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `vector_db_id` but received ''"): - await async_client.vector_dbs.with_raw_response.retrieve( - "", - ) - - @parametrize - async def test_method_list(self, async_client: AsyncLlamaStackClient) -> None: - vector_db = await async_client.vector_dbs.list() - assert_matches_type(VectorDBListResponse, vector_db, path=["response"]) - - @parametrize - async def test_raw_response_list(self, async_client: AsyncLlamaStackClient) -> None: - response = await async_client.vector_dbs.with_raw_response.list() - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - vector_db = await response.parse() - assert_matches_type(VectorDBListResponse, vector_db, path=["response"]) - - @parametrize - async def test_streaming_response_list(self, async_client: AsyncLlamaStackClient) -> None: - async with async_client.vector_dbs.with_streaming_response.list() as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - vector_db = await response.parse() - assert_matches_type(VectorDBListResponse, vector_db, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_method_register(self, async_client: AsyncLlamaStackClient) -> None: - vector_db = await async_client.vector_dbs.register( - embedding_model="embedding_model", - vector_db_id="vector_db_id", - ) - assert_matches_type(VectorDBRegisterResponse, vector_db, path=["response"]) - - @parametrize - async def test_method_register_with_all_params(self, async_client: AsyncLlamaStackClient) -> None: - vector_db = await async_client.vector_dbs.register( - embedding_model="embedding_model", - vector_db_id="vector_db_id", - embedding_dimension=0, - provider_id="provider_id", - provider_vector_db_id="provider_vector_db_id", - vector_db_name="vector_db_name", - ) - assert_matches_type(VectorDBRegisterResponse, vector_db, path=["response"]) - - @parametrize - async def test_raw_response_register(self, async_client: AsyncLlamaStackClient) -> None: - response = await async_client.vector_dbs.with_raw_response.register( - embedding_model="embedding_model", - vector_db_id="vector_db_id", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - vector_db = await response.parse() - assert_matches_type(VectorDBRegisterResponse, vector_db, path=["response"]) - - @parametrize - async def test_streaming_response_register(self, async_client: AsyncLlamaStackClient) -> None: - async with async_client.vector_dbs.with_streaming_response.register( - embedding_model="embedding_model", - vector_db_id="vector_db_id", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - vector_db = await response.parse() - assert_matches_type(VectorDBRegisterResponse, vector_db, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_method_unregister(self, async_client: AsyncLlamaStackClient) -> None: - vector_db = await async_client.vector_dbs.unregister( - "vector_db_id", - ) - assert vector_db is None - - @parametrize - async def test_raw_response_unregister(self, async_client: AsyncLlamaStackClient) -> None: - response = await async_client.vector_dbs.with_raw_response.unregister( - "vector_db_id", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - vector_db = await response.parse() - assert vector_db is None - - @parametrize - async def test_streaming_response_unregister(self, async_client: AsyncLlamaStackClient) -> None: - async with async_client.vector_dbs.with_streaming_response.unregister( - "vector_db_id", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - vector_db = await response.parse() - assert vector_db is None - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_path_params_unregister(self, async_client: AsyncLlamaStackClient) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `vector_db_id` but received ''"): - await async_client.vector_dbs.with_raw_response.unregister( - "", - ) diff --git a/tests/api_resources/test_vector_stores.py b/tests/api_resources/test_vector_stores.py index 3918624b..2aed2e9e 100644 --- a/tests/api_resources/test_vector_stores.py +++ b/tests/api_resources/test_vector_stores.py @@ -31,13 +31,10 @@ def test_method_create(self, client: LlamaStackClient) -> None: def test_method_create_with_all_params(self, client: LlamaStackClient) -> None: vector_store = client.vector_stores.create( chunking_strategy={"foo": True}, - embedding_dimension=0, - embedding_model="embedding_model", expires_after={"foo": True}, file_ids=["string"], metadata={"foo": True}, name="name", - provider_id="provider_id", ) assert_matches_type(VectorStore, vector_store, path=["response"]) @@ -293,13 +290,10 @@ async def test_method_create(self, async_client: AsyncLlamaStackClient) -> None: async def test_method_create_with_all_params(self, async_client: AsyncLlamaStackClient) -> None: vector_store = await async_client.vector_stores.create( chunking_strategy={"foo": True}, - embedding_dimension=0, - embedding_model="embedding_model", expires_after={"foo": True}, file_ids=["string"], metadata={"foo": True}, name="name", - provider_id="provider_id", ) assert_matches_type(VectorStore, vector_store, path=["response"])