feat:前端
This commit is contained in:
@@ -1,22 +1,10 @@
|
||||
"""投顾 Agent HTTP 请求 DTO。"""
|
||||
"""Advisor Agent HTTP request DTOs."""
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any, Literal
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
from common.common_const import (
|
||||
AGENT_INTENT_DIALOGUE_SCRIPT,
|
||||
AGENT_INTENT_DATA_QUERY,
|
||||
AGENT_INTENT_FUND_ANALYSIS,
|
||||
AGENT_INTENT_REBALANCE,
|
||||
AGENT_INTENT_RECOMMEND,
|
||||
TALK_SCENE_CUSTOMER_COMPLAINT,
|
||||
TALK_SCENE_MARKET_FLUCTUATION,
|
||||
TALK_SCENE_PORTFOLIO_DIVERGENCE,
|
||||
TALK_SCENE_RISK_BLOCK_ORDER,
|
||||
)
|
||||
|
||||
|
||||
class AdvisorDraftSaveReq(BaseModel):
|
||||
title: str | None = Field(default=None, max_length=128)
|
||||
@@ -29,26 +17,15 @@ class AdvisorDraftOperateReq(BaseModel):
|
||||
|
||||
|
||||
class AdvisorRebalanceRunReq(BaseModel):
|
||||
customer_id: int = Field(gt=0)
|
||||
query: str = Field(min_length=1, max_length=4000)
|
||||
|
||||
|
||||
class AdvisorChatReq(BaseModel):
|
||||
# 通用投顾问答不需要客户上下文;个性化推荐时再传入客户编号。
|
||||
scope: Literal["customer", "advisor"] = "customer"
|
||||
customer_id: int | None = Field(default=None, gt=0)
|
||||
intent: Literal[
|
||||
AGENT_INTENT_RECOMMEND,
|
||||
AGENT_INTENT_REBALANCE,
|
||||
AGENT_INTENT_FUND_ANALYSIS,
|
||||
AGENT_INTENT_DIALOGUE_SCRIPT,
|
||||
AGENT_INTENT_DATA_QUERY,
|
||||
] | None = None
|
||||
query: str | None = Field(default=None, max_length=4000)
|
||||
query: str = Field(min_length=1, max_length=4000)
|
||||
|
||||
|
||||
class AdvisorDataQueryReq(BaseModel):
|
||||
customer_id: int = Field(gt=0)
|
||||
question: str = Field(min_length=1, max_length=2000)
|
||||
query: str = Field(min_length=1, max_length=2000)
|
||||
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)
|
||||
@@ -58,18 +35,8 @@ class AdvisorDataQueryReq(BaseModel):
|
||||
|
||||
|
||||
class AdvisorFundAnalysisReq(BaseModel):
|
||||
customer_id: int | None = Field(default=None, gt=0)
|
||||
fund_codes: list[str] = Field(min_length=1)
|
||||
fund: dict[str, Any] | None = None
|
||||
performance: list[dict[str, Any]] | None = None
|
||||
query: str = Field(min_length=1, max_length=4000)
|
||||
|
||||
|
||||
class AdvisorTalkScriptReq(BaseModel):
|
||||
customer_id: int = Field(gt=0)
|
||||
scene_type: Literal[
|
||||
TALK_SCENE_RISK_BLOCK_ORDER,
|
||||
TALK_SCENE_MARKET_FLUCTUATION,
|
||||
TALK_SCENE_PORTFOLIO_DIVERGENCE,
|
||||
TALK_SCENE_CUSTOMER_COMPLAINT,
|
||||
]
|
||||
customer_name: str = Field(default="客户", max_length=32)
|
||||
query: str = Field(min_length=1, max_length=4000)
|
||||
|
||||
Reference in New Issue
Block a user