Important
このリポジトリはSourceSageを活用しており、リリースノートやREADME、コミットメッセージの9割はSourceSage + claude.aiで生成しています。
Note
AMATERASUはMOAの後継プロジェクトです。各AIサービスを独立したEC2インスタンス上でDocker Composeを用いて実行し、Terraformで簡単にデプロイできるように進化させました。
AMATERASUは、エンタープライズグレードのプライベートAIプラットフォームです。AWS BedrockとGoogle Vertex AIをベースに構築されており、セキュアでスケーラブルな環境でLLMを活用したアプリケーションを開発・運用できます。GitLabとの統合により、バージョン管理、CI/CDパイプライン、プロジェクト管理を効率化します。 AMATERASU v1.7.0では、Google Vertex AIモデルのサポートを追加し、Dockerボリュームのパージ手順書をドキュメントに追加しました。
- AWS BedrockとGoogle Vertex AIベースの安全なLLM基盤
- 完全クローズド環境での運用
- エンタープライズグレードのセキュリティ
- 独立したサービスコンポーネント
- コンテナベースのデプロイメント
- 柔軟なスケーリング
- Terraformによる完全自動化されたデプロイ
- 環境ごとの設定管理
- バージョン管理された構成
- バージョン管理、CI/CDパイプライン、プロジェクト管理機能の向上
- セルフホスト型GitLabインスタンスの統合
- LLMを用いたマージリクエスト分析機能
- GitLab Webhookを用いた自動ラベル付けサービス
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/>バージョン管理"]
end
subgraph "Fargate-based Service"
PP["Prompt Pandora<br/>プロンプト生成支援"]
ECS["ECS Fargate Cluster"]
end
end
subgraph "Infrastructure Layer<br>(AMATERASU Architecture)"
ALB["Application Load Balancer"]
EC2["EC2 Instances"]
SG["Security Groups"]
R53["Route 53"]
ACM["ACM Certificates"]
ECR["Elastic Container Registry"]
end
subgraph "AWS Services"
Bedrock["AWS Bedrock<br/>LLMサービス"]
IAM["IAM<br/>認証・認可"]
end
OW --> ALB
LL --> ALB
LF --> ALB
GL --> ALB
PP --> ECS
ECS --> ALB
ALB --> EC2
ALB --> ECS
EC2 --> SG
ECS --> SG
R53 --> ALB
ACM --> ALB
ECR --> ECS
EC2 --> Bedrock
ECS --> Bedrock
EC2 --> IAM
ECS --> IAM
end
Users["Enterprise Users"] --> R53
- チャットベースのユーザーインターフェース
- レスポンシブデザイン
- プロンプトテンプレート管理
- Claude-3系列モデルへの統一的なアクセス、Google Vertex AIモデルへのアクセス
- APIキー管理
- レート制限と負荷分散
- 使用状況の追跡
- コスト分析
- パフォーマンスモニタリング
- セルフホストGitLabインスタンス
- プロジェクト管理とコード管理
- CIパイプラインとGitLab Runner
- バックアップと復元機能
- LDAP/Active Directory統合
- カスタマイズ可能な認証とアクセス制御
- AWS Fargateでの自動スケーリング
- Claude-3.5-Sonnetを活用したプロンプト生成
- Streamlitベースの直感的UI
- シンプルなDockerイメージによる容易なデプロイ
- AMATERASU環境への統合サンプル
- AWS アカウント
- Google Cloud Platform アカウント
- Terraform >= 0.12
- Docker & Docker Compose
- AWS CLI configured
- gcloud CLI configured
- リポジトリのクローン
git clone https://github.com/Sunwood-ai-labs/AMATERASU.git
cd AMATERASU- 環境変数の設定
cp .env.example .env
# Edit .env with your configuration- インフラのデプロイ (spellbookディレクトリ内の各サービスのインフラを個別にデプロイする必要があります。)
cd spellbook/base-infrastructure
terraform init && terraform apply
cd ../open-webui/terraform/main-infrastructure
terraform init && terraform apply
cd ../../litellm/terraform/main-infrastructure
terraform init && terraform apply
cd ../../langfuse/terraform/main-infrastructure
terraform init && terraform apply
cd ../../gitlab/terraform/main-infrastructure
terraform init && terraform apply
cd ../../FG-prompt-pandora/terraform
terraform init && terraform apply- サービスの起動 (spellbookディレクトリ内の各サービスを個別に起動する必要があります。)
# Langfuse
cd ../../../langfuse
docker-compose up -d
# LiteLLM
cd ../litellm
docker-compose up -d
# Open WebUI
cd ../open-webui
docker-compose up -d
# GitLab
cd ../gitlab
docker-compose up -d
# FG-prompt-pandora
cd ../FG-prompt-pandora
docker-compose up -d- 環境設定ファイルの作成:
cd spellbook/gitlab
cp .env.example .env-
環境変数の設定:
.envファイルを編集して、GITLAB_HOME,GITLAB_HOSTNAME,GITLAB_ROOT_PASSWORDなどの必要な環境変数を設定してください。 -
GitLabの起動:
docker-compose up -d- バックアップの設定(オプション):バックアップディレクトリを作成し、
docker-compose exec gitlab gitlab-backup createコマンドでバックアップを実行してください。
- Prometheusによるメトリクス収集
- Langfuseでの使用状況分析
- CloudWatchによるリソースモニタリング
- 平日8:00-22:00の自動起動/停止
- 需要に応じた手動スケーリング
- バッチジョブのスケジューリング
- IPホワイトリスト制御
- TLS/SSL暗号化
- IAMロールベースのアクセス制御
- タスク記述からの最適なプロンプト生成
- 既存プロンプトの改善提案
- プロンプトテンプレートの管理と共有
- チーム全体でのプロンプト品質の標準化
- APIプロキシを介した安全なモデルアクセス
- 使用状況の可視化と分析
- コスト管理とリソース最適化
- セキュアな開発環境の提供
- 🎉 Google Cloud Vertex AIのサポート追加:
config.yamlに複数のVertex AIモデルを指定できるようになり、テストスクリプトも追加されました。Gemini Pro、Gemini 2.0 Flash-expなど、複数のGeminiモデルを指定できるようになりました。各モデルはVertex_AI/model_nameの形式で指定し、vertex_project、vertex_locationパラメータでプロジェクトIDとリージョンを指定します。環境変数GOOGLE_PROJECT_IDを使用してプロジェクトIDを動的に設定します。 - 🎉 Dockerボリュームパージ手順書追加: Docker Composeで作成されたボリューム(postgres_data、prometheus_data)のパージ手順を記述したドキュメントを追加しました。
- 🎉 Google Vertex AIモデルのテストスクリプト追加: Google Vertex AIモデルをテストするためのPythonスクリプトを追加しました。
litellmクライアントを使用して、config.yamlで定義されたVertex AIモデルに対してテストメッセージを送信し、応答時間を計測します。各モデルのテスト結果(成功/失敗、応答時間、トークン数)をログに出力します。テストメッセージは、日本の四季について説明するシンプルなメッセージを使用しています。 - 🚀
config.yamlファイルの更新: Google Vertex AIモデルのサポートを追加しました。 - 🚀 英語READMEの更新: 英語のREADMEを更新しました。
⚠️ config.yamlファイル内のBedrockモデルの指定方法変更と地域指定の修正:bedrock/us.amazon.nova-micro-v1:0のような表記をbedrock/amazon.nova-micro-v1:0に変更し、Bedrockモデルのリージョン指定を修正しました。- 🚀 不要なログ出力設定を削除 (commit: 62bce15) 🟢
test_embeddings.pyから冗長なログ出力設定を削除しました。ログ出力は、必要に応じて他の方法で実現します。
- ⚙️ Docker Composeの設定変更 (commit: 92061af) 🟢
- Docker Composeファイルに以下の変更を加えました。
vertex-ai-key.jsonファイルをコンテナにマウントするように設定を追加しました。これにより、コンテナ内でVertex AIの認証情報を参照できるようになります。デバッグログを有効化(--debug)しました。LiteLLMのポートを環境変数LITELLM_PORTで設定可能にしました。デフォルトは4000番ポートです。
- Docker Composeファイルに以下の変更を加えました。
- ➕ LiteLLMのVertex AIキーファイルの追加 (commit: 74b6cb8) 🟢
- LiteLLMで使用されるVertex AIのキーファイル(
spellbook/litellm/vertex-ai-key.jsonとspellbook/litellm/vertex-ai-key copy.json)を.gitignoreに追加しました。これらのファイルは機密情報であるため、バージョン管理システムに含めないようにします。また、.SourceSageAssetsディレクトリも追加しました。これはSourceSage関連のアセットを格納するためのディレクトリです。
- LiteLLMで使用されるVertex AIのキーファイル(
- 🎉 Bedrock Novaモデルテストスクリプト追加: Bedrock Novaモデル(
bedrock/nova-micro,bedrock/nova-lite,bedrock/nova-pro)のテストを自動化するスクリプトを追加しました。応答時間、応答内容、トークン使用量などをログ出力します。text2artとloguruライブラリを使用しています。 - 🎉 LiteLLM設定ファイルの拡張とAWS設定の追加:
.env.exampleファイルにOpenAI、Anthropic、Google Gemini、AWSのAPIキーと認証情報の項目を追加しました。AWS設定にはアクセスキーID、シークレットアクセスキー、デフォルトリージョン(東京)の設定が含まれています。 - 🚀 不要なログ設定削除:
loguruライブラリの不要なログ設定を削除し、簡素化しました。 ⚠️ config.yamlファイル内のBedrockモデルの指定方法変更と地域指定の修正:bedrock/us.amazon.nova-micro-v1:0のような表記をbedrock/amazon.nova-micro-v1:0に変更し、Bedrockモデルのリージョン指定を修正しました。
- 🎉 LLMを用いたマージリクエスト分析機能実装: OpenAI APIとの連携、プロンプトエンジニアリングによるレビュー結果の生成、分析結果のJSONファイルへの保存、データクラスを用いたデータ構造の定義、エラーハンドリングとログ出力、環境変数による設定などを含みます。
- コード品質、セキュリティ、テスト、アーキテクチャの観点からのレビューと改善提案を出力します。
- 🎉 GitLab Webhookを用いた自動ラベル付けサービス実装: FastAPIを用いたWebhookサーバー、GitLab APIとOpenAI API(LiteLLM Proxy経由)との連携、LLMによるIssueタイトルと説明からのラベル自動付与、ngrokを用いた開発環境での公開URL設定(開発環境のみ)、ヘルスチェックエンドポイントとログ出力機能の追加、Webhookトークンによる認証、エラー処理と例外ハンドリング、既存ラベルの保持と新規ラベルの追加、ログ出力機能強化、環境変数による設定管理、型ヒントとDocstringsによるコード品質向上など。
- Issueイベントをトリガーとして、LLMを使用して自動的に適切なラベルを付与します。
- 🚀 GitLabサービスのREADME.md作成: ディレクトリ構造、Webhook設定について記述しました。
- 🚀 GitLab RunnerのREADME.md作成: 設定、Runner登録方法、注意事項について記述しました。
- 🚀 servicesディレクトリのREADME.md作成: サービス構成、設定管理について記述しました。
- 🚀 services_header.svgのデザイン変更: アニメーション追加、グラデーションの色変更、影の追加を行いました。
- 🚀 agents_header.svgのデザイン変更: アニメーション追加、グラデーションの色変更、影の追加を行いました。
- 🚀 GitLab設定ディレクトリ作成: 設定ディレクトリを作成しました。
- 🚀 GitLabデータディレクトリ作成: データディレクトリを作成しました。
- 🚀 GitLabログディレクトリ作成: ログディレクトリを作成しました。
- 🚀 GitLabバックアップディレクトリ作成: バックアップディレクトリを作成しました。
- 🚀 GitLab Runner設定ディレクトリ作成: 設定ディレクトリを作成しました。
- 🚀 依存ライブラリの更新: FastAPI, uvicorn, python-gitlab, openai, python-dotenv, pydantic, pyngrok, loguru, rich, argparseのバージョン更新を行いました。
このプロジェクトはMITライセンスの下で公開されています。詳細はLICENSEファイルをご参照ください。
- このリポジトリをフォーク
- フィーチャーブランチを作成 (
git checkout -b feature/amazing-feature) - 変更をコミット (
git commit -m 'Add amazing feature') - ブランチをプッシュ (
git push origin feature/amazing-feature) - プルリクエストを作成
不明点やフィードバックがありましたら、以下までお気軽にご連絡ください:
- GitHub Issues: Issues
- Email: support@sunwoodai.com
Maki、iris-s-coon、 の貢献に感謝します。
AMATERASUで、エンタープライズグレードのAIプラットフォームを構築しましょう。✨