Skip to content

kajiLabTeam/elpis_manager

Repository files navigation

「elpis(エルピス)」は、ギリシャ神話において希望や期待を象徴する女神です。パンドラの箱の神話では、あらゆる災厄が解き放たれた後、最後に箱の中に残ったのが「エルピス(希望)」でした。この神話は、逆境の中でも希望を持つことの重要性を伝えています。

企業では、プロジェクト名にギリシャ神話から名前を付けることがあります。本プロジェクトでもその慣例に従い、正式名称ではありませんが、暫定的に「elpis」と名付けています。

インストールの前に

elpisプロジェクトの全体像や技術的な背景を理解するためには、以下のドキュメントを事前に確認しておくことをおすすめします。

必要条件

  • Go 1.22以上
  • Python 3.10以上
    • uvの導入が必要
  • Node.js 22以上
  • Docker / Docker Compose

インストール

  1. リポジトリをクローンします。

    git clone git@github.com:kajiLabTeam/elpis_manager.git
    cd elpis_manager
  2. 必要な依存関係をインストールします。

    cd ./manager && go mod download
    cd ../echo && go mod download

使い方

サーバーの起動方法

方法1: Docker Composeで立ち上げる

Docker Composeを使用して、すべてのサービスをバックグラウンドで起動します。

make up

サービスの状態を確認するには:

docker compose ps

すべてのサービスを停止するには:

make down

方法2: ローカル環境で立ち上げる

ローカル環境で各サービスを個別に起動します。

  1. データベースの起動

    データベースサービスのみを起動します。

    make db-up
  2. プロキシサービスの起動

    別のターミナルで、プロキシサービスをローカルで起動します。

    make run-proxy
  3. マネージャーサービスの起動

    別のターミナルで、マネージャーサービスをローカルで起動します。

    make run-manager
  4. 推定モデルサービスの起動

    別のターミナルで、推定モデルサービスをローカルで起動します。

    make run-est-model
  5. 推定APIサービスの起動

    別のターミナルで、推定APIサービスをローカルで起動します。

    make run-est-api
  6. サービスの停止

    関連するボリュームを削除します。

    make db-down

OpenAPIの参照方法

本プロジェクトには、API仕様を確認・テストするためのSwagger UI、Swagger Editor、およびSwagger APIサービスが含まれています。現在はManagerのAPI状況を確認できます。

Swagger UIの使用

Swagger UIを使用してAPIドキュメントを閲覧できます。

  1. Swagger UIサービスの起動

    Docker Composeでサービスを起動している場合、make upコマンドで自動的に起動します。

  2. Swagger UIにアクセス

    ブラウザで以下のURLにアクセスしてください。

    http://localhost:8002
    

    これにより、openapi.yamlファイルに基づいたAPIドキュメントが表示されます。

Swagger Editorの使用

Swagger Editorを使用して、OpenAPI仕様を編集・確認できます。

  1. Swagger Editorサービスの起動

    Docker Composeでサービスを起動している場合、make upコマンドで自動的に起動します。

  2. Swagger Editorにアクセス

    ブラウザで以下のURLにアクセスしてください。

    http://localhost:8001
    

    openapi.yamlファイルを編集・保存すると、変更内容がリアルタイムで反映されます。

Swagger APIの使用

Swagger APIを使用して、モックサーバーを立ち上げてAPIの挙動をテストできます。

  1. Swagger APIサービスの起動

    Docker Composeでサービスを起動している場合、make upコマンドで自動的に起動します。

  2. Swagger APIにアクセス

    モックサーバーは以下のURLで稼働しています。

    http://localhost:8003
    

    このエンドポイントに対してAPIリクエストを送信すると、openapi.yamlに基づいたレスポンスが返されます。

FastAPIのOpenAPIドキュメントの参照

FastAPIを使用した推定APIサービスは、自動的にOpenAPIドキュメントを生成し、Swagger UIを提供しています。これにより、APIのエンドポイントやリクエスト・レスポンスの詳細を確認できます。

  1. 推定APIサービスの起動

    Docker Composeでサービスを起動している場合、make upコマンドで自動的に起動します。ローカルで起動している場合は、以下のコマンドを使用します。

    make run-est-api
  2. Swagger UIにアクセス

    ブラウザで以下のURLにアクセスしてください。

    http://localhost:8101/docs
    

    これにより、推定APIのSwagger UIが表示されます。

  3. Redocによるドキュメントの閲覧

    FastAPIはRedocもサポートしています。以下のURLでアクセスできます。

    http://localhost:8101/redoc
    

    こちらからもAPIドキュメントを閲覧できます。

  4. 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)

推定サーバにはPythonを使った機械学習モデルを採用しています。以下のリンクからuvを導入してください。

uvの導入ガイド

  • 推定APIサービスのローカル起動

    make run-est-api

ヘルプの表示

利用可能なすべてのMakeコマンドを確認するには:

make help

ライセンス

現状のelpisプロジェクトは、GPLv3ライセンスの下で公開されています。ライセンスの詳細については、LICENSEファイルを参照してください。

About

No description or website provided.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published