Core Components: - PDFStorageService with Dify/OSS adapters - LLM12FieldsService with Nougat-first + dual-model + 3-layer JSON parsing - PromptBuilder for dynamic prompt assembly - MedicalLogicValidator with 5 rules + fault tolerance - EvidenceChainValidator for citation integrity - ConflictDetectionService for dual-model comparison Prompt Engineering: - System Prompt (6601 chars, Section-Aware strategy) - User Prompt template (PICOS context injection) - JSON Schema (12 fields constraints) - Cochrane standards (not loaded in MVP) Key Innovations: - 3-layer JSON parsing (JSON.parse + json-repair + code block extraction) - Promise.allSettled for dual-model fault tolerance - safeGetFieldValue for robust field extraction - Mixed CN/EN token calculation Integration Tests: - integration-test.ts (full test) - quick-test.ts (quick test) - cached-result-test.ts (fault tolerance test) Documentation Updates: - Development record (Day 2-3 summary) - Quality assurance strategy (full-text screening) - Development plan (progress update) - Module status (v1.1 update) - Technical debt (10 new items) Test Results: - JSON parsing success rate: 100% - Medical logic validation: 5/5 passed - Dual-model parallel processing: OK - Cost per PDF: CNY 0.10 Files: 238 changed, 14383 insertions(+), 32 deletions(-) Docs: docs/03-涓氬姟妯″潡/ASL-AI鏅鸿兘鏂囩尞/05-寮€鍙戣褰?2025-11-22_Day2-Day3_LLM鏈嶅姟涓庨獙璇佺郴缁熷紑鍙?md
124 lines
2.1 KiB
Batchfile
124 lines
2.1 KiB
Batchfile
@echo off
|
|
echo ========================================
|
|
echo Stop All Services
|
|
echo ========================================
|
|
echo.
|
|
|
|
echo [1] Stopping backend service (port 3001)...
|
|
for /f "tokens=5" %%a in ('netstat -aon ^| findstr :3001') do (
|
|
set PID=%%a
|
|
echo Found process: PID=%%a
|
|
taskkill /F /PID %%a >nul 2>&1
|
|
if errorlevel 1 (
|
|
echo ERROR: Cannot terminate process %%a
|
|
) else (
|
|
echo OK: Process %%a terminated
|
|
)
|
|
)
|
|
|
|
echo.
|
|
echo [2] Stopping frontend service (port 5173)...
|
|
for /f "tokens=5" %%a in ('netstat -aon ^| findstr :5173') do (
|
|
set PID=%%a
|
|
echo Found process: PID=%%a
|
|
taskkill /F /PID %%a >nul 2>&1
|
|
if errorlevel 1 (
|
|
echo ERROR: Cannot terminate process %%a
|
|
) else (
|
|
echo OK: Process %%a terminated
|
|
)
|
|
)
|
|
|
|
echo.
|
|
echo [3] Stopping Python service (port 8000)...
|
|
for /f "tokens=5" %%a in ('netstat -aon ^| findstr :8000') do (
|
|
set PID=%%a
|
|
echo Found process: PID=%%a
|
|
taskkill /F /PID %%a >nul 2>&1
|
|
if errorlevel 1 (
|
|
echo ERROR: Cannot terminate process %%a
|
|
) else (
|
|
echo OK: Process %%a terminated
|
|
)
|
|
)
|
|
|
|
echo.
|
|
echo [4] Terminating all Node processes...
|
|
tasklist | findstr node.exe >nul
|
|
if not errorlevel 1 (
|
|
echo Found Node processes, terminating...
|
|
taskkill /F /IM node.exe >nul 2>&1
|
|
if errorlevel 1 (
|
|
echo ERROR: Cannot terminate Node processes
|
|
) else (
|
|
echo OK: All Node processes terminated
|
|
)
|
|
) else (
|
|
echo INFO: No running Node processes
|
|
)
|
|
|
|
echo.
|
|
echo [5] Terminating Python processes (uvicorn)...
|
|
tasklist | findstr python.exe >nul
|
|
if not errorlevel 1 (
|
|
echo Found Python processes, terminating...
|
|
taskkill /F /IM python.exe >nul 2>&1
|
|
if errorlevel 1 (
|
|
echo ERROR: Cannot terminate Python processes
|
|
) else (
|
|
echo OK: All Python processes terminated
|
|
)
|
|
) else (
|
|
echo INFO: No running Python processes
|
|
)
|
|
|
|
echo.
|
|
echo ========================================
|
|
echo Cleanup Complete!
|
|
echo ========================================
|
|
echo.
|
|
echo All services stopped. You can restart them now.
|
|
echo.
|
|
pause
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|