Spaces:
Sleeping
Sleeping
File size: 7,458 Bytes
e6c56e8 446476d 1489413 7eda24d 1489413 446476d df16d3c 446476d df16d3c 446476d 7eda24d 446476d 7eda24d 446476d 269307e 7eda24d 269307e 7eda24d 269307e 9dfdcd5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 | ---
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) を確認してください。
|