0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Google CloudのVertex AIでOpenHandsを試してみた

Posted at

はじめに

過去にOpenHandsをAzure OpenAIで試した記事を書いたのですが、
AzureではClaudeが使えず、OpenAIのGPT-4oを使っていました。(o1を使うにも申請が必要で面倒)

Google CloudのVertex AIでは、Claudeを使うことができ、
公式ページにも簡単なガイドがあったので、
これを機に試してみることにしました。

前提

  • ローカル端末: M1 Macbook + Docker
  • Google Cloud アカウント
    • プロジェクト、Vertex AIのAPIを有効化

手順

1. サービスアカウントを作成

  • Vertex AI APIの画面から認証情報タブ>認証情報を作成を押下>サービスアカウントを選択
    vertex-ai-api-credentials.png

  • サービスアカウント名を入力し、次のページへ

  • このサービス アカウントにプロジェクトへのアクセスを許可するページでベース>編集者を選択し、次のページへ

  • 特に設定せずに、作成を押下し、サービスアカウントを作成

2. サービスアカウントのJSONキーを取得

  • 作成したサービスアカウントを選択し、鍵タブからキーを追加>新しい鍵を作成を押下
  • JSONを選択し、作成を押下
  • 鍵をダウンロードし、保存

3. 作業ディレクトリの準備

  • $HOME/Documents/OpenHands-Workspaceディレクトリを作成
  • ダウンロードしたサービスアカウントのJSONキーをこのディレクトリに配置

4. OpenHands用のDocker環境を準備

まず、必要なDockerイメージをプルします:

docker pull docker.all-hands.dev/all-hands-ai/runtime:0.23-nikolaik

5. 環境変数の準備

OpenHandsの起動前に、以下の環境変数を準備する必要があります:

  1. 認証関連
  • GOOGLE_APPLICATION_CREDENTIALS: サービスアカウントのJSONキーファイルのパス
    • コンテナ内のパスを指定(例:"/opt/workspace_base/your-key.json")
    • JSONキーは作業ディレクトリ(OpenHands-Workspace)に配置しておく
  1. Vertex AI設定
  • VERTEXAI_PROJECT: Google CloudのプロジェクトID
    • Google Cloudコンソールのプロジェクト情報から確認可能
  • VERTEXAI_LOCATION: Vertex AIのリージョン
    • 日本の場合は"asia-northeast1"を推奨
    • レイテンシを考慮して選択
  1. OpenHands設定
  • WORKSPACE_MOUNT_PATH: 作業ディレクトリのマウントパス
    • コンテナ内のパスを指定(例:"/opt/workspace_base")
  • SANDBOX_RUNTIME_CONTAINER_IMAGE: 使用するランタイムイメージ
    • 最新のイメージを指定(例:docker.all-hands.dev/all-hands-ai/runtime:0.23-nikolaik)

6. ディレクトリとファイルの確認

起動前に以下の点を確認してください:

  1. 作業ディレクトリの構造例
$HOME/Documents/OpenHands-Workspace/
└── your-service-account-key.json  # サービスアカウントのJSONキー
  1. 必要なディレクトリの存在
  • ~/.openhands-stateディレクトリ(なければ作成)
  • 作業ディレクトリ($HOME/Documents/OpenHands-Workspace)

7. OpenHandsの起動

以下の環境変数とボリュームマウントを指定してOpenHandsを起動します:

docker run -it --rm --pull=always \
-e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.23-nikolaik \
-e LOG_ALL_EVENTS=true \
-e WORKSPACE_MOUNT_PATH=$HOME/Documents/OpenHands-Workspace \
-e GOOGLE_APPLICATION_CREDENTIALS="/opt/workspace_base/XXX.json" \
-e VERTEXAI_PROJECT="XXX" \
-e VERTEXAI_LOCATION="asia-northeast1" \
-v $HOME/Documents/OpenHands-Workspace:/opt/workspace_base \
-v /var/run/docker.sock:/var/run/docker.sock \
-v ~/.openhands-state:/.openhands-state \
-p 3000:3000 \
--add-host host.docker.internal:host-gateway \
--name openhands-app \
docker.all-hands.dev/all-hands-ai/openhands:0.23

コンテナが正常に起動すると、http://localhost:3000でOpenHandsのWebインターフェースにアクセスできます。

Webインターフェースでモデルの設定

OpenHandsのWebインターフェースにアクセスし、AIプロバイダ設定で以下を設定します:

  • LLMプロバイダ: Vertex AI
  • LLMモデル: claude-3-5-sonnet-v2@20241022

openhands-vertex-ai.png

まとめ

Google CloudのVertex AIを使ってOpenHandsを設定する手順を紹介しました。
これでOpenHandsをClaude-3.5-sontnet-v2モデルを使って利用できるようになりました。

設定自体は非常にシンプルで、サービスアカウントの作成とJSONキーの配置、
そして必要な環境変数を設定するだけで利用できます。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?