mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-20 13:54:36 +01:00
42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
"""Chat API request models."""
|
|
|
|
from typing import Optional
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class ChatMessage(BaseModel):
|
|
"""A single message in a chat conversation."""
|
|
|
|
role: str = Field(
|
|
description="Message role: 'user', 'assistant', 'system', or 'tool'"
|
|
)
|
|
content: str = Field(description="Message content")
|
|
tool_call_id: Optional[str] = Field(
|
|
default=None, description="For tool messages, the ID of the tool call"
|
|
)
|
|
name: Optional[str] = Field(
|
|
default=None, description="For tool messages, the tool name"
|
|
)
|
|
|
|
|
|
class ChatCompletionRequest(BaseModel):
|
|
"""Request for chat completion with tool calling."""
|
|
|
|
messages: list[ChatMessage] = Field(
|
|
description="List of messages in the conversation"
|
|
)
|
|
max_tool_iterations: int = Field(
|
|
default=5,
|
|
ge=1,
|
|
le=10,
|
|
description="Maximum number of tool call iterations (default: 5)",
|
|
)
|
|
include_live_image: Optional[str] = Field(
|
|
default=None,
|
|
description=(
|
|
"If set, the current live frame from this camera is attached to the first "
|
|
"user message as multimodal content. Use with get_live_context for detection info."
|
|
),
|
|
)
|