diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2c0a0c04..ee914c4e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,7 +36,7 @@ jobs: run: ./scripts/lint build: - if: github.event_name == 'push' || github.event.pull_request.head.repo.fork + if: github.repository == 'stainless-sdks/llama-stack-client-python' && (github.event_name == 'push' || github.event.pull_request.head.repo.fork) timeout-minutes: 10 name: build permissions: @@ -61,14 +61,12 @@ jobs: run: rye build - name: Get GitHub OIDC Token - if: github.repository == 'stainless-sdks/llama-stack-client-python' id: github-oidc uses: actions/github-script@v6 with: script: core.setOutput('github_token', await core.getIDToken()); - name: Upload tarball - if: github.repository == 'stainless-sdks/llama-stack-client-python' env: URL: https://pkg.stainless.com/s AUTH: ${{ steps.github-oidc.outputs.github_token }} diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 23b4f02c..bce5b8a9 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.2.19-alpha.1" + ".": "0.2.18-alpha.3" } diff --git a/.stats.yml b/.stats.yml index ef192463..cd6eb84a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 107 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack%2Fllama-stack-client-f252873ea1e1f38fd207331ef2621c511154d5be3f4076e59cc15754fc58eee4.yml -openapi_spec_hash: 10cbb4337a06a9fdd7d08612dd6044c3 -config_hash: 17fe64b23723fc54f2ee61c80223c3e3 +configured_endpoints: 106 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack%2Fllama-stack-client-4f6633567c1a079df49d0cf58f37251a4bb0ee2f2a496ac83c9fee26eb325f9c.yml +openapi_spec_hash: af5b3d3bbecf48f15c90b982ccac852e +config_hash: e67fd054e95c1e82f78f4b834e96bb65 diff --git a/CHANGELOG.md b/CHANGELOG.md index c084bf81..06c78082 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,31 +1,5 @@ # Changelog -## 0.2.19-alpha.1 (2025-08-22) - -Full Changelog: [v0.2.18-alpha.3...v0.2.19-alpha.1](https://github.com/llamastack/llama-stack-client-python/compare/v0.2.18-alpha.3...v0.2.19-alpha.1) - -### Features - -* **api:** manual updates ([119bdb2](https://github.com/llamastack/llama-stack-client-python/commit/119bdb2a862fe772ca82770937aba49ffb039bf2)) -* **api:** query_metrics, batches, changes ([c935c79](https://github.com/llamastack/llama-stack-client-python/commit/c935c79c1117613c7e9413b87d19cfd010d89796)) -* **api:** some updates to query metrics ([8f0f7a5](https://github.com/llamastack/llama-stack-client-python/commit/8f0f7a5de82f1dd3404cedff599b8a33f6e5c755)) - - -### Bug Fixes - -* **agent:** fix wrong module import in ReAct agent ([#262](https://github.com/llamastack/llama-stack-client-python/issues/262)) ([c17f3d6](https://github.com/llamastack/llama-stack-client-python/commit/c17f3d65af17d282785623864661ef2d16fcb1fc)), closes [#261](https://github.com/llamastack/llama-stack-client-python/issues/261) -* **build:** kill explicit listing of python3.13 for now ([5284b4a](https://github.com/llamastack/llama-stack-client-python/commit/5284b4a93822e8900c05f63ddf342aab3b603aa3)) - - -### Chores - -* update github action ([af6b97e](https://github.com/llamastack/llama-stack-client-python/commit/af6b97e6ec55473a03682ea45e4bac9429fbdf78)) - - -### Build System - -* Bump version to 0.2.18 ([53d95ba](https://github.com/llamastack/llama-stack-client-python/commit/53d95bad01e4aaa8fa27438618aaa6082cd60275)) - ## 0.2.18-alpha.3 (2025-08-14) Full Changelog: [v0.2.18-alpha.2...v0.2.18-alpha.3](https://github.com/llamastack/llama-stack-client-python/compare/v0.2.18-alpha.2...v0.2.18-alpha.3) diff --git a/api.md b/api.md index 9fba7963..4056f4a6 100644 --- a/api.md +++ b/api.md @@ -20,7 +20,6 @@ from llama_stack_client.types import ( SafetyViolation, SamplingParams, ScoringResult, - SharedTokenLogProbs, SystemMessage, ToolCall, ToolCallOrString, @@ -63,7 +62,7 @@ Methods: Types: ```python -from llama_stack_client.types import ToolInvocationResult, ToolRuntimeListToolsResponse +from llama_stack_client.types import ToolDef, ToolInvocationResult, ToolRuntimeListToolsResponse ``` Methods: @@ -240,6 +239,7 @@ Types: ```python from llama_stack_client.types import ( ChatCompletionResponseStreamChunk, + CompletionResponse, EmbeddingsResponse, TokenLogProbs, InferenceBatchChatCompletionResponse, @@ -251,7 +251,7 @@ Methods: - client.inference.batch_chat_completion(\*\*params) -> InferenceBatchChatCompletionResponse - client.inference.batch_completion(\*\*params) -> BatchCompletion - client.inference.chat_completion(\*\*params) -> ChatCompletionResponse -- client.inference.completion(\*\*params) -> UnnamedTypeWithNoPropertyInfoOrParent0 +- client.inference.completion(\*\*params) -> CompletionResponse - client.inference.embeddings(\*\*params) -> EmbeddingsResponse # Embeddings @@ -509,14 +509,12 @@ Types: ```python from llama_stack_client.types import ( Event, - Metric, QueryCondition, QuerySpansResponse, SpanWithStatus, Trace, TelemetryGetSpanResponse, TelemetryGetSpanTreeResponse, - TelemetryQueryMetricsResponse, TelemetryQuerySpansResponse, TelemetryQueryTracesResponse, ) @@ -528,7 +526,6 @@ Methods: - client.telemetry.get_span_tree(span_id, \*\*params) -> TelemetryGetSpanTreeResponse - client.telemetry.get_trace(trace_id) -> Trace - client.telemetry.log_event(\*\*params) -> None -- client.telemetry.query_metrics(metric_name, \*\*params) -> TelemetryQueryMetricsResponse - client.telemetry.query_spans(\*\*params) -> TelemetryQuerySpansResponse - client.telemetry.query_traces(\*\*params) -> TelemetryQueryTracesResponse - client.telemetry.save_spans_to_dataset(\*\*params) -> None diff --git a/pyproject.toml b/pyproject.toml index ab7bfcf9..f0a1927f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "llama_stack_client" -version = "0.2.19-alpha.1" +version = "0.2.18" description = "The official Python library for the llama-stack-client API" dynamic = ["readme"] license = "MIT" diff --git a/src/llama_stack_client/pagination.py b/src/llama_stack_client/pagination.py index 67106bc5..9122ff46 100644 --- a/src/llama_stack_client/pagination.py +++ b/src/llama_stack_client/pagination.py @@ -24,13 +24,10 @@ def _get_page_items(self) -> List[_T]: @override def next_page_info(self) -> Optional[PageInfo]: next_index = self.next_index - if next_index is None: - return None # type: ignore[unreachable] - - length = len(self._get_page_items()) - current_count = next_index + length + if not next_index: + return None - return PageInfo(params={"start_index": current_count}) + return PageInfo(params={"start_index": next_index}) class AsyncDatasetsIterrows(BaseAsyncPage[_T], BasePage[_T], Generic[_T]): @@ -47,13 +44,10 @@ def _get_page_items(self) -> List[_T]: @override def next_page_info(self) -> Optional[PageInfo]: next_index = self.next_index - if next_index is None: - return None # type: ignore[unreachable] - - length = len(self._get_page_items()) - current_count = next_index + length + if not next_index: + return None - return PageInfo(params={"start_index": current_count}) + return PageInfo(params={"start_index": next_index}) class SyncOpenAICursorPage(BaseSyncPage[_T], BasePage[_T], Generic[_T]): diff --git a/src/llama_stack_client/resources/files.py b/src/llama_stack_client/resources/files.py index 4a74e148..96c5c871 100644 --- a/src/llama_stack_client/resources/files.py +++ b/src/llama_stack_client/resources/files.py @@ -50,7 +50,7 @@ def create( self, *, file: FileTypes, - purpose: Literal["assistants", "batch"], + purpose: Literal["assistants"], # 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, @@ -137,7 +137,7 @@ def list( after: str | NotGiven = NOT_GIVEN, limit: int | NotGiven = NOT_GIVEN, order: Literal["asc", "desc"] | NotGiven = NOT_GIVEN, - purpose: Literal["assistants", "batch"] | NotGiven = NOT_GIVEN, + purpose: Literal["assistants"] | 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. extra_headers: Headers | None = None, @@ -282,7 +282,7 @@ async def create( self, *, file: FileTypes, - purpose: Literal["assistants", "batch"], + purpose: Literal["assistants"], # 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, @@ -369,7 +369,7 @@ def list( after: str | NotGiven = NOT_GIVEN, limit: int | NotGiven = NOT_GIVEN, order: Literal["asc", "desc"] | NotGiven = NOT_GIVEN, - purpose: Literal["assistants", "batch"] | NotGiven = NOT_GIVEN, + purpose: Literal["assistants"] | 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. extra_headers: Headers | None = None, diff --git a/src/llama_stack_client/resources/inference.py b/src/llama_stack_client/resources/inference.py index a10919b5..7aec2dbd 100644 --- a/src/llama_stack_client/resources/inference.py +++ b/src/llama_stack_client/resources/inference.py @@ -27,10 +27,10 @@ ) from .._streaming import Stream, AsyncStream from .._base_client import make_request_options +from ..types.completion_response import CompletionResponse from ..types.embeddings_response import EmbeddingsResponse from ..types.shared_params.message import Message from ..types.shared.batch_completion import BatchCompletion -from ..types.inference_completion_params import UnnamedTypeWithNoPropertyInfoOrParent0 from ..types.shared_params.response_format import ResponseFormat from ..types.shared_params.sampling_params import SamplingParams from ..types.shared.chat_completion_response import ChatCompletionResponse @@ -467,7 +467,7 @@ def completion( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> UnnamedTypeWithNoPropertyInfoOrParent0: + ) -> CompletionResponse: """ Generate a completion for the given content using the specified model. @@ -514,7 +514,7 @@ def completion( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Stream[UnnamedTypeWithNoPropertyInfoOrParent0]: + ) -> Stream[CompletionResponse]: """ Generate a completion for the given content using the specified model. @@ -561,7 +561,7 @@ def completion( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> UnnamedTypeWithNoPropertyInfoOrParent0 | Stream[UnnamedTypeWithNoPropertyInfoOrParent0]: + ) -> CompletionResponse | Stream[CompletionResponse]: """ Generate a completion for the given content using the specified model. @@ -608,7 +608,7 @@ def completion( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> UnnamedTypeWithNoPropertyInfoOrParent0 | Stream[UnnamedTypeWithNoPropertyInfoOrParent0]: + ) -> CompletionResponse | Stream[CompletionResponse]: if stream: extra_headers = {"Accept": "text/event-stream", **(extra_headers or {})} return self._post( @@ -629,9 +629,9 @@ def completion( options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=UnnamedTypeWithNoPropertyInfoOrParent0, + cast_to=CompletionResponse, stream=stream or False, - stream_cls=Stream[UnnamedTypeWithNoPropertyInfoOrParent0], + stream_cls=Stream[CompletionResponse], ) @typing_extensions.deprecated("/v1/inference/embeddings is deprecated. Please use /v1/openai/v1/embeddings.") @@ -1122,7 +1122,7 @@ async def completion( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> UnnamedTypeWithNoPropertyInfoOrParent0: + ) -> CompletionResponse: """ Generate a completion for the given content using the specified model. @@ -1169,7 +1169,7 @@ async def completion( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> AsyncStream[UnnamedTypeWithNoPropertyInfoOrParent0]: + ) -> AsyncStream[CompletionResponse]: """ Generate a completion for the given content using the specified model. @@ -1216,7 +1216,7 @@ async def completion( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> UnnamedTypeWithNoPropertyInfoOrParent0 | AsyncStream[UnnamedTypeWithNoPropertyInfoOrParent0]: + ) -> CompletionResponse | AsyncStream[CompletionResponse]: """ Generate a completion for the given content using the specified model. @@ -1263,7 +1263,7 @@ async def completion( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> UnnamedTypeWithNoPropertyInfoOrParent0 | AsyncStream[UnnamedTypeWithNoPropertyInfoOrParent0]: + ) -> CompletionResponse | AsyncStream[CompletionResponse]: if stream: extra_headers = {"Accept": "text/event-stream", **(extra_headers or {})} return await self._post( @@ -1284,9 +1284,9 @@ async def completion( options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=UnnamedTypeWithNoPropertyInfoOrParent0, + cast_to=CompletionResponse, stream=stream or False, - stream_cls=AsyncStream[UnnamedTypeWithNoPropertyInfoOrParent0], + stream_cls=AsyncStream[CompletionResponse], ) @typing_extensions.deprecated("/v1/inference/embeddings is deprecated. Please use /v1/openai/v1/embeddings.") diff --git a/src/llama_stack_client/resources/telemetry.py b/src/llama_stack_client/resources/telemetry.py index b8b47c49..1cec537e 100644 --- a/src/llama_stack_client/resources/telemetry.py +++ b/src/llama_stack_client/resources/telemetry.py @@ -3,7 +3,6 @@ from __future__ import annotations from typing import List, Type, Iterable, cast -from typing_extensions import Literal import httpx @@ -12,7 +11,6 @@ telemetry_query_spans_params, telemetry_query_traces_params, telemetry_get_span_tree_params, - telemetry_query_metrics_params, telemetry_save_spans_to_dataset_params, ) from .._types import NOT_GIVEN, Body, Query, Headers, NoneType, NotGiven @@ -34,7 +32,6 @@ from ..types.telemetry_query_spans_response import TelemetryQuerySpansResponse from ..types.telemetry_query_traces_response import TelemetryQueryTracesResponse from ..types.telemetry_get_span_tree_response import TelemetryGetSpanTreeResponse -from ..types.telemetry_query_metrics_response import TelemetryQueryMetricsResponse __all__ = ["TelemetryResource", "AsyncTelemetryResource"] @@ -222,68 +219,6 @@ def log_event( cast_to=NoneType, ) - def query_metrics( - self, - metric_name: str, - *, - query_type: Literal["range", "instant"], - start_time: int, - end_time: int | NotGiven = NOT_GIVEN, - granularity: str | NotGiven = NOT_GIVEN, - label_matchers: Iterable[telemetry_query_metrics_params.LabelMatcher] | 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. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> TelemetryQueryMetricsResponse: - """ - Query metrics. - - Args: - query_type: The type of query to perform. - - start_time: The start time of the metric to query. - - end_time: The end time of the metric to query. - - granularity: The granularity of the metric to query. - - label_matchers: The label matchers to apply to the metric. - - 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 metric_name: - raise ValueError(f"Expected a non-empty value for `metric_name` but received {metric_name!r}") - return self._post( - f"/v1/telemetry/metrics/{metric_name}", - body=maybe_transform( - { - "query_type": query_type, - "start_time": start_time, - "end_time": end_time, - "granularity": granularity, - "label_matchers": label_matchers, - }, - telemetry_query_metrics_params.TelemetryQueryMetricsParams, - ), - options=make_request_options( - extra_headers=extra_headers, - extra_query=extra_query, - extra_body=extra_body, - timeout=timeout, - post_parser=DataWrapper[TelemetryQueryMetricsResponse]._unwrapper, - ), - cast_to=cast(Type[TelemetryQueryMetricsResponse], DataWrapper[TelemetryQueryMetricsResponse]), - ) - def query_spans( self, *, @@ -626,68 +561,6 @@ async def log_event( cast_to=NoneType, ) - async def query_metrics( - self, - metric_name: str, - *, - query_type: Literal["range", "instant"], - start_time: int, - end_time: int | NotGiven = NOT_GIVEN, - granularity: str | NotGiven = NOT_GIVEN, - label_matchers: Iterable[telemetry_query_metrics_params.LabelMatcher] | 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. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> TelemetryQueryMetricsResponse: - """ - Query metrics. - - Args: - query_type: The type of query to perform. - - start_time: The start time of the metric to query. - - end_time: The end time of the metric to query. - - granularity: The granularity of the metric to query. - - label_matchers: The label matchers to apply to the metric. - - 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 metric_name: - raise ValueError(f"Expected a non-empty value for `metric_name` but received {metric_name!r}") - return await self._post( - f"/v1/telemetry/metrics/{metric_name}", - body=await async_maybe_transform( - { - "query_type": query_type, - "start_time": start_time, - "end_time": end_time, - "granularity": granularity, - "label_matchers": label_matchers, - }, - telemetry_query_metrics_params.TelemetryQueryMetricsParams, - ), - options=make_request_options( - extra_headers=extra_headers, - extra_query=extra_query, - extra_body=extra_body, - timeout=timeout, - post_parser=DataWrapper[TelemetryQueryMetricsResponse]._unwrapper, - ), - cast_to=cast(Type[TelemetryQueryMetricsResponse], DataWrapper[TelemetryQueryMetricsResponse]), - ) - async def query_spans( self, *, @@ -863,9 +736,6 @@ def __init__(self, telemetry: TelemetryResource) -> None: self.log_event = to_raw_response_wrapper( telemetry.log_event, ) - self.query_metrics = to_raw_response_wrapper( - telemetry.query_metrics, - ) self.query_spans = to_raw_response_wrapper( telemetry.query_spans, ) @@ -893,9 +763,6 @@ def __init__(self, telemetry: AsyncTelemetryResource) -> None: self.log_event = async_to_raw_response_wrapper( telemetry.log_event, ) - self.query_metrics = async_to_raw_response_wrapper( - telemetry.query_metrics, - ) self.query_spans = async_to_raw_response_wrapper( telemetry.query_spans, ) @@ -923,9 +790,6 @@ def __init__(self, telemetry: TelemetryResource) -> None: self.log_event = to_streamed_response_wrapper( telemetry.log_event, ) - self.query_metrics = to_streamed_response_wrapper( - telemetry.query_metrics, - ) self.query_spans = to_streamed_response_wrapper( telemetry.query_spans, ) @@ -953,9 +817,6 @@ def __init__(self, telemetry: AsyncTelemetryResource) -> None: self.log_event = async_to_streamed_response_wrapper( telemetry.log_event, ) - self.query_metrics = async_to_streamed_response_wrapper( - telemetry.query_metrics, - ) self.query_spans = async_to_streamed_response_wrapper( telemetry.query_spans, ) diff --git a/src/llama_stack_client/types/__init__.py b/src/llama_stack_client/types/__init__.py index 0ab7f506..887f1706 100644 --- a/src/llama_stack_client/types/__init__.py +++ b/src/llama_stack_client/types/__init__.py @@ -7,7 +7,6 @@ from .tool import Tool as Tool from .model import Model as Model from .trace import Trace as Trace -from .metric import Metric as Metric from .shared import ( Message as Message, Document as Document, @@ -28,7 +27,6 @@ ToolCallOrString as ToolCallOrString, CompletionMessage as CompletionMessage, InterleavedContent as InterleavedContent, - SharedTokenLogProbs as SharedTokenLogProbs, ToolParamDefinition as ToolParamDefinition, ToolResponseMessage as ToolResponseMessage, QueryGeneratorConfig as QueryGeneratorConfig, @@ -36,6 +34,7 @@ InterleavedContentItem as InterleavedContentItem, ) from .shield import Shield as Shield +from .tool_def import ToolDef as ToolDef from .benchmark import Benchmark as Benchmark from .route_info import RouteInfo as RouteInfo from .scoring_fn import ScoringFn as ScoringFn @@ -47,8 +46,10 @@ from .provider_info import ProviderInfo as ProviderInfo from .tool_response import ToolResponse as ToolResponse from .inference_step import InferenceStep as InferenceStep +from .tool_def_param import ToolDefParam as ToolDefParam from .create_response import CreateResponse as CreateResponse from .response_object import ResponseObject as ResponseObject +from .token_log_probs import TokenLogProbs as TokenLogProbs from .file_list_params import FileListParams as FileListParams from .shield_call_step import ShieldCallStep as ShieldCallStep from .span_with_status import SpanWithStatus as SpanWithStatus @@ -61,6 +62,7 @@ from .tool_list_response import ToolListResponse as ToolListResponse from .agent_create_params import AgentCreateParams as AgentCreateParams from .agent_list_response import AgentListResponse as AgentListResponse +from .completion_response import CompletionResponse as CompletionResponse from .embeddings_response import EmbeddingsResponse as EmbeddingsResponse from .list_files_response import ListFilesResponse as ListFilesResponse from .list_tools_response import ListToolsResponse as ListToolsResponse @@ -143,7 +145,6 @@ from .telemetry_query_traces_params import TelemetryQueryTracesParams as TelemetryQueryTracesParams from .scoring_function_list_response import ScoringFunctionListResponse as ScoringFunctionListResponse from .telemetry_get_span_tree_params import TelemetryGetSpanTreeParams as TelemetryGetSpanTreeParams -from .telemetry_query_metrics_params import TelemetryQueryMetricsParams as TelemetryQueryMetricsParams from .telemetry_query_spans_response import TelemetryQuerySpansResponse as TelemetryQuerySpansResponse from .tool_runtime_list_tools_params import ToolRuntimeListToolsParams as ToolRuntimeListToolsParams from .eval_evaluate_rows_alpha_params import EvalEvaluateRowsAlphaParams as EvalEvaluateRowsAlphaParams @@ -154,7 +155,6 @@ from .list_post_training_jobs_response import ListPostTrainingJobsResponse as ListPostTrainingJobsResponse from .scoring_function_register_params import ScoringFunctionRegisterParams as ScoringFunctionRegisterParams from .telemetry_get_span_tree_response import TelemetryGetSpanTreeResponse as TelemetryGetSpanTreeResponse -from .telemetry_query_metrics_response import TelemetryQueryMetricsResponse as TelemetryQueryMetricsResponse from .tool_runtime_list_tools_response import ToolRuntimeListToolsResponse as ToolRuntimeListToolsResponse from .inference_batch_completion_params import InferenceBatchCompletionParams as InferenceBatchCompletionParams from .synthetic_data_generation_response import SyntheticDataGenerationResponse as SyntheticDataGenerationResponse diff --git a/src/llama_stack_client/types/chat_completion_response_stream_chunk.py b/src/llama_stack_client/types/chat_completion_response_stream_chunk.py index be9d49ba..2b94eb18 100644 --- a/src/llama_stack_client/types/chat_completion_response_stream_chunk.py +++ b/src/llama_stack_client/types/chat_completion_response_stream_chunk.py @@ -3,12 +3,11 @@ from typing import List, Optional from typing_extensions import Literal -from .metric import Metric from .._models import BaseModel +from .token_log_probs import TokenLogProbs from .shared.content_delta import ContentDelta -from .shared.shared_token_log_probs import SharedTokenLogProbs -__all__ = ["ChatCompletionResponseStreamChunk", "Event"] +__all__ = ["ChatCompletionResponseStreamChunk", "Event", "Metric"] class Event(BaseModel): @@ -21,13 +20,24 @@ class Event(BaseModel): event_type: Literal["start", "complete", "progress"] """Type of the event""" - logprobs: Optional[List[SharedTokenLogProbs]] = None + logprobs: Optional[List[TokenLogProbs]] = None """Optional log probabilities for generated tokens""" stop_reason: Optional[Literal["end_of_turn", "end_of_message", "out_of_tokens"]] = None """Optional reason why generation stopped, if complete""" +class Metric(BaseModel): + metric: str + """The name of the metric""" + + value: float + """The numeric value of the metric""" + + unit: Optional[str] = None + """(Optional) The unit of measurement for the metric value""" + + class ChatCompletionResponseStreamChunk(BaseModel): event: Event """The event containing the new content""" diff --git a/src/llama_stack_client/types/completion_response.py b/src/llama_stack_client/types/completion_response.py new file mode 100644 index 00000000..51772801 --- /dev/null +++ b/src/llama_stack_client/types/completion_response.py @@ -0,0 +1,34 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import List, Optional +from typing_extensions import Literal + +from .._models import BaseModel +from .token_log_probs import TokenLogProbs + +__all__ = ["CompletionResponse", "Metric"] + + +class Metric(BaseModel): + metric: str + """The name of the metric""" + + value: float + """The numeric value of the metric""" + + unit: Optional[str] = None + """(Optional) The unit of measurement for the metric value""" + + +class CompletionResponse(BaseModel): + content: str + """The generated completion text""" + + stop_reason: Literal["end_of_turn", "end_of_message", "out_of_tokens"] + """Reason why generation stopped""" + + logprobs: Optional[List[TokenLogProbs]] = None + """Optional log probabilities for generated tokens""" + + metrics: Optional[List[Metric]] = None + """(Optional) List of metrics associated with the API response""" diff --git a/src/llama_stack_client/types/create_response.py b/src/llama_stack_client/types/create_response.py index fbb519f0..b0eaf3e5 100644 --- a/src/llama_stack_client/types/create_response.py +++ b/src/llama_stack_client/types/create_response.py @@ -22,7 +22,13 @@ class Result(BaseModel): """ category_scores: Optional[Dict[str, float]] = None - """A list of the categories along with their scores as predicted by model.""" + """A list of the categories along with their scores as predicted by model. + + Required set of categories that need to be in response - violence - + violence/graphic - harassment - harassment/threatening - hate - + hate/threatening - illicit - illicit/violent - sexual - sexual/minors - + self-harm - self-harm/intent - self-harm/instructions + """ user_message: Optional[str] = None diff --git a/src/llama_stack_client/types/file.py b/src/llama_stack_client/types/file.py index b87d04ef..74ead6b7 100644 --- a/src/llama_stack_client/types/file.py +++ b/src/llama_stack_client/types/file.py @@ -26,5 +26,5 @@ class File(BaseModel): object: Literal["file"] """The object type, which is always "file" """ - purpose: Literal["assistants", "batch"] + purpose: Literal["assistants"] """The intended purpose of the file""" diff --git a/src/llama_stack_client/types/file_create_params.py b/src/llama_stack_client/types/file_create_params.py index 8322c0a9..8342aad2 100644 --- a/src/llama_stack_client/types/file_create_params.py +++ b/src/llama_stack_client/types/file_create_params.py @@ -12,5 +12,5 @@ class FileCreateParams(TypedDict, total=False): file: Required[FileTypes] - purpose: Required[Literal["assistants", "batch"]] + purpose: Required[Literal["assistants"]] """Valid purpose values for OpenAI Files API.""" diff --git a/src/llama_stack_client/types/file_list_params.py b/src/llama_stack_client/types/file_list_params.py index 2b504e53..3f7d6ed5 100644 --- a/src/llama_stack_client/types/file_list_params.py +++ b/src/llama_stack_client/types/file_list_params.py @@ -29,5 +29,5 @@ class FileListParams(TypedDict, total=False): `asc` for ascending order and `desc` for descending order. """ - purpose: Literal["assistants", "batch"] + purpose: Literal["assistants"] """Only return files with the given purpose.""" diff --git a/src/llama_stack_client/types/metric.py b/src/llama_stack_client/types/metric.py deleted file mode 100644 index eb6fab3c..00000000 --- a/src/llama_stack_client/types/metric.py +++ /dev/null @@ -1,18 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional - -from .._models import BaseModel - -__all__ = ["Metric"] - - -class Metric(BaseModel): - metric: str - """The name of the metric""" - - value: float - """The numeric value of the metric""" - - unit: Optional[str] = None - """(Optional) The unit of measurement for the metric value""" diff --git a/src/llama_stack_client/types/shared/__init__.py b/src/llama_stack_client/types/shared/__init__.py index 3a8b0c83..0fe46810 100644 --- a/src/llama_stack_client/types/shared/__init__.py +++ b/src/llama_stack_client/types/shared/__init__.py @@ -22,6 +22,5 @@ from .tool_param_definition import ToolParamDefinition as ToolParamDefinition from .tool_response_message import ToolResponseMessage as ToolResponseMessage from .query_generator_config import QueryGeneratorConfig as QueryGeneratorConfig -from .shared_token_log_probs import SharedTokenLogProbs as SharedTokenLogProbs from .chat_completion_response import ChatCompletionResponse as ChatCompletionResponse from .interleaved_content_item import InterleavedContentItem as InterleavedContentItem diff --git a/src/llama_stack_client/types/shared/agent_config.py b/src/llama_stack_client/types/shared/agent_config.py index ba18c52b..eb116159 100644 --- a/src/llama_stack_client/types/shared/agent_config.py +++ b/src/llama_stack_client/types/shared/agent_config.py @@ -4,48 +4,11 @@ from typing_extensions import Literal, TypeAlias from ..._models import BaseModel +from ..tool_def import ToolDef from .response_format import ResponseFormat from .sampling_params import SamplingParams -__all__ = [ - "AgentConfig", - "ClientTool", - "ClientToolParameter", - "ToolConfig", - "Toolgroup", - "ToolgroupAgentToolGroupWithArgs", -] - - -class ClientToolParameter(BaseModel): - description: str - """Human-readable description of what the parameter does""" - - name: str - """Name of the parameter""" - - parameter_type: str - """Type of the parameter (e.g., string, integer)""" - - required: bool - """Whether this parameter is required for tool invocation""" - - default: Union[bool, float, str, List[object], object, None] = None - """(Optional) Default value for the parameter if not provided""" - - -class ClientTool(BaseModel): - name: str - """Name of the tool""" - - description: Optional[str] = None - """(Optional) Human-readable description of what the tool does""" - - metadata: Optional[Dict[str, Union[bool, float, str, List[object], object, None]]] = None - """(Optional) Additional metadata about the tool""" - - parameters: Optional[List[ClientToolParameter]] = None - """(Optional) List of parameters this tool accepts""" +__all__ = ["AgentConfig", "ToolConfig", "Toolgroup", "ToolgroupAgentToolGroupWithArgs"] class ToolConfig(BaseModel): @@ -93,7 +56,7 @@ class AgentConfig(BaseModel): model: str """The model identifier to use for the agent""" - client_tools: Optional[List[ClientTool]] = None + client_tools: Optional[List[ToolDef]] = None enable_session_persistence: Optional[bool] = None """Optional flag indicating whether session data has to be persisted""" diff --git a/src/llama_stack_client/types/shared/batch_completion.py b/src/llama_stack_client/types/shared/batch_completion.py index 0a0790fb..43a0a735 100644 --- a/src/llama_stack_client/types/shared/batch_completion.py +++ b/src/llama_stack_client/types/shared/batch_completion.py @@ -1,29 +1,13 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import List, Optional -from typing_extensions import Literal +from typing import List -from ..metric import Metric from ..._models import BaseModel -from .shared_token_log_probs import SharedTokenLogProbs +from ..completion_response import CompletionResponse -__all__ = ["BatchCompletion", "Batch"] - - -class Batch(BaseModel): - content: str - """The generated completion text""" - - stop_reason: Literal["end_of_turn", "end_of_message", "out_of_tokens"] - """Reason why generation stopped""" - - logprobs: Optional[List[SharedTokenLogProbs]] = None - """Optional log probabilities for generated tokens""" - - metrics: Optional[List[Metric]] = None - """(Optional) List of metrics associated with the API response""" +__all__ = ["BatchCompletion"] class BatchCompletion(BaseModel): - batch: List[Batch] + batch: List[CompletionResponse] """List of completion responses, one for each input in the batch""" diff --git a/src/llama_stack_client/types/shared/chat_completion_response.py b/src/llama_stack_client/types/shared/chat_completion_response.py index a7164071..3ff6e0bc 100644 --- a/src/llama_stack_client/types/shared/chat_completion_response.py +++ b/src/llama_stack_client/types/shared/chat_completion_response.py @@ -2,19 +2,29 @@ from typing import List, Optional -from ..metric import Metric from ..._models import BaseModel +from ..token_log_probs import TokenLogProbs from .completion_message import CompletionMessage -from .shared_token_log_probs import SharedTokenLogProbs -__all__ = ["ChatCompletionResponse"] +__all__ = ["ChatCompletionResponse", "Metric"] + + +class Metric(BaseModel): + metric: str + """The name of the metric""" + + value: float + """The numeric value of the metric""" + + unit: Optional[str] = None + """(Optional) The unit of measurement for the metric value""" class ChatCompletionResponse(BaseModel): completion_message: CompletionMessage """The complete response message""" - logprobs: Optional[List[SharedTokenLogProbs]] = None + logprobs: Optional[List[TokenLogProbs]] = None """Optional log probabilities for generated tokens""" metrics: Optional[List[Metric]] = None diff --git a/src/llama_stack_client/types/shared_params/agent_config.py b/src/llama_stack_client/types/shared_params/agent_config.py index 676ec749..5cebec3f 100644 --- a/src/llama_stack_client/types/shared_params/agent_config.py +++ b/src/llama_stack_client/types/shared_params/agent_config.py @@ -5,48 +5,11 @@ from typing import Dict, List, Union, Iterable from typing_extensions import Literal, Required, TypeAlias, TypedDict +from ..tool_def_param import ToolDefParam from .response_format import ResponseFormat from .sampling_params import SamplingParams -__all__ = [ - "AgentConfig", - "ClientTool", - "ClientToolParameter", - "ToolConfig", - "Toolgroup", - "ToolgroupAgentToolGroupWithArgs", -] - - -class ClientToolParameter(TypedDict, total=False): - description: Required[str] - """Human-readable description of what the parameter does""" - - name: Required[str] - """Name of the parameter""" - - parameter_type: Required[str] - """Type of the parameter (e.g., string, integer)""" - - required: Required[bool] - """Whether this parameter is required for tool invocation""" - - default: Union[bool, float, str, Iterable[object], object, None] - """(Optional) Default value for the parameter if not provided""" - - -class ClientTool(TypedDict, total=False): - name: Required[str] - """Name of the tool""" - - description: str - """(Optional) Human-readable description of what the tool does""" - - metadata: Dict[str, Union[bool, float, str, Iterable[object], object, None]] - """(Optional) Additional metadata about the tool""" - - parameters: Iterable[ClientToolParameter] - """(Optional) List of parameters this tool accepts""" +__all__ = ["AgentConfig", "ToolConfig", "Toolgroup", "ToolgroupAgentToolGroupWithArgs"] class ToolConfig(TypedDict, total=False): @@ -94,7 +57,7 @@ class AgentConfig(TypedDict, total=False): model: Required[str] """The model identifier to use for the agent""" - client_tools: Iterable[ClientTool] + client_tools: Iterable[ToolDefParam] enable_session_persistence: bool """Optional flag indicating whether session data has to be persisted""" diff --git a/src/llama_stack_client/types/telemetry_query_metrics_params.py b/src/llama_stack_client/types/telemetry_query_metrics_params.py deleted file mode 100644 index adf3f720..00000000 --- a/src/llama_stack_client/types/telemetry_query_metrics_params.py +++ /dev/null @@ -1,36 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing import Iterable -from typing_extensions import Literal, Required, TypedDict - -__all__ = ["TelemetryQueryMetricsParams", "LabelMatcher"] - - -class TelemetryQueryMetricsParams(TypedDict, total=False): - query_type: Required[Literal["range", "instant"]] - """The type of query to perform.""" - - start_time: Required[int] - """The start time of the metric to query.""" - - end_time: int - """The end time of the metric to query.""" - - granularity: str - """The granularity of the metric to query.""" - - label_matchers: Iterable[LabelMatcher] - """The label matchers to apply to the metric.""" - - -class LabelMatcher(TypedDict, total=False): - name: Required[str] - """The name of the label to match""" - - operator: Required[Literal["=", "!=", "=~", "!~"]] - """The comparison operator to use for matching""" - - value: Required[str] - """The value to match against""" diff --git a/src/llama_stack_client/types/telemetry_query_metrics_response.py b/src/llama_stack_client/types/telemetry_query_metrics_response.py deleted file mode 100644 index e9f4264e..00000000 --- a/src/llama_stack_client/types/telemetry_query_metrics_response.py +++ /dev/null @@ -1,45 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import List -from typing_extensions import TypeAlias - -from .._models import BaseModel - -__all__ = [ - "TelemetryQueryMetricsResponse", - "TelemetryQueryMetricsResponseItem", - "TelemetryQueryMetricsResponseItemLabel", - "TelemetryQueryMetricsResponseItemValue", -] - - -class TelemetryQueryMetricsResponseItemLabel(BaseModel): - name: str - """The name of the label""" - - value: str - """The value of the label""" - - -class TelemetryQueryMetricsResponseItemValue(BaseModel): - timestamp: int - """Unix timestamp when the metric value was recorded""" - - unit: str - - value: float - """The numeric value of the metric at this timestamp""" - - -class TelemetryQueryMetricsResponseItem(BaseModel): - labels: List[TelemetryQueryMetricsResponseItemLabel] - """List of labels associated with this metric series""" - - metric: str - """The name of the metric""" - - values: List[TelemetryQueryMetricsResponseItemValue] - """List of data points in chronological order""" - - -TelemetryQueryMetricsResponse: TypeAlias = List[TelemetryQueryMetricsResponseItem] diff --git a/src/llama_stack_client/types/shared/shared_token_log_probs.py b/src/llama_stack_client/types/token_log_probs.py similarity index 67% rename from src/llama_stack_client/types/shared/shared_token_log_probs.py rename to src/llama_stack_client/types/token_log_probs.py index 904e69e3..b1a0a2b4 100644 --- a/src/llama_stack_client/types/shared/shared_token_log_probs.py +++ b/src/llama_stack_client/types/token_log_probs.py @@ -2,11 +2,11 @@ from typing import Dict -from ..._models import BaseModel +from .._models import BaseModel -__all__ = ["SharedTokenLogProbs"] +__all__ = ["TokenLogProbs"] -class SharedTokenLogProbs(BaseModel): +class TokenLogProbs(BaseModel): logprobs_by_token: Dict[str, float] """Dictionary mapping tokens to their log probabilities""" diff --git a/src/llama_stack_client/types/tool_def.py b/src/llama_stack_client/types/tool_def.py new file mode 100644 index 00000000..c82a9b8a --- /dev/null +++ b/src/llama_stack_client/types/tool_def.py @@ -0,0 +1,38 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Dict, List, Union, Optional + +from .._models import BaseModel + +__all__ = ["ToolDef", "Parameter"] + + +class Parameter(BaseModel): + description: str + """Human-readable description of what the parameter does""" + + name: str + """Name of the parameter""" + + parameter_type: str + """Type of the parameter (e.g., string, integer)""" + + required: bool + """Whether this parameter is required for tool invocation""" + + default: Union[bool, float, str, List[object], object, None] = None + """(Optional) Default value for the parameter if not provided""" + + +class ToolDef(BaseModel): + name: str + """Name of the tool""" + + description: Optional[str] = None + """(Optional) Human-readable description of what the tool does""" + + metadata: Optional[Dict[str, Union[bool, float, str, List[object], object, None]]] = None + """(Optional) Additional metadata about the tool""" + + parameters: Optional[List[Parameter]] = None + """(Optional) List of parameters this tool accepts""" diff --git a/src/llama_stack_client/types/tool_def_param.py b/src/llama_stack_client/types/tool_def_param.py new file mode 100644 index 00000000..93ad8285 --- /dev/null +++ b/src/llama_stack_client/types/tool_def_param.py @@ -0,0 +1,39 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Dict, Union, Iterable +from typing_extensions import Required, TypedDict + +__all__ = ["ToolDefParam", "Parameter"] + + +class Parameter(TypedDict, total=False): + description: Required[str] + """Human-readable description of what the parameter does""" + + name: Required[str] + """Name of the parameter""" + + parameter_type: Required[str] + """Type of the parameter (e.g., string, integer)""" + + required: Required[bool] + """Whether this parameter is required for tool invocation""" + + default: Union[bool, float, str, Iterable[object], object, None] + """(Optional) Default value for the parameter if not provided""" + + +class ToolDefParam(TypedDict, total=False): + name: Required[str] + """Name of the tool""" + + description: str + """(Optional) Human-readable description of what the tool does""" + + metadata: Dict[str, Union[bool, float, str, Iterable[object], object, None]] + """(Optional) Additional metadata about the tool""" + + parameters: Iterable[Parameter] + """(Optional) List of parameters this tool accepts""" diff --git a/src/llama_stack_client/types/tool_runtime_list_tools_response.py b/src/llama_stack_client/types/tool_runtime_list_tools_response.py index 9982d1d7..cd65754f 100644 --- a/src/llama_stack_client/types/tool_runtime_list_tools_response.py +++ b/src/llama_stack_client/types/tool_runtime_list_tools_response.py @@ -1,46 +1,10 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import Dict, List, Union, Optional +from typing import List from typing_extensions import TypeAlias -from .._models import BaseModel +from .tool_def import ToolDef -__all__ = [ - "ToolRuntimeListToolsResponse", - "ToolRuntimeListToolsResponseItem", - "ToolRuntimeListToolsResponseItemParameter", -] +__all__ = ["ToolRuntimeListToolsResponse"] - -class ToolRuntimeListToolsResponseItemParameter(BaseModel): - description: str - """Human-readable description of what the parameter does""" - - name: str - """Name of the parameter""" - - parameter_type: str - """Type of the parameter (e.g., string, integer)""" - - required: bool - """Whether this parameter is required for tool invocation""" - - default: Union[bool, float, str, List[object], object, None] = None - """(Optional) Default value for the parameter if not provided""" - - -class ToolRuntimeListToolsResponseItem(BaseModel): - name: str - """Name of the tool""" - - description: Optional[str] = None - """(Optional) Human-readable description of what the tool does""" - - metadata: Optional[Dict[str, Union[bool, float, str, List[object], object, None]]] = None - """(Optional) Additional metadata about the tool""" - - parameters: Optional[List[ToolRuntimeListToolsResponseItemParameter]] = None - """(Optional) List of parameters this tool accepts""" - - -ToolRuntimeListToolsResponse: TypeAlias = List[ToolRuntimeListToolsResponseItem] +ToolRuntimeListToolsResponse: TypeAlias = List[ToolDef] diff --git a/tests/api_resources/test_inference.py b/tests/api_resources/test_inference.py index 59557a5e..d5ef46d1 100644 --- a/tests/api_resources/test_inference.py +++ b/tests/api_resources/test_inference.py @@ -10,11 +10,11 @@ from tests.utils import assert_matches_type from llama_stack_client import LlamaStackClient, AsyncLlamaStackClient from llama_stack_client.types import ( + CompletionResponse, EmbeddingsResponse, InferenceBatchChatCompletionResponse, ) from llama_stack_client.types.shared import BatchCompletion, ChatCompletionResponse -from llama_stack_client.types.inference_completion_params import UnnamedTypeWithNoPropertyInfoOrParent0 # pyright: reportDeprecated=false @@ -392,7 +392,7 @@ def test_method_completion_overload_1(self, client: LlamaStackClient) -> None: model_id="model_id", ) - assert_matches_type(UnnamedTypeWithNoPropertyInfoOrParent0, inference, path=["response"]) + assert_matches_type(CompletionResponse, inference, path=["response"]) @parametrize def test_method_completion_with_all_params_overload_1(self, client: LlamaStackClient) -> None: @@ -414,7 +414,7 @@ def test_method_completion_with_all_params_overload_1(self, client: LlamaStackCl stream=False, ) - assert_matches_type(UnnamedTypeWithNoPropertyInfoOrParent0, inference, path=["response"]) + assert_matches_type(CompletionResponse, inference, path=["response"]) @parametrize def test_raw_response_completion_overload_1(self, client: LlamaStackClient) -> None: @@ -427,7 +427,7 @@ def test_raw_response_completion_overload_1(self, client: LlamaStackClient) -> N assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" inference = response.parse() - assert_matches_type(UnnamedTypeWithNoPropertyInfoOrParent0, inference, path=["response"]) + assert_matches_type(CompletionResponse, inference, path=["response"]) @parametrize def test_streaming_response_completion_overload_1(self, client: LlamaStackClient) -> None: @@ -440,7 +440,7 @@ def test_streaming_response_completion_overload_1(self, client: LlamaStackClient assert response.http_request.headers.get("X-Stainless-Lang") == "python" inference = response.parse() - assert_matches_type(UnnamedTypeWithNoPropertyInfoOrParent0, inference, path=["response"]) + assert_matches_type(CompletionResponse, inference, path=["response"]) assert cast(Any, response.is_closed) is True @@ -931,7 +931,7 @@ async def test_method_completion_overload_1(self, async_client: AsyncLlamaStackC model_id="model_id", ) - assert_matches_type(UnnamedTypeWithNoPropertyInfoOrParent0, inference, path=["response"]) + assert_matches_type(CompletionResponse, inference, path=["response"]) @parametrize async def test_method_completion_with_all_params_overload_1(self, async_client: AsyncLlamaStackClient) -> None: @@ -953,7 +953,7 @@ async def test_method_completion_with_all_params_overload_1(self, async_client: stream=False, ) - assert_matches_type(UnnamedTypeWithNoPropertyInfoOrParent0, inference, path=["response"]) + assert_matches_type(CompletionResponse, inference, path=["response"]) @parametrize async def test_raw_response_completion_overload_1(self, async_client: AsyncLlamaStackClient) -> None: @@ -966,7 +966,7 @@ async def test_raw_response_completion_overload_1(self, async_client: AsyncLlama assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" inference = await response.parse() - assert_matches_type(UnnamedTypeWithNoPropertyInfoOrParent0, inference, path=["response"]) + assert_matches_type(CompletionResponse, inference, path=["response"]) @parametrize async def test_streaming_response_completion_overload_1(self, async_client: AsyncLlamaStackClient) -> None: @@ -979,7 +979,7 @@ async def test_streaming_response_completion_overload_1(self, async_client: Asyn assert response.http_request.headers.get("X-Stainless-Lang") == "python" inference = await response.parse() - assert_matches_type(UnnamedTypeWithNoPropertyInfoOrParent0, inference, path=["response"]) + assert_matches_type(CompletionResponse, inference, path=["response"]) assert cast(Any, response.is_closed) is True diff --git a/tests/api_resources/test_telemetry.py b/tests/api_resources/test_telemetry.py index ea123787..14a8801c 100644 --- a/tests/api_resources/test_telemetry.py +++ b/tests/api_resources/test_telemetry.py @@ -15,7 +15,6 @@ TelemetryQuerySpansResponse, TelemetryGetSpanTreeResponse, TelemetryQueryTracesResponse, - TelemetryQueryMetricsResponse, ) from llama_stack_client._utils import parse_datetime @@ -229,75 +228,6 @@ def test_streaming_response_log_event(self, client: LlamaStackClient) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="unsupported query params in java / kotlin") - @parametrize - def test_method_query_metrics(self, client: LlamaStackClient) -> None: - telemetry = client.telemetry.query_metrics( - metric_name="metric_name", - query_type="range", - start_time=0, - ) - assert_matches_type(TelemetryQueryMetricsResponse, telemetry, path=["response"]) - - @pytest.mark.skip(reason="unsupported query params in java / kotlin") - @parametrize - def test_method_query_metrics_with_all_params(self, client: LlamaStackClient) -> None: - telemetry = client.telemetry.query_metrics( - metric_name="metric_name", - query_type="range", - start_time=0, - end_time=0, - granularity="granularity", - label_matchers=[ - { - "name": "name", - "operator": "=", - "value": "value", - } - ], - ) - assert_matches_type(TelemetryQueryMetricsResponse, telemetry, path=["response"]) - - @pytest.mark.skip(reason="unsupported query params in java / kotlin") - @parametrize - def test_raw_response_query_metrics(self, client: LlamaStackClient) -> None: - response = client.telemetry.with_raw_response.query_metrics( - metric_name="metric_name", - query_type="range", - start_time=0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - telemetry = response.parse() - assert_matches_type(TelemetryQueryMetricsResponse, telemetry, path=["response"]) - - @pytest.mark.skip(reason="unsupported query params in java / kotlin") - @parametrize - def test_streaming_response_query_metrics(self, client: LlamaStackClient) -> None: - with client.telemetry.with_streaming_response.query_metrics( - metric_name="metric_name", - query_type="range", - start_time=0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - telemetry = response.parse() - assert_matches_type(TelemetryQueryMetricsResponse, telemetry, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @pytest.mark.skip(reason="unsupported query params in java / kotlin") - @parametrize - def test_path_params_query_metrics(self, client: LlamaStackClient) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `metric_name` but received ''"): - client.telemetry.with_raw_response.query_metrics( - metric_name="", - query_type="range", - start_time=0, - ) - @pytest.mark.skip(reason="unsupported query params in java / kotlin") @parametrize def test_method_query_spans(self, client: LlamaStackClient) -> None: @@ -695,75 +625,6 @@ async def test_streaming_response_log_event(self, async_client: AsyncLlamaStackC assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="unsupported query params in java / kotlin") - @parametrize - async def test_method_query_metrics(self, async_client: AsyncLlamaStackClient) -> None: - telemetry = await async_client.telemetry.query_metrics( - metric_name="metric_name", - query_type="range", - start_time=0, - ) - assert_matches_type(TelemetryQueryMetricsResponse, telemetry, path=["response"]) - - @pytest.mark.skip(reason="unsupported query params in java / kotlin") - @parametrize - async def test_method_query_metrics_with_all_params(self, async_client: AsyncLlamaStackClient) -> None: - telemetry = await async_client.telemetry.query_metrics( - metric_name="metric_name", - query_type="range", - start_time=0, - end_time=0, - granularity="granularity", - label_matchers=[ - { - "name": "name", - "operator": "=", - "value": "value", - } - ], - ) - assert_matches_type(TelemetryQueryMetricsResponse, telemetry, path=["response"]) - - @pytest.mark.skip(reason="unsupported query params in java / kotlin") - @parametrize - async def test_raw_response_query_metrics(self, async_client: AsyncLlamaStackClient) -> None: - response = await async_client.telemetry.with_raw_response.query_metrics( - metric_name="metric_name", - query_type="range", - start_time=0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - telemetry = await response.parse() - assert_matches_type(TelemetryQueryMetricsResponse, telemetry, path=["response"]) - - @pytest.mark.skip(reason="unsupported query params in java / kotlin") - @parametrize - async def test_streaming_response_query_metrics(self, async_client: AsyncLlamaStackClient) -> None: - async with async_client.telemetry.with_streaming_response.query_metrics( - metric_name="metric_name", - query_type="range", - start_time=0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - telemetry = await response.parse() - assert_matches_type(TelemetryQueryMetricsResponse, telemetry, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @pytest.mark.skip(reason="unsupported query params in java / kotlin") - @parametrize - async def test_path_params_query_metrics(self, async_client: AsyncLlamaStackClient) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `metric_name` but received ''"): - await async_client.telemetry.with_raw_response.query_metrics( - metric_name="", - query_type="range", - start_time=0, - ) - @pytest.mark.skip(reason="unsupported query params in java / kotlin") @parametrize async def test_method_query_spans(self, async_client: AsyncLlamaStackClient) -> None: