Spaces:
Sleeping
Sleeping
| title: Chibafes Website API | |
| emoji: 🚀 | |
| colorFrom: blue | |
| colorTo: green | |
| sdk: docker | |
| app_port: 7860 | |
| pinned: false | |
| # 千葉大祭団体企画情報の提供&検索システム | |
| ## 目次 | |
| * [APIの仕様](#apiの仕様) | |
| * [ローカル作業の準備](#ローカル作業の準備) | |
| * [1. リポジトリをクローン](#1-リポジトリをクローン) | |
| * [2. ローカルで`.env`ファイルを作成](#2-ローカルで-env-ファイルを作成) | |
| * [3. 適切なバージョンのPythonを入手する](#3-適切なバージョンのpythonを入手する) | |
| * [4. Pythonの仮想環境を作成・有効化](#4-pythonの仮想環境を作成有効化) | |
| * [5. ライブラリをインストール](#5-ライブラリをインストール) | |
| * [開発用サーバーの起動](#開発用サーバーの起動) | |
| * [仕組み・企画データ更新](#仕組み・企画データ更新) | |
| ## APIの仕様 | |
| [`docs/システムガイド.md`](./docs/システムガイド.md) のセクション7「APIの使い方」を参照してください。 | |
| ## ローカル作業の準備 | |
| ### 1. リポジトリをクローン | |
| ```bash | |
| git clone https://github.com/chibafes-dev/circle-search-26-api.git | |
| ``` | |
| > クローンのためには `Read` 以上のリポジトリ権限が必要です。また、作業をしてプッシュをするには `Write` 以上のリポジトリ権限が必要です。 | |
| --- | |
| ### 2. ローカルで `.env` ファイルを作成 | |
| 以下の`...`部分を適切な値に変更する。(なんらかの方法で引き継いでもらう。) | |
| ```sh | |
| # API側 GitHub の secrets と HF Spaces の Secrets の両方に登録 | |
| HF_TOKEN=... | |
| # HF Spaces の secrets に登録 | |
| API_SECRET_KEY=... | |
| HF_EMBEDDINGS_REPO_ID=... | |
| ``` | |
| > **!!! 注意 !!!** | |
| > .envは機密情報なので絶対にリポジトリにプッシュしないこと!!.gitignoreに含まれていることを確認してください。 | |
| --- | |
| ### 3. 適切なバージョンのPythonを入手する | |
| やり方はいくつかありますが、筆者は `pyenv` を使用しました。適切なバージョンがインストールできればなんでもいいですが、ここでは `pyenv` を紹介します。 | |
| 英語が読める人は [公式リポジトリ](https://github.com/pyenv/pyenv?tab=readme-ov-file#a-getting-pyenv) を参考にしてインストールしてください。 | |
| --- | |
| #### 英語が読めないWindowsユーザー向け(WSL2はLinux向けを確認) | |
| <details> | |
| 残念ながら `pyenv` はWindowsに対応していないので、代わりに `pyenv-win` を使いましょう。 | |
| 参考:https://github.com/pyenv-win/pyenv-win/blob/master/docs/installation.md#powershell | |
| 1. Powershellで以下のコマンドを実行 | |
| ```powershell | |
| Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1" | |
| ``` | |
| もし `UnauthorizedAccess` エラーが出たら、以下のコマンドを「管理者権限で」実行したのち、上のコマンドを再度試してください。 | |
| ```powershell | |
| Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine | |
| ``` | |
| 2. インストールができたことを確認する | |
| 以下のコマンドを実行: | |
| ```powershell | |
| pyenv --version | |
| ``` | |
| バージョン情報が出れば成功。 | |
| </details> | |
| #### 英語が読めないMacユーザー向け | |
| <details> | |
| 参考:https://github.com/pyenv/pyenv/blob/master/README.md#macos | |
| 1. どうにかしてHomebrewを入れる | |
| やり方はググってください。 | |
| 2. Homebrew経由で `pyenv` をインストール | |
| ```bash | |
| brew update | |
| brew install pyenv | |
| ``` | |
| 3. シェル環境を整える | |
| `zsh` を使っている人向けの説明。自分が何を使っているかわからない人は `echo $SHELL` を実行。 | |
| > 最近のMacだと `zsh` がデフォルトらしいです。敢えて `bash` とか `fish` にするような方には私の説明は不要だと思うので、[公式リポジトリ](https://github.com/pyenv/pyenv/blob/master/README.md#b-set-up-your-shell-environment-for-pyenv) を見てご自身でうまいことやってほしいです。 | |
| 以下の3つのコマンドを1行ずつ順に実行する。 | |
| ```bash | |
| echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc | |
| echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc | |
| echo 'eval "$(pyenv init - zsh)"' >> ~/.zshrc | |
| ``` | |
| 4. シェルを再起動する | |
| ```bash | |
| exec "$SHELL" | |
| ``` | |
| </details> | |
| #### 英語が読めないLinuxユーザー向け(WSL2含む) | |
| <details> | |
| 参考:https://github.com/pyenv/pyenv/blob/master/README.md#linuxunix | |
| 1. 自動インストーラを使用する | |
| ```bash | |
| curl -fsSL https://pyenv.run | bash | |
| ``` | |
| </details> | |
| --- | |
| #### <全OS共通> Python をインストールする | |
| 1. `.python-version` に記載された Python のバージョンを確認 | |
| 以下例として `3.12.11` の場合を仮定します。 | |
| 2. `pyenv` で Python をインストールする | |
| ```bash | |
| pyenv install 3.12.11 | |
| ``` | |
| 3. Python のバージョンを切り替え | |
| `pyenv` が `.python-version` を自動で読み取って切り替えてくれるので操作は不要です。 | |
| 以下のコマンドで Python のバージョンを確認しましょう。 | |
| ```bash | |
| pyenv version | |
| ``` | |
| (`versions`ではない) | |
| <details> | |
| <summary>手動で切り替えたい場合</summary> | |
| このリポジトリ `circle-search-26-api` があるフォルダに移動し、以下のコマンドを実行 | |
| ```bash | |
| pyenv local 3.12.11 | |
| ``` | |
| これを実行すると、そのフォルダの中で `3.12.11` が有効化されます。 | |
| > 全部のフォルダで有効化したい場合は `local` の代わりに `global` としてください。 | |
| </details> | |
| --- | |
| ### 4. Pythonの仮想環境を作成・有効化 | |
| ```bash | |
| python -m venv .venv | |
| source .venv/bin/activate | |
| ``` | |
| --- | |
| ### 5. ライブラリをインストール | |
| ```bash | |
| pip install --upgrade pip | |
| pip install -r requirements.txt | |
| ``` | |
| ## 開発用サーバーの起動 | |
| ### (初回のみ)必要ファイルの作成 | |
| > **!!! 注意 !!!** | |
| > **大容量(約6GB)のダウンロードが発生するので、必ずWiFi環境で行うこと!!** | |
| ```bash | |
| python scripts/build_all.py | |
| ``` | |
| ### サーバー起動 | |
| ```bash | |
| uvicorn app.main:app --reload | |
| ``` | |
| `http://localhost:8000`からアクセスできます(デフォルトポート)。Hugging Face Spacesでは7860ポートで起動します。 | |
| ## 仕組み・企画データ更新 | |
| 企画データ更新のためには以下のステップを実行してください。 | |
| 1. Google Spreadsheets でデータの整理 → CSVファイルのダウンロード | |
| 2. CSVファイルを `resources/` に設置 | |
| 3. `config/files.json` 内 `circles > original_csv` を実際のパス・ファイル名に変更 | |
| ```json | |
| { | |
| ... | |
| "circles": { | |
| "original_csv": "resources/original_circles.csv", // ここを変更 | |
| "circles_json": "data/generated/circles.json" | |
| }, | |
| ... | |
| } | |
| ``` | |
| 4. `python scripts/build_all.py` を実行 → ローカルで動作確認 | |
| 5. GitHubにプッシュ(`main` ブランチにマージ) | |
| 詳細な仕組み等は [`docs/`](./docs) を確認してください。 | |