2026-03-21 10:13:29 +08:00
|
|
|
from datetime import datetime
|
2026-04-11 08:51:11 +08:00
|
|
|
from typing import Literal
|
|
|
|
|
|
|
|
|
|
from pydantic import BaseModel
|
2026-03-21 10:13:29 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class MessageCreate(BaseModel):
|
|
|
|
|
content: str
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class MessageOut(BaseModel):
|
|
|
|
|
id: str
|
|
|
|
|
role: str
|
|
|
|
|
content: str
|
|
|
|
|
model: str | None
|
|
|
|
|
tokens_used: int | None
|
2026-03-22 13:47:34 +08:00
|
|
|
attachments: list[dict] | None = None
|
2026-03-21 10:13:29 +08:00
|
|
|
created_at: datetime
|
|
|
|
|
|
|
|
|
|
model_config = {"from_attributes": True}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ConversationCreate(BaseModel):
|
|
|
|
|
title: str | None = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ConversationOut(BaseModel):
|
|
|
|
|
id: str
|
|
|
|
|
title: str | None
|
|
|
|
|
message_count: int
|
|
|
|
|
created_at: datetime
|
|
|
|
|
updated_at: datetime
|
|
|
|
|
|
|
|
|
|
model_config = {"from_attributes": True}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ChatRequest(BaseModel):
|
|
|
|
|
message: str
|
|
|
|
|
conversation_id: str | None = None
|
|
|
|
|
agent_id: str | None = None
|
2026-03-22 13:47:34 +08:00
|
|
|
model_name: str | None = None
|
2026-04-11 08:51:11 +08:00
|
|
|
runtime: Literal["jarvis", "hermes"] | None = None
|
2026-03-22 13:47:34 +08:00
|
|
|
file_ids: list[str] = []
|
2026-03-21 10:13:29 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class ChatResponse(BaseModel):
|
|
|
|
|
conversation_id: str
|
|
|
|
|
message_id: str
|
|
|
|
|
content: str
|
|
|
|
|
agent_name: str
|
2026-03-22 13:47:34 +08:00
|
|
|
model_name: str | None = None
|