diff --git a/.release-please-manifest.json b/.release-please-manifest.json index e6c39adb99..0746cbe20a 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "2.11.0" + ".": "2.12.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 4e5b38902d..2d7e7248c7 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 137 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-41f98da99f44ebe6204fce5c1dc9940f85f3472779e797b674c4fdc20306c77d.yml -openapi_spec_hash: c61259027f421f501bdc6b23cf9e430e -config_hash: 141b101c9f13b90e21af74e1686f1f41 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-fe8e67bdc351a518b113ab48e775750190e207807903d6b03ab22c438c38a588.yml +openapi_spec_hash: 8af972190647ffb9dcec516e19d8761a +config_hash: 856bee50ee3617e85a9bc9274db01dbb diff --git a/CHANGELOG.md b/CHANGELOG.md index ff0878433f..ec61efaf79 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## 2.12.0 (2025-12-15) + +Full Changelog: [v2.11.0...v2.12.0](https://github.com/openai/openai-python/compare/v2.11.0...v2.12.0) + +### Features + +* **api:** api update ([a95c4d0](https://github.com/openai/openai-python/commit/a95c4d0952ff5eb767206574e687cb029a49a4ab)) +* **api:** fix grader input list, add dated slugs for sora-2 ([b2c389b](https://github.com/openai/openai-python/commit/b2c389bf5c3bde50bac2d9f60cce58f4aef44a41)) + ## 2.11.0 (2025-12-11) Full Changelog: [v2.10.0...v2.11.0](https://github.com/openai/openai-python/compare/v2.10.0...v2.11.0) diff --git a/api.md b/api.md index 3807603206..1c054b52fc 100644 --- a/api.md +++ b/api.md @@ -342,6 +342,7 @@ Types: ```python from openai.types.graders import ( + GraderInputs, LabelModelGrader, MultiGrader, PythonGrader, diff --git a/pyproject.toml b/pyproject.toml index f4e5bdb208..7d6fec5c1a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "openai" -version = "2.11.0" +version = "2.12.0" description = "The official Python library for the openai API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/openai/_version.py b/src/openai/_version.py index 16036c3b6a..9d853d6512 100644 --- a/src/openai/_version.py +++ b/src/openai/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "openai" -__version__ = "2.11.0" # x-release-please-version +__version__ = "2.12.0" # x-release-please-version diff --git a/src/openai/types/eval_create_params.py b/src/openai/types/eval_create_params.py index 0f2100b718..a1d5ea5371 100644 --- a/src/openai/types/eval_create_params.py +++ b/src/openai/types/eval_create_params.py @@ -7,6 +7,7 @@ from .._types import SequenceNotStr from .shared_params.metadata import Metadata +from .graders.grader_inputs_param import GraderInputsParam from .graders.python_grader_param import PythonGraderParam from .graders.score_model_grader_param import ScoreModelGraderParam from .graders.string_check_grader_param import StringCheckGraderParam @@ -129,7 +130,7 @@ class TestingCriterionLabelModelInputEvalItemContentOutputText(TypedDict, total= class TestingCriterionLabelModelInputEvalItemContentInputImage(TypedDict, total=False): - """An image input to the model.""" + """An image input block used within EvalItem content arrays.""" image_url: Required[str] """The URL of the image input.""" @@ -150,7 +151,7 @@ class TestingCriterionLabelModelInputEvalItemContentInputImage(TypedDict, total= TestingCriterionLabelModelInputEvalItemContentOutputText, TestingCriterionLabelModelInputEvalItemContentInputImage, ResponseInputAudioParam, - Iterable[object], + GraderInputsParam, ] @@ -164,7 +165,11 @@ class TestingCriterionLabelModelInputEvalItem(TypedDict, total=False): """ content: Required[TestingCriterionLabelModelInputEvalItemContent] - """Inputs to the model - can contain template strings.""" + """Inputs to the model - can contain template strings. + + Supports text, output text, input images, and input audio, either as a single + item or an array of items. + """ role: Required[Literal["user", "assistant", "system", "developer"]] """The role of the message input. diff --git a/src/openai/types/evals/create_eval_completions_run_data_source.py b/src/openai/types/evals/create_eval_completions_run_data_source.py index cc88450276..726ae6abf0 100644 --- a/src/openai/types/evals/create_eval_completions_run_data_source.py +++ b/src/openai/types/evals/create_eval_completions_run_data_source.py @@ -6,6 +6,7 @@ from ..._utils import PropertyInfo from ..._models import BaseModel from ..shared.metadata import Metadata +from ..graders.grader_inputs import GraderInputs from ..shared.reasoning_effort import ReasoningEffort from ..shared.response_format_text import ResponseFormatText from ..responses.easy_input_message import EasyInputMessage @@ -102,7 +103,7 @@ class InputMessagesTemplateTemplateEvalItemContentOutputText(BaseModel): class InputMessagesTemplateTemplateEvalItemContentInputImage(BaseModel): - """An image input to the model.""" + """An image input block used within EvalItem content arrays.""" image_url: str """The URL of the image input.""" @@ -123,7 +124,7 @@ class InputMessagesTemplateTemplateEvalItemContentInputImage(BaseModel): InputMessagesTemplateTemplateEvalItemContentOutputText, InputMessagesTemplateTemplateEvalItemContentInputImage, ResponseInputAudio, - List[object], + GraderInputs, ] @@ -137,7 +138,11 @@ class InputMessagesTemplateTemplateEvalItem(BaseModel): """ content: InputMessagesTemplateTemplateEvalItemContent - """Inputs to the model - can contain template strings.""" + """Inputs to the model - can contain template strings. + + Supports text, output text, input images, and input audio, either as a single + item or an array of items. + """ role: Literal["user", "assistant", "system", "developer"] """The role of the message input. diff --git a/src/openai/types/evals/create_eval_completions_run_data_source_param.py b/src/openai/types/evals/create_eval_completions_run_data_source_param.py index bab2658afe..6842f84af9 100644 --- a/src/openai/types/evals/create_eval_completions_run_data_source_param.py +++ b/src/openai/types/evals/create_eval_completions_run_data_source_param.py @@ -7,6 +7,7 @@ from ..shared_params.metadata import Metadata from ..shared.reasoning_effort import ReasoningEffort +from ..graders.grader_inputs_param import GraderInputsParam from ..responses.easy_input_message_param import EasyInputMessageParam from ..shared_params.response_format_text import ResponseFormatText from ..responses.response_input_text_param import ResponseInputTextParam @@ -100,7 +101,7 @@ class InputMessagesTemplateTemplateEvalItemContentOutputText(TypedDict, total=Fa class InputMessagesTemplateTemplateEvalItemContentInputImage(TypedDict, total=False): - """An image input to the model.""" + """An image input block used within EvalItem content arrays.""" image_url: Required[str] """The URL of the image input.""" @@ -121,7 +122,7 @@ class InputMessagesTemplateTemplateEvalItemContentInputImage(TypedDict, total=Fa InputMessagesTemplateTemplateEvalItemContentOutputText, InputMessagesTemplateTemplateEvalItemContentInputImage, ResponseInputAudioParam, - Iterable[object], + GraderInputsParam, ] @@ -135,7 +136,11 @@ class InputMessagesTemplateTemplateEvalItem(TypedDict, total=False): """ content: Required[InputMessagesTemplateTemplateEvalItemContent] - """Inputs to the model - can contain template strings.""" + """Inputs to the model - can contain template strings. + + Supports text, output text, input images, and input audio, either as a single + item or an array of items. + """ role: Required[Literal["user", "assistant", "system", "developer"]] """The role of the message input. diff --git a/src/openai/types/evals/run_cancel_response.py b/src/openai/types/evals/run_cancel_response.py index 6ad874b2b3..ea4797eecb 100644 --- a/src/openai/types/evals/run_cancel_response.py +++ b/src/openai/types/evals/run_cancel_response.py @@ -10,6 +10,7 @@ from .eval_api_error import EvalAPIError from ..responses.tool import Tool from ..shared.metadata import Metadata +from ..graders.grader_inputs import GraderInputs from ..shared.reasoning_effort import ReasoningEffort from ..responses.response_input_text import ResponseInputText from ..responses.response_input_audio import ResponseInputAudio @@ -156,7 +157,7 @@ class DataSourceResponsesInputMessagesTemplateTemplateEvalItemContentOutputText( class DataSourceResponsesInputMessagesTemplateTemplateEvalItemContentInputImage(BaseModel): - """An image input to the model.""" + """An image input block used within EvalItem content arrays.""" image_url: str """The URL of the image input.""" @@ -177,7 +178,7 @@ class DataSourceResponsesInputMessagesTemplateTemplateEvalItemContentInputImage( DataSourceResponsesInputMessagesTemplateTemplateEvalItemContentOutputText, DataSourceResponsesInputMessagesTemplateTemplateEvalItemContentInputImage, ResponseInputAudio, - List[object], + GraderInputs, ] @@ -191,7 +192,11 @@ class DataSourceResponsesInputMessagesTemplateTemplateEvalItem(BaseModel): """ content: DataSourceResponsesInputMessagesTemplateTemplateEvalItemContent - """Inputs to the model - can contain template strings.""" + """Inputs to the model - can contain template strings. + + Supports text, output text, input images, and input audio, either as a single + item or an array of items. + """ role: Literal["user", "assistant", "system", "developer"] """The role of the message input. diff --git a/src/openai/types/evals/run_create_params.py b/src/openai/types/evals/run_create_params.py index fd7d56e39d..02804c30da 100644 --- a/src/openai/types/evals/run_create_params.py +++ b/src/openai/types/evals/run_create_params.py @@ -9,6 +9,7 @@ from ..responses.tool_param import ToolParam from ..shared_params.metadata import Metadata from ..shared.reasoning_effort import ReasoningEffort +from ..graders.grader_inputs_param import GraderInputsParam from ..responses.response_input_text_param import ResponseInputTextParam from ..responses.response_input_audio_param import ResponseInputAudioParam from .create_eval_jsonl_run_data_source_param import CreateEvalJSONLRunDataSourceParam @@ -174,7 +175,7 @@ class DataSourceCreateEvalResponsesRunDataSourceInputMessagesTemplateTemplateEva class DataSourceCreateEvalResponsesRunDataSourceInputMessagesTemplateTemplateEvalItemContentInputImage( TypedDict, total=False ): - """An image input to the model.""" + """An image input block used within EvalItem content arrays.""" image_url: Required[str] """The URL of the image input.""" @@ -195,7 +196,7 @@ class DataSourceCreateEvalResponsesRunDataSourceInputMessagesTemplateTemplateEva DataSourceCreateEvalResponsesRunDataSourceInputMessagesTemplateTemplateEvalItemContentOutputText, DataSourceCreateEvalResponsesRunDataSourceInputMessagesTemplateTemplateEvalItemContentInputImage, ResponseInputAudioParam, - Iterable[object], + GraderInputsParam, ] @@ -209,7 +210,11 @@ class DataSourceCreateEvalResponsesRunDataSourceInputMessagesTemplateTemplateEva """ content: Required[DataSourceCreateEvalResponsesRunDataSourceInputMessagesTemplateTemplateEvalItemContent] - """Inputs to the model - can contain template strings.""" + """Inputs to the model - can contain template strings. + + Supports text, output text, input images, and input audio, either as a single + item or an array of items. + """ role: Required[Literal["user", "assistant", "system", "developer"]] """The role of the message input. diff --git a/src/openai/types/evals/run_create_response.py b/src/openai/types/evals/run_create_response.py index 1651cb5b2f..2cb856de6f 100644 --- a/src/openai/types/evals/run_create_response.py +++ b/src/openai/types/evals/run_create_response.py @@ -10,6 +10,7 @@ from .eval_api_error import EvalAPIError from ..responses.tool import Tool from ..shared.metadata import Metadata +from ..graders.grader_inputs import GraderInputs from ..shared.reasoning_effort import ReasoningEffort from ..responses.response_input_text import ResponseInputText from ..responses.response_input_audio import ResponseInputAudio @@ -156,7 +157,7 @@ class DataSourceResponsesInputMessagesTemplateTemplateEvalItemContentOutputText( class DataSourceResponsesInputMessagesTemplateTemplateEvalItemContentInputImage(BaseModel): - """An image input to the model.""" + """An image input block used within EvalItem content arrays.""" image_url: str """The URL of the image input.""" @@ -177,7 +178,7 @@ class DataSourceResponsesInputMessagesTemplateTemplateEvalItemContentInputImage( DataSourceResponsesInputMessagesTemplateTemplateEvalItemContentOutputText, DataSourceResponsesInputMessagesTemplateTemplateEvalItemContentInputImage, ResponseInputAudio, - List[object], + GraderInputs, ] @@ -191,7 +192,11 @@ class DataSourceResponsesInputMessagesTemplateTemplateEvalItem(BaseModel): """ content: DataSourceResponsesInputMessagesTemplateTemplateEvalItemContent - """Inputs to the model - can contain template strings.""" + """Inputs to the model - can contain template strings. + + Supports text, output text, input images, and input audio, either as a single + item or an array of items. + """ role: Literal["user", "assistant", "system", "developer"] """The role of the message input. diff --git a/src/openai/types/evals/run_list_response.py b/src/openai/types/evals/run_list_response.py index 9ec84330cf..defd4aa6f9 100644 --- a/src/openai/types/evals/run_list_response.py +++ b/src/openai/types/evals/run_list_response.py @@ -10,6 +10,7 @@ from .eval_api_error import EvalAPIError from ..responses.tool import Tool from ..shared.metadata import Metadata +from ..graders.grader_inputs import GraderInputs from ..shared.reasoning_effort import ReasoningEffort from ..responses.response_input_text import ResponseInputText from ..responses.response_input_audio import ResponseInputAudio @@ -156,7 +157,7 @@ class DataSourceResponsesInputMessagesTemplateTemplateEvalItemContentOutputText( class DataSourceResponsesInputMessagesTemplateTemplateEvalItemContentInputImage(BaseModel): - """An image input to the model.""" + """An image input block used within EvalItem content arrays.""" image_url: str """The URL of the image input.""" @@ -177,7 +178,7 @@ class DataSourceResponsesInputMessagesTemplateTemplateEvalItemContentInputImage( DataSourceResponsesInputMessagesTemplateTemplateEvalItemContentOutputText, DataSourceResponsesInputMessagesTemplateTemplateEvalItemContentInputImage, ResponseInputAudio, - List[object], + GraderInputs, ] @@ -191,7 +192,11 @@ class DataSourceResponsesInputMessagesTemplateTemplateEvalItem(BaseModel): """ content: DataSourceResponsesInputMessagesTemplateTemplateEvalItemContent - """Inputs to the model - can contain template strings.""" + """Inputs to the model - can contain template strings. + + Supports text, output text, input images, and input audio, either as a single + item or an array of items. + """ role: Literal["user", "assistant", "system", "developer"] """The role of the message input. diff --git a/src/openai/types/evals/run_retrieve_response.py b/src/openai/types/evals/run_retrieve_response.py index 9204635d1e..4c218a0510 100644 --- a/src/openai/types/evals/run_retrieve_response.py +++ b/src/openai/types/evals/run_retrieve_response.py @@ -10,6 +10,7 @@ from .eval_api_error import EvalAPIError from ..responses.tool import Tool from ..shared.metadata import Metadata +from ..graders.grader_inputs import GraderInputs from ..shared.reasoning_effort import ReasoningEffort from ..responses.response_input_text import ResponseInputText from ..responses.response_input_audio import ResponseInputAudio @@ -156,7 +157,7 @@ class DataSourceResponsesInputMessagesTemplateTemplateEvalItemContentOutputText( class DataSourceResponsesInputMessagesTemplateTemplateEvalItemContentInputImage(BaseModel): - """An image input to the model.""" + """An image input block used within EvalItem content arrays.""" image_url: str """The URL of the image input.""" @@ -177,7 +178,7 @@ class DataSourceResponsesInputMessagesTemplateTemplateEvalItemContentInputImage( DataSourceResponsesInputMessagesTemplateTemplateEvalItemContentOutputText, DataSourceResponsesInputMessagesTemplateTemplateEvalItemContentInputImage, ResponseInputAudio, - List[object], + GraderInputs, ] @@ -191,7 +192,11 @@ class DataSourceResponsesInputMessagesTemplateTemplateEvalItem(BaseModel): """ content: DataSourceResponsesInputMessagesTemplateTemplateEvalItemContent - """Inputs to the model - can contain template strings.""" + """Inputs to the model - can contain template strings. + + Supports text, output text, input images, and input audio, either as a single + item or an array of items. + """ role: Literal["user", "assistant", "system", "developer"] """The role of the message input. diff --git a/src/openai/types/graders/__init__.py b/src/openai/types/graders/__init__.py index e0a909125e..4f70eb6c2f 100644 --- a/src/openai/types/graders/__init__.py +++ b/src/openai/types/graders/__init__.py @@ -3,10 +3,12 @@ from __future__ import annotations from .multi_grader import MultiGrader as MultiGrader +from .grader_inputs import GraderInputs as GraderInputs from .python_grader import PythonGrader as PythonGrader from .label_model_grader import LabelModelGrader as LabelModelGrader from .multi_grader_param import MultiGraderParam as MultiGraderParam from .score_model_grader import ScoreModelGrader as ScoreModelGrader +from .grader_inputs_param import GraderInputsParam as GraderInputsParam from .python_grader_param import PythonGraderParam as PythonGraderParam from .string_check_grader import StringCheckGrader as StringCheckGrader from .text_similarity_grader import TextSimilarityGrader as TextSimilarityGrader diff --git a/src/openai/types/graders/grader_inputs.py b/src/openai/types/graders/grader_inputs.py new file mode 100644 index 0000000000..edc966d889 --- /dev/null +++ b/src/openai/types/graders/grader_inputs.py @@ -0,0 +1,43 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import List, Union, Optional +from typing_extensions import Literal, TypeAlias + +from ..._models import BaseModel +from ..responses.response_input_text import ResponseInputText +from ..responses.response_input_audio import ResponseInputAudio + +__all__ = ["GraderInputs", "GraderInputItem", "GraderInputItemOutputText", "GraderInputItemInputImage"] + + +class GraderInputItemOutputText(BaseModel): + """A text output from the model.""" + + text: str + """The text output from the model.""" + + type: Literal["output_text"] + """The type of the output text. Always `output_text`.""" + + +class GraderInputItemInputImage(BaseModel): + """An image input block used within EvalItem content arrays.""" + + image_url: str + """The URL of the image input.""" + + type: Literal["input_image"] + """The type of the image input. Always `input_image`.""" + + detail: Optional[str] = None + """The detail level of the image to be sent to the model. + + One of `high`, `low`, or `auto`. Defaults to `auto`. + """ + + +GraderInputItem: TypeAlias = Union[ + str, ResponseInputText, GraderInputItemOutputText, GraderInputItemInputImage, ResponseInputAudio +] + +GraderInputs: TypeAlias = List[GraderInputItem] diff --git a/src/openai/types/graders/grader_inputs_param.py b/src/openai/types/graders/grader_inputs_param.py new file mode 100644 index 0000000000..7d8341eb32 --- /dev/null +++ b/src/openai/types/graders/grader_inputs_param.py @@ -0,0 +1,53 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import List, Union +from typing_extensions import Literal, Required, TypeAlias, TypedDict + +from ..responses.response_input_text_param import ResponseInputTextParam +from ..responses.response_input_audio_param import ResponseInputAudioParam + +__all__ = [ + "GraderInputsParam", + "GraderInputsParamItem", + "GraderInputsParamItemOutputText", + "GraderInputsParamItemInputImage", +] + + +class GraderInputsParamItemOutputText(TypedDict, total=False): + """A text output from the model.""" + + text: Required[str] + """The text output from the model.""" + + type: Required[Literal["output_text"]] + """The type of the output text. Always `output_text`.""" + + +class GraderInputsParamItemInputImage(TypedDict, total=False): + """An image input block used within EvalItem content arrays.""" + + image_url: Required[str] + """The URL of the image input.""" + + type: Required[Literal["input_image"]] + """The type of the image input. Always `input_image`.""" + + detail: str + """The detail level of the image to be sent to the model. + + One of `high`, `low`, or `auto`. Defaults to `auto`. + """ + + +GraderInputsParamItem: TypeAlias = Union[ + str, + ResponseInputTextParam, + GraderInputsParamItemOutputText, + GraderInputsParamItemInputImage, + ResponseInputAudioParam, +] + +GraderInputsParam: TypeAlias = List[GraderInputsParamItem] diff --git a/src/openai/types/graders/label_model_grader.py b/src/openai/types/graders/label_model_grader.py index 141306b510..d3c942235e 100644 --- a/src/openai/types/graders/label_model_grader.py +++ b/src/openai/types/graders/label_model_grader.py @@ -4,6 +4,7 @@ from typing_extensions import Literal, TypeAlias from ..._models import BaseModel +from .grader_inputs import GraderInputs from ..responses.response_input_text import ResponseInputText from ..responses.response_input_audio import ResponseInputAudio @@ -21,7 +22,7 @@ class InputContentOutputText(BaseModel): class InputContentInputImage(BaseModel): - """An image input to the model.""" + """An image input block used within EvalItem content arrays.""" image_url: str """The URL of the image input.""" @@ -37,7 +38,7 @@ class InputContentInputImage(BaseModel): InputContent: TypeAlias = Union[ - str, ResponseInputText, InputContentOutputText, InputContentInputImage, ResponseInputAudio, List[object] + str, ResponseInputText, InputContentOutputText, InputContentInputImage, ResponseInputAudio, GraderInputs ] @@ -51,7 +52,11 @@ class Input(BaseModel): """ content: InputContent - """Inputs to the model - can contain template strings.""" + """Inputs to the model - can contain template strings. + + Supports text, output text, input images, and input audio, either as a single + item or an array of items. + """ role: Literal["user", "assistant", "system", "developer"] """The role of the message input. diff --git a/src/openai/types/graders/label_model_grader_param.py b/src/openai/types/graders/label_model_grader_param.py index a23be2a236..a5b6959cff 100644 --- a/src/openai/types/graders/label_model_grader_param.py +++ b/src/openai/types/graders/label_model_grader_param.py @@ -6,6 +6,7 @@ from typing_extensions import Literal, Required, TypeAlias, TypedDict from ..._types import SequenceNotStr +from .grader_inputs_param import GraderInputsParam from ..responses.response_input_text_param import ResponseInputTextParam from ..responses.response_input_audio_param import ResponseInputAudioParam @@ -23,7 +24,7 @@ class InputContentOutputText(TypedDict, total=False): class InputContentInputImage(TypedDict, total=False): - """An image input to the model.""" + """An image input block used within EvalItem content arrays.""" image_url: Required[str] """The URL of the image input.""" @@ -44,7 +45,7 @@ class InputContentInputImage(TypedDict, total=False): InputContentOutputText, InputContentInputImage, ResponseInputAudioParam, - Iterable[object], + GraderInputsParam, ] @@ -58,7 +59,11 @@ class Input(TypedDict, total=False): """ content: Required[InputContent] - """Inputs to the model - can contain template strings.""" + """Inputs to the model - can contain template strings. + + Supports text, output text, input images, and input audio, either as a single + item or an array of items. + """ role: Required[Literal["user", "assistant", "system", "developer"]] """The role of the message input. diff --git a/src/openai/types/graders/score_model_grader.py b/src/openai/types/graders/score_model_grader.py index bceb8b1ad0..85d11e8666 100644 --- a/src/openai/types/graders/score_model_grader.py +++ b/src/openai/types/graders/score_model_grader.py @@ -4,6 +4,7 @@ from typing_extensions import Literal, TypeAlias from ..._models import BaseModel +from .grader_inputs import GraderInputs from ..shared.reasoning_effort import ReasoningEffort from ..responses.response_input_text import ResponseInputText from ..responses.response_input_audio import ResponseInputAudio @@ -29,7 +30,7 @@ class InputContentOutputText(BaseModel): class InputContentInputImage(BaseModel): - """An image input to the model.""" + """An image input block used within EvalItem content arrays.""" image_url: str """The URL of the image input.""" @@ -45,7 +46,7 @@ class InputContentInputImage(BaseModel): InputContent: TypeAlias = Union[ - str, ResponseInputText, InputContentOutputText, InputContentInputImage, ResponseInputAudio, List[object] + str, ResponseInputText, InputContentOutputText, InputContentInputImage, ResponseInputAudio, GraderInputs ] @@ -59,7 +60,11 @@ class Input(BaseModel): """ content: InputContent - """Inputs to the model - can contain template strings.""" + """Inputs to the model - can contain template strings. + + Supports text, output text, input images, and input audio, either as a single + item or an array of items. + """ role: Literal["user", "assistant", "system", "developer"] """The role of the message input. diff --git a/src/openai/types/graders/score_model_grader_param.py b/src/openai/types/graders/score_model_grader_param.py index bd08645a85..9f1c42e051 100644 --- a/src/openai/types/graders/score_model_grader_param.py +++ b/src/openai/types/graders/score_model_grader_param.py @@ -5,6 +5,7 @@ from typing import Union, Iterable, Optional from typing_extensions import Literal, Required, TypeAlias, TypedDict +from .grader_inputs_param import GraderInputsParam from ..shared.reasoning_effort import ReasoningEffort from ..responses.response_input_text_param import ResponseInputTextParam from ..responses.response_input_audio_param import ResponseInputAudioParam @@ -30,7 +31,7 @@ class InputContentOutputText(TypedDict, total=False): class InputContentInputImage(TypedDict, total=False): - """An image input to the model.""" + """An image input block used within EvalItem content arrays.""" image_url: Required[str] """The URL of the image input.""" @@ -51,7 +52,7 @@ class InputContentInputImage(TypedDict, total=False): InputContentOutputText, InputContentInputImage, ResponseInputAudioParam, - Iterable[object], + GraderInputsParam, ] @@ -65,7 +66,11 @@ class Input(TypedDict, total=False): """ content: Required[InputContent] - """Inputs to the model - can contain template strings.""" + """Inputs to the model - can contain template strings. + + Supports text, output text, input images, and input audio, either as a single + item or an array of items. + """ role: Required[Literal["user", "assistant", "system", "developer"]] """The role of the message input. diff --git a/src/openai/types/video_model.py b/src/openai/types/video_model.py index 0b0835fca4..e96e7685f8 100644 --- a/src/openai/types/video_model.py +++ b/src/openai/types/video_model.py @@ -4,4 +4,6 @@ __all__ = ["VideoModel"] -VideoModel: TypeAlias = Literal["sora-2", "sora-2-pro"] +VideoModel: TypeAlias = Literal[ + "sora-2", "sora-2-pro", "sora-2-2025-10-06", "sora-2-pro-2025-10-06", "sora-2-2025-12-08" +]