ホームページ  >  記事  >  バックエンド開発  >  画面を監視して失敗を修正してくれる AI コンパニオンを作成しました ✨

画面を監視して失敗を修正してくれる AI コンパニオンを作成しました ✨

PHPz
PHPzオリジナル
2024-08-09 07:46:02826ブラウズ

最近、私はナルトを一気見する中毒に苦しんでいます。それは楽しいことですが、株主価値の提供には明らかに役に立ちません。 ?

それでは、私の画面を監視して、アニメを見るなど、してはいけないことをやりすぎていないか知らせてくれる AI パーソナル アシスタントを構築してはどうでしょうか? ?

過去 1 年間の AI の急速な発展を考慮して、マルチモーダル言語モデルを使用して画面を監視し、非生産的な活動に時間を費やしすぎていることを知らせることにしました。

それでは、私がやった方法をご紹介します。

  • OpenAI GPT-4o、マルチモーダル AI モデルを構成します。
  • Composio の画面アナライザー ツールを使用して画面を監視します。
  • 定期的にスクリーンショットを GPT に渡します。
  • GPT からのメッセージをシステム内の通知としてレンダリングします。

I Created an AI Companion that Monitors My Screen and Helps Fix My Screw Ups ✨

この記事では、OpenAI と Composio を使用して個人的な AI フレンドを構築する方法についても説明します。


Composio - AI エージェント ツール プラットフォーム

Composio は、AI エージェントにツールと統合を提供するオープンソース プラットフォームです。コード インタープリター、RAG、埋め込みなどの統合ツールや、GitHub、Slack、Jira などの統合を通じて、AI エージェントの能力と多用途性を拡張できます。

I Created an AI Companion that Monitors My Screen and Helps Fix My Screw Ups ✨

スターのご協力をお願いいたします。 ?

このような記事をもっと作成するのに役立ちますか?

Composio.dev リポジトリにスターを付けます ⭐


AI Friend を構築するための前提条件

プロジェクトを正常に完了するには、次のものが必要です。

  • OpenAI SDK と API キー: LLM と対話するため。
  • Composio: 画像解析ツールにアクセスします。
  • PyAutoGUI: 画面上の操作を自動化します。
  • Osascript: macOS アプリケーションを制御するための AppleScript コマンドを実行します。

それでは、始めましょう。


始めましょう?

まず、Python 仮想環境を作成します。

python -m venv ai-friend
cd ai-friend
source bin/activate

次に、次の依存関係をインストールします。

pip install composio-core
pip install composio-openai openai
pip install pyautogui

次に、.env ファイルを作成し、OpenAI API キーの環境変数を追加します。

OPENAI_API_KEY=your API key

コンポジットのセットアップ

CLI を使用して Composio を簡単にセットアップできます。

まず、次のコマンドを実行してアカウントにログインします。

composio login

ログイン フローを終了して次に進みます。

それでは、アプリを更新してください。

composio apps update

これで、コーディング部分に進む準備が整いました。


AI フレンドの構築

環境のセットアップが完了したので、コーディング部分に進みましょう。

まず、ライブラリをインポートし、ツールセットを初期化します。

import dotenv
from openai import OpenAI

from composio_openai import App, ComposioToolSet
from composio.utils.logging import get as get_logger

logger = get_logger(__name__)


# Load environment variables from .env
dotenv.load_dotenv()

# Initialize tools.
openai_client = OpenAI()
composio_toolset = ComposioToolSet()

# Retrieve actions
actions = composio_toolset.get_tools(apps=[App.SYSTEMTOOLS, App.IMAGEANALYSERTOOL])

つまり、上記のコード ブロックでは、

  • 必要なライブラリとモジュールをすべてインポートしました。
  • .env ファイルで定義された変数をロードしました。
  • OpenAI() と ComposioToolSet のインスタンスを作成しました。
  • SYSTEMTOOLS および IMAGEANALYSERTOO からアクションを取得しました。

これらのツールの機能は次のとおりです。

  • システム ツール: システム ツールには、プッシュ通知と画面キャプチャという 2 つのアクションがあります。
  • IMAGEANALYSERTOOL: このツールにはアクションが 1 つだけあり、GPT-4o や Claude Sonnet などのマルチモーダル LLM を使用して画像を分析します。

コードとその動作を調べたい場合は、システム ツールと画像解析ツールのコード ファイルを確認してください。

注: Composio のアクションは、スクリーンショットのクリック、通知の送信、メールの送信など、エージェントが実行できるタスクです。

OpenAI アシスタントのセットアップ

次に、エージェントに対する明確かつ簡潔なプロンプトを定義します。これはエージェントのパフォーマンスにとって非常に重要です。要件に基づいてプロンプトを変更できます。

