🛡️
🛡️ SafeTalk開発環境構築ガイド(macOS M4対応)
はじめに
SafeTalkは、AI駆動型デジタルケア・対応プラットフォームです。サイバーいじめや憎悪表現をリアルタイムで検知し、被害者に感情的支援を提供するサービスを開発しています。
日本のAI新卒採用を目指すポートフォリオプロジェクトとして、最新の技術スタックを活用した実用的なWebアプリケーションの構築過程を記録しています。
プロジェクト概要
主要機能
- リアルタイム感情分析: 日本語特化BERTモデルによる高精度分析
- GPTベースメンタルケアチャットボット: 24時間365日の匿名相談サービス
- プライバシー優先設計: ゼロトラストデータ処理方式
技術スタック
バックエンド
- FastAPI 0.104+ (Python 3.11)
- PostgreSQL 15 + Redis 7
- OpenAI GPT-4 API
- Transformers(日本語BERT)
- MeCab(日本語形態素解析)
フロントエンド
- Next.js 14 + TypeScript 5.0+
- TailwindCSS + shadcn/ui
- i18next(多言語対応)
DevOps
- Docker + Docker Compose
- GitHub Actions(CI/CD)
開発環境構築(macOS M4基準)
事前準備
この記事では、macOS M4(Apple Silicon)環境での開発環境構築を想定しています。Intel Macの場合は一部コマンドが異なる可能性があります。
ステップ1: 必須ツールのインストール
Homebrewのインストール
# Homebrewインストール
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# PATH設定(M4チップ用)
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
source ~/.zshrc
# インストール確認
brew --version
Node.js & Pythonのインストール
# Node.js 18+ インストール(LTS版)
brew install node
# Python 3.11 インストール(安定性重視)
brew install python@3.11
# バージョン確認
node --version # v20.x.x以上
npm --version # v10.x.x以上
python3.11 --version # Python 3.11.x
Git設定
# Gitユーザー情報設定
git config --global user.name "your-username"
git config --global user.email "your-email@example.com"
# デフォルトブランチをmainに設定
git config --global init.defaultBranch main
ステップ2: Dockerのインストールと設定
Docker Desktop for Mac(Apple Silicon)のインストール
# 手動インストール
# https://desktop.docker.com/mac/main/arm64/Docker.dmg
# またはHomebrew Caskでインストール
brew install --cask docker
# Dockerアプリケーション起動
open /Applications/Docker.app
Docker設定の最適化
Docker Desktop起動後、以下の設定を行います:
-
Settings → General
- "Use Rosetta for x86/amd64 emulation on Apple Silicon" のチェックを外す(性能最適化)
-
Resources → Advanced
- Memory: 8GB
- CPU: 4個 割り当て
Docker動作確認
# Dockerバージョン確認
docker --version
# Docker version 24.x.x
docker-compose --version
# Docker Compose version v2.x.x
# テストコンテナ実行
docker run hello-world
ステップ3: SafeTalkプロジェクト設定
リポジトリクローンと基本設定
# プロジェクトディレクトリに移動
cd ~/Developer # または任意の作業ディレクトリ
# SafeTalkクローン
git clone https://github.com/hyeon-marina/SafeTalk.git
cd SafeTalk
# 環境変数ファイル作成
cp .env.example .env
環境変数設定(.envファイル編集)
# VS Codeで.envファイル編集
code .env
# またはnanoエディタ使用
nano .env
.envファイルの内容(実際の値に変更が必要):
# Database
DATABASE_URL=postgresql://user:password@localhost:5432/safetalk
REDIS_URL=redis://localhost:6379
# OpenAI API(https://platform.openai.com/api-keys で取得)
OPENAI_API_KEY=sk-proj-your_openai_api_key_here
# LINE API(https://developers.line.biz/ で取得)
LINE_CHANNEL_ACCESS_TOKEN=your_line_channel_access_token
LINE_CHANNEL_SECRET=your_line_channel_secret
# Security
SECRET_KEY=your_very_secure_secret_key_here_minimum_32_characters
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30
# Development
DEBUG=true
LOG_LEVEL=debug
# macOS M4最適化
PYTHONPATH=/opt/homebrew/lib/python3.11/site-packages
ステップ4: データベースサービス起動
Docker ComposeでPostgreSQL & Redis実行
# バックグラウンドでデータベースサービス実行
docker-compose up -d
# サービス状態確認
docker-compose ps
# ログ確認
docker-compose logs postgres
docker-compose logs redis
正常実行確認
# PostgreSQL接続テスト
docker exec -it safetalk-postgres-1 psql -U user -d safetalk -c "SELECT version();"
# Redis接続テスト
docker exec -it safetalk-redis-1 redis-cli ping
# PONG が返れば成功
ステップ5: バックエンド開発環境設定
Python仮想環境作成と依存関係インストール
cd backend
# Python仮想環境作成(M4最適化)
python3.11 -m venv venv
# 仮想環境アクティベート
source venv/bin/activate
# pip更新
pip install --upgrade pip
# 依存関係インストール
pip install -r requirements.txt
FastAPIサーバー実行
# FastAPIサーバー実行
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
# 実行成功時の出力例:
# INFO: Will watch for changes in these directories: ['/path/to/SafeTalk/backend']
# INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
ステップ6: 日本語NLP環境設定
MeCabインストール(日本語形態素解析)
# MeCab本体とIPAdic(基本辞書)をインストール
brew install mecab mecab-ipadic
# Python MeCabバインディングインストール
cd backend
source venv/bin/activate
pip install mecab-python3
# インストール確認
python -c "import MeCab; print('MeCab installed successfully')"
PyTorch & Transformersセットアップ
# PyTorchインストール(M4最適化版)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
# Transformersとその他AI/MLライブラリ
pip install transformers datasets tokenizers
# PyTorch MPS(Metal Performance Shaders)対応確認
python -c "import torch; print(f'PyTorch: {torch.__version__}, MPS available: {torch.backends.mps.is_available()}')"
開発ワークフロー
開発開始時
# SafeTalkディレクトリに移動
cd ~/Developer/SafeTalk
# Dockerサービス再起動
docker-compose up -d
# バックエンドサーバー実行(新しいターミナル)
cd backend
source venv/bin/activate
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
# フロントエンドサーバー実行(別のターミナル、後で)
cd frontend
npm run dev
アクセスURL
- APIサーバー: http://localhost:8000
- API文書: http://localhost:8000/docs
- フロントエンド: http://localhost:3000(後で実装)
開発終了時
# SafeTalkプロジェクトディレクトリで
cd ~/Developer/SafeTalk
# 全コンテナ停止(データは保持)
docker-compose stop
# または完全終了(コンテナ削除、ボリュームは保持)
docker-compose down
macOS M4最適化のコツ
環境変数最適化
# Node.jsメモリ最適化
export NODE_OPTIONS="--max-old-space-size=8192"
# Pythonコンパイル最適化
export ARCHFLAGS="-arch arm64"
export CPPFLAGS="-I/opt/homebrew/include"
export LDFLAGS="-L/opt/homebrew/lib"
# .zshrcに追加して永続化
echo 'export NODE_OPTIONS="--max-old-space-size=8192"' >> ~/.zshrc
echo 'export ARCHFLAGS="-arch arm64"' >> ~/.zshrc
source ~/.zshrc
Docker M4対応
# docker-compose.yml
version: '3.8'
services:
postgres:
image: postgres:15
platform: linux/arm64/v8 # M4最適化
environment:
POSTGRES_DB: safetalk
POSTGRES_USER: user
POSTGRES_PASSWORD: password
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
redis:
image: redis:7-alpine
platform: linux/arm64/v8 # M4最適化
ports:
- "6379:6379"
volumes:
- redis_data:/data
volumes:
postgres_data:
redis_data:
主要コマンド一覧
Docker管理
# 開始
docker-compose up -d
# 停止
docker-compose stop
# 状態確認
docker-compose ps
# ログ確認
docker-compose logs <service-name>
バックエンド開発
# 仮想環境アクティベート
source venv/bin/activate
# サーバー実行
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
# 依存関係更新
pip install -r requirements.txt
トラブルシューティング
よくある問題と解決方法
1. Dockerコンテナが起動しない
# Docker Desktopが起動しているか確認
docker info
# ポート競合確認
lsof -i :5432 # PostgreSQL
lsof -i :6379 # Redis
# コンテナとボリュームを完全削除して再構築
docker-compose down -v
docker-compose up -d
2. Python依存関係インストールエラー
# Xcode Command Line Toolsインストール
xcode-select --install
# 仮想環境再作成
rm -rf venv
python3.11 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
3. MeCabインストールエラー
# Homebrewアップデート
brew update && brew upgrade
# MeCab関連の再インストール
brew uninstall mecab mecab-ipadic
brew install mecab mecab-ipadic
# Python MeCabバインディング再インストール
pip uninstall mecab-python3
pip install mecab-python3
次のステップ
開発環境構築が完了したら、以下の順序で開発を進めていきます:
-
感情分析APIの実装
- 日本語BERTモデルの統合
- RESTful API エンドポイントの作成
-
GPTチャットボットの開発
- OpenAI API統合
- 対話履歴管理システム
-
フロントエンドの構築
- Next.js 14 App Routerセットアップ
- UI/UXデザイン実装
-
LINE API連携
- Webhook設定
- メッセージ処理ロジック
まとめ
この記事では、macOS M4環境でのSafeTalk開発環境構築手順を詳しく解説しました。Apple Siliconの特性を活かした最適化設定により、効率的な開発環境を構築できます。
次回は、FastAPIを使った感情分析API の実装について詳しく解説する予定です。
Discussion