Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com> Signed-off-by: Harry Mellor <hej.mellor@gmail.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
66 lines
1.7 KiB
Python
66 lines
1.7 KiB
Python
# SPDX-License-Identifier: Apache-2.0
|
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
|
|
|
import time
|
|
from typing import Literal
|
|
|
|
from pydantic import Field
|
|
|
|
from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel, UsageInfo
|
|
from vllm.utils import random_uuid
|
|
|
|
# Client -> Server Events
|
|
|
|
|
|
class InputAudioBufferAppend(OpenAIBaseModel):
|
|
"""Append audio chunk to buffer."""
|
|
|
|
type: Literal["input_audio_buffer.append"] = "input_audio_buffer.append"
|
|
audio: str # base64-encoded PCM16 @ 16kHz
|
|
|
|
|
|
class InputAudioBufferCommit(OpenAIBaseModel):
|
|
"""Process accumulated audio buffer."""
|
|
|
|
type: Literal["input_audio_buffer.commit"] = "input_audio_buffer.commit"
|
|
final: bool = False
|
|
|
|
|
|
# Server -> Client Events
|
|
class SessionUpdate(OpenAIBaseModel):
|
|
"""Configure session parameters."""
|
|
|
|
type: Literal["session.update"] = "session.update"
|
|
model: str | None = None
|
|
|
|
|
|
class SessionCreated(OpenAIBaseModel):
|
|
"""Connection established notification."""
|
|
|
|
type: Literal["session.created"] = "session.created"
|
|
id: str = Field(default_factory=lambda: f"sess-{random_uuid()}")
|
|
created: int = Field(default_factory=lambda: int(time.time()))
|
|
|
|
|
|
class TranscriptionDelta(OpenAIBaseModel):
|
|
"""Incremental transcription text."""
|
|
|
|
type: Literal["transcription.delta"] = "transcription.delta"
|
|
delta: str # Incremental text
|
|
|
|
|
|
class TranscriptionDone(OpenAIBaseModel):
|
|
"""Final transcription with usage stats."""
|
|
|
|
type: Literal["transcription.done"] = "transcription.done"
|
|
text: str # Complete transcription
|
|
usage: UsageInfo | None = None
|
|
|
|
|
|
class ErrorEvent(OpenAIBaseModel):
|
|
"""Error notification."""
|
|
|
|
type: Literal["error"] = "error"
|
|
error: str
|
|
code: str | None = None
|