次のステップ

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

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

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

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

読んでいただきありがとうございます!

","image":"http://www.luping.net/uploads/20240816/172381104866bf44e803c73.gif","datePublished":"2024-08-16T20:24:07+08:00","dateModified":"2024-08-16T20:24:07+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 画面を監視して失敗を修正してくれる AI コンパニオンを作成しました ✨

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

2024 年 8 月 16 日に公開
ブラウズ:451

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

それでは、私の画面を監視して、アニメを見るなど、やってはいけないことをやりすぎていないか知らせてくれる 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 リポジトリにスターを付けます ⭐

読んでいただきありがとうございます!

リリースステートメント この記事は次の場所に転載されています: https://dev.to/composiodev/i-created-an-ai-companion-that-monitors-my-screen-and-helps-fix-my-screw-ups-144i?1権利侵害、削除するには[email protected]までご連絡ください
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3