Files
group_fqcd_jr/启动后端.bat
T
Windows 74b7d00dff feat(投顾): 方案交付落点、可视化图表与推荐依据的大模型增强
交付落点
- 新增 GET /api/v1/users/me/advisor-contents(客户读**自己**已发布方案):
  「发送给客户」原先只改数据状态、客户端没有任何页面或接口能读到它
- 客户端新增「我的投顾方案」页与导航入口

可视化(投顾结果区与客户页**共用** common/advisor-plan-view.js,避免两处漂移)
- 净值折线图(带坐标轴与网格)、组合业绩等权合成曲线(含区间收益与最大回撤)、
  资产配置环形图与图例、组合构成条
- 修 num(null)=0 的假 0:Number(null)/Number('') 会得 0,导致「没数据」被渲染成 0.00%;
  现一律显示「--」。同理管理费/起投未维护时按没数据处理,不显示 0
- 涨跌口径为「涨红跌绿」(A 股习惯),由 CSS 变量 --plan-up / --plan-down 集中定义

推荐依据接入大模型(可选,失败即回退)
- 新增 AdvisorReasonService:**只改文案,不参与选品**(候选池与排序在它之前已固定)
- 输入只允许是已算出的真实参数(风险等级、排序得分、区间收益、最大回撤、期限与流动性)
- 命中收益承诺词(保本/保证收益/稳赚/无风险…)整条丢弃并回退规则文案
- 未启用 / 缺密钥 / 超时 / 解析失败一律回退,推荐主流程不因模型不可用而失败
- 前端标注来源(AI 生成 / 规则生成)

数据与权限
- 客户角色补齐:绑 customer 角色、补建缺失的账户与交易段权限码(9060-9065)
- 净值全量同步(20 只产品),行情同步脚本按 --codes 分块(全量一次会被超时终止)

测试
- 新增 tests/unit/service/test_advisor_reason_service.py(10 项,专测三条合规边界)
- 前端模块自检纳入 service-request-module;补「两处共用同一渲染」回归测试
2026-09-16 18:17:47 +08:00

116 lines
3.4 KiB
Batchfile
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@echo off
chcp 936 >nul
setlocal EnableDelayedExpansion
title ???? Agent ?? ?? ??????(API)
rem ============================================================
rem ?????????????? API??FastAPI + uvicorn??127.0.0.1:8000????
rem ????????????棻Agent Worker????????/?????????/
rem ?????裩????????????????????????
rem PROJ ????????????????????????????????????????
rem ???????????????.bat 8100 ?????????? 8000??
rem
rem ??????????? start.ps1 ??????£???
rem 1) ????????? .venv
rem 2) ???? conda ???? jr_py313
rem 3) py -3.13 ?????
rem 4) PATH ??? python????? 3.11+??
rem ?????? import fastapi/sqlalchemy/asyncmy/pydantic?????????
rem ????????汾????????????????????
rem ============================================================
set "PROJ=%~dp0"
set "HOST=127.0.0.1"
set "PORT=%~1"
if "%PORT%"=="" set "PORT=8000"
set "PY="
rem ---------- 1) ????????? / conda ??????????? exe ·????----------
for %%C in (
"%PROJ%.venv\Scripts\python.exe"
"D:\conda\envs\jr_py313\python.exe"
"%USERPROFILE%\miniconda3\envs\jr_py313\python.exe"
"%USERPROFILE%\anaconda3\envs\jr_py313\python.exe"
) do (
if not defined PY (
if exist %%C (
%%C -c "import fastapi, sqlalchemy, asyncmy, pydantic" >nul 2>&1
if !errorlevel!==0 set "PY=%%~C"
)
)
)
rem ---------- 2) py -3.13 ??????????????? exe ·????----------
if not defined PY (
for /f "delims=" %%X in ('py -3.13 -c "import sys;print(sys.executable)" 2^>nul') do (
set "PY=%%X"
)
if defined PY (
"!PY!" -c "import fastapi, sqlalchemy, asyncmy, pydantic" >nul 2>&1
if not !errorlevel!==0 set "PY="
)
)
rem ---------- 3) PATH ??? python?????????? exe ·????У?? >=3.11??----------
if not defined PY (
for /f "delims=" %%X in ('python -c "import sys;print(sys.executable)" 2^>nul') do (
set "PY=%%X"
)
if defined PY (
"!PY!" -c "import sys;v=sys.version_info;assert (v[0],v[1])>=(3,11);import fastapi, sqlalchemy, asyncmy, pydantic" >nul 2>&1
if not !errorlevel!==0 set "PY="
)
)
if not defined PY (
echo [????] ??????????б?????? Python ??????
echo ??? 3.11+ ????? fastapi / sqlalchemy / asyncmy / pydantic??
echo.
echo ??????????????????????????У???
echo py -3.13 -m venv .venv
echo .venv\Scripts\python.exe -m pip install -e .
echo.
echo ??????? conda ???? jr_py313???????????????λ??????
echo D:\conda\envs\jr_py313\python.exe
echo %USERPROFILE%\miniconda3\envs\jr_py313\python.exe
echo %USERPROFILE%\anaconda3\envs\jr_py313\python.exe
echo.
pause
exit /b 1
)
if not exist "%PROJ%app\main.py" (
echo [????] δ??? app\main.py???? .bat ????????????????
echo ??? PROJ = %PROJ%
echo.
pause
exit /b 1
)
cd /d "%PROJ%"
echo ============================================================
echo ???? Agent ?? ?? ??????
echo ============================================================
echo.
echo ????? : %PROJ%
echo ?????? : !PY!
echo ??????? : http://%HOST%:%PORT%
echo ?????? : http://%HOST%:%PORT%/portal/
echo ??????? : http://%HOST%:%PORT%/health
echo.
echo ?????????? MySQL(127.0.0.1:3306) ???????
echo ?? Ctrl+C ????????
echo ============================================================
echo.
"!PY!" -m uvicorn app.main:app --host %HOST% --port %PORT% --log-level info
set "RC=%ERRORLEVEL%"
echo.
echo ============================================================
echo ???????????????? %RC%????
echo ============================================================
pause
endlocal