🗂

# browser-useの環境構築を通して進化し続けるAI環境に適した環境分離をマスターしよう!

に公開

はじめに:Macユーザーのための環境分離ガイド

このガイドは、Macユーザー を対象にしています。コマンドライン操作を通じて、Pythonプロジェクトの環境分離を効率的に実現します。操作に不安を感じる方も、すべてのコマンドに簡単な解説を付けていますので安心してください。


環境分離の重要性:なぜ必要なのか?

1. 依存関係の衝突を防ぐ

プロジェクトごとに異なるPythonバージョンやライブラリを使用しても、環境分離により衝突を防げます。

2. 再現性を確保

環境分離を行うことで、他の開発者が同じ環境でプロジェクトを再現できます。

3. 軽量かつ自由度の高い管理

pyenvdirenv を使えば、Anacondaのような重厚なツールを使わずに、軽量で柔軟な環境管理が可能です。

4. AIツールの進化速度に対応

AIツールやライブラリの進化は非常に速く、依存関係が複雑化します。環境分離がないと、ツール間の依存関係が壊れるリスクが高まります。


必要な情報を準備する

OpenAIのAPIキーを取得

  1. OpenAIの公式サイト https://platform.openai.com/ にアクセスします。
  2. アカウントを作成またはログインし、APIキーを取得してください。
  3. APIキーをコピーし、後述する.envrcに設定します。

必要ツールのインストール

MacのCPUアーキテクチャを確認

以下のコマンドでシステムアーキテクチャを確認します。

uname -m
  • コマンド解説:
    uname -m は現在のシステムアーキテクチャを表示します。x86_64 はIntel、arm64 はApple Siliconを意味します。

direnvのインストール

  1. 公式バイナリをダウンロード

    CPUアーキテクチャに応じて以下を実行します。

    • Apple Silicon (M1/M2):

      wget -O direnv https://github.com/direnv/direnv/releases/latest/download/direnv.darwin-arm64
      
    • Intel Mac:

      wget -O direnv https://github.com/direnv/direnv/releases/latest/download/direnv.darwin-amd64
      
    • コマンド解説:
      wget は指定したURLからファイルをダウンロードするツールです。-O direnv はダウンロードしたファイルをdirenvという名前で保存するオプションです。

  2. 実行可能にしてシステムに追加

    chmod +x direnv
    sudo mv direnv /usr/local/bin/direnv
    
    • コマンド解説:
      • chmod +x direnv: ファイルに実行権限を付与します。
      • sudo mv direnv /usr/local/bin/direnv: 管理者権限で direnv をシステムの実行可能パスに移動します。
  3. シェルに統合

    echo 'eval "$(direnv hook zsh)"' >> ~/.zshrc
    source ~/.zshrc
    
    • コマンド解説:
      • echo 'eval "$(direnv hook zsh)"' >> ~/.zshrc: direnv をzshシェルで有効化します。
      • source ~/.zshrc: シェル設定を再読み込みします。
  4. インストール確認

    direnv --version
    
    • コマンド解説:
      direnv --version は、インストールされたdirenvのバージョンを表示します。

pyenvのインストール

pyenvとは?

pyenv は、複数のPythonバージョンを簡単にインストール・管理できるツールです。プロジェクトごとに異なるPythonバージョンを柔軟に設定できます。


インストール手順

  1. 依存関係をインストール

    xcode-select --install
    
    • コマンド解説:
      xcode-select --install は、Apple Developer Tools(Xcodeの一部)をインストールするコマンドです。
  2. 公式リポジトリからクローン

    git clone https://github.com/pyenv/pyenv.git ~/.pyenv
    
    • コマンド解説:
      git clone は、指定したリポジトリをローカルにコピーするコマンドです。
  3. シェルに設定を追加

    echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
    echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
    echo 'eval "$(pyenv init --path)"' >> ~/.zshrc
    source ~/.zshrc
    
    • コマンド解説:
      • export PYENV_ROOT="$HOME/.pyenv": pyenv のルートディレクトリを環境変数として設定します。
      • export PATH="$PYENV_ROOT/bin:$PATH": pyenv のバイナリをシステムのPATHに追加します。
      • eval "$(pyenv init --path)": pyenv をシェルで有効化します。
      • source ~/.zshrc: シェル設定を再読み込みします。
  4. インストール確認

    pyenv --version
    
    • コマンド解説:
      pyenv --version は、インストールされたpyenvのバージョンを表示します。

実験用ディレクトリの作成

  1. ディレクトリ作成

    mkdir ~/browser-use-test
    cd ~/browser-use-test
    
    • コマンド解説:
      mkdir は新しいディレクトリを作成し、cd でそのディレクトリに移動します。
  2. rsion をダウンロード

    wget https://raw.githubusercontent.com/browser-use/browser-use/main/rsion
    
    • コマンド解説:
      wget を使用して、指定されたURLからファイルをダウンロードします。
  3. Pythonバージョンのインストール

    pyenv install --skip-existing $(cat rsion)
    
    • コマンド解説:
      pyenv install はPythonバージョンをインストールします。$(cat rsion)rsion ファイルの内容を取得して、そのバージョンをインストールします。
  4. インストール確認

    pyenv versions
    
    • コマンド解説:
      pyenv versions は、インストール済みのPythonバージョンを一覧表示します。

