Files
daily_stock_analysis/api/v1/schemas/__init__.py
Elvis Wang 972c314656 feat: Web/API 指数入口与共享 canonical 去重基础 (#2312)
* feat: Web/API 指数入口与共享 canonical 去重基础

为 Issue #2303 Phase 2 PR1 落地 Web/API 指数入口适配:

- API 使用 parse_analysis_target 构造结构化 AnalysisTarget 并贯通到 pipeline
- API 与 TaskQueue 去重按 asset_type 分支(指数用 canonical_id,个股用 legacy code)
- BatchTaskAcceptedResponse 追加可选 rejected 字段,未登记 CSI 单股 400、批量仅该目标失败
- TaskInfo 固化 dedupe_key,避免指数与同码个股折叠及 _analyzing_stocks 残留
- Web 移除 assetType=index 全局过滤,Chat 名称识别保护指数 canonical
- 补齐 Pipeline 指数 DecisionSignal market_override=cn 真实分支测试

* fix: 收敛指数 canonical 身份与批量响应契约

PR #2312 review 修复:报告 meta 补充 asset_type 隐藏指数自选;/analyze 在解析前限制非空原始 token;is_single 统一驱动 metadata/409/单任务 202;HomePage 三元计数继续后续 chunk。

* fix: avoid double space in index news search query

* fix: preserve canonical index identity

* fix: validate legacy task asset type

* fix: preserve canonical index identity in chat

* fix: preserve index identity across chat backends
2026-09-01 19:25:15 +08:00

282 lines
7.7 KiB
Python

# -*- coding: utf-8 -*-
"""
===================================
API v1 Schemas 模块初始化
===================================
职责:
1. 导出所有 Pydantic 模型
"""
from api.v1.schemas.common import (
RootResponse,
HealthResponse,
ErrorResponse,
SuccessResponse,
)
from api.v1.schemas.market_phase import MarketPhaseSummary
from api.v1.schemas.research_artifact import (
ResearchArtifact,
ResearchDataQuality,
ResearchEvidenceItem,
ResearchInvalidationCondition,
ResearchNextAction,
ResearchSubject,
ResearchThesis,
)
from api.v1.schemas.analysis import (
AnalyzeRequest,
AnalysisResultResponse,
TaskAccepted,
BatchTaskAcceptedResponse,
RejectedTaskItem,
TaskStatus,
)
from api.v1.schemas.history import (
HistoryItem,
HistoryListResponse,
DeleteHistoryRequest,
DeleteHistoryResponse,
NewsIntelItem,
NewsIntelResponse,
AnalysisReport,
ReportMeta,
ReportSummary,
ReportStrategy,
ReportDetails,
)
from api.v1.schemas.stocks import (
StockQuote,
StockHistoryResponse,
KLineData,
StockProfileResponse,
)
from api.v1.schemas.backtest import (
BacktestRunRequest,
BacktestRunResponse,
BacktestResultItem,
BacktestResultsResponse,
PerformanceMetrics,
)
from api.v1.schemas.data_capability import (
DataCapabilityOverviewResponse,
DataDatasetQuality,
DataPriorityView,
DataProviderCapability,
DatasetQualityStatus,
ProviderCapabilityStatus,
)
from api.v1.schemas.system_config import (
SystemConfigFieldSchema,
SystemConfigCategorySchema,
SystemConfigSchemaResponse,
SystemConfigItem,
SystemConfigResponse,
ExportSystemConfigResponse,
SystemConfigUpdateItem,
UpdateSystemConfigRequest,
UpdateSystemConfigResponse,
ValidateSystemConfigRequest,
ImportSystemConfigRequest,
ConfigValidationIssue,
ValidateSystemConfigResponse,
LLMCapabilityCheck,
LLMCapabilityCheckResult,
TestLLMChannelRequest,
TestLLMChannelResponse,
SystemConfigValidationErrorResponse,
SystemConfigConflictResponse,
)
from api.v1.schemas.portfolio import (
PortfolioAccountCreateRequest,
PortfolioAccountUpdateRequest,
PortfolioAccountItem,
PortfolioAccountListResponse,
PortfolioTradeCreateRequest,
PortfolioCashLedgerCreateRequest,
PortfolioCorporateActionCreateRequest,
PortfolioEventCreatedResponse,
PortfolioTradeListItem,
PortfolioTradeListResponse,
PortfolioCashLedgerListItem,
PortfolioCashLedgerListResponse,
PortfolioCorporateActionListItem,
PortfolioCorporateActionListResponse,
PortfolioPositionAnalysisRequest,
PortfolioPositionItem,
PortfolioAccountSnapshot,
PortfolioSnapshotResponse,
PortfolioImportTradeItem,
PortfolioImportParseResponse,
PortfolioImportCommitResponse,
PortfolioImportBrokerItem,
PortfolioImportBrokerListResponse,
PortfolioFxRefreshResponse,
PortfolioDecisionSignalRiskBlock,
PortfolioDecisionSignalRiskItem,
PortfolioRiskResponse,
)
from api.v1.schemas.alerts import (
AlertDeleteResponse,
AlertNotificationItem,
AlertNotificationListResponse,
AlertRuleCreateRequest,
AlertRuleItem,
AlertRuleListResponse,
AlertRuleTestResponse,
AlertRuleUpdateRequest,
AlertTriggerItem,
AlertTriggerListResponse,
)
from api.v1.schemas.decision_signals import (
DecisionProfile,
DecisionSignalCreateRequest,
DecisionSignalFeedbackItem,
DecisionSignalFeedbackRequest,
DecisionSignalItem,
DecisionSignalListResponse,
DecisionSignalMutationResponse,
DecisionSignalOutcomeItem,
DecisionSignalOutcomeListResponse,
DecisionSignalOutcomeRunRequest,
DecisionSignalOutcomeRunResponse,
DecisionSignalOutcomeStatsBucket,
DecisionSignalOutcomeStatsResponse,
DecisionSignalProfileCalibration,
DecisionSignalProfileCalibrationBreakdowns,
DecisionSignalProfileCalibrationBucket,
DecisionSignalStatusUpdateRequest,
)
__all__ = [
# common
"RootResponse",
"HealthResponse",
"ErrorResponse",
"SuccessResponse",
# market phase
"MarketPhaseSummary",
# research artifact
"ResearchArtifact",
"ResearchDataQuality",
"ResearchEvidenceItem",
"ResearchInvalidationCondition",
"ResearchNextAction",
"ResearchSubject",
"ResearchThesis",
# analysis
"AnalyzeRequest",
"AnalysisResultResponse",
"TaskAccepted",
"BatchTaskAcceptedResponse",
"RejectedTaskItem",
"TaskStatus",
# history
"HistoryItem",
"HistoryListResponse",
"DeleteHistoryRequest",
"DeleteHistoryResponse",
"NewsIntelItem",
"NewsIntelResponse",
"AnalysisReport",
"ReportMeta",
"ReportSummary",
"ReportStrategy",
"ReportDetails",
# stocks
"StockQuote",
"StockHistoryResponse",
"KLineData",
"StockProfileResponse",
# backtest
"BacktestRunRequest",
"BacktestRunResponse",
"BacktestResultItem",
"BacktestResultsResponse",
"PerformanceMetrics",
# data capability
"DataCapabilityOverviewResponse",
"DataDatasetQuality",
"DataPriorityView",
"DataProviderCapability",
"DatasetQualityStatus",
"ProviderCapabilityStatus",
# system config
"SystemConfigFieldSchema",
"SystemConfigCategorySchema",
"SystemConfigSchemaResponse",
"SystemConfigItem",
"SystemConfigResponse",
"ExportSystemConfigResponse",
"SystemConfigUpdateItem",
"UpdateSystemConfigRequest",
"UpdateSystemConfigResponse",
"ValidateSystemConfigRequest",
"ImportSystemConfigRequest",
"ConfigValidationIssue",
"ValidateSystemConfigResponse",
"LLMCapabilityCheck",
"LLMCapabilityCheckResult",
"TestLLMChannelRequest",
"TestLLMChannelResponse",
"SystemConfigValidationErrorResponse",
"SystemConfigConflictResponse",
# portfolio
"PortfolioAccountCreateRequest",
"PortfolioAccountUpdateRequest",
"PortfolioAccountItem",
"PortfolioAccountListResponse",
"PortfolioTradeCreateRequest",
"PortfolioCashLedgerCreateRequest",
"PortfolioCorporateActionCreateRequest",
"PortfolioEventCreatedResponse",
"PortfolioTradeListItem",
"PortfolioTradeListResponse",
"PortfolioCashLedgerListItem",
"PortfolioCashLedgerListResponse",
"PortfolioCorporateActionListItem",
"PortfolioCorporateActionListResponse",
"PortfolioPositionAnalysisRequest",
"PortfolioPositionItem",
"PortfolioAccountSnapshot",
"PortfolioSnapshotResponse",
"PortfolioImportTradeItem",
"PortfolioImportParseResponse",
"PortfolioImportCommitResponse",
"PortfolioImportBrokerItem",
"PortfolioImportBrokerListResponse",
"PortfolioFxRefreshResponse",
"PortfolioDecisionSignalRiskBlock",
"PortfolioDecisionSignalRiskItem",
"PortfolioRiskResponse",
# alerts
"AlertDeleteResponse",
"AlertNotificationItem",
"AlertNotificationListResponse",
"AlertRuleCreateRequest",
"AlertRuleItem",
"AlertRuleListResponse",
"AlertRuleTestResponse",
"AlertRuleUpdateRequest",
"AlertTriggerItem",
"AlertTriggerListResponse",
# decision signals
"DecisionProfile",
"DecisionSignalCreateRequest",
"DecisionSignalFeedbackItem",
"DecisionSignalFeedbackRequest",
"DecisionSignalItem",
"DecisionSignalListResponse",
"DecisionSignalMutationResponse",
"DecisionSignalOutcomeItem",
"DecisionSignalOutcomeListResponse",
"DecisionSignalOutcomeRunRequest",
"DecisionSignalOutcomeRunResponse",
"DecisionSignalOutcomeStatsBucket",
"DecisionSignalOutcomeStatsResponse",
"DecisionSignalProfileCalibration",
"DecisionSignalProfileCalibrationBreakdowns",
"DecisionSignalProfileCalibrationBucket",
"DecisionSignalStatusUpdateRequest",
]