From 01eda59c62160124cc625b376afab90b26245dae Mon Sep 17 00:00:00 2001 From: Rocky MJH Date: Sat, 18 Apr 2026 19:42:07 +0800 Subject: [PATCH] Fix medical diagnosis data setup paths --- .gitignore | 3 +++ .vscode/settings.json | 10 ++++++++-- .../medical_diagnosis/agents/diagnostic_agent.py | 2 +- .../apps/medical_diagnosis/config/agent_config.yaml | 2 +- .../sage/apps/medical_diagnosis/run_diagnosis.py | 5 ++++- .../apps/medical_diagnosis/scripts/prepare_data.py | 9 ++++----- apps/src/sage/apps/medical_diagnosis/setup_data.sh | 13 +++++++------ 7 files changed, 28 insertions(+), 16 deletions(-) diff --git a/.gitignore b/.gitignore index 58fcdc4..709ea5d 100644 --- a/.gitignore +++ b/.gitignore @@ -150,3 +150,6 @@ ehthumbs.db Desktop.ini $RECYCLE.BIN/ apps/src/sage/apps/medical_diagnosis/data/processed/* +apps/src/sage/apps/medical_diagnosis/data/test_results/* +apps/src/sage/apps/medical_diagnosis/data/medical/lumbar-spine-mri/cache/* +apps/src/sage/apps/medical_diagnosis/data/medical/lumbar-spine-mri/dataset_info.txt diff --git a/.vscode/settings.json b/.vscode/settings.json index 06fee29..191da9b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,11 @@ { "python-envs.defaultEnvManager": "ms-python.python:conda", "python-envs.defaultPackageManager": "ms-python.python:conda", - "python-envs.pythonProjects": [] -} + "python-envs.pythonProjects": [ + { + "path": ".", + "envManager": "ms-python.python:conda", + "packageManager": "ms-python.python:conda" + } + ] +} \ No newline at end of file diff --git a/apps/src/sage/apps/medical_diagnosis/agents/diagnostic_agent.py b/apps/src/sage/apps/medical_diagnosis/agents/diagnostic_agent.py index 9ddd444..4779cfe 100644 --- a/apps/src/sage/apps/medical_diagnosis/agents/diagnostic_agent.py +++ b/apps/src/sage/apps/medical_diagnosis/agents/diagnostic_agent.py @@ -59,7 +59,7 @@ def _load_config(self, config_path: str | None) -> dict: }, "services": { "sagellm": {"enabled": True, "gpu_memory_utilization": 0.9}, - "embedding": {"method": "hf", "cache_enabled": True}, + "embedding": {"method": "hash", "cache_enabled": True}, "vector_db": {"collection_name": "lumbar_spine_cases", "top_k": 5}, }, } diff --git a/apps/src/sage/apps/medical_diagnosis/config/agent_config.yaml b/apps/src/sage/apps/medical_diagnosis/config/agent_config.yaml index 08d5cd1..6bae059 100644 --- a/apps/src/sage/apps/medical_diagnosis/config/agent_config.yaml +++ b/apps/src/sage/apps/medical_diagnosis/config/agent_config.yaml @@ -28,7 +28,7 @@ services: # Embedding服务配置 embedding: - method: hf + method: hash cache_enabled: true normalize: true batch_size: 32 diff --git a/apps/src/sage/apps/medical_diagnosis/run_diagnosis.py b/apps/src/sage/apps/medical_diagnosis/run_diagnosis.py index 9ebf9f7..474ca72 100644 --- a/apps/src/sage/apps/medical_diagnosis/run_diagnosis.py +++ b/apps/src/sage/apps/medical_diagnosis/run_diagnosis.py @@ -16,6 +16,9 @@ from sage.apps.medical_diagnosis.agents import DiagnosticAgent +DEFAULT_CONFIG_PATH = Path(__file__).parent / "config" / "agent_config.yaml" + + def check_and_setup_data(auto_setup: bool = False): """检查数据是否存在,如果不存在则自动下载和准备""" # 获取当前脚本所在目录 @@ -120,7 +123,7 @@ def parse_args(): "--config", "-c", type=str, - default="examples/medical_diagnosis/config/agent_config.yaml", + default=str(DEFAULT_CONFIG_PATH), help="配置文件路径", ) diff --git a/apps/src/sage/apps/medical_diagnosis/scripts/prepare_data.py b/apps/src/sage/apps/medical_diagnosis/scripts/prepare_data.py index 8c003e4..e5d8658 100644 --- a/apps/src/sage/apps/medical_diagnosis/scripts/prepare_data.py +++ b/apps/src/sage/apps/medical_diagnosis/scripts/prepare_data.py @@ -15,9 +15,8 @@ # Note: This script assumes sage-apps package is installed # Install with: cd sage-apps && pip install -e . -# 查找项目根目录 -_current_file = Path(__file__).resolve() -project_root = _current_file.parent.parent.parent.parent.parent.parent # 到 sage-examples 根目录 +# 当前 medical_diagnosis 应用目录 +APP_DIR = Path(__file__).resolve().parent.parent # 疾病类别映射 (模拟) @@ -123,8 +122,8 @@ def generate_mock_report(label: int, patient_info: dict) -> str: def prepare_dataset(): """准备数据集""" - dataset_path = project_root / "data" / "medical" / "lumbar-spine-mri" / "cache" - output_dir = project_root / "examples" / "medical_diagnosis" / "data" / "processed" + dataset_path = APP_DIR / "data" / "medical" / "lumbar-spine-mri" / "cache" + output_dir = APP_DIR / "data" / "processed" output_dir.mkdir(parents=True, exist_ok=True) print("=" * 80) diff --git a/apps/src/sage/apps/medical_diagnosis/setup_data.sh b/apps/src/sage/apps/medical_diagnosis/setup_data.sh index 3092690..21de724 100755 --- a/apps/src/sage/apps/medical_diagnosis/setup_data.sh +++ b/apps/src/sage/apps/medical_diagnosis/setup_data.sh @@ -6,6 +6,7 @@ set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" DATA_DIR="$SCRIPT_DIR/data/processed" +PYTHON_BIN="${PYTHON_BIN:-python}" echo "==========================================" echo "医疗诊断数据集自动设置" @@ -40,7 +41,7 @@ echo "" # 1. 安装必要的依赖 echo "1️⃣ 检查Python依赖..." -pip install -q huggingface_hub datasets pillow scikit-learn || { +"$PYTHON_BIN" -m pip install -q huggingface_hub datasets pillow scikit-learn || { echo "❌ 依赖安装失败" exit 1 } @@ -49,7 +50,7 @@ echo " ✓ 依赖已安装" # 2. 下载数据集 echo "" echo "2️⃣ 下载腰椎MRI数据集..." -python3 "$PROJECT_ROOT/scripts/download_lumbar_dataset.py" || { +"$PYTHON_BIN" "$SCRIPT_DIR/scripts/download_lumbar_dataset.py" || { echo "❌ 数据集下载失败" exit 1 } @@ -58,7 +59,7 @@ echo " ✓ 数据集下载完成" # 3. 预处理数据 echo "" echo "3️⃣ 预处理数据集..." -python3 "$SCRIPT_DIR/scripts/prepare_data.py" || { +"$PYTHON_BIN" "$SCRIPT_DIR/scripts/prepare_data.py" || { echo "❌ 数据预处理失败" exit 1 } @@ -71,7 +72,7 @@ if [ -f "$DATA_DIR/train_index.json" ] && [ -f "$DATA_DIR/test_index.json" ]; th echo " ✓ 数据集验证成功" # 显示统计信息 - python3 -c " + "$PYTHON_BIN" -c " import json with open('$DATA_DIR/stats.json', 'r') as f: stats = json.load(f) @@ -93,6 +94,6 @@ echo "" echo "✅ 数据集设置完成!" echo "" echo "可以开始使用:" -echo " python examples/medical_diagnosis/test_diagnosis.py --mode single" -echo " python examples/medical_diagnosis/run_diagnosis.py --interactive" +echo " python apps/tests/medical_diagnosis/test_diagnosis.py --mode single" +echo " python examples/run_medical_diagnosis.py --interactive" echo ""