这是indexloc提供的服务,不要输入任何密码
Skip to content

Sunwood-ai-labs/AMATERASU

Repository files navigation

GitHub Repo GitHub release License

エンタープライズグレードのプライベートAIプラットフォーム (v1.19.0)

Important

このリポジトリはSourceSageを活用しており、リリースノートやREADME、コミットメッセージの9割はSourceSageclaude.aiで生成しています。

Note

AMATERASUはMOAの後継プロジェクトです。各AIサービスを独立したEC2インスタンス上でDocker Composeを用いて実行し、Terraformで簡単にデプロイできるように進化させました。

🚀 プロジェクト概要

AMATERASUは、エンタープライズグレードのプライベートAIプラットフォームです。AWS BedrockとGoogle Vertex AIをベースに構築されており、セキュアでスケーラブルな環境でLLMを活用したアプリケーションを開発・運用できます。GitLabとの統合により、バージョン管理、CI/CDパイプライン、プロジェクト管理を効率化します。 v1.19.0では、Terraformによるインフラ構成管理の柔軟性と保守性が大幅に向上しました。具体的には、Terraform変数の追加、出力の追加、モジュール化、既存リソースのインポートスクリプト作成などを行いました。また、WAFの設定追加、ECSの設定追加、スケジューリング機能の追加など、セキュリティと運用性の向上に重点を置いたアップデートが含まれています。さらに、Dockerイメージの最適化、UIの改良、エラーハンドリングの強化なども行っています。

このリポジトリは、複数のAI関連プロジェクトを管理するための「呪文書(Spellbook)」として構成されています。各プロジェクトは、特定のAIサービスや機能をデプロイ・管理するための独立したフォルダとして構造化されています。

✨ 主な機能

セキュアな基盤

  • AWS BedrockとGoogle Vertex AIベースの安全なLLM基盤
  • 完全クローズド環境での運用
  • エンタープライズグレードのセキュリティ

マイクロサービスアーキテクチャ

  • 独立したサービスコンポーネント
  • コンテナベースのデプロイメント
  • 柔軟なスケーリング

Infrastructure as Code

  • Terraformによる完全自動化されたデプロイ
  • 環境ごとの設定管理
  • バージョン管理された構成

GitLab統合

  • バージョン管理、CI/CDパイプライン、プロジェクト管理機能の向上
  • セルフホスト型GitLabインスタンスの統合
  • LLMを用いたマージリクエスト分析
  • GitLab Webhookを用いた自動ラベル付け

プロジェクト探索機能

  • Terraformプロジェクトの自動検出とterraform.tfvarsファイルの生成
  • amaterasuコマンドラインツールによる簡素化された設定

🏗️ システムアーキテクチャ

graph TB
    subgraph "AWS Cloud"
        subgraph "Application Layer"
            subgraph "EC2-based Services"
                OW["Open WebUI<br/>チャットインターフェース"]
                LL["LiteLLM Proxy<br/>APIプロキシ"]
                LF["Langfuse<br/>モニタリング"]
                GL["GitLab<br/>バージョン管理"]
                CD["Coder<br/>クラウド開発環境"]
            end
            
            subgraph "Fargate-based Service"
                PP["Prompt Pandora<br/>プロンプト生成支援"]
                ECS["ECS Fargate Cluster"]
            end
        end
        
        subgraph "Infrastructure Layer"
            CF["CloudFront"]
            WAF["WAF"]
            R53["Route 53"]
        end
        
        subgraph "AWS Services"
            Bedrock["AWS Bedrock<br/>LLMサービス"]
            IAM["IAM<br/>認証・認可"]
        end
        
        OW --> CF
        LL --> CF
        LF --> CF
        GL --> CF
        CD --> CF
        PP --> ECS
        
        CF --> WAF
        WAF --> R53
        
        EC2 --> Bedrock
        ECS --> Bedrock
        EC2 --> IAM
        ECS --> IAM
    end
Loading

📦 コンポーネント構成

1. Open WebUI (フロントエンド)

  • チャットベースのユーザーインターフェース
  • レスポンシブデザイン
  • プロンプトテンプレート管理

2. LiteLLM (APIプロキシ)

  • Claude-3系列モデルへの統一的なアクセス
  • Google Vertex AIモデルへのアクセス
  • APIキー管理とレート制限

3. Langfuse (モニタリング)

  • 使用状況の追跡
  • コスト分析
  • パフォーマンスモニタリング

4. GitLab (バージョン管理)

  • セルフホストGitLabインスタンス
  • プロジェクトとコード管理
  • CIパイプラインとRunner設定
  • バックアップと復元機能

5. FG-prompt-pandora (Fargate版サンプルアプリケーション)

  • AWS Fargateでの自動スケーリング
  • Claude-3.5-Sonnetを活用したプロンプト生成
  • Streamlitベースの直感的UI

6. Coder (クラウド開発環境)

  • WebベースのIDE環境
  • VS Code拡張機能のサポート
  • AWSインフラストラクチャ上でのセキュアな開発

7. Dify (AIアプリケーション開発プラットフォーム)

  • 様々なAIモデルを統合したアプリケーション開発プラットフォーム
  • UI/APIベースの開発が可能

8. Dify Beta (AIアプリケーション開発プラットフォーム)

  • 新機能と実験的な機能を含むDifyのベータ版
  • ベクトルデータベースとサンドボックス環境の高度な設定が可能

