Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Embed openai broad multimodal compat #395

Merged
merged 7 commits into from
Oct 5, 2024
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/assets/openapi.json

Large diffs are not rendered by default.

84 changes: 47 additions & 37 deletions docs/docs/cli_v2.md

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ def sync_detailed(
client: Union[AuthenticatedClient, Client],
body: AudioEmbeddingInput,
) -> Response[Union[HTTPValidationError, OpenAIEmbeddingResult]]:
r"""Embeddings Audio
r"""Deprecated: Use `embeddings` with `infinity_extra_modality` set to `audio`

Encode Embeddings from Audio files

Expand All @@ -84,7 +84,7 @@ def sync_detailed(
```

Args:
body (AudioEmbeddingInput):
body (AudioEmbeddingInput): # LEGACY

Raises:
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
Expand All @@ -110,7 +110,7 @@ def sync(
client: Union[AuthenticatedClient, Client],
body: AudioEmbeddingInput,
) -> Optional[Union[HTTPValidationError, OpenAIEmbeddingResult]]:
r"""Embeddings Audio
r"""Deprecated: Use `embeddings` with `infinity_extra_modality` set to `audio`

Encode Embeddings from Audio files

Expand All @@ -130,7 +130,7 @@ def sync(
```

Args:
body (AudioEmbeddingInput):
body (AudioEmbeddingInput): # LEGACY

Raises:
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
Expand All @@ -151,7 +151,7 @@ async def asyncio_detailed(
client: Union[AuthenticatedClient, Client],
body: AudioEmbeddingInput,
) -> Response[Union[HTTPValidationError, OpenAIEmbeddingResult]]:
r"""Embeddings Audio
r"""Deprecated: Use `embeddings` with `infinity_extra_modality` set to `audio`

Encode Embeddings from Audio files

Expand All @@ -171,7 +171,7 @@ async def asyncio_detailed(
```

Args:
body (AudioEmbeddingInput):
body (AudioEmbeddingInput): # LEGACY

Raises:
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
Expand All @@ -195,7 +195,7 @@ async def asyncio(
client: Union[AuthenticatedClient, Client],
body: AudioEmbeddingInput,
) -> Optional[Union[HTTPValidationError, OpenAIEmbeddingResult]]:
r"""Embeddings Audio
r"""Deprecated: Use `embeddings` with `infinity_extra_modality` set to `audio`

Encode Embeddings from Audio files

Expand All @@ -215,7 +215,7 @@ async def asyncio(
```

Args:
body (AudioEmbeddingInput):
body (AudioEmbeddingInput): # LEGACY

Raises:
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ def sync_detailed(
client: Union[AuthenticatedClient, Client],
body: ImageEmbeddingInput,
) -> Response[Union[HTTPValidationError, OpenAIEmbeddingResult]]:
r"""Embeddings Image
r"""Deprecated: Use `embeddings` with `infinity_extra_modality` set to `image`

Encode Embeddings from Image files

Expand All @@ -83,7 +83,7 @@ def sync_detailed(
```

Args:
body (ImageEmbeddingInput):
body (ImageEmbeddingInput): # LEGACY

Raises:
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
Expand All @@ -109,7 +109,7 @@ def sync(
client: Union[AuthenticatedClient, Client],
body: ImageEmbeddingInput,
) -> Optional[Union[HTTPValidationError, OpenAIEmbeddingResult]]:
r"""Embeddings Image
r"""Deprecated: Use `embeddings` with `infinity_extra_modality` set to `image`

Encode Embeddings from Image files

Expand All @@ -128,7 +128,7 @@ def sync(
```

Args:
body (ImageEmbeddingInput):
body (ImageEmbeddingInput): # LEGACY

Raises:
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
Expand All @@ -149,7 +149,7 @@ async def asyncio_detailed(
client: Union[AuthenticatedClient, Client],
body: ImageEmbeddingInput,
) -> Response[Union[HTTPValidationError, OpenAIEmbeddingResult]]:
r"""Embeddings Image
r"""Deprecated: Use `embeddings` with `infinity_extra_modality` set to `image`

Encode Embeddings from Image files

Expand All @@ -168,7 +168,7 @@ async def asyncio_detailed(
```

Args:
body (ImageEmbeddingInput):
body (ImageEmbeddingInput): # LEGACY

Raises:
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
Expand All @@ -192,7 +192,7 @@ async def asyncio(
client: Union[AuthenticatedClient, Client],
body: ImageEmbeddingInput,
) -> Optional[Union[HTTPValidationError, OpenAIEmbeddingResult]]:
r"""Embeddings Image
r"""Deprecated: Use `embeddings` with `infinity_extra_modality` set to `image`

Encode Embeddings from Image files

Expand All @@ -211,7 +211,7 @@ async def asyncio(
```

Args:
body (ImageEmbeddingInput):
body (ImageEmbeddingInput): # LEGACY

Raises:
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,12 @@
from .model_info import ModelInfo
from .model_info_object import ModelInfoObject
from .model_info_owned_by import ModelInfoOwnedBy
from .open_ai_embedding_input import OpenAIEmbeddingInput
from .open_ai_embedding_input_audio import OpenAIEmbeddingInputAudio
from .open_ai_embedding_input_audio_infinity_extra_modality import OpenAIEmbeddingInputAudioInfinityExtraModality
from .open_ai_embedding_input_image import OpenAIEmbeddingInputImage
from .open_ai_embedding_input_image_infinity_extra_modality import OpenAIEmbeddingInputImageInfinityExtraModality
from .open_ai_embedding_input_text import OpenAIEmbeddingInputText
from .open_ai_embedding_input_text_infinity_extra_modality import OpenAIEmbeddingInputTextInfinityExtraModality
from .open_ai_embedding_result import OpenAIEmbeddingResult
from .open_ai_embedding_result_object import OpenAIEmbeddingResultObject
from .open_ai_model_info import OpenAIModelInfo
Expand All @@ -40,7 +45,12 @@
"ModelInfo",
"ModelInfoObject",
"ModelInfoOwnedBy",
"OpenAIEmbeddingInput",
"OpenAIEmbeddingInputAudio",
"OpenAIEmbeddingInputAudioInfinityExtraModality",
"OpenAIEmbeddingInputImage",
"OpenAIEmbeddingInputImageInfinityExtraModality",
"OpenAIEmbeddingInputText",
"OpenAIEmbeddingInputTextInfinityExtraModality",
"OpenAIEmbeddingResult",
"OpenAIEmbeddingResultObject",
"OpenAIModelInfo",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@

@_attrs_define
class AudioEmbeddingInput:
"""
"""# LEGACY

Attributes:
input_ (Union[List[str], str]):
model (Union[Unset, str]): Default: 'default/not-specified'.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@

@_attrs_define
class ImageEmbeddingInput:
"""
"""# LEGACY

Attributes:
input_ (Union[List[str], str]):
model (Union[Unset, str]): Default: 'default/not-specified'.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
from typing import Any, Dict, List, Type, TypeVar, Union, cast

from attrs import define as _attrs_define
from attrs import field as _attrs_field

from ..models.embedding_encoding_format import EmbeddingEncodingFormat
from ..models.open_ai_embedding_input_audio_infinity_extra_modality import (
OpenAIEmbeddingInputAudioInfinityExtraModality,
)
from ..types import UNSET, Unset

T = TypeVar("T", bound="OpenAIEmbeddingInputAudio")


@_attrs_define
class OpenAIEmbeddingInputAudio:
"""
Attributes:
input_ (Union[List[str], str]):
model (Union[Unset, str]): Default: 'default/not-specified'.
encoding_format (Union[Unset, EmbeddingEncodingFormat]):
user (Union[None, Unset, str]):
infinity_extra_modality (Union[Unset, OpenAIEmbeddingInputAudioInfinityExtraModality]): Default:
OpenAIEmbeddingInputAudioInfinityExtraModality.AUDIO.
"""

input_: Union[List[str], str]
model: Union[Unset, str] = "default/not-specified"
encoding_format: Union[Unset, EmbeddingEncodingFormat] = UNSET
user: Union[None, Unset, str] = UNSET
infinity_extra_modality: Union[
Unset, OpenAIEmbeddingInputAudioInfinityExtraModality
] = OpenAIEmbeddingInputAudioInfinityExtraModality.AUDIO
additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)

def to_dict(self) -> Dict[str, Any]:
input_: Union[List[str], str]
if isinstance(self.input_, list):
input_ = []
for input_type_0_item_data in self.input_:
input_type_0_item: str
input_type_0_item = input_type_0_item_data
input_.append(input_type_0_item)

else:
input_ = self.input_

model = self.model

encoding_format: Union[Unset, str] = UNSET
if not isinstance(self.encoding_format, Unset):
encoding_format = self.encoding_format.value

user: Union[None, Unset, str]
if isinstance(self.user, Unset):
user = UNSET
else:
user = self.user

infinity_extra_modality: Union[Unset, str] = UNSET
if not isinstance(self.infinity_extra_modality, Unset):
infinity_extra_modality = self.infinity_extra_modality.value

field_dict: Dict[str, Any] = {}
field_dict.update(self.additional_properties)
field_dict.update(
{
"input": input_,
}
)
if model is not UNSET:
field_dict["model"] = model
if encoding_format is not UNSET:
field_dict["encoding_format"] = encoding_format
if user is not UNSET:
field_dict["user"] = user
if infinity_extra_modality is not UNSET:
field_dict["infinity_extra_modality"] = infinity_extra_modality

return field_dict

@classmethod
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
d = src_dict.copy()

def _parse_input_(data: object) -> Union[List[str], str]:
try:
if not isinstance(data, list):
raise TypeError()
input_type_0 = []
_input_type_0 = data
for input_type_0_item_data in _input_type_0:

def _parse_input_type_0_item(data: object) -> str:
return cast(str, data)

input_type_0_item = _parse_input_type_0_item(input_type_0_item_data)

input_type_0.append(input_type_0_item)

return input_type_0
except: # noqa: E722
michaelfeil marked this conversation as resolved.
Show resolved Hide resolved
pass
return cast(Union[List[str], str], data)

input_ = _parse_input_(d.pop("input"))

model = d.pop("model", UNSET)

_encoding_format = d.pop("encoding_format", UNSET)
encoding_format: Union[Unset, EmbeddingEncodingFormat]
if isinstance(_encoding_format, Unset):
encoding_format = UNSET
else:
encoding_format = EmbeddingEncodingFormat(_encoding_format)

def _parse_user(data: object) -> Union[None, Unset, str]:
if data is None:
return data
if isinstance(data, Unset):
return data
return cast(Union[None, Unset, str], data)

user = _parse_user(d.pop("user", UNSET))

_infinity_extra_modality = d.pop("infinity_extra_modality", UNSET)
infinity_extra_modality: Union[Unset, OpenAIEmbeddingInputAudioInfinityExtraModality]
if isinstance(_infinity_extra_modality, Unset):
infinity_extra_modality = UNSET
else:
infinity_extra_modality = OpenAIEmbeddingInputAudioInfinityExtraModality(_infinity_extra_modality)

open_ai_embedding_input_audio = cls(
input_=input_,
model=model,
encoding_format=encoding_format,
user=user,
infinity_extra_modality=infinity_extra_modality,
)

open_ai_embedding_input_audio.additional_properties = d
return open_ai_embedding_input_audio

@property
def additional_keys(self) -> List[str]:
return list(self.additional_properties.keys())

def __getitem__(self, key: str) -> Any:
return self.additional_properties[key]

def __setitem__(self, key: str, value: Any) -> None:
self.additional_properties[key] = value

def __delitem__(self, key: str) -> None:
del self.additional_properties[key]

def __contains__(self, key: str) -> bool:
return key in self.additional_properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from enum import Enum


class OpenAIEmbeddingInputAudioInfinityExtraModality(str, Enum):
AUDIO = "audio"

def __str__(self) -> str:
return str(self.value)
michaelfeil marked this conversation as resolved.
Show resolved Hide resolved
Loading
Loading