mstar.api_server.openai.protocol#

Pydantic request models for the OpenAI-compatible endpoints.

Requests are validated here; unknown fields are allowed (extra="allow") so the OpenAI client’s extra_body flows through as model_kwargs. Responses are built as plain dicts in the serving handlers to keep the multimodal shapes (audio in message.audio, images as data URLs) flexible.

Classes

ChatCompletionRequest(*, messages[, model, ...])

ChatMessage(*, role[, content])

ImageGenerationRequest(*, prompt[, model, ...])

OpenAI /v1/images/generations.

ModelCard(*, id[, object, created, owned_by])

ModelList(*[, object, data])

SpeechRequest(*, input[, model, voice, ...])

OpenAI /v1/audio/speech (text-to-speech).

class mstar.api_server.openai.protocol.ChatCompletionRequest(*, messages, model=None, temperature=None, top_p=None, max_tokens=None, max_completion_tokens=None, n=1, seed=None, stop=None, stream=False, modalities=None, audio=None, **extra_data)[source]#

Bases: BaseModel

Parameters:
audio: dict[str, Any] | None#
max_completion_tokens: int | None#
max_tokens: int | None#
messages: list[ChatMessage]#
modalities: list[str] | None#
model: str | None#
model_config = {'extra': 'allow', 'protected_namespaces': ()}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

n: int | None#
seed: int | None#
stop: str | list[str] | None#
stream: bool | None#
temperature: float | None#
top_p: float | None#
class mstar.api_server.openai.protocol.ChatMessage(*, role, content=None, **extra_data)[source]#

Bases: BaseModel

Parameters:
content: str | list[dict[str, Any]] | None#
model_config = {'extra': 'allow', 'protected_namespaces': ()}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

role: str#
class mstar.api_server.openai.protocol.ImageGenerationRequest(*, prompt, model=None, n=1, size=None, response_format='b64_json', seed=None, **extra_data)[source]#

Bases: BaseModel

OpenAI /v1/images/generations.

Parameters:
  • prompt (str)

  • model (str | None)

  • n (int | None)

  • size (str | None)

  • response_format (str)

  • seed (int | None)

  • extra_data (Any)

model: str | None#
model_config = {'extra': 'allow', 'protected_namespaces': ()}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

n: int | None#
prompt: str#
response_format: str#
seed: int | None#
size: str | None#
class mstar.api_server.openai.protocol.ModelCard(*, id, object='model', created=0, owned_by='mstar')[source]#

Bases: BaseModel

Parameters:
created: int#
id: str#
model_config = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

object: str#
owned_by: str#
class mstar.api_server.openai.protocol.ModelList(*, object='list', data=<factory>)[source]#

Bases: BaseModel

Parameters:
data: list[ModelCard]#
model_config = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

object: str#
class mstar.api_server.openai.protocol.SpeechRequest(*, input, model=None, voice=None, response_format='wav', speed=1.0, stream=False, temperature=None, top_p=None, seed=None, **extra_data)[source]#

Bases: BaseModel

OpenAI /v1/audio/speech (text-to-speech).

Parameters:
  • input (str)

  • model (str | None)

  • voice (str | None)

  • response_format (str)

  • speed (float | None)

  • stream (bool | None)

  • temperature (float | None)

  • top_p (float | None)

  • seed (int | None)

  • extra_data (Any)

input: str#
model: str | None#
model_config = {'extra': 'allow', 'protected_namespaces': ()}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

response_format: str#
seed: int | None#
speed: float | None#
stream: bool | None#
temperature: float | None#
top_p: float | None#
voice: str | None#