Files
Business-Management/features/ai-service/app/schemas/queue.py
T
curo1305 c4f0c7ad49 Add priority queue to ai-service and STATUS.md workflow
- Introduce async priority queue service in ai-service; all /chat calls now route through it
- Refactor chat router to separate execute_chat (core logic) from the HTTP handler
- Add /queue endpoints (status, pause, resume, cancel) for queue management
- Update ai-service config to use Pydantic v2 model_config style
- Add STATUS.md files for backend, ai-service, doc-service, and frontend
- Document STATUS.md workflow in CLAUDE.md
- Update doc-service documents router and schemas; frontend DocumentsPage and API client

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 22:58:10 +02:00

41 lines
1.0 KiB
Python

from datetime import datetime
from typing import Literal
from pydantic import BaseModel, field_validator
from app.schemas.chat import ChatMessage, ChatResponse
class QueueRequest(BaseModel):
messages: list[ChatMessage]
max_tokens: int = 2048
temperature: float = 0.0
response_format: Literal["json", "text"] = "text"
priority: Literal["high", "normal", "low"] = "normal"
@field_validator("messages")
@classmethod
def messages_not_empty(cls, v: list) -> list:
if not v:
raise ValueError("messages must not be empty")
return v
class JobStatus(BaseModel):
id: str
status: str
priority: str
position: int | None = None # number of jobs ahead; None when not pending
created_at: datetime
started_at: datetime | None = None
finished_at: datetime | None = None
result: ChatResponse | None = None
error: str | None = None
class QueueStatus(BaseModel):
running: bool
paused: bool
queue_size: int
current_job_id: str | None = None