| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- """
- 智能股票分析助手 — 智能选股API路由
- 提供条件选股、可用选股条件查询接口。
- """
- from fastapi import APIRouter, Query
- from app.services import screener_service
- from app.utils.mx_http import mx_result_to_http
- from app.utils.response import success_response, error_response
- router = APIRouter(prefix="/screener", tags=["智能选股"])
- @router.get("/conditions")
- async def get_screener_conditions():
- """获取可用的选股条件参考
- 返回选股维度分类和示例条件,供前端展示和用户参考。
- """
- result = screener_service.get_available_conditions()
- if not result.get("success"):
- return error_response(code=500, message=result.get("error", "获取条件失败"))
- return success_response(data=result)
- @router.post("/search")
- async def screen_stocks(
- query: str = Query(..., description="自然语言选股条件"),
- ):
- """条件选股
- 根据自然语言描述的选股条件,筛选符合条件的股票。
- - **query**: 自然语言选股条件,如:
- - "市盈率小于20且ROE大于15%的A股"
- - "新能源板块涨幅大于1%的股票"
- - "沪深300成分股中分红率最高的10只"
- - "价格小于20元 市盈率小于20 涨幅大于1%"
- """
- if not query or not query.strip():
- return error_response(code=400, message="请输入选股条件")
- result = screener_service.screen_stocks(query.strip())
- return mx_result_to_http(result)
|