Download scripts/quick_test.py from cyd0806/neuroscan-ai: direct link, hf CLI and curl.
- Browser
- Download file 3.21 kB
-
https://huggingface.co/cyd0806/neuroscan-ai/resolve/main/scripts/quick_test.py
- Command line
-
hf download hf://cyd0806/neuroscan-ai/scripts/quick_test.py
-
curl -L -o quick_test.py https://huggingface.co/cyd0806/neuroscan-ai/resolve/main/scripts/quick_test.py
3.21 kB
| #!/usr/bin/env python3 | |
| """ | |
| 快速后端测试脚本 | |
| """ | |
| import os | |
| import sys | |
| from pathlib import Path | |
| # 设置项目路径 | |
| project_root = Path(__file__).resolve().parent.parent | |
| sys.path.insert(0, str(project_root)) | |
| os.chdir(project_root) | |
| output_file = project_root / "output" / "quick_test_results.txt" | |
| output_file.parent.mkdir(exist_ok=True) | |
| def log(msg): | |
| """写入日志""" | |
| with open(output_file, "a", encoding="utf-8") as f: | |
| f.write(msg + "\n") | |
| print(msg) | |
| # 清空文件 | |
| with open(output_file, "w") as f: | |
| f.write("=== NeuroScan 快速测试 ===\n\n") | |
| log("1. 测试模块导入...") | |
| try: | |
| from app.services.dicom import DicomLoader | |
| log(" DicomLoader: OK") | |
| except Exception as e: | |
| log(f" DicomLoader: FAIL - {e}") | |
| try: | |
| from app.services.registration import ImageRegistrator | |
| log(" ImageRegistrator: OK") | |
| except Exception as e: | |
| log(f" ImageRegistrator: FAIL - {e}") | |
| try: | |
| from app.services.analysis import ChangeDetector | |
| log(" ChangeDetector: OK") | |
| except Exception as e: | |
| log(f" ChangeDetector: FAIL - {e}") | |
| try: | |
| from app.services.report import ReportGenerator | |
| log(" ReportGenerator: OK") | |
| except Exception as e: | |
| log(f" ReportGenerator: FAIL - {e}") | |
| log("\n2. 测试数据加载...") | |
| try: | |
| loader = DicomLoader() | |
| data_dir = project_root / "data" / "processed" / "real_lung_001" | |
| if data_dir.exists(): | |
| baseline = data_dir / "baseline.nii.gz" | |
| if baseline.exists(): | |
| import nibabel as nib | |
| img = nib.load(baseline) | |
| data = img.get_fdata() | |
| log(f" 加载成功: shape={data.shape}") | |
| else: | |
| log(f" baseline.nii.gz 不存在") | |
| else: | |
| log(f" 数据目录不存在: {data_dir}") | |
| except Exception as e: | |
| log(f" 加载失败: {e}") | |
| log("\n3. 测试报告生成...") | |
| try: | |
| generator = ReportGenerator(llm_backend="template") | |
| report = generator.generate_longitudinal_report( | |
| patient_id="TEST001", | |
| baseline_date="2025-06-15", | |
| followup_date="2026-01-28", | |
| baseline_findings=[{"organ": "肺", "max_diameter_mm": 15.0, "volume_cc": 1.0, "mean_hu": -25, "shape": "圆形", "density_type": "实性"}], | |
| followup_findings=[{"organ": "肺", "max_diameter_mm": 12.0, "volume_cc": 0.8, "mean_hu": -20, "shape": "圆形", "density_type": "实性"}], | |
| registration_results={"rigid": "completed"}, | |
| change_results={"changed_voxels": 1000, "change_percent": 0.05}, | |
| modality="CT" | |
| ) | |
| log(f" 报告生成成功: {len(report)} 字符") | |
| # 保存报告 | |
| report_path = project_root / "output" / "test_longitudinal_report.md" | |
| with open(report_path, "w", encoding="utf-8") as f: | |
| f.write(report) | |
| log(f" 报告保存至: {report_path}") | |
| except Exception as e: | |
| import traceback | |
| log(f" 报告生成失败: {e}") | |
| log(traceback.format_exc()) | |
| log("\n4. 测试 LLM 连接...") | |
| try: | |
| import ollama | |
| models = ollama.list() | |
| model_names = [m.model for m in models.models] | |
| log(f" Ollama 可用,模型: {model_names}") | |
| except Exception as e: | |
| log(f" Ollama 不可用: {e}") | |
| log("\n=== 测试完成 ===") | |