Skip to content

Sunwood-ai-labs/moa

Repository files navigation


MOA

~ Magic of AWS ~

Hugging Face Spaces MOA - Sunwood-ai-labs stars - Sunwood-ai-labs forks - Sunwood-ai-labs GitHub Last Commit GitHub Top Language GitHub Release GitHub Tag


Important

このリポジトリはSourceSageを活用しており、リリースノートやREADME、コミットメッセージの9割はSourceSageclaude.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(オプションですが、より良い開発体験のために推奨します)

インストール

  1. リポジトリをクローンします。
git clone https://github.com/Sunwood-ai-labs/MOA.git
  1. プロジェクトディレクトリに移動します。
cd MOA
  1. プロジェクトルートに.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に追加してください。

使い方

open webui

  1. Visual Studio Codeでプロジェクトを開きます。

  2. VS Codeのターミナルを開き、以下のコマンドを実行してDockerコンテナをビルドし、起動します。

    # open webui を追加で起動
    docker-compose -f docker-compose.ollama.yml up
  • ollama: LLMモデルを提供するメインのサービス。GPU利用の設定も可能。
  • open-webui: open webuiを提供するサービス。デフォルトでポート8080をリッスン。
  • litellm: 各種LLMモデルへのアクセスを提供するサービス。

open webui + langfuse の起動方法

  1. 必要な環境変数を.envファイルに設定します。LANGFUSE_PUBLIC_KEY, LANGFUSE_SECRET_KEYが必要です。

    LANGFUSE_PUBLIC_KEY=your_langfuse_public_key
    LANGFUSE_SECRET_KEY=your_langfuse_secret_key
  2. 以下のコマンドを使用して、open webuiとlangfuseを含むすべての関連サービスを起動します。

    docker-compose -f docker-compose.ollama.yml -f spellbook/langfuse/docker-compose.yml up

    このコマンドにより、ollamaとlangfuse関連のサービスが一緒に起動されます。langfusehttp://localhost:3000でアクセス可能です。

open webui + pipeline + langfuse の起動方法

以下のコマンドを使用して、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: 指定されたすべての設定ファイルに基づいてサービスを起動します。

起動後の設定手順:

  1. open-webui pipelinesをモデル設定から設定します。

  2. langfuseでpublic_keyとsecret_keyを発行します。

    • langfuseの管理画面にアクセスし、新しいプロジェクトを作成してキーを取得します。
  3. langfuse_filter_pipeline.pyをパイプラインにインポートし、public_keyとsecret_keyを設定します。

    • このステップでlangfuseとの連携が可能になります。
  4. conversation_turn_limit_filterをパイプラインにインポートして会話の制限を解除します。

    • これにより、会話のターン数の制限がなくなり、より長い対話が可能になります。

これらの手順を完了することで、open webui、pipeline、langfuseが統合された環境が整います。この環境では、高度なAI対話機能と詳細な分析・モニタリング機能を利用できます。

Dify の起動方法

  1. Dify関連のサービスを起動するには、次のコマンドを実行します。

    docker-compose -f spellbook/dify/docker/docker-compose.yaml up

    このコマンドは、spellbookディレクトリ内のdifyサブディレクトリにあるDocker Compose設定ファイルを使用して、Difyサービスを起動します。

Upgrade Dify
cd spellbook\dify\docker
git pull origin main
docker compose down
docker compose pull
docker compose up -d

litellm の起動方法

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 リリースページを参照してください。

🤝 コントリビューション

コントリビューションを歓迎します!プロジェクトに貢献したい場合は、以下の手順に従ってください。

  1. リポジトリをフォークします。
  2. 新しい機能やバグ修正用のブランチを作成します。
  3. 変更を加え、わかりやすいコミットメッセージでコミットします。
  4. フォークしたリポジトリに変更をプッシュします。
  5. メインリポジトリにプルリクエストを送信します。

📄 ライセンス

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

🙏 謝辞

MOA の開発に影響を与え、貢献してくれた以下のプロジェクトとリソースに感謝の意を表します。

📧 お問い合わせ

ご質問、ご提案、フィードバックがある場合は、support@sunwoodai.comまでお気軽にお問い合わせください。

MOA で AWS と AI の魔法を探検してみてください!✨