2026-09-14 11:54:20 +08:00
|
|
|
"""Advisor Agent HTTP request DTOs."""
|
2026-09-13 16:19:24 +08:00
|
|
|
from __future__ import annotations
|
|
|
|
|
|
|
|
|
|
from typing import Any, Literal
|
|
|
|
|
|
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AdvisorDraftSaveReq(BaseModel):
|
|
|
|
|
title: str | None = Field(default=None, max_length=128)
|
|
|
|
|
content: str | None = None
|
|
|
|
|
structured_data: dict[str, Any] | None = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AdvisorDraftOperateReq(BaseModel):
|
|
|
|
|
operation: Literal["discard"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AdvisorRebalanceRunReq(BaseModel):
|
2026-09-14 11:54:20 +08:00
|
|
|
query: str = Field(min_length=1, max_length=4000)
|
2026-09-13 16:19:24 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class AdvisorChatReq(BaseModel):
|
2026-09-14 11:54:20 +08:00
|
|
|
query: str = Field(min_length=1, max_length=4000)
|
2026-09-13 16:19:24 +08:00
|
|
|
|
|
|
|
|
|
2026-09-13 18:24:44 +08:00
|
|
|
class AdvisorDataQueryReq(BaseModel):
|
2026-09-14 11:54:20 +08:00
|
|
|
query: str = Field(min_length=1, max_length=2000)
|
2026-09-13 18:24:44 +08:00
|
|
|
session_id: str | None = Field(default=None, max_length=64)
|
|
|
|
|
max_rows: int | None = Field(default=None, gt=0, le=10000)
|
|
|
|
|
page: int = Field(default=1, ge=1, le=100000)
|
|
|
|
|
page_size: int = Field(default=100, ge=1, le=10000)
|
|
|
|
|
sort_by: str | None = Field(default=None, max_length=128)
|
|
|
|
|
sort_order: Literal["asc", "desc"] = "asc"
|
|
|
|
|
|
|
|
|
|
|
2026-09-13 16:19:24 +08:00
|
|
|
class AdvisorFundAnalysisReq(BaseModel):
|
2026-09-14 11:54:20 +08:00
|
|
|
query: str = Field(min_length=1, max_length=4000)
|
2026-09-13 16:19:24 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class AdvisorTalkScriptReq(BaseModel):
|
2026-09-14 11:54:20 +08:00
|
|
|
query: str = Field(min_length=1, max_length=4000)
|