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?

Nova Actを使ってみた

Posted at

最近GAされたNova Actについて、どのくらいの精度があるのか、どのように使うのかが知りたく実際に使ってみた。

Amazon Nova Actとは

公式サイトにはこのように記載されている。

Nova Act は、重要な UI ワークフローを大規模に自動化する、信頼性の高い AI エージェントを構築および管理するための信頼できるサービスです。

この動画がイメージをつけやすくわかりやすいらしい。

Webページに入力したり操作したりするような一連の操作を自動化するツールを作ることができる。Nova Actによって自然言語で操作内容を指示できるため、操作対象のWebページのUIが更新されても柔軟に対応できる。また、似たようなサイトであればワークフローをそのまま使いまわすことができる。

ワークフローの開発方法

Nova ActはPlaygroundが用意されておりお試しでワークフローの作成ができる。しかし、Playgroundを利用するには米国のAmazonアカウントが必要でアクセスが米国内に限られるとのこと。

開発を行う際はNova Act SDKもしくはIDEの拡張機能を使ってワークフローをローカルで構築できる。Nova Act SDKはPythonで用意されており利用するにはpipを使ってSDKをインストールする必要がある。

pip install nova-act 

SDKのGitHubリポジトリにはAPIキーの設定方法が記載されている。

Authentication
API Key Authentication
Note: When using the Nova Act Playground and/or choosing Nova Act developer tools with API key authentication, access and use are subject to the nova.amazon.com Terms of Use.
Navigate to https://nova.amazon.com/act and generate an API key.
To save it as an environment variable, execute in the terminal:
export NOVA_ACT_API_KEY="your_api_key"

しかし、どうやらこのAPIキーの発行も米国からしかできない様子。これを取得しようと思うとこちらのサイトで紹介されているように米国リージョンにEC2を立てて、そのEC2経由でAPIキーを取得するなど回り道をする必要がある。

これをしたくなかったので今回はIAM認証を使った。IAM認証を使ったワークフローの実行をするためには

  • NovaActへのアクセス権限を持つIAMユーザー認証情報
  • Nova Act Workflow定義

が必要になる。

IAM認証情報を使ってローカルPCからAWSにアクセスできるようにcredentialsファイルに設定を行った。使ったIAMユーザーにはAdministrator権限を渡している。
そして、AWSコンソールにアクセスし、Nova Act Workflow定義を作成した。まずコンソールにアクセスしNovaActを開く。そして「ワークフロー定義を作成」をクリック。

image.png

移動したページでワークフローの名前を設定する。今回、お試し用なのでS3バケットの設定は行わなかった。本番ではこれを設定することでワークフロー実行で生成されるアーティファクトを保存することができる。

image.png

続いてコードの作成を行う。今回、awsのサイトにアクセスしてS3について検索するというワークフローを作成してみた。

  from nova_act import NovaAct,workflow
  
  @workflow(workflow_definition_name="test-workflow", model_id="nova-act-latest")                 
  def main():                                                                            
      with NovaAct(starting_page="https://docs.aws.amazon.com/", headless=False) as nova:
          nova.act("search about S3")
  
  if __name__ == "__main__":
      main()

IAM認証を使ってワークフローを実行したい場合、@workflowというデコレーターが必要で、そこに、先ほど作成したワークフロー定義の名前を記載する必要がある。
with NovaActの部分で最初にアクセスするWebサイトを指定し、headlessコマンドはブラウザ操作の際にブラウザの画面を表示するかしないかを指定できる。今回は実際に動いているところが見たかったので、Falseを指定している。
そして、実際に操作してほしいことをnova.actで指定している。
実行したところ、ブラウザが開きS3について検索している様子を確認できた。

NovaAct_Test.gif

今回は検索だけを行っているがもっと指示を追加すればいろんな作業ができるとのこと。
また、SDKでは英語しか対応していないとのことだったが、日本語で同じ指示を送っても正しく動作していた。

つまずいた部分

pip install nova_actのエラー

Python3.13.10でインストールをしようとするとNumPyのインストールの部分でエラーが発生していた。Pythonのバージョンを下げて3.12.10に変更したところインストールできた。

BrowserTypeのエラー

最初にワークフローを実行したところ、ERROR - Failed to start and initialize Playwright for NovaAct: 'BrowserType' object is not iterableというエラーが発生した。
具体的に何が原因だったのかわからないが、この辺りを試したところ実際に動作させることができた。

  • VS Codeの拡張機能「Python」がインストールされていなかったのでインストールした
  • 先にPlaywrightをインストールして動作するか確認した
    pip install --upgrade pip
    pip install playwright
    playwright install
    
  • うまくいった時の各バージョン
    • playwright 1.56.0
    • nova_act 3.0.157.0

Nova Actのコスト

公式サイトではこう記載されている。

image.png

実際にエージェントが動いている時間当たり4.75ドル=740円くらいかかる。途中で人による確認も実装できるが、その際の人の判断を待つ時間は課金対象ではないとのこと。

最後に

今回、Nova Actを実際に動作させてみた。
エラーによってなかなか動作しなかったので解決策が誰かの助けになれば幸いである。
次はHuman-in-the-Loopを実装したワークフローを作ってみたい。

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?