pannman commited on
Commit
57a637a
·
1 Parent(s): f35c522

update README

Browse files
Files changed (1) hide show
  1. README.md +308 -150
README.md CHANGED
@@ -1,176 +1,334 @@
1
- # Almondo-PoC-Template
2
 
3
- PoC 用のテンプレートリポジトリです。
4
- 本READMEは以下の構成で作成されています。
5
- 1. セットアップ
6
- 2. ディレクトリ構造
7
 
8
- ## セットアップ
9
- ------------------
10
- #### 前提
11
 
12
- - docker のインストール
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
 
14
  #### セットアップ手順
15
- 1. git cloneを行う
16
- * 本リポジトリの右上にあるCodeボタンからリポジトリのurlを取得
17
- ```bash
18
- git clone [repositry url]
19
- ```
20
- 2. デフォルトブランチの確認
21
- * develop ブランチになっているかどうか
22
- ```bash
23
- git branch
24
- ```
25
- * 以下のようにdevelopに印がついていたら問題ない
26
- ```bash
27
- * develop
28
- main
29
- ```
30
- 3. .env.dev を作成する
31
- * env.dev.templeteがあるので,それを複製して作成する
32
 
33
- 4. コンテナを起動する
34
- * 初回のみbuildが実行される
35
- ```bash
36
- docker-compose run development bash
37
- ```
38
 
39
- 5. poetry でパッケージをインストールする
40
- * 以下のコードにてdocker container上に必要なパッケージがインストールされる。
 
 
 
 
 
 
 
41
 
42
- ```
43
- poetry install
44
- ```
45
- #### dockerの基本操作
46
- 起動中のコンテナの確認
47
- ```
48
- docker ps
49
- ```
50
- 起動中のコンテナに入る
51
- ```
52
- docker exec -it [container id] bash
53
- ```
54
- 起動中のコンテナを落とす
55
- ```
56
- docker-compose down
57
- ```
58
- #### パッケージの追加削除
59
- パッケージの追加
60
- * パッケージ名にバージョンを指定することで,バージョンのアップグレード及びダウングレードができます
61
- ```
62
- poetry add [パッケージ名]
63
- ```
64
- パッケージの削除
65
- ```
66
- poetry remove [パッケージ名]
67
- ```
68
 
69
- #### VScode上での作業
 
 
 
 
70
 
 
 
 
 
 
71
 
 
72
 
73
- ## 開発の手順
74
- Issue driven開発手法での開発をしていただきます。
75
- 詳細は以下ページに記載してあります
76
- - Issue driven運用のドキュメント
77
- https://www.notion.so/Issue-driven-5378336f66c243f7933b52a15ce15ee7?p=9b275fa3a5e841eea11133f900a80499&pm=s
78
 
79
- Issue driven開発の大まかな手順は以下の8つです.
80
 
81
- 1. **Issueを作成**
82
- - 本ページの画面上部にあるIssuesから作成してください
83
- 2. **ブランチを切る**
84
- - brach名は以下の2つの規則に従ってください
85
- - feature/~~~~~
86
- - 新規機能の追加などの際に使用するブランチ
87
- - fix/~~~~~
88
- - 様々な改修や、バグ修正を行うブランチ
89
- 3. **2で切ったブランチで作業**
90
- ```
91
- git fetch origin
92
- git checkout branch名
93
- ```
94
 
95
- 1. **作業内容をpush**
96
- 変更内容をaddする前に,必ず以下のコマンドを実行し,最新のmainブランチの内容を反映させてください.
 
 
 
 
 
 
97
 
98
- ※最新のmainの内容が反映されていない場合,プルリクエストをマージする際にコンフリクトが発生する可能性があります.
99
- 基本的なpushまでの流れ
 
 
100
 
101
- addをします
102
- ```bash
103
- git add file名
104
- ```
105
- commitをします
106
 
107
- ```bash
108
- git commit -m "commit message"
109
- ```
110
 
111
- 最後に以下のコマンドでpushをします.
112
 
113
- ```bash
114
- git push
115
- ```
116
- 1. **プルリクエストの作成**
117
- 本画面の上部に「Compare & pull request」と表示されるのでそれをクリックしてプルリクエストを作成してください
118
- 2. **プルリクエストをレビュー(レビュワーが担当)**
119
- 作成されたPRからPjMがレビューを行います
120
- 3. **mainブランチにマージをして,作業ブランチを削除する**
121
-   レビュー内容を確認し問題がなければ,developブランチにマージをして作業ブランチを削除してください
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
122
 
 
 
 
 
 
 
 
 
 
123
 
