# 環境に必要なものリスト（全網羅）

このシステムが動くために必要なもの一覧です。**入っているかどうかは `python3 check_env.py` で自動診断**でき、
不足のほとんどは **`bash setup.sh` で全自動導入**できます。

```bash
python3 check_env.py   # 診断（✓/⚠/✗ と対処法を表示）
bash setup.sh          # 不足を自動導入 → 最後に診断を自動実行
```

---

## 1. OS・システム（setup.sh が自動導入）

| 必要なもの | 用途 | 手動で入れる場合 |
|---|---|---|
| Ubuntu 22.04 LTS（推奨） | 動作確認済みOS | — |
| Python 3.10 以上 | 全コード | `sudo apt-get install -y python3-venv python3-pip` |
| **ffmpeg / ffprobe** | 動画からのフレーム抽出 | `sudo apt-get install -y ffmpeg` |
| libgl1 / libglib2.0-0 | OpenCVの動作に必要 | `sudo apt-get install -y libgl1 libglib2.0-0` |
| build-essential（環境による） | pycocotoolsのビルド | `sudo apt-get install -y build-essential` |

## 2. Pythonパッケージ（setup.sh が .venv に自動導入）

`requirements.txt` に定義。主要なもの:

| パッケージ | 用途 |
|---|---|
| torch / torchvision（CPU版） | 上流AI（湯気分類・スープ抽出・濃度分類） |
| timm | 湯気分類（EfficientNet-B0） |
| rfdetr / pycocotools | スープ抽出（RF-DETR） |
| albumentations / opencv-python-headless / pillow | 画像処理 |
| numpy / pandas / scikit-learn / joblib | 採点エンジン・モデル読込 |
| pyyaml / requests | 設定読込・BytePlus API通信 |

## 3. 同梱ファイル（zipに入っている。無い場合は展開ミス）

| ファイル | 用途 |
|---|---|
| `prompt/soup_eval_prompt_policy.md` | LLM評価プロンプト定義（削除不可） |
| `app/models/*.pkl` ＋ `metadata.json` | グレード算出モデル |
| `upstream_suite/…/checkpoint_best_ema.pth`（128MB） | スープ抽出モデル |
| `upstream_suite/…/density…/model.pt`（43MB） | 濃度分類モデル |
| `upstream_suite/…/steam_classifier_best.pt`（16MB） | 湯気分類モデル |
| `local_batch_api/config.test10.yaml` / `calibration.json` | 設定・補正 |

※ 上流モデルを別の場所に置く場合のみ、環境変数 `RAMEN_SUITE_DIR` でその場所を指定。

## 4. 手動で用意するもの（自動化できない2つ）

| 必要なもの | 理由 | 設置方法 |
|---|---|---|
| **BytePlus(ARK) APIキー** | 秘密情報のためzip・自動化に含められない | `secrets/byteplus.key` に1行保存（詳細: README_api_key_setup.md） |
| **swap 4〜8GB**（メモリ8GB機） | root権限のシステム変更のため手動 | README_deploy.md 手順4.5 |

## 5. ネットワーク

| 必要なもの | 用途 |
|---|---|
| 外向きHTTPS（`ark.ap-southeast.bytepluses.com:443`） | LLM画像評価のAPI呼び出し |
| （初回のみ）pypi.org 等への接続 | setup.sh のパッケージダウンロード |

## 6. マシンスペック（詳細: README_deploy.md 手順2）

- CPU 4コア以上推奨 / メモリ 8GB＋swap / ディスク空き 30GB以上 / GPU不要（あれば高速化）
