「elpis(エルピス)」は、ギリシャ神話において希望や期待を象徴する女神です。パンドラの箱の神話では、あらゆる災厄が解き放たれた後、最後に箱の中に残ったのが「エルピス(希望)」でした。この神話は、逆境の中でも希望を持つことの重要性を伝えています。
企業では、プロジェクト名にギリシャ神話から名前を付けることがあります。本プロジェクトでもその慣例に従い、正式名称ではありませんが、暫定的に「elpis」と名付けています。
elpisプロジェクトの全体像や技術的な背景を理解するためには、以下のドキュメントを事前に確認しておくことをおすすめします。
- Go 1.22以上
- Python 3.10以上
- uvの導入が必要
- Node.js 22以上
- Docker / Docker Compose
-
リポジトリをクローンします。
git clone git@github.com:kajiLabTeam/elpis_manager.git cd elpis_manager
-
必要な依存関係をインストールします。
cd ./manager && go mod download cd ../echo && go mod download
Docker Composeを使用して、すべてのサービスをバックグラウンドで起動します。
make up
サービスの状態を確認するには:
docker compose ps
すべてのサービスを停止するには:
make down
ローカル環境で各サービスを個別に起動します。
-
データベースの起動
データベースサービスのみを起動します。
make db-up
-
プロキシサービスの起動
別のターミナルで、プロキシサービスをローカルで起動します。
make run-proxy
-
マネージャーサービスの起動
別のターミナルで、マネージャーサービスをローカルで起動します。
make run-manager
-
推定モデルサービスの起動
別のターミナルで、推定モデルサービスをローカルで起動します。
make run-est-model
-
推定APIサービスの起動
別のターミナルで、推定APIサービスをローカルで起動します。
make run-est-api
-
サービスの停止
関連するボリュームを削除します。
make db-down
本プロジェクトには、API仕様を確認・テストするためのSwagger UI、Swagger Editor、およびSwagger APIサービスが含まれています。現在はManagerのAPI状況を確認できます。
Swagger UIを使用してAPIドキュメントを閲覧できます。
-
Swagger UIサービスの起動
Docker Composeでサービスを起動している場合、
make up
コマンドで自動的に起動します。 -
Swagger UIにアクセス
ブラウザで以下のURLにアクセスしてください。
http://localhost:8002
これにより、
openapi.yaml
ファイルに基づいたAPIドキュメントが表示されます。
Swagger Editorを使用して、OpenAPI仕様を編集・確認できます。
-
Swagger Editorサービスの起動
Docker Composeでサービスを起動している場合、
make up
コマンドで自動的に起動します。 -
Swagger Editorにアクセス
ブラウザで以下のURLにアクセスしてください。
http://localhost:8001
openapi.yaml
ファイルを編集・保存すると、変更内容がリアルタイムで反映されます。
Swagger APIを使用して、モックサーバーを立ち上げてAPIの挙動をテストできます。
-
Swagger APIサービスの起動
Docker Composeでサービスを起動している場合、
make up
コマンドで自動的に起動します。 -
Swagger APIにアクセス
モックサーバーは以下のURLで稼働しています。
http://localhost:8003
このエンドポイントに対してAPIリクエストを送信すると、
openapi.yaml
に基づいたレスポンスが返されます。
FastAPIを使用した推定APIサービスは、自動的にOpenAPIドキュメントを生成し、Swagger UIを提供しています。これにより、APIのエンドポイントやリクエスト・レスポンスの詳細を確認できます。
-
推定APIサービスの起動
Docker Composeでサービスを起動している場合、
make up
コマンドで自動的に起動します。ローカルで起動している場合は、以下のコマンドを使用します。make run-est-api
-
Swagger UIにアクセス
ブラウザで以下のURLにアクセスしてください。
http://localhost:8101/docs
これにより、推定APIのSwagger UIが表示されます。
-
Redocによるドキュメントの閲覧
FastAPIはRedocもサポートしています。以下のURLでアクセスできます。
http://localhost:8101/redoc
こちらからもAPIドキュメントを閲覧できます。
-
OpenAPIスキーマの取得
OpenAPI仕様そのものを取得したい場合は、以下のURLからJSON形式でダウンロードできます。
http://localhost:8101/openapi.json
プロジェクトには、各サービスのエンドツーエンドテスト用のシェルスクリプトが用意されています。以下のMakeコマンドを使用してテストを実行できます。
-
個別のテストを実行
-
推定APIのテスト
make run-test-est-api
-
マネージャーサービスのテスト
make run-test-manager
-
プロキシサービスのテスト
make run-test-proxy
-
ウェブサービスのテスト
make run-test-web
-
-
サービスの再起動
全サービスを再起動するには:
make restart
-
特定のサービスを再起動
-
マネージャーサービスのみを再起動:
make restart-manager
-
プロキシサービスのみを再起動:
make restart-proxy
-
推定APIサービスのみを再起動:
make restart-est-api
-
-
Dockerイメージのビルド
make build
-
クリーンアップ
すべてのサービスを停止し、コンテナ、ネットワーク、ボリュームを削除します。
make clean
推定サーバにはPythonを使った機械学習モデルを採用しています。以下のリンクからuv
を導入してください。
-
推定APIサービスのローカル起動
make run-est-api
利用可能なすべてのMakeコマンドを確認するには:
make help
現状のelpisプロジェクトは、GPLv3ライセンスの下で公開されています。ライセンスの詳細については、LICENSEファイルを参照してください。