direnvの設定と環境変数の利用

  1. .envrc を作成

    echo 'export PYENV_VERSION=$(cat rsion)' > .envrc
    echo 'layout python' >> .envrc
    echo 'export OPENAI_API_KEY="sk-xxxx...xxxx"' >> .envrc
    
    • コマンド解説:
      • export PYENV_VERSION=$(cat rsion): rsion ファイルに記載されたPythonバージョンを環境変数として設定します。
      • layout python: venv を使用して仮想環境を自動的に有効化します。
      • export OPENAI_API_KEY="sk-xxxx...xxxx": OpenAI APIキーを環境変数として設定します(xxxx を自身のキーに置き換えてください)。
  2. direnv を有効化

    direnv allow
    
    • コマンド解説:
      direnv allow は、現在のディレクトリの .envrc 設定を有効にするコマンドです。
  3. 環境変数の確認

    echo $OPENAI_API_KEY
    
    • コマンド解説:
      echo $OPENAI_API_KEY は、設定された環境変数 OPENAI_API_KEY の値を表示します。

browser-use のインストール

  1. インストール

    pip install browser-use
    
    • コマンド解説:
      pip install browser-use は、Python パッケージインデックス (PyPI) から browser-use をインストールします。
  2. インストール確認

    python -m pip show browser-use
    
    • コマンド解説:
      python -m pip show browser-use は、browser-use パッケージがインストールされていることを確認し、その詳細情報を表示します。

サンプルコードの作成と実行

以下の内容で flight_search.py を作成します。このスクリプトでは、browser-use を使って「東京からシンガポールへのフライト情報」を検索します。

サンプルコード

import os
from browser_use import BrowserUse

# 環境変数から API キーを取得
api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
    raise ValueError("環境変数 OPENAI_API_KEY が設定されていません。")

# BrowserUse の初期化
browser = BrowserUse(api_key=api_key)

# 検索クエリの設定
query = """
東京からシンガポールへのフライトを検索してください。
フライト時間と航空料金を考慮し、最適なルートを3つ提示してください。
Google Flightsを参照してください。
"""

# 検索を実行
response = browser.search(query)

# 結果を表示
print("検索クエリ:", query)
print("検索結果:")
print(response)
  • コード解説:
    • os.getenv("OPENAI_API_KEY"): 環境変数 OPENAI_API_KEY から API キーを取得します。
    • BrowserUse(api_key=api_key): browser-use を初期化します。
    • browser.search(query): 指定したクエリを実行し、結果を取得します。
    • print(response): 実行結果を表示します。

実行手順

  1. 上記コードを保存し、以下のコマンドで実行します。

    python flight_search.py
    
  2. 実行結果例:

検索クエリ:
東京からシンガポールへのフライトを検索してください。
フライト時間と航空料金を考慮し、最適なルートを3つ提示してください。
Google Flightsを参照してください。

検索結果:
	1.	フライト: 東京 (NRT) - シンガポール (SIN)
航空会社: シンガポール航空
時間: 6時間30分
料金: 80,000円
	2.	フライト: 東京 (HND) - シンガポール (SIN)
航空会社: ANA
時間: 7時間
料金: 75,000円
	3.	フライト: 東京 (NRT) - シンガポール (SIN)
航空会社: 日本航空
時間: 6時間45分
料金: 78,000円

環境削除のメリットと手順

環境削除のメリット

  • 完全な環境分離:
    他のプロジェクトに影響を与えず、クリーンな環境を構築できます。

  • 簡単な削除プロセス:
    プロジェクトが不要になった場合、ディレクトリを削除するだけで環境を完全に消去できます。

環境削除手順

以下のコマンドで環境を完全に削除します。

cd ~
rm -rf ~/browser-use-test
  • コマンド解説:
  • cd ~: ホームディレクトリに移動します。
  • rm -rf ~/browser-use-test: 実験用ディレクトリを強制的に削除します。

まとめ

このガイドを通じて、以下を学びました:

  1. 環境分離の重要性:
    direnvpyenvvenv を活用して、安全かつ効率的に環境を分離する方法。

  2. コマンドライン操作の基礎:
    各コマンドの目的と動作を理解することで、自信を持って操作できるようになります。

  3. AIツールの利用方法:
    OpenAI API を使って browser-use を活用し、実用的なタスクを実行する方法。


応用のすすめ

この方法を応用することで、ディレクトリ単位での環境分離を通じて、さまざまなAIツールやPythonプロジェクトを試すことができます。進化の速いAI技術に柔軟に対応し、安全にプロジェクトを管理していきましょう!


この記事はChatGPTで作成しました。
https://chatgpt.com/share/677bf3ea-3960-8004-9998-0265e9a29e55

Discussion