安野たかひろ：都知事選マニフェスト ローカル開発環境構築ガイド【初心者向け完全解説】

## はじめに

こんにちは！この記事では、「安野たかひろ：都知事選マニフェスト」プロジェクトのローカル開発環境を構築する方法を、初心者の方にも分かりやすく解説します。

このプロジェクトは、政策提案を効率的に管理・分析するためのシステムです。GitHubやPython、そしてQdrantというデータベースを使用しています。難しそうに聞こえるかもしれませんが、一つ一つ丁寧に説明していきますので、ご安心ください。

まずは、なぜローカル開発環境が必要なのか、簡単に説明しましょう。

### ローカル開発環境の重要性

ローカル開発環境とは、自分のパソコン上でプロジェクトを動かせるようにすることです。これには以下のようなメリットがあります：

1. 自由に実験できる：誰にも迷惑をかけずに、新しいアイデアを試せます。
2. 素早く作業できる：インターネットに接続していなくても開発を進められます。
3. デバッグが簡単：問題が起きたときに、すぐに原因を特定しやすくなります。

では、実際の環境構築に進みましょう！

## 前提条件：必要なソフトウェア

まずは、開発に必要なソフトウェアをインストールします。心配しないでください。一つずつ丁寧に説明していきます。

### Gitのインストール

Gitは、プログラムのバージョン管理システムです。チームでの開発や、変更履歴の管理に便利です。

