Important
このリポジトリはSourceSageを活用しており、リリースノートやREADME、コミットメッセージの9割はSourceSage + claude.aiで生成しています。
以下は修正・添削後のREADME文書です。誤字の修正、言い回しの最適化、そして技術用語の統一を行いました。
MOA (Magic of AWS) は、AWSの基盤技術を活用し、Dockerを通じて企業がクラウド環境でLLM(Large Language Models)を簡単に利用できるようにするプロジェクトです。AWS CLIがプリインストールされた独立した開発環境を提供することで、企業が高度なセキュリティとプライバシーを保ちつつ、AI技術を効果的に活用できるよう支援します。MOAを使用することで、ユーザーはローカルマシンの設定を変更せずに、セキュアな環境から直接AWSリソースを管理し、先進的なAI機能を実装できます。
主な特徴:
- AWS BedrockやAWS Cloud AIなどの最新AIサービスを手軽に試すことができます。
- LiteLLMプロジェクトを利用して、多様なLLMモデルを統一的なインターフェースで活用できます。
- open webuiを使い、独自のLLMモデルをチャットボットとして動作させることができます。
始める前に、以下のものがマシンにインストールされていることを確認してください。
- Docker
- Docker Compose
- Visual Studio Code(オプションですが、より良い開発体験のために推奨します)
- リポジトリをクローンします。
git clone https://github.com/Sunwood-ai-labs/MOA.git
- プロジェクトディレクトリに移動します。
cd MOA
- プロジェクトルートに
.env
ファイルを作成し、AWSアクセスキーID、シークレットアクセスキー、その他の設定を追加します。
AWS_ACCESS_KEY_ID=YOUR_AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY=YOUR_AWS_SECRET_ACCESS_KEY
AWS_REGION_NAME=your-preferred-region
AWS_DEFAULT_REGION=your-preferred-region
AWS_DEFAULT_OUTPUT=json
# ANTHROPIC_API_KEY=sk-ant-XXXXX
OLLAMA_BASE_URL=http://ollama:11434
WEBUI_SECRET_KEY=sk-1234
LITELLM_PROXY_HOST=0.0.0.0
OPEN_WEBUI_PORT=8080
Important
機密性の高い AWS 認証情報を誤ってコミットしないように、必ず.env
ファイルを.gitignore
に追加してください。
-
Visual Studio Codeでプロジェクトを開きます。
-
VS Codeのターミナルを開き、以下のコマンドを実行してDockerコンテナをビルドし、起動します。
# open webui を追加で起動 docker-compose -f docker-compose.ollama.yml up
- ollama: LLMモデルを提供するメインのサービス。GPU利用の設定も可能。
- open-webui: open webuiを提供するサービス。デフォルトでポート8080をリッスン。
- litellm: 各種LLMモデルへのアクセスを提供するサービス。
-
必要な環境変数を
.env
ファイルに設定します。LANGFUSE_PUBLIC_KEY
,LANGFUSE_SECRET_KEY
が必要です。LANGFUSE_PUBLIC_KEY=your_langfuse_public_key LANGFUSE_SECRET_KEY=your_langfuse_secret_key
-
以下のコマンドを使用して、open webuiとlangfuseを含むすべての関連サービスを起動します。
docker-compose -f docker-compose.ollama.yml -f spellbook/langfuse/docker-compose.yml up
このコマンドにより、ollamaとlangfuse関連のサービスが一緒に起動されます。
langfuse
はhttp://localhost:3000
でアクセス可能です。
以下のコマンドを使用して、open webui、pipeline、およびlangfuseを含むすべての関連サービスを起動します:
docker-compose -f docker-compose.ollama.yml -f spellbook/langfuse/docker-compose.yml -f spellbook/docker-compose.pipelines.yml up
このコマンドの説明:
-f docker-compose.ollama.yml
: ollamaとopen webuiのサービスを定義しているファイルを指定します。-f spellbook/langfuse/docker-compose.yml
: langfuseサービスの設定を含むファイルを指定します。-f docker-compose.pipelines.yml
: pipelinesサービスの設定を含むファイルを指定します。up
: 指定されたすべての設定ファイルに基づいてサービスを起動します。
起動後の設定手順:
-
open-webui pipelinesをモデル設定から設定します。
- アクセスURL: http://pipelines:9099
- デフォルトのパスワード: 0p3n-w3bu!
-
langfuseでpublic_keyとsecret_keyを発行します。
- langfuseの管理画面にアクセスし、新しいプロジェクトを作成してキーを取得します。
-
langfuse_filter_pipeline.py
をパイプラインにインポートし、public_keyとsecret_keyを設定します。- このステップでlangfuseとの連携が可能になります。
-
conversation_turn_limit_filter
をパイプラインにインポートして会話の制限を解除します。- これにより、会話のターン数の制限がなくなり、より長い対話が可能になります。
これらの手順を完了することで、open webui、pipeline、langfuseが統合された環境が整います。この環境では、高度なAI対話機能と詳細な分析・モニタリング機能を利用できます。
-
Dify関連のサービスを起動するには、次のコマンドを実行します。
docker-compose -f spellbook/dify/docker/docker-compose.yaml up
このコマンドは、
spellbook
ディレクトリ内のdify
サブディレクトリにあるDocker Compose設定ファイルを使用して、Difyサービスを起動します。
cd spellbook\dify\docker
git pull origin main
docker compose down
docker compose pull
docker compose up -d
docker-compose -f spellbook\litellm_tools\docker-compose.yml up
AWS Bedrock や Claude AI、LiteLLM、Gemini APIなどの使用例を示すサンプルスクリプトが example
ディレクトリに含まれています。詳細については、example/README.md を参照してください。
プロジェクトの構造は次のようになっています。
.
├── .env # 環境変数ファイル (リポジトリには含まれていません)
├── .env.example # 環境変数ファイルの例
├── .gitattributes # Git 属性の設定
├── .github/ # GitHub 固有のファイルと設定
│ └── workflows/ # GitHub Actions ワークフロー
├── Dockerfile # AWS CLI コンテナをビルドするための Dockerfile
├── README.md # プロジェクトのドキュメント
├── app.py # メインアプリケーションファイル
├── docker-compose.yml # Docker Compose 設定
├── docker-compose.ollama.yml # ollama と webui の Docker Compose 設定
├── example/ # サンプルスクリプトディレクトリ
│ ├── 01_list_bedrock_models.py # Bedrock モデルの一覧を取得するサンプル
│ ├── 02_bedrock_text_generation.py # Bedrock を使用したテキスト生成のサンプル
│ ├── 03_litellm_claude.py # LiteLLM と Claude AI を使用したチャットのサンプル
│ ├── 04_aws_claude_chatbot.py # AWS Claude AI を使用したチャットボットのサンプル
│ ├── 05_gemini_chat.py # Gemini API を使用したチャットのサンプル
│ ├── 06_langfuse_openai_chat_completion.py # Langfuse と OpenAI API を使用したチャットのサンプル
│ └── README.md # サンプルスクリプトの説明
├── litellm/ # LiteLLM 設定ディレクトリ
│ └── config.yaml # LiteLLM 設定ファイル
├── requirements.txt # 必要な Python パッケージのリスト
├── script/ # 便利なスクリプトファイル
│ └── activate-moa_dev.bat # moa_dev 仮想環境をアクティベートするスクリプト
└── docs/ # ドキュメントファイル
├── moa_icon.jpeg # プロジェクトアイコン
└── page_front.md # フロントページのドキュメント
リリースノートについては、GitHub リリースページを参照してください。
コントリビューションを歓迎します!プロジェクトに貢献したい場合は、以下の手順に従ってください。
- リポジトリをフォークします。
- 新しい機能やバグ修正用のブランチを作成します。
- 変更を加え、わかりやすいコミットメッセージでコミットします。
- フォークしたリポジトリに変更をプッシュします。
- メインリポジトリにプルリクエストを送信します。
このプロジェクトはMIT ライセンスの下でライセンスされています。
MOA の開発に影響を与え、貢献してくれた以下のプロジェクトとリソースに感謝の意を表します。
- AWS CLI
- AWS Bedrock
- AWS Claude AI
- Docker
- Docker Compose
- Python
- Streamlit
- LiteLLM
- Langfuse
- open webui
- Gemini API
- Anthropic API
ご質問、ご提案、フィードバックがある場合は、support@sunwoodai.comまでお気軽にお問い合わせください。
MOA で AWS と AI の魔法を探検してみてください!✨