File size: 10,585 Bytes
c0165f9
 
 
 
 
 
 
 
 
 
 
 
 
 
57a637a
e338d50
57a637a
e338d50
57a637a
e338d50
57a637a
 
 
 
 
 
 
 
 
 
 
 
 
41c0b3b
 
 
 
 
 
 
 
c0165f9
57a637a
 
 
 
 
 
 
e338d50
f35c522
e338d50
57a637a
 
 
 
 
f35c522
57a637a
 
 
 
 
 
 
 
 
e338d50
57a637a
 
 
 
 
f35c522
57a637a
 
 
 
 
f35c522
57a637a
 
 
 
 
f35c522
57a637a
f35c522
c0165f9
 
 
 
 
f35c522
57a637a
f35c522
57a637a
e338d50
57a637a
 
 
 
e338d50
57a637a
 
 
 
07be191
 
 
 
 
f35c522
57a637a
e338d50
57a637a
e338d50
7f68acd
57a637a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3fee101
 
57a637a
3fee101
 
57a637a
 
 
 
 
3fee101
57a637a
 
 
3fee101
57a637a
 
 
3fee101
57a637a
 
f35c522
57a637a
 
 
 
 
 
 
 
 
f35c522
 
 
 
57a637a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e338d50
57a637a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
07be191
57a637a
 
41c0b3b
57a637a
 
41c0b3b
57a637a
 
 
 
 
 
41c0b3b
57a637a
41c0b3b
57a637a
 
 
 
 
 
 
 
1b5e19e
57a637a
 
41c0b3b
57a637a
 
 
 
 
 
 
 
41c0b3b
57a637a
 
 
 
 
 
 
1b5e19e
57a637a
 
41c0b3b
57a637a
 
 
 
 
 
 
1b5e19e
57a637a
 
41c0b3b
57a637a
 
 
 
 
 
c0165f9
 
 
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
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
---
title: test
emoji: 🚀
colorFrom: blue
colorTo: green
sdk: gradio
sdk_version: 4.42.0
app_file: work/spaces/test/app.py
pinned: false
---

 > 🔔上記はHuggingfaceのSpacesの設定です。