124
- ## ディレクトリ構造
125
- ------------------
126
- 主なディレクトリ構造
127
  ```
128
  root/
129
  ├── .github/
130
- │ └── workflows/ # CI/CDワークフロー定義
131
- │ └── pysen-python-app.yaml # データモデル
132
- ├── data/ # プロジェクトドキュメント
133
- │ ├── models/ # データモデル
134
- │ ├── preprocessed/ # ビジネスロジック
135
- └── raw/ # ユーティリティ関数
136
- │ └── results/
137
- ├── work/ # ソースコード
138
- │ ├── example/ # データモデル
139
- │ ├── experiments/ # ビジネスロジック
140
- └── src/ # ユーティリティ���数
141
- │ └── tests/ # ユーティリティ関数
142
- ├── .env.dev.template # 開発環境変数テンプレート
143
- ├── .gitignore # Gitが無視するファイル設定
144
- ├── Dockerfile # Dockerイメージ定義
145
- ├── README.md # プロジェクト説明(本ファイル)
146
- ├── docker-compose.yml # Docker Compose設定
147
- ├── entrypoint.sh # Docker Compose設定
148
- ├── poetry.lock # Poetryプロジェクト設定
149
- ├── pyproject.toml # Poetryプロジェクト設定
150
- └── LICENSE # ライセンス情報
151
  ```
152
- ### work
153
- #### exmaple
154
- - 先方にコードの実行例を見せるときやデモ等の共有の際に必要な綺麗なコードをまとめる場所
155
- - spacesのデモ等
156
- #### experiments
157
- - 実行コード置き場
158
- - 基本的な実験的なコードはここに置く
159
- - 種々の実験はここで行う
160
- - promptのようなプロジェクトに依存するものはこちら
161
- #### src
162
- - プロジェクトごとに使いまわせるようなやつプロジェクトに依存しない基本クラス
163
- - クラス化されたsrc code 置き場
164
- - 各コードに共通する基本クラスはここ
165
- #### tests
166
- * 単体テストを置くフォルダ
167
- ### dataフォルダ
168
- githubには上がらないようになっていますが以下の構成で分けてください
169
- #### model
170
- (モデル保存場所、tuningしたpthファイルなど)
171
- #### preprocessed
172
- (前処理済みデータ,csvやtextファイルなど)
173
- #### raw
174
- 生データ保管場所(先方から提供されたexcelファイルなど)
175
- #### results
176
- (結果保存場所、各タスクごとの出力結果保存)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 🚀 Almondo PoC Template
2
 
3
+ このリポジトリは、PoCプロジェクトのための包括的なテンプレートです。本READMEでは、プロジェクトのセットアップから開発プロセス、ディレクトリ構造まで、詳細かつ分かりやすく説明します。
 
 
 
4
 
5
+ ## 📑 目次
 
 
6
 