![file](https://hamaruki.com/wp-content/uploads/2024/07/image-1720090930432.png)

1. [Git公式サイト](https://git-scm.com/downloads)にアクセスします。
2. お使いのOSに合わせてインストーラーをダウンロードします。
3. ダウンロードしたインストーラーを実行し、指示に従ってインストールします。

### Pythonのインストール

Pythonは、このプロジェクトで使用するプログラミング言語です。

![file](https://hamaruki.com/wp-content/uploads/2024/07/image-1720090958135.png)

1. [Miniconda公式サイト](https://docs.conda.io/en/latest/miniconda.html)にアクセスします。
2. お使いのOSに合わせてインストーラーをダウンロードします。
3. ダウンロードしたインストーラーを実行し、指示に従ってインストールします。


>Minicondaを選んだ理由は、必要最小限のツールが含まれているため、初心者の方でも扱いやすいからです。

### インストールの確認

ソフトウェアが正しくインストールされたか確認しましょう。

1. コマンドプロンプト（Windowsの場合）またはターミナル（MacやLinuxの場合）を開きます。
2. 以下のコマンドを順番に入力し、それぞれのバージョン情報が表示されることを確認します。

```
git --version
python --version
pip --version
```

![file](https://hamaruki.com/wp-content/uploads/2024/07/image-1720090985046.png)

これらのコマンドが正常に動作すれば、準備完了です！次のステップに進みましょう。

## GitHubリポジトリの準備

次は、プロジェクトのコードをあなたのパソコンにダウンロードします。この作業を「クローン」と呼びます。

### GitHubアカウントの作成

まだGitHubアカウントをお持ちでない場合は、以下の手順で作成しましょう。

1. [GitHub公式サイト](https://github.com/)にアクセスします。
2. 「Sign up」ボタンをクリックし、指示に従ってアカウントを作成します。

### リポジトリのフォーク

「フォーク」とは、他の人のプロジェクトのコピーを自分のGitHubアカウントに作成することです。

![file](https://hamaruki.com/wp-content/uploads/2024/07/image-1720091049808.png)

1. ブラウザで[プロジェクトのGitHubページ](https://github.com/takahiroanno2024/election2024)を開きます。
2. 右上の「Fork」ボタンをクリックします。
3. 必要に応じて設定を変更し、「Create fork」をクリックします。

これで、プロジェクトのコピーがあなたのGitHubアカウントに作成されました。

### リポジトリのクローン

次に、フォークしたリポジトリをあなたのパソコンにダウンロード（クローン）します。

![file](https://hamaruki.com/wp-content/uploads/2024/07/image-1720091098147.png)

1. フォークしたリポジトリのページで、緑色の「Code」ボタンをクリックします。
2. HTTPSのURLをコピーします。
3. コマンドプロンプトまたはターミナルを開きます。
4. 以下のコマンドを実行します（`yourusername`は自分のGitHubユーザー名に置き換えてください）：

```
git clone https://github.com/yourusername/election2024.git
```

5. クローンが完了したら、プロジェクトのディレクトリに移動します：

```
cd election2024
```

おめでとうございます！これでプロジェクトのコードがあなたのパソコンにダウンロードされました。

![file](https://hamaruki.com/wp-content/uploads/2024/07/image-1720091135977.png)


## 開発環境のセットアップ

プロジェクトのコードをダウンロードしたので、次は開発環境を整えていきます。

### プロジェクトディレクトリの構造を理解する

まず、プロジェクトのフォルダ構造を確認しましょう。重要なのは`.github/scripts/`ディレクトリです。ここに主要なスクリプトファイルが格納されています。

1. コマンドプロンプトまたはターミナルで、以下のコマンドを実行してください：

```
cd .github/scripts/
```

>このディレクトリには、プロジェクトの中心となるPythonスクリプトが含まれています。これらのスクリプトが、政策提案の管理や分析を行います。

### 仮想環境の作成（オプション）

プロジェクトごとに独立した環境を作ることで、他のプロジェクトとの競合を防ぐことができます。これは必須ではありませんが、おすすめの方法です。

1. 以下のコマンドを実行して、新しい仮想環境を作成します：

```
python -m venv election2024_env
```

2. 作成した仮想環境を有効にします：

Windowsの場合：
```
election2024_env\Scripts\activate
```

MacやLinuxの場合：
```
source election2024_env/bin/activate
```


>仮想環境を有効にすると、コマンドプロンプトやターミナルの先頭に`(election2024_env)`のような表示が追加されます。これは仮想環境が正しく動作している証拠です。

## 環境変数の設定

プロジェクトでは、セキュリティのために重要な情報を環境変数として管理しています。これらの設定を行いましょう。

### 環境変数ファイルの準備

1. `.github/scripts/`ディレクトリにいることを確認してから、以下のコマンドを実行します：

```
cp .env.example .env
```

このコマンドは、サンプルの環境変数ファイル(`.env.example`)をコピーして新しい`.env`ファイルを作成します。

### 環境変数の編集

1. テキストエディタ（メモ帳やVSCodeなど）で`.env`ファイルを開きます。
2. 以下の環境変数を適切な値で設定します：

- `QD_API_KEY`: QdrantのAPIキー
- `OPENAI_API_KEY`: OpenAIのAPIキー
- `QD_URL`: QdrantのURL
- `GITHUB_EVENT_ISSUE_NUMBER`: デバッグ用のIssue番号
- `GITHUB_REPOSITORY`: あなたのGitHubリポジトリ（例：`username/repo`）
- `GITHUB_TOKEN`: GitHubの個人アクセストークン

>これらの値は個人情報やAPIキーを含む機密情報です。絶対に公開したり、他人と共有したりしないでください。

### GitHubトークンの取得方法

GitHubトークンは、プログラムがGitHubの機能を使用するための「鍵」のようなものです。以下の手順で取得できます：

1. GitHubにログインします。
2. 右上のプロフィールアイコンをクリックし、「Settings」を選択します。
3. 左側のメニューから「Developer settings」をクリックします。

![file](https://hamaruki.com/wp-content/uploads/2024/07/image-1720091372498.png)

4. 「Personal access tokens」を選択し、「Generate new token」をクリックします。
5. トークンに適切な権限を付与し、「Generate token」をクリックします。
6. 表示されたトークンをコピーし、`.env`ファイルの`GITHUB_TOKEN`に設定します。


>このトークンは一度しか表示されません。必ず安全な場所に保存してください。

## Qdrantデータベースの初期化

Qdrantは、このプロジェクトで使用する特殊なデータベースです。テキストデータを数値（ベクトル）に変換して保存し、高速に検索できるようにします。

### Qdrantの概要

Qdrantは以下のような特徴を持っています：

- テキストデータ（この場合、政策提案）を数値化して保存します。
- 似ている政策を素早く見つけることができます。
- カテゴリ別に政策をフィルタリングできます。

### QdrantのAPIキーとURLの取得


1. [Qdrantのウェブサイト](https://qdrant.tech/)にアクセスし、アカウントを作成またはログインします。

![file](https://hamaruki.com/wp-content/uploads/2024/07/image-1720091534172.png)


2. ダッシュボードから新しいクラスター（データベースのこと）を作成します。
   - 無料プランを選択すると、開発用の小規模なクラスターを利用できます。

![file](https://hamaruki.com/wp-content/uploads/2024/07/image-1720091611660.png)

![file](https://hamaruki.com/wp-content/uploads/2024/07/image-1720091693371.png)

   - 以下の情報をメモします：
   		- `QD_API_KEY`: 「API Key」の値

3. クラスターが作成されたら、「Cluster Details」セクションを探します。

![file](https://hamaruki.com/wp-content/uploads/2024/07/image-1720092841191.png)

4. 以下の情報をメモします：
   - `QD_URL`: 「Cluster URL」の値
5. これらの値を`.env`ファイルの対応する箇所に設定します。


## 必要なライブラリのインストール

プロジェクトで使用している外部ライブラリ（追加の機能を提供するコード）をインストールします。

### requirements.txtファイルの確認

1. `.github/`ディレクトリにいることを確認します。不確かな場合は、以下のコマンドで移動できます：

```
cd .github/
```

2. `requirements.txt`ファイルが存在することを確認します。このファイルには、プロジェクトに必要なライブラリの一覧が記載されています。

### ライブラリのインストール

1. 以下のコマンドを実行して、必要なライブラリをすべてインストールします：

```
pip install -r requirements.txt
```

>このコマンドは、`requirements.txt`ファイルに記載されているすべてのライブラリを自動的にインストールします。

2. インストールが完了するまで待ちます。インターネット接続の速度によっては、数分かかる場合があります。

3. インストールが成功したら、以下のようなメッセージが表示されます：

```
Successfully installed [ライブラリ名] [バージョン]
```

>もし特定のライブラリのインストールでエラーが発生した場合は、エラーメッセージをよく読んで対処してください。多くの場合、不足している依存関係やバージョンの競合が原因です。

これで、プロジェクトに必要なすべてのライブラリがインストールされました。次は、実際にスクリプトを実行してデバッグを行います。



## Qdrantの初期化

Qdrantを使用する前に、適切なコレクション（データを格納する場所）を作成し初期化する必要があります。

1. `.github/developer/`ディレクトリに移動します：

```
cd .github/developer/
```

2. `initialize_qdrant_collection.py`スクリプトを実行します：

```
python initialize_qdrant_collection.py
```

![file](https://hamaruki.com/wp-content/uploads/2024/07/image-1720092962169.png)

<blockquote class="twitter-tweet" data-media-max-width="800"><p lang="ja" dir="ltr">qdrantの初期化スクリプトの確認動画<a href="https://twitter.com/hashtag/TOKYOAI?src=hash&amp;ref_src=twsrc%5Etfw">#TOKYOAI</a> <a href="https://t.co/BFXg6xymnO">https://t.co/BFXg6xymnO</a> <a href="https://t.co/h13l7sDy8u">pic.twitter.com/h13l7sDy8u</a></p>&mdash; Maki@Sunwood AI Labs. (@hAru_mAki_ch) <a href="https://twitter.com/hAru_mAki_ch/status/1808834282720538690?ref_src=twsrc%5Etfw">July 4, 2024</a></blockquote> 

このスクリプトは以下の操作を行います：
- Qdrantサーバーに接続します。
- 既存のコレクションの一覧を表示します。
- "issue_collection"という名前の新しいコレクションを作成します（まだ存在しない場合）。
- 作成されたコレクションの詳細情報を取得します。

3. スクリプトの出力を確認し、以下の点に注意してください：
   - APIキーが正しく読み込まれているか（最初と最後の5文字が表示されます）
   - Qdrantサーバーに正常に接続できているか
   - "issue_collection"が正常に作成されたか、または既に存在しているか
   - エラーメッセージが表示された場合は、エラーの内容を確認し対処してください


>初期化が成功すると、Qdrantコレクションが利用可能になり、プロジェクトで使用できるようになります。

![file](https://hamaruki.com/wp-content/uploads/2024/07/image-1720092985520.png)

## デバッグの実行方法

デバッグとは、プログラムの動作を確認し、問題があればそれを特定して修正するプロセスです。ここでは、プロジェクトのメインスクリプトを実行してデバッグを行います。

### デバッグスクリプトの実行

1. `.github/scripts/`ディレクトリにいることを確認します。

2. 以下のコマンドを実行して、`review_issue.py`スクリプトを起動します：

```
python review_issue.py
```

3. スクリプトが実行され、コンソールに様々な情報が表示されます。

<blockquote class="twitter-tweet" data-media-max-width="800"><p lang="ja" dir="ltr">解説記事記載用のスクリプトのデバッグ確認動画<a href="https://twitter.com/hashtag/TOKYOAI?src=hash&amp;ref_src=twsrc%5Etfw">#TOKYOAI</a> <a href="https://t.co/0aRBLc6NtE">https://t.co/0aRBLc6NtE</a> <a href="https://t.co/oAUonm2A3D">pic.twitter.com/oAUonm2A3D</a></p>&mdash; Maki@Sunwood AI Labs. (@hAru_mAki_ch) <a href="https://twitter.com/hAru_mAki_ch/status/1808837884725899361?ref_src=twsrc%5Etfw">July 4, 2024</a></blockquote> 

### 出力の確認

スクリプトの実行中、以下のような情報が表示されます：

- 環境変数の読み込み状況
- GitHubへの接続状況
- Qdrantデータベースへの接続状況
- Issueの処理状況
- エラーや警告メッセージ（ある場合）

### デバッグのポイント

1. **エラーメッセージの確認**: エラーが発生した場合、そのメッセージを注意深く読みましょう。多くの場合、問題の原因や解決のヒントが含まれています。

2. **ログの確認**: スクリプトの実行中に表示される情報（ログ）を確認します。これらは、プログラムの動作を理解する上で重要です。

3. **段階的な確認**: スクリプトが複数の処理を行っている場合、どの段階でエラーが発生しているかを特定することが重要です。

4. **環境変数の再確認**: 接続エラーなどが発生した場合、`.env`ファイルの設定が正しいか再確認してください。


>デバッグ中に分からないことがあれば、エラーメッセージやログの内容をインターネットで検索してみましょう。多くの場合、似たような問題に遭遇した人の解決策が見つかります。

## テスト用Issueの作成と活用

実際のGitHub Issueを使ってテストすることで、より現実的な動作確認ができます。ここでは、テスト用Issueの作成方法と活用方法を説明します。

### テスト用Issueの作成

1. ブラウザでGitHubのプロジェクトページを開きます。
2. 「Issues」タブをクリックします。
3. 「New issue」ボタンをクリックします。
4. タイトルと本文を入力します。例えば：
   - タイトル：「テスト用Issue：政策提案A」
   - 本文：「これはテスト用のIssueです。政策提案Aの内容をここに記述します。」
5. 「Submit new issue」ボタンをクリックして、Issueを作成します。

### Issue番号の確認

1. 作成したIssueのページを開きます。
2. URLを確認し、最後の数字をメモします。これがIssue番号です。
   例：`https://github.com/yourusername/election2024/issues/1` の場合、Issue番号は「1」です。

### 環境変数の更新

1. `.env`ファイルを開きます。
2. `GITHUB_EVENT_ISSUE_NUMBER`の値を、メモしたIssue番号に更新します。

```
GITHUB_EVENT_ISSUE_NUMBER=1
```

### テストの実行

1. コマンドプロンプトまたはターミナルで、`.github/scripts/`ディレクトリに移動します。
2. 以下のコマンドを実行します：

```
python review_issue.py
```

3. スクリプトの実行が完了したら、GitHubのIssueページを確認します。
4. Issueにコメントが追加されているか、ラベルが付与されているかなど、期待通りの動作をしているか確認します。


>テスト用のIssueを作成する際は、実際の運用環境に影響を与えないよう注意してください。テスト後は、不要なIssueを閉じるか削除することをおすすめします。

## まとめと次のステップ

お疲れさまでした！これで「安野たかひろ：都知事選マニフェスト」プロジェクトのローカル開発環境の構築が完了しました。ここまでの作業で、以下のことができるようになりました：

1. 必要なソフトウェアのインストール
2. GitHubリポジトリのクローン
3. 開発環境のセットアップ
4. 環境変数の設定
5. Qdrantデータベースの初期化
6. 必要なライブラリのインストール
7. デバッグの実行
8. テスト用Issueの作成と活用

### 次のステップ

1. **コードの理解**: `review_issue.py`やその他のスクリプトの内容を詳しく読み、プロジェクトの仕組みを理解しましょう。

2. **機能の拡張**: 新しい機能を追加したり、既存の機能を改善したりすることで、プロジェクトに貢献できます。

3. **ドキュメントの改善**: README.mdファイルやその他のドキュメントを更新し、他の開発者がプロジェクトを理解しやすくすることも重要です。

4. **テストの作成**: 自動化されたテストを作成することで、プロジェクトの品質を維持しやすくなります。

5. **コミュニティへの参加**: GitHubのIssuesやDiscussionsを通じて、他の開発者と交流し、アイデアを共有しましょう。

### 注意事項

- 常にセキュリティに注意し、機密情報を誤って公開しないよう気をつけてください。
- 定期的にリポジトリの更新をチェックし、最新の状態を保つことをおすすめします。
- 問題が発生した場合は、このガイドのトラブルシューティングセクションを参照するか、プロジェクトの管理者に連絡してサポートを受けてください。


>プログラミングの学習は継続的なプロセスです。分からないことがあれば、遠慮なく質問したり、調べたりすることが大切です。失敗を恐れず、楽しみながら開発に取り組んでください！

このプロジェクトを通じて、実践的なプログラミングスキルを身につけながら、政治や政策提案のプロセスについても学ぶことができます。頑張ってください！




<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>