Skip to content

Commit b720753

Browse files
xielevidministrator
authored andcommitted
fix: ReportStrategy 价格字段类型改为 Union[str,int,float] 以兼容分析器 float 输出
上游 api/v1/schemas/history.py 中 ReportStrategy 的 ideal_buy/secondary_buy/ stop_loss/take_profit 均为 Optional[str],但分析器实际输出 float(如 1399.87), 导致 Pydantic v2 校验失败并报 internal_error。 修复方案:与 src/schemas/report_schema.py 保持一致,改为 Optional[Union[str,int,float]]。 已在 ensemble 模式(600519)下验证通过,expert_panel 置信度加权正常运行。
1 parent f671646 commit b720753

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

api/v1/schemas/history.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
2. 定义分析报告完整模型
1010
"""
1111

12-
from typing import Optional, List, Any
12+
from typing import Optional, List, Any, Union
1313

1414
from pydantic import BaseModel, ConfigDict, Field
1515

@@ -140,10 +140,10 @@ class ReportSummary(BaseModel):
140140
class ReportStrategy(BaseModel):
141141
"""策略点位区"""
142142

143-
ideal_buy: Optional[str] = Field(None, description="理想买入价")
144-
secondary_buy: Optional[str] = Field(None, description="第二买入价")
145-
stop_loss: Optional[str] = Field(None, description="止损价")
146-
take_profit: Optional[str] = Field(None, description="止盈价")
143+
ideal_buy: Optional[Union[str, int, float]] = Field(None, description="理想买入价")
144+
secondary_buy: Optional[Union[str, int, float]] = Field(None, description="第二买入价")
145+
stop_loss: Optional[Union[str, int, float]] = Field(None, description="止损价")
146+
take_profit: Optional[Union[str, int, float]] = Field(None, description="止盈价")
147147

148148

149149
class ReportDetails(BaseModel):

0 commit comments

Comments
 (0)