7
+ - [🚀 Almondo PoC Template](#-almondo-poc-template)
8
+ - [📑 目次](#-目次)
9
+ - [🛠 セットアップ](#-セットアップ)
10
+ - [前提条件](#前提条件)
11
+ - [セットアップ手順](#セットアップ手順)
12
+ - [Dockerの基本操作](#dockerの基本操作)
13
+ - [パッケージの管理](#パッケージの管理)
14
+ - [🔄 開発の手順](#-開発の手順)
15
+ - [開発フロー](#開発フロー)
16
+ - [📂 ディレクトリ構造](#-ディレクトリ構造)
17
+ - [主要ディレクトリの説明](#主要ディレクトリの説明)
18
+ - [`work/`](#work)
19
+ - [`data/`](#data)
20
+ - [`work/` ディレクトリ](#work-ディレクトリ)
21
+ - [`example/`](#example)
22
+ - [`experiments/`](#experiments)
23
+ - [`src/`](#src)
24
+ - [`tests/`](#tests)
25
+ - [`data/` ディレクトリ](#data-ディレクトリ)
26
+ - [`models/`](#models)
27
+ - [`preprocessed/`](#preprocessed)
28
+ - [`raw/`](#raw)
29
+ - [`results/`](#results)
30
+ - [VSCode上での作業(Dev container)](#vscode上での作業dev-container)
31
+ - [前提条件](#前提条件-1)
32
+ - [🔧 セットアップ手順](#-セットアップ手順)
33
+ - [1️⃣ 拡張機能のインストール](#1️⃣-拡張機能のインストール)
34
+ - [2️⃣ プロジェクトを開く](#2️⃣-プロジェクトを開く)
35
+ - [3️⃣ Dev Containerの設定](#3️⃣-dev-containerの設定)
36
+ - [4️⃣ Dev Container内でプロジェクトを再オープン](#4️⃣-dev-container内でプロジェクトを再オープン)
37
+ - [5️⃣ 開発開始](#5️⃣-開発開始)
38
+
39
+
40
+ ## 🛠 セットアップ
41
+
42
+ #### 前提条件
43
+
44
+ - git,dockerのインストール
45
 
46
  #### セットアップ手順
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
 
48
+ 1. **リポジトリのクローン**
49
+ ```bash
50
+ git clone [リポジトリのurl]
51
+ cd [ディレクトリ名]
52
+ ```
53
 
54
+ 2. **デフォルトブランチの確認**
55
+ ```bash
56
+ git branch
57
+ ```
58
+ > 💡 `develop`ブランチがアクティブであることを確認してください。
59
+ ```
60
+ * develop
61
+ main
62
+ ```
63
 
64
+ 3. **環境設定ファイルの作成**
65
+ ```bash
66
+ cp .env.dev.template .env.dev
67
+ ```
68
+ > ⚠️ `.env.dev`ファイルを編集し、必要な環境変数を設定してください。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69
 
70
+ 4. **Dockerコンテナの起動**
71
+ ```bash
72
+ docker-compose run development bash
73
+ ```
74
+ > 🔔 初回実行時はイメージのビルドが行われるため、時間がかかる場合があります。
75
 
76
+ 5. **パッケージのインストール**
77
+ ```bash
78
+ poetry install
79
+ ```
80
+ > 📘 これにより、`pyproject.toml`に定義された全ての依存パッケージがインストールされます。
81
 
82
+ ### Dockerの基本操作
83
 
84
+ | コマンド | 説明 |
85
+ |---------|------|
86
+ | `docker ps` | 実行中のコンテナ一覧を表示 |
87
+ | `docker exec -it [container_id] bash` | 実行中のコンテナに接続 |
88
+ | `docker-compose down` | コンテナを停止し削除 |
89
 
90
+ ### パッケージの管理
91
 
92
+ Poetryを使用してパッケージを管理します。
 
 
 
 
 
 
 
 
 
 
 
 
93
 
94
+ - **パッケージの追加**:
95
+ ```bash
96
+ poetry add [パッケージ名]
97
+ ```
98
+ 特定のバージョンを指定する場合:
99
+ ```bash
100
+ poetry add [パッケージ名]=[バージョン]
101
+ ```
102
 
103
+ - **パッケージの削除**:
104
+ ```bash
105
+ poetry remove [パッケージ名]
106
+ ```
107
 
108
+ > 📝 パッケージの追加や削除を行った後は、必ず変更をコミットしてください。
 
 
 
 
109
 
110
+ ## 🔄 開発の手順
 
 
111
 
112
+ 本プロジェクトでは、効率的かつ体系的な開発を行うため、Issue driven開発手法を採用しています。
113
 
114
+ > 📚 詳細は[Issue driven運用のドキュメント](https://www.notion.so/Issue-driven-5378336f66c243f7933b52a15ce15ee7?p=9b275fa3a5e841eea11133f900a80499&pm=s)をご参照ください。
115
+
116
+ ### 開発フロー
117
+
118
+ 1. **Issueの作成**
119
+ - リポジトリの「Issues」タブから新規Issueを作成
120
+ - タスクの詳細、目的、期待される結果を明確に記述
121
+
122
+ 2. **ブランチの作成**
123
+ 作成したIssueからGUI上でbranchを作成してください
124
+ - 命名規則:
125
+ - 新機能追加: `feature/[機能名]`
126
+ - バグ修正/改善: `fix/[修正内容]`
127
+
128
+ 3. **開発作業**
129
+ GUI上で作成したbranchをローカルにfetchします
130
+ ```bash
131
+ git fetch origin
132
+ git checkout [branch名]
133
+ ```
134
+ - コードの実装
135
+ - ユニットテストの作成・実行
136
+
137
+ 4. **変更内容のコミットとプッシュ**
138
+ ```bash
139
+ git add .
140
+ git commit -m "commit message"
141
+ git push origin [branch名]
142
+ ```
143
+
144
+ 5. **プルリクエスト(PR)の作成**
145
+ - GitHub上で「Compare & pull request」ボタンをクリック
146
+ - PRの説明を記入する
147
+
148
+ 6. **コードレビュー**
149
+ - PjMがコードをチェック
150
+ - フィードバックがある場合は修正を行い、再度プッシュ
151
+
152
+ 7. **マージと後処理**
153
+ - レビュー承認後、GUI上で`develop`ブランチにマージ
154
+ - GUI上で作業ブランチの削除
155
 
156
+ > 💡 **Tip**: 常に`develop`ブランチの最新状態を維持するよう心がけましょう。作業開始前に以下のコマンドを実行することをおすすめします:
157
+ > ```bash
158
+ > git checkout develop
159
+ > git pull origin develop
160
+ > git switch [branch名]
161
+ > git merge —no-ff develop
162
+ > ```
163
+
164
+ ## 📂 ディレクトリ構造
165
 
 
 
 
166
  ```
167
  root/
168
  ├── .github/
169
+ │ └── workflows/ # CI/CDワークフロー定義
170
+ │ └── pysen-python-app.yaml
171
+ ├── data/ # データ関連ファイル (Gitで管理されません)
172
+ │ ├── models/ # 学習済みモデル (.pth等)
173
+ │ ├── preprocessed/ # 前処理済みデータ (CSV等)
174
+ ├── raw/ # 生データ (提供されたExcel等)
175
+ │ └── results/ # 解析結果
176
+ ├── work/ # プロジェクトのメインコード
177
+ │ ├── example/ # デモやサンプルコード
178
+ │ ├── experiments/ # 実験用コード
179
+ ├── src/ # 共通ライブラリやユーティリティ
180
+ │ └── tests/ # テストコード
181
+ ├── .env.dev.template # 開発環境変数テンプレート
182
+ ├── .gitignore # Git除外設定
183
+ ├── Dockerfile # Dockerイメージ定義
184
+ ├── README.md # プロジェクト説明 (本ファイル)
185
+ ├── docker-compose.yml # Docker Compose設定
186
+ ├── entrypoint.sh # Dockerエントリーポイントスクリプト
187
+ ├── poetry.lock # 依存関係ロックファイル
188
+ ├── pyproject.toml # Poetryプロジェクト設定
189
+ └── LICENSE # ライセンス情報
190
  ```
191
+
192
+ ### 主要ディレクトリの説明
193
+
194
+ #### `work/`
195
+ - **example/**: クリーンなデモ用コード、Spaces用スクリプトなど
196
+ - **experiments/**: 実験的コードや一時的なスクリプト
197
+ - **src/**: プロジェクト共通の基本クラスやユーティリティ
198
+ - **tests/**: 単体テストコード
199
+
200
+ #### `data/`
201
+ - **models/**: 学習済みモデル(.pthファイルなど)
202
+ - **preprocessed/**: 前処理済みデータ(CSVやテキストファイル)
203
+ - **raw/**: 元データ(提供されたExcelファイルなど)
204
+ - **results/**: 各タスクの出力結果
205
+
206
+
207
+
208
+ ### `work/` ディレクトリ
209
+
210
+ `work/` ディレクトリは、プロジェクトの主要なコードベースを含みます。各サブディレクトリの詳細は以下の通りです:
211
+
212
+ #### `example/`
213
+ - **目的**: デモンストレーションやサンプルコードの保管
214
+ - **内容**:
215
+ - クリーンで理解しやすいコード例
216
+ - Hugging Face Spacesのデモスクリプト
217
+ - クライアントへの提示用コードサンプル
218
+
219
+ #### `experiments/`
220
+ - **目的**: 実験的なコードや一時的なスクリプトの保管
221
+ - **内容**:
222
+ - 新しいアルゴリズムの試験実装
223
+ - パラメータチューニングスクリプト
224
+ - プロジェクト固有のプロンプトやコンフィグ
225
+
226
+ #### `src/`
227
+ - **目的**: 再利用可能な共通コンポーネントの保管
228
+ - **内容**:
229
+ - プロジェクト間で共有できる基本クラス
230
+ - ユーティリティ関数
231
+ - データ処理パイプライン
232
+
233
+ #### `tests/`
234
+ - **目的**: 単体テストとその関連ファイルの保管
235
+ - **内容**:
236
+ - 各モジュールの単体テスト
237
+
238
+ ### `data/` ディレクトリ
239
+
240
+ `data/` ディレクトリは、プロジェクトで使用する様々なデータ��保管します。
241
+ #### `models/`
242
+ - **目的**: 学習済みモデルの保存
243
+ - **内容**:
244
+ - PyTorchモデル(.pthファイル)
245
+ - TensorFlowモデル(.h5ファイル)
246
+ - その他の機械学習モデル
247
+
248
+ #### `preprocessed/`
249
+ - **目的**: 前処理済みデータの保存
250
+ - **内容**:
251
+ - クリーニング済みCSVファイル
252
+ - トークン化されたテキストファイル
253
+ - 正規化された数値データ
254
+
255
+ #### `raw/`
256
+ - **目的**: 元データの保管
257
+ - **内容**:
258
+ - クライアントから提供された元のExcelファイル
259
+ - ウェブスクレイピングで取得した生データ
260
+ - 未処理のログファイル
261
+
262
+ #### `results/`
263
+ - **目的**: 分析結果や出力データの保存
264
+ - **内容**:
265
+ - モデルの予測結果
266
+ - 統計分析のレポート
267
+ - 生成されたグラフや図表
268
+
269
+ > ⚠️ 注意: `data/`ディレクトリの内容はGitで管理されません。重要なデータは別途バックアップを取ってください。
270
+
271
+
272
+ ### VSCode上での作業(Dev container)
273
+ vscode上でdocker環境で作業する方法に[Dev container]という拡張機能があるのでご紹介します
274
+
275
+ #### 前提条件
276
+
277
+ 以下のツールがインストールされていることを確認してください:
278
+
279
+ - ✅ [Visual Studio Code](https://code.visualstudio.com/)
280
+ - ✅ [Docker Desktop](https://www.docker.com/products/docker-desktop) (起動済みであること)
281
+
282
+ #### 🔧 セットアップ手順
283
+
284
+ ##### 1️⃣ 拡張機能のインストール
285
+
286
+ <details>
287
+ <summary>詳細手順を表示</summary>
288
+
289
+ 1. VSCodeを開く
290
+ 2. 左サイドバーの拡張機能アイコン(🧩)をクリック(または `Ctrl+Shift+X` / `Cmd+Shift+X`)
291
+ 3. 検索バーに "Remote Development" と入力
292
+ 4. 表示された拡張機能をインストール
293
+
294
+ </details>
295
+
296
+ ##### 2️⃣ プロジェクトを開く
297
+
298
+ <details>
299
+ <summary>詳細手順を表示</summary>
300
+
301
+ 1. VSCodeで開発したいプロジェクトのフォルダを開く(`File > Open Folder`)
302
+
303
+ </details>
304
+
305
+ ##### 3️⃣ Dev Containerの設定
306
+
307
+ <details>
308
+ <summary>詳細手順を表示</summary>
309
+
310
+ 1. コマンドパレットを開く(`Ctrl+Shift+P` または `Cmd+Shift+P`)
311
+ 2. "Dev containers:Add Dev Containers Configuration Files..." と入力し選択
312
+ 3. プロジェクトに適したテンプレートを選択(例:Python, Node.js など)
313
+
314
+ </details>
315
+
316
+ ##### 4️⃣ Dev Container内でプロジェクトを再オープン
317
+
318
+ <details>
319
+ <summary>詳細手順を表示</summary>
320
+
321
+ 1. コマンドパレットを再度開く
322
+ 2. "Dev-Containers: Reopen in Container" を選択
323
+ 3. VSCodeがコンテナをビルドし、プロジェクトを開くのを待つ
324
+
325
+ </details>
326
+
327
+ ##### 5️⃣ 開発開始
328
+
329
+ - 🎉 コンテナ内でVSCodeが起動したら、開発を開始できます
330
+ - 💻 ターミナルも自動的にコンテナ内で動作します
331
+
332
+
333
+ 🔗 詳細情報は[公式VSCode Dev Containersドキュメント](https://code.visualstudio.com/docs/remote/containers)をご覧ください。
334
+