assistant_instruction = (
    """You are an intelligent and proactive personal productivity assistant.
    Your primary tasks are:
    1. Regularly capture and analyze screenshots of the user's screen.
    2. Monitor user activity and provide timely, helpful interventions.

    Specific responsibilities:
    - Every few seconds, take a screenshot and analyze its content.
    - Compare recent screenshots to identify potential issues or patterns.
    - If you detect that the user is facing a technical or workflow problem:
        - Notify them with concise, actionable solutions.
        - Prioritize non-intrusive suggestions that can be quickly implemented.
    - If you notice extended use of potentially distracting websites or applications (e.g., social media, video streaming):
        - Gently remind the user about their productivity goals.
        - Suggest a brief break or a transition to a more focused task.
    - Maintain a balance between being helpful and not overly disruptive.
    - Tailor your interventions based on the time of day and the user's apparent work patterns.

    Operational instructions:
    - You will receive a 'CHECK' message at regular intervals. Upon receiving this:
        1. Take a screenshot using the screenshot tool.
        2. Then, analyse that screenshot using the image analyser tool.
        3. Then, check if the user uses distracting websites or applications.
        4. If they are, remind them to do something productive.
        5. If they are not, check if the user is facing a technical or workflow problem based on previous history.
        6. If they are, notify them with concise, actionable solutions.
        7. Try to maintain a history of the user's activity and notify them if they are doing something wrong.

    Remember: Your goal is to enhance productivity while respecting the user's autonomy and work style."""
)
assistant = openai_client.beta.assistants.create(
    name="Personal Productivity Assistant",
    instructions=assistant_instruction,
    model="gpt-4-turbo",
    tools=actions,  # type: ignore
)
# create a thread
thread = openai_client.beta.threads.create()
print("Thread ID: ", thread.id)
print("Assistant ID: ", assistant.id)

上記のコード ブロックでは、

  • 詳細なアシスタント手順が提供されます。
  • 以前に定義した命令、モデル名、および以前に定義したアクションを使用して、新しいアシスタント インスタンスを作成しました。
  • 最後に、モデルと対話するためのスレッドを作成します。

アシスタントの定義と実行

次に、アシスタントを実行するための関数を定義します。

def check_and_run_assistant():
    logger.info("Checking and running assistant")

    # Send 'CHECK' message to the assistant
    message = openai_client.beta.threads.messages.create(
        thread_id=thread.id,
        role="user",
        content="CHECK",
    )

    # Execute Agent
    run = openai_client.beta.threads.runs.create(
        thread_id=thread.id,
        assistant_id=assistant.id,
    )

    # Execute function calls
    run_after_tool_calls = composio_toolset.wait_and_handle_assistant_tool_calls(
        client=openai_client,
        run=run,
        thread=thread,
    )

# Run the assistant check every 10 seconds
while True:
    check_and_run_assistant()

上記のコードで何が起こっているかを次に示します。

  • 「CHECK」メッセージを送信する: 指定したスレッドでアシスタントに「CHECK」メッセージを送信し、モデルが応答していることを確認します。
  • エージェントの実行: 指定されたスレッドとアシスタント ID を使用して、アシスタントの実行を作成します。
  • ツール呼び出しの処理: Composio ツールセットを使用してアシスタントによって行われたツール呼び出しを待機し、処理します。
  • エージェントをループする: エージェントをループさせて、ワークフローを継続的に実行および監視します。

最後に、Python ファイルを実行してファイルを実行し、新しい AI 友達が目標に集中できるようにします。

エージェントはあなたの画面を監視し、あなたがしてはいけないことをしているのを発見すると通知を送信します。

完全なコードはここにあります

これは、エージェントが動作している例です。


次のステップ

この記事では、あなたのアクティビティを監視するパーソナライズされた AI フレンドを構築しました。ただし、カレンダーや Gmail ツールなどの外部統合を追加すると、さらに便利になります。これにより、参加するイベントがあるか、返信しなければならない重要なメールがあるかどうかを知ることができます。

GitHub や Calendar から Slack、Discord などに至るまで、Composio の幅広い統合を使用して、これを簡単に行うことができます。

AI 関連の記事をもっと見たい場合は、コメント欄で知らせて、GitHub でスターを付けてください。

Composio.dev リポジトリにスターを付けます ⭐

読んでいただきありがとうございます! <script> // Detect dark theme var iframe = document.getElementById('tweet-1820129229683454160-179'); if (document.body.className.includes('dark-theme')) { iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1820129229683454160&theme=dark" } </script>

以上が画面を監視して失敗を修正してくれる AI コンパニオンを作成しました ✨の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。