9. Open WebUI Pipeline

  • Open WebUIとの連携を強化するパイプライン機能
  • 会話ターン制限やLangfuse連携などのフィルター処理が可能

10. Amaterasu Tool (Terraform 変数ジェネレーター)

  • コマンドラインツールでterraform.tfvarsファイルの生成を自動化
  • spellbook の各プロジェクトを対象に設定値を生成
  • 詳細はこちら

🆕 最新情報

AMATERASU v1.19.0 (最新のリリース)

  • 🎉 Terraform変数の追加: AWSリージョン、プロジェクト名、VPC設定、EC2インスタンス設定、アプリケーション設定、WAF設定などを柔軟に設定可能になりました。
  • 🎉 Terraform出力の追加: CloudFront, ECS, セキュリティグループに関する情報を取得可能になりました。
  • 🎉 WAF(Web Application Firewall)の設定追加: CloudFrontを保護するWAF Web ACLを作成し、IPホワイトリストによるアクセス制限を設定しました。
  • 🎉 セキュリティグループの設定追加: ECSタスクとALB間の通信を許可するセキュリティグループを作成しました。
  • 🎉 アプリケーションのスケジューリング設定の追加: Auto Scaling Targetを使用して、ECSサービスのDesiredCountを調整し、平日朝8時(JST)に起動、平日夜10時(JST)に停止するスケジュールを設定しました。
  • 🎉 IAM(Identity and Access Management)の設定追加: ECSインスタンスプロファイル、ECSタスクロール、ECS実行ロールを作成し、必要なポリシーをアタッチしました。
  • 🎉 ECS(Elastic Container Service)の設定追加: ECSクラスタ、タスク定義、サービスを作成し、CloudWatch LogsとALBと連携するように設定しました。
  • 🎉 EC2インスタンス、AutoScalingの設定追加: ECSタスクを実行するためのEC2インスタンスを起動する設定を追加し、Auto Scaling Groupを利用してインスタンス数を管理します。
  • 🎉 CloudFrontの設定追加: ALBをオリジンとするCloudFront Distributionの設定を追加しました。
  • 🎉 ALB(Application Load Balancer)の設定追加: ALB、リスナー、ターゲットグループ、セキュリティグループを作成し、ALBはHTTPトラフィックをECSサービスに転送するように構成されています。
  • 🎉 アニメーション付きヘッダー画像の追加: アプリケーションのヘッダーとしてアニメーション付きSVG画像を追加しました。
  • 🎉 UIの改良とエラーハンドリングの強化: Streamlitを使用して、ユーザーフレンドリーなインターフェースを作成し、エラーハンドリングを強化しました。
  • 🎉 既存AWSリソースのTerraform stateへのインポートスクリプト作成: 既存のAWSリソースをTerraform stateにインポートするスクリプトを作成しました。
  • 🎉 AWS ECSへのデプロイスクリプト作成: AWS ECSクラスタとサービスにDockerイメージをデプロイするスクリプトを作成しました。
  • 🎉 Dockerイメージの最適化とヘルスチェックの追加: Python 3.11-slimイメージをベースとしてイメージサイズを削減し、ヘルスチェックコマンドを追加しました。
  • 🚀 Terraform構成のモジュール化と変数化: 全体構成をモジュール化し、各モジュールの変数を定義しました。
  • 🚀 READMEファイルの更新: アプリケーションの概要、機能、環境構築方法、使用方法、デバッグ情報、AWS ECS Fargateへのデプロイ手順などを詳細に記述しました。
  • 🚀 docker-compose.ymlの修正とヘルスチェックの設定: docker-compose.ymlの設定を修正し、ポートマッピングとヘルスチェックを正しく設定しました。
  • 🚀 CoderイメージのPython, Node.jsインストールとコードサーバー設定の改善: Python3とpip, Node.jsとnpmをインストールし、Python3をデフォルトのPythonとして設定しました。
  • 🚀 依存関係の更新と追加: Streamlit、OpenAI、requestsライブラリを最新バージョンに更新し、dnspythonライブラリを追加しました。
  • 🐛 docker-compose.yml のポート修正: ClickHouseのポート9000をコメントアウトしました。
  • ⚠️ ALB関連のリソースの削除: グローバルアクセラレータとALBを用いたロードバランシング構成から、CloudFrontを利用した構成へ移行しました。

🔧 使用方法

各コンポーネントの使用方法については、それぞれのREADMEファイルを参照してください。 amaterasuコマンドラインツールの使用方法については、spellbook/amaterasu-tool-ui/README.mdを参照ください。

📦 インストール手順

  1. リポジトリをクローンします。
git clone https://github.com/Sunwood-ai-labs/AMATERASU.git
cd AMATERASU
  1. 各プロジェクトのREADMEに記載されている手順に従って、依存関係をインストールし、アプリケーションをデプロイします。
  2. terraform.tfvarsファイルに必要な設定を入力します。 amaterasu ツールを利用して自動生成することもできます。

📦 依存関係

このリポジトリのルートディレクトリには、共通の依存関係を定義するrequirements.txtファイルがあります。

pip install -r requirements.txt
aira
sourcesage

📄 ライセンス

このプロジェクトはMITライセンスの下で公開されています。

👏 謝辞

iris-s-coonとMakiへの貢献に感謝します。