Spaces:
Sleeping
Sleeping
ktsn-ud commited on
Commit ·
ccb18c8
1
Parent(s): 9dfdcd5
Add data update methods and automation details to the system guide
Browse files- docs/システムガイド.md +72 -1
docs/システムガイド.md
CHANGED
|
@@ -524,7 +524,61 @@ BM25F、単語ベクトル、同義語など各種手法を組み合わせて検
|
|
| 524 |
|
| 525 |
**状況:** MySQLの企画データが更新された
|
| 526 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 527 |
**手順:**
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 528 |
```
|
| 529 |
1. MySQLのデータを確認
|
| 530 |
↓
|
|
@@ -538,7 +592,7 @@ BM25F、単語ベクトル、同義語など各種手法を組み合わせて検
|
|
| 538 |
├─ Step 6: 単語ベクトルを抽出
|
| 539 |
└─ Step 7: 団体名インデックスを生成
|
| 540 |
↓
|
| 541 |
-
3. サーバーを再起動
|
| 542 |
↓
|
| 543 |
4. フロントエンドで新しい企画データが見える
|
| 544 |
```
|
|
@@ -829,6 +883,23 @@ python scripts/build_all.py
|
|
| 829 |
python -m uvicorn app.main:app --reload --port 7860
|
| 830 |
```
|
| 831 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 832 |
### 8.2 Docker でのデプロイ
|
| 833 |
|
| 834 |
```bash
|
|
|
|
| 524 |
|
| 525 |
**状況:** MySQLの企画データが更新された
|
| 526 |
|
| 527 |
+
本システムでは、データ更新を以下の3つの方法で実現できます。
|
| 528 |
+
|
| 529 |
+
#### 方法1: 自動更新(推奨)
|
| 530 |
+
|
| 531 |
+
毎日午後3時(JST)に自動でデータを更新します。設定は不要です。
|
| 532 |
+
|
| 533 |
+
**流れ:**
|
| 534 |
+
```
|
| 535 |
+
毎日 18:00 UTC (3:00 JST)
|
| 536 |
+
↓
|
| 537 |
+
GitHub Actions が自動実行
|
| 538 |
+
↓
|
| 539 |
+
/tasks/update エンドポイントを呼び出し
|
| 540 |
+
↓
|
| 541 |
+
スクリプト build_all.py が実行
|
| 542 |
+
↓
|
| 543 |
+
新しい企画データで検索エンジンが更新
|
| 544 |
+
```
|
| 545 |
+
|
| 546 |
+
**設定ファイル:** `.github/workflows/update_data.yaml`
|
| 547 |
+
|
| 548 |
+
**カスタマイズ方法:** 更新時刻を変更したい場合は、`.github/workflows/update_data.yaml` の `cron` 行を編集します。
|
| 549 |
+
|
| 550 |
+
例:毎日午前10時に変更
|
| 551 |
+
```yaml
|
| 552 |
+
on:
|
| 553 |
+
schedule:
|
| 554 |
+
- cron: '0 1 * * *' # 毎日1時(JST)に実行
|
| 555 |
+
```
|
| 556 |
+
|
| 557 |
+
#### 方法2: 手動トリガー
|
| 558 |
+
|
| 559 |
+
GitHub Actions の UI から手動でデータ更新をトリガーできます。
|
| 560 |
+
|
| 561 |
**手順:**
|
| 562 |
+
1. GitHub リポジトリの「Actions」タブを開く
|
| 563 |
+
2. 左側で「update data」ワークフローを選択
|
| 564 |
+
3. 「Run workflow」ボタンをクリック
|
| 565 |
+
4. 約5-10分でデータが更新される
|
| 566 |
+
|
| 567 |
+
#### 方法3: APIエンドポイント経由
|
| 568 |
+
|
| 569 |
+
以下のコマンドでデータ更新をリクエストできます:
|
| 570 |
+
|
| 571 |
+
```bash
|
| 572 |
+
curl -X POST \
|
| 573 |
+
-H "X-API-KEY: YOUR_SECRET_KEY" \
|
| 574 |
+
https://your-fastapi-url/tasks/update
|
| 575 |
+
```
|
| 576 |
+
|
| 577 |
+
このエンドポイントは `app/main.py` で定義されており、直接検索用アセットを再生成します。
|
| 578 |
+
|
| 579 |
+
**実行に要する時間:** 5-10分
|
| 580 |
+
|
| 581 |
+
**詳細な流れ:**
|
| 582 |
```
|
| 583 |
1. MySQLのデータを確認
|
| 584 |
↓
|
|
|
|
| 592 |
├─ Step 6: 単語ベクトルを抽出
|
| 593 |
└─ Step 7: 団体名インデックスを生成
|
| 594 |
↓
|
| 595 |
+
3. サーバーを再起動(必要に応じて)
|
| 596 |
↓
|
| 597 |
4. フロントエンドで新しい企画データが見える
|
| 598 |
```
|
|
|
|
| 883 |
python -m uvicorn app.main:app --reload --port 7860
|
| 884 |
```
|
| 885 |
|
| 886 |
+
**注記:** ステップ5(データ生成)は手動で実行する必要があります。本番環境ではこのステップが `.github/workflows/update_data.yaml` により自動実行されます。
|
| 887 |
+
|
| 888 |
+
**ローカル開発中のデータ更新の流れ:**
|
| 889 |
+
|
| 890 |
+
通常の開発では、MySQLのデータが更新されたことをシミュレートして検索エンジンをテストしたい場合があります。その際は:
|
| 891 |
+
|
| 892 |
+
```bash
|
| 893 |
+
# 方法1: 手動でスクリプト実行
|
| 894 |
+
python scripts/build_all.py
|
| 895 |
+
|
| 896 |
+
# 方法2: サーバー起動後、APIエンドポイント経由(本番と同じ)
|
| 897 |
+
curl -X POST -H "X-API-KEY: test_key" \
|
| 898 |
+
"http://localhost:7860/tasks/update"
|
| 899 |
+
```
|
| 900 |
+
|
| 901 |
+
本番環境では GitHub Actions により毎日自動的にこの処理が実行されるため、セクション6.2の「企画データの更新フロー」を参照してください。
|
| 902 |
+
|
| 903 |
### 8.2 Docker でのデプロイ
|
| 904 |
|
| 905 |
```bash
|