クライアント環境構築 事前確認・取得手順

クライアント側のAIエージェント、Codex等に共有サーバから納品版一式を取得してローカル環境を構築してもらうための確認事項と標準手順です。 まずは容量、OS、PostgreSQL、Python、画像同期方針を確認してください。

最初に確認してもらうこと

項目確認内容目安・判断
OS Windowsで構築するか、Linux/WSL/クラウドで構築するか。 この資料はWindowsローカル構築を主想定。Linuxでも可能だがコマンドを読み替える。
空きディスク コード、DB、画像、dump、作業領域を置くドライブの空き容量。 画像込みなら最低60GB、余裕を見るなら80GB以上。画像を後回しにするなら30GB前後でも開始可能。
メモリ 搭載メモリと他アプリの同時利用状況。 16GBなら通常画面、DB参照、軽いCatBoost予測は現実的。大きめの再学習は時間がかかる。
GPU GPUメモリ、CUDA利用可否。 GPU 1GBでは画像特徴量抽出や深層学習は期待しない。CLIP等の重い処理はサーバ・DOK・別PCに逃がす前提。
PostgreSQL PostgreSQL 16をインストールできるか。ポート5432を使えるか。 ローカルDBはPostgreSQL 16推奨。既存DBがある場合はDB名を分ける。
Python Python 3.13系または納品版のrequirementsを満たすPythonを使えるか。 Windowsではvenvを作成して依存関係を閉じ込める。
ネットワーク 共有サーバのGitea、SSH/SCP/rsyncへ接続できるか。 画像32GBを同期する場合、回線によっては数時間かかる。途中再開できるrsync推奨。
用途 閲覧中心か、最新取込・予測まで実行するか、モデル再学習まで行うか。 閲覧中心なら軽量。再学習や画像特徴量更新まで行うならCPU時間、メモリ、外部バッチ設計が必要。

現在の共有サーバ上の目安容量

納品版コード
約908MB
docs、スクリプト、一部サンプル画像を含む。
納品版DB
約11GB
PostgreSQL上での論理サイズ。dumpは圧縮形式のためこれより小さくなる見込み。
画像ディレクトリ
約32GB
/data/dataTARGET。オークション写真、セール写真など。
full版DB退避dump
約3.7GB
/data/backups/keiba_full_20260624.dump。復旧・参照用。

ローカルにDB dumpとrestore後DBの両方が一時的に存在します。画像も取得する場合は、空き容量60GBを下回る環境では途中で詰まりやすいです。

取得対象

対象場所扱い
納品版コード http://100.123.116.45:3000/chita256/keiba.gitkeiba-jp-delivery ブランチ クライアント側でcloneする。
納品版DB 共有サーバPostgreSQLの現在の keiba DB 共有サーバ上でdumpを作り、クライアント側へ取得してrestoreする。
画像 ubuntu@59.106.215.106:/data/dataTARGET 必要に応じてrsync/scp。初回は重いので後回しでもよい。
full版 コードは /srv/keiba、DB dumpは /data/backups/keiba_full_20260624.dump 納品版とは別。必要時の参照・復旧用。

共有サーバ側で納品版DB dumpを作る

クライアント側が取得する直前に、共有サーバ上で現在の納品版DBからdumpを作成します。

ssh ubuntu@59.106.215.106

sudo docker exec -e PGPASSWORD=keiba keiba-infra-postgres-1 \
  pg_dump -U keiba -d keiba -Fc -f /tmp/keiba_jp_delivery_latest.dump

sudo docker cp \
  keiba-infra-postgres-1:/tmp/keiba_jp_delivery_latest.dump \
  /data/backups/keiba_jp_delivery_latest.dump

sudo docker exec keiba-infra-postgres-1 rm -f /tmp/keiba_jp_delivery_latest.dump

ls -lh /data/backups/keiba_jp_delivery_latest.dump
sha256sum /data/backups/keiba_jp_delivery_latest.dump

共有サーバの空き容量が少ない場合は、既存の不要な一時dumpを削除してから作成してください。full版dumpは残す前提です。

クライアント側の標準セットアップ

1. コード取得

cd D:\coconara
git clone -b keiba-jp-delivery http://100.123.116.45:3000/chita256/keiba.git keiba-jp
cd D:\coconara\keiba-jp

2. Python仮想環境

py -m venv .venv-win
.\.venv-win\Scripts\python.exe -m pip install --upgrade pip
.\.venv-win\Scripts\python.exe -m pip install -r requirements.txt

モデル作成・評価・一部の予測まで行う場合は、追加でML系依存も入れます。

.\.venv-win\Scripts\python.exe -m pip install -r requirements-ml.txt

3. .env作成

Copy-Item .env.example .env

例:

DJANGO_DEBUG=1
DJANGO_ALLOWED_HOSTS=127.0.0.1,localhost
DJANGO_DB_ENGINE=django.db.backends.postgresql
DJANGO_DB_NAME=keiba_jp
DJANGO_DB_USER=keiba
DJANGO_DB_PASSWORD=keiba
DJANGO_DB_HOST=127.0.0.1
DJANGO_DB_PORT=5432
DATA_TARGET_ROOT=D:\coconara\keiba-jp\dataTARGET

4. DB作成とrestore

$env:PGPASSWORD = 'keiba'
& "C:\Program Files\PostgreSQL\16\bin\createdb.exe" `
  -h 127.0.0.1 -U keiba -O keiba keiba_jp

& "C:\Program Files\PostgreSQL\16\bin\pg_restore.exe" `
  -h 127.0.0.1 -U keiba -d keiba_jp `
  --clean --if-exists --no-owner --no-acl `
  D:\path\to\keiba_jp_delivery_latest.dump

5. 画像取得

画像まで表示したい場合は、共有サーバの /data/dataTARGET をローカルの DATA_TARGET_ROOT に同期します。

rsync -av --progress ubuntu@59.106.215.106:/data/dataTARGET/ D:/coconara/keiba-jp/dataTARGET/

Windows標準だけで行う場合は、SCPやWinSCPでも可。ただし32GB程度あるため、途中再開しやすい方法を推奨します。

6. 起動確認

.\.venv-win\Scripts\python.exe manage.py check
.\.venv-win\Scripts\python.exe manage.py migrate --check
.\.venv-win\Scripts\python.exe manage.py runserver 127.0.0.1:8000

確認URL:

GPU 1GB環境での運用方針

処理ローカル16GB/GPU 1GBでの扱い推奨
画面閲覧・検索 可能 DBインデックスが効いているため通常利用は問題ない想定。
最新レース・競走馬取込 可能 CPUとネットワーク中心。長時間処理はログを残す。
CatBoost予測 軽めなら可能 CPU実行前提。100試行など重いチューニングは避ける。
画像特徴量抽出 非推奨 CLIP/DINO/ConvNeXt系はサーバ、DOK、別GPU環境で実行する。
コメントembedding再生成 条件付き 件数が多い場合はバッチ化し、再利用可能な結果をDBまたはファイルに保存。
モデル再学習 小規模なら可能 納品版では既存モデル・既存特徴量を使い、必要時だけ再学習する運用が現実的。

クライアント側AIエージェントへの依頼文例

共有サーバからkeiba-jp納品版をローカルに構築してください。

前提:
- OSはWindowsです。
- PostgreSQL 16を使います。
- DB名は keiba_jp、ユーザー/パスワードは keiba/keiba です。
- コードは Gitea の keiba-jp-delivery ブランチから取得してください。
- DB dumpは共有サーバ上で /data/backups/keiba_jp_delivery_latest.dump を作成してから取得してください。
- 画像は /data/dataTARGET をローカルの DATA_TARGET_ROOT に同期してください。容量が厳しければ画像同期は後回しで構いません。

確認:
- manage.py check が通ること
- migrate --check が通ること
- runserverで /owner-horse-search/、/racehorses/157742/、/docs/index.html が開くこと
- 画像同期後に /dataTARGET/auction_photos/10808/01.jpeg が表示されること