# 🚀 Almondo PoC Template このリポジトリは、PoCプロジェクトのための包括的なテンプレートです。本READMEでは、プロジェクトのセットアップから開発プロセス、ディレクトリ構造まで、詳細かつ分かりやすく説明します。 ## 📑 目次 - [🚀 Almondo PoC Template](#-almondo-poc-template) - [📑 目次](#-目次) - [🛠 セットアップ](#-セットアップ) - [前提条件](#前提条件) - [セットアップ手順](#セットアップ手順) - [Dockerの基本操作](#dockerの基本操作) - [パッケージの管理](#パッケージの管理) - [🔄 開発の手順](#-開発の手順) - [開発フロー](#開発フロー) - [📂 ディレクトリ構造](#-ディレクトリ構造) - [主要ディレクトリの説明](#主要ディレクトリの説明) - [`work/`](#work) - [`data/`](#data) - [`work/` ディレクトリ](#work-ディレクトリ) - [`example/`](#example) - [`experiments/`](#experiments) - [`src/`](#src) - [`tests/`](#tests) - [`data/` ディレクトリ](#data-ディレクトリ) - [`models/`](#models) - [`preprocessed/`](#preprocessed) - [`raw/`](#raw) - [`results/`](#results) - [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️⃣-開発開始) ## 🛠 セットアップ #### 前提条件 - 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 exec -it [container_id] bash` | 実行中のコンテナに接続 | | `docker-compose down` | コンテナを停止し削除 | ### パッケージの管理 Poetryを使用してパッケージを管理します。 - **パッケージの追加**: ```bash poetry add [パッケージ名] ``` 特定のバージョンを指定する場合: ```bash poetry add [パッケージ名]=[バージョン] ``` - **パッケージの削除**: ```bash poetry remove [パッケージ名] ``` > 📝 パッケージの追加や削除を行った後は、必ず変更をコミットしてください。 ## 🔄 開発の手順 本プロジェクトでは、効率的かつ体系的な開発を行うため、Issue driven開発手法を採用しています。 > 📚 詳細は[Issue driven運用のドキュメント](https://www.notion.so/Issue-driven-5378336f66c243f7933b52a15ce15ee7?p=9b275fa3a5e841eea11133f900a80499&pm=s)をご参照ください。 ### 開発フロー 1. **Issueの作成** - リポジトリの「Issues」タブから新規Issueを作成 - タスクの詳細、目的、期待される結果を明確に記述 2. **ブランチの作成** 作成したIssueからGUI上でbranchを作成してください - 命名規則: - 新機能追加: `feature/[機能名]` - バグ修正/改善: `fix/[修正内容]` 3. **開発作業** GUI上で作成したbranchをローカルにfetchします ```bash git fetch origin git checkout [branch名] ``` - コードの実装 - ユニットテストの作成・実行 4. **変更内容のコミットとプッシュ** ```bash git add . git commit -m "commit message" git push origin [branch名] ``` 5. **プルリクエスト(PR)の作成** - GitHub上で「Compare & pull request」ボタンをクリック - PRの説明を記入する 6. **コードレビュー** - PjMがコードをチェック - フィードバックがある場合は修正を行い、再度プッシュ 7. **マージと後処理** - レビュー承認後、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/**: 各タスクの出力結果 ### `work/` ディレクトリ `work/` ディレクトリは、プロジェクトの主要なコードベースを含みます。各サブディレクトリの詳細は以下の通りです: #### `example/` - **目的**: デモンストレーションやサンプルコードの保管 - **内容**: - クリーンで理解しやすいコード例 - Hugging Face Spacesのデモスクリプト - クライアントへの提示用コードサンプル #### `experiments/` - **目的**: 実験的なコードや一時的なスクリプトの保管 - **内容**: - 新しいアルゴリズムの試験実装 - パラメータチューニングスクリプト - プロジェクト固有のプロンプトやコンフィグ #### `src/` - **目的**: 再利用可能な共通コンポーネントの保管 - **内容**: - プロジェクト間で共有できる基本クラス - ユーティリティ関数 - データ処理パイプライン #### `tests/` - **目的**: 単体テストとその関連ファイルの保管 - **内容**: - 各モジュールの単体テスト ### `data/` ディレクトリ `data/` ディレクトリは、プロジェクトで使用する様々なデータを保管します。 #### `models/` - **目的**: 学習済みモデルの保存 - **内容**: - PyTorchモデル(.pthファイル) - TensorFlowモデル(.h5ファイル) - その他の機械学習モデル #### `preprocessed/` - **目的**: 前処理済みデータの保存 - **内容**: - クリーニング済みCSVファイル - トークン化されたテキストファイル - 正規化された数値データ #### `raw/` - **目的**: 元データの保管 - **内容**: - クライアントから提供された元のExcelファイル - ウェブスクレイピングで取得した生データ - 未処理のログファイル #### `results/` - **目的**: 分析結果や出力データの保存 - **内容**: - モデルの予測結果 - 統計分析のレポート - 生成されたグラフや図表 > ⚠️ 注意: `data/`ディレクトリの内容はGitで管理されません。重要なデータは別途バックアップを取ってください。 ## 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. 表示された拡張機能をインストール </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 など) </details> #### 4️⃣ Dev Container内でプロジェクトを再オープン <details> <summary>詳細手順を表示</summary> 1. コマンドパレットを再度開く 2. "Dev-Containers: Reopen in Container" を選択 3. VSCodeがコンテナをビルドし、プロジェクトを開くのを待つ </details> #### 5️⃣ 開発開始 - 🎉 コンテナ内でVSCodeが起動したら、開発を開始できます - 💻 ターミナルも自動的にコンテナ内で動作します 🔗 詳細情報は[公式VSCode Dev Containersドキュメント](https://code.visualstudio.com/docs/remote/containers)をご覧ください。