Spacesを作成する場合は各リポジトリごとに以上を書き換えてください。
詳細な説明は[Huggingface Spacesの設定](#huggingface-spacesの設定)にて記載しています。
# 🚀 Almondo PoC Template

このリポジトリは、PoCプロジェクトのための包括的なテンプレートです。本READMEでは、プロジェクトのセットアップから開発プロセス、ディレクトリ構造まで、詳細かつ分かりやすく説明します。

## 📑 目次

- [🚀 Almondo PoC Template](#-almondo-poc-template)
  - [📑 目次](#-目次)
  - [🛠 セットアップ](#-セットアップ)
      - [前提条件](#前提条件)
      - [セットアップ手順](#セットアップ手順)
    - [Dockerの基本操作](#dockerの基本操作)
    - [パッケージの管理](#パッケージの管理)
  - [🔄 開発の手順](#-開発の手順)
    - [開発フロー](#開発フロー)
  - [📂 ディレクトリ構造](#-ディレクトリ構造)
    - [主要ディレクトリの説明](#主要ディレクトリの説明)
      - [`work/`](#work)
      - [`data/`](#data)
  - [VSCode上での作業(Dev container)](#vscode上での作業dev-container)
    - [前提条件](#前提条件-1)
    - [🔧 セットアップ手順](#-セットアップ手順)
      - [1️⃣ 拡張機能のインストール](#1️⃣-拡張機能のインストール)
      - [2️⃣ プロジェクトを開く](#2️⃣-プロジェクトを開く)
      - [3️⃣ Dev Containerの設定](#3️⃣-dev-containerの設定)
      - [4️⃣ Dev Container内でプロジェクトを再オープン](#4️⃣-dev-container内でプロジェクトを再オープン)
      - [5️⃣ 開発開始](#5️⃣-開発開始)
  - [Huggingface Spacesの設定](#huggingface-spacesの設定)


## 🛠 セットアップ

#### 前提条件

- git,dockerのインストール

#### セットアップ手順

1. **リポジトリのクローン**
   ```bash
   git clone [リポジトリのurl]
   cd [ディレクトリ名]
   ```

2. **デフォルトブランチの確認**
   ```bash
   git branch
   ```
   > 💡 `develop`ブランチがアクティブであることを確認してください。
   ```
   * develop
     main
   ```

3. **環境設定ファイルの作成**
   ```bash
   cp .env.dev.template .env.dev
   ```
   > ⚠️ `.env.dev`ファイルを編集し、必要な環境変数を設定してください。

4. **Dockerコンテナの起動**
   ```bash
   docker-compose run development bash
   ```
   > 🔔 初回実行時はイメージのビルドが行われるため、時間がかかる場合があります。

5. **パッケージのインストール**
   ```bash
   poetry install
   ```
   > 📘 これにより、`pyproject.toml`に定義された全ての依存パッケージがインストールされます。

### Dockerの基本操作

| コマンド                               | 説明                       |
| -------------------------------------- | -------------------------- |
| `docker ps`                            | 実行中のコンテナ一覧を表示 |
| `docker compose exec development bash` | 実行中のコンテナに接続     |
| `docker-compose down`                  | コンテナを停止し削除       |

### パッケージの管理

Poetryを使用してパッケージを管理します。

- **パッケージの追加**:
  ```bash
  poetry add [パッケージ名]
  ```

- **パッケージの削除**:
  ```bash
  poetry remove [パッケージ名]
  ```
- **lock fileの更新**:
  ```bash
  poetry lock
  ```
> 📝 パッケージの追加や削除を行った後は必ずlock fileを更新して、poetry.lockとpyproject.tomlの差分をコミットしてください

## 🔄 開発の手順

本プロジェクトでは、効率的かつ体系的な開発を行うため、Issue driven開発手法を採用しています。

> 📚 詳細は[Issue driven運用のドキュメント](https://www.notion.so/Issue-driven-5378336f66c243f7933b52a15ce15ee7)をご参照ください。

### 開発フロー

1. **Issueの作成** 
   - リポジトリの「Issues」タブから新規Issueを作成
   - タスクの詳細、目的、期待される結果を明確に記述

2. **ブランチの作成** 
   作成したIssueからGUI上でbranchを作成してください
   - 命名規則:
     - 新機能追加: `feature/[機能名]`
     - バグ修正/改善: `fix/[修正内容]`

3. **開発作業** 
   GUI上で作成したbranchをローカルにfetchします
   ```bash
   git fetch origin
   git checkout [branch名]
   ```
   - コードの実装
   - ユニットテストの作成・実行

4. **変更内容のコミットとプッシュ**
   blackとisortをコミット前に実行
   ```bash
   isort .
   black .
   git add .
   git commit -m "commit message"
   git push origin [branch名]
   ```

6. **プルリクエスト(PR)の作成** 
   - GitHub上で「Compare & pull request」ボタンをクリック
   - PRの説明を記入する

7. **コードレビュー** 
   - PjMがコードをチェック
   - フィードバックがある場合は修正を行い、再度プッシュ

8. **マージと後処理** 
   - レビュー承認後、GUI上で`develop`ブランチにマージ
   - GUI上で作業ブランチの削除

> 💡 **Tip**: 常に`develop`ブランチの最新状態を維持するよう心がけましょう。作業開始前に以下のコマンドを実行することをおすすめします:
> ```bash
> git checkout develop
> git pull origin develop
> git switch [branch名]
> git merge —no-ff develop
> ```

## 📂 ディレクトリ構造

```
root/
├── .github/
│   └── workflows/           # CI/CDワークフロー定義
│       └── pysen-python-app.yaml
├── data/                    # データ関連ファイル (Gitで管理されません)
│   ├── models/              # 学習済みモデル (.pth等)
│   ├── preprocessed/        # 前処理済みデータ (CSV等)
│   ├── raw/                 # 生データ (提供されたExcel等)
│   └── results/             # 解析結果
├── work/                    # プロジェクトのメインコード
│   ├── example/             # デモやサンプルコード
│   ├── experiments/         # 実験用コード
│   ├── src/                 # 共通ライブラリやユーティリティ
│   └── tests/               # テストコード
├── .env.dev.template        # 開発環境変数テンプレート
├── .gitignore               # Git除外設定
├── Dockerfile               # Dockerイメージ定義
├── README.md                # プロジェクト説明 (本ファイル)
├── docker-compose.yml       # Docker Compose設定
├── entrypoint.sh            # Dockerエントリーポイントスクリプト
├── poetry.lock              # 依存関係ロックファイル
├── pyproject.toml           # Poetryプロジェクト設定
└── LICENSE                  # ライセンス情報
```

### 主要ディレクトリの説明

#### `work/`
- **example/**: クリーンなデモ用コード、Spaces用スクリプトなど
- **experiments/**: 実験的コードや一時的なスクリプト
- **src/**: プロジェクト共通の基本クラスやユーティリティ
- **tests/**: 単体テストコード

#### `data/`
- **models/**: 学習済みモデル(.pthファイルなど)
- **preprocessed/**: 前処理済みデータ(CSVやテキストファイル)
- **raw/**: 元データ(提供されたExcelファイルなど)
- **results/**: 各タスクの出力結果

> ⚠️ 注意: `data/`ディレクトリの内容はGitで管理されません。dataディレクトリからdata.zipファイルに圧縮しgoogledriveにて保管してください。


## VSCode上での作業(Dev container)
vscode上でdocker環境で作業する方法に[Dev container]という拡張機能があるのでご紹介します

### 前提条件

以下のツールがインストールされていることを確認してください:

- ✅ [Visual Studio Code](https://code.visualstudio.com/)
- ✅ [Docker Desktop](https://www.docker.com/products/docker-desktop) (起動済みであること)

### 🔧 セットアップ手順

#### 1️⃣ 拡張機能のインストール

<details>
<summary>詳細手順を表示</summary>

1. VSCodeを開く
2. 左サイドバーの拡張機能アイコン(🧩)をクリック(または `Ctrl+Shift+X` / `Cmd+Shift+X`3. 検索バーに "Remote Development" と入力
4. 表示された拡張機能をインストール
![説明画像](https://github.com/user-attachments/assets/286afaf7-c755-47c5-a4e4-b7241aafaaa5)
</details>

#### 2️⃣ プロジェクトを開く

<details>
<summary>詳細手順を表示</summary>

1. VSCodeで開発したいプロジェクトのフォルダを開く(`File > Open Folder`</details>

#### 3️⃣ Dev Containerの設定

<details>
<summary>詳細手順を表示</summary>

1. コマンドパレットを開く(`Ctrl+Shift+P` または `Cmd+Shift+P`2. "Dev containers:Add Dev Containers Configuration Files..." と入力し選択
3. プロジェクトに適したテンプレートを選択(例:Python, Node.js など)
![説明画像](https://github.com/user-attachments/assets/05911c98-8ed6-41ea-818f-329033b4d348)
</details>

#### 4️⃣ Dev Container内でプロジェクトを再オープン

<details>
<summary>詳細手順を表示</summary>

1. コマンドパレットを再度開く
2. "Dev-Containers: Reopen in Container" を選択
3. VSCodeがコンテナをビルドし、プロジェクトを開くのを待つ
![説明画像](https://github.com/user-attachments/assets/6a0c3c46-f267-4936-b2a7-a5fac0cf2fe5)
</details>

#### 5️⃣ 開発開始

- 🎉 コンテナ内でVSCodeが起動したら、開発を開始できます
- 💻 ターミナルも自動的にコンテナ内で動作します

🔗 詳細情報は[公式VSCode Dev Containersドキュメント](https://code.visualstudio.com/docs/remote/containers)をご覧ください。

## Huggingface Spacesの設定
以下の設定を書き換えてくささい