首頁 >後端開發 >Python教學 >我創建了一個 AI 伴侶,可以監控我的螢幕並幫助修復我的問題 ✨

我創建了一個 AI 伴侶,可以監控我的螢幕並幫助修復我的問題 ✨

PHPz
PHPz原創
2024-08-09 07:46:02854瀏覽

最近,我一直在與狂看《火影忍者》的癮作鬥爭。雖然這很令人愉快,但它絕對不能幫助我實現股東價值。 ?

那麼,為什麼不建立一個人工智慧個人助理來監控我的螢幕並讓我知道我是否做了不應該做的事情,例如看動漫? ?

考慮到過去一年人工智慧的快速發展,我決定使用多模態語言模型來監控我的螢幕,並在我花費太多時間在非生產性活動上時讓我知道。

所以,這就是我的做法。

  • 設定 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:執行 AppleScript 指令來控制 macOS 應用程式。

那麼,讓我們開始吧。


讓我們開始吧?

先建立一個 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

現在,您已準備好進入編碼部分。


建立人工智慧朋友

現在環境已經搭建完畢,讓我們開始編碼部分。

首先,導入庫並初始化工具集。

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 檢索操作。

所以,這就是這些工具的作用。

  • 系統工具:系統工具有兩個操作:推播通知和螢幕截圖。
  • IMAGEANALYSERTOOL:此工具只有一個操作:使用 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()

這是上面程式碼中發生的事情。

  • 發送「檢查」訊息:這會向指定執行緒中的助理發送「檢查」訊息,以確保模型回應。
  • 執行代理:使用指定的執行緒和助手ID為助手建立運行。
  • 處理工具呼叫:等待並處理助理使用 Composio 工具集發出的工具呼叫。
  • 循環代理:循環代理,使其持續運作並監控您的工作流程。

最後,透過執行 Python 文件來執行該文件,讓你的新 AI 朋友讓你專注於你的目標。

代理程式會監視您的螢幕,並在發現您做了不應該做的事情時發送通知。

完整程式碼可以在這裡找到

這是正在運行的代理程式的範例。


下一步

在本文中,您建立了個人化的 AI 朋友來監控您的活動。但是,添加外部整合(例如日曆或 Gmail 工具)可以使其更加有用。這可以讓您知道您是否有一些活動要參加或有重要電子郵件需要回覆。

您可以使用 Composio 的廣泛整合輕鬆完成此任務,從 GitHub 和 Calendar 到 Slack、Discord 等等。

如果你想看更多AI相關的文章,請在評論中告訴我,並在GitHub上給我們一個star。

為 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn