Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Saya Mencipta Rakan AI yang Memantau Skrin Saya dan Membantu Memperbaiki Skrin Saya ✨

Saya Mencipta Rakan AI yang Memantau Skrin Saya dan Membantu Memperbaiki Skrin Saya ✨

PHPz
PHPzasal
2024-08-09 07:46:02746semak imbas

Kebelakangan ini, saya bergelut dengan ketagihan menonton Naruto secara berlebihan. Walaupun ia menyeronokkan, ia pastinya tidak membantu saya menyampaikan nilai pemegang saham. ?

Jadi, mengapa tidak membina pembantu peribadi AI yang memantau skrin saya dan memberitahu saya jika saya melakukan sesuatu yang berlebihan yang tidak sepatutnya saya lakukan, seperti menonton anime? ?

Memandangkan perkembangan pesat dalam AI pada tahun lalu, saya memutuskan untuk menggunakan model bahasa berbilang modal untuk memantau skrin saya dan memberitahu saya apabila saya menghabiskan terlalu banyak masa untuk aktiviti tidak produktif.

Jadi, beginilah cara saya melakukannya.

  • Konfigurasikan OpenAI GPT-4o, model AI berbilang modal.
  • Gunakan alat penganalisis skrin daripada Composito untuk memantau skrin.
  • Hantar tangkapan skrin kepada GPT pada selang masa yang tetap.
  • Menyampaikan mesej daripada GPT sebagai pemberitahuan dalam sistem.

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

Dalam artikel ini, saya juga akan menerangkan cara anda boleh membina rakan AI peribadi anda menggunakan OpenAI dan Composito.


Composito - Platform Alat Ejen AI Anda

Composio ialah platform sumber terbuka yang melengkapkan ejen AI anda dengan alatan dan penyepaduan. Ia membolehkan anda memperluaskan keupayaan dan kepelbagaian ejen AI anda melalui alat penyepaduan seperti jurubahasa kod, RAG, Pembenaman dan penyepaduan seperti GitHub, Slack, Jira, dsb.

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

Tolong bantu kami dengan bintang. ?

Ini akan membantu kami mencipta lebih banyak artikel seperti ini ?

Bintangkan repositori Composito.dev ⭐


Prasyarat untuk Membina Rakan AI

Untuk berjaya menyelesaikan projek, anda memerlukan perkara berikut.

  • OpenAI SDK dan kunci API: Untuk berinteraksi dengan LLM.
  • Komposio: Untuk mengakses alat menganalisis imej.
  • PyAutoGUI: Untuk mengautomasikan interaksi pada skrin.
  • Osascript: Untuk melaksanakan perintah AppleScript untuk mengawal aplikasi macOS.

Jadi, mari kita mulakan.


Jom Mulakan?

Mulakan dengan mencipta persekitaran maya Python.

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

Sekarang, pasang kebergantungan berikut.

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

Seterusnya, Buat fail .env dan tambahkan pembolehubah persekitaran untuk kunci API OpenAI.

OPENAI_API_KEY=your API key

Sediakan Komposo

Anda boleh menggunakan CLI untuk menyediakan Composito dengan mudah.

Mula-mula, log masuk ke akaun anda dengan menjalankan arahan berikut.

composio login

Selesaikan aliran log masuk untuk meneruskan lebih jauh.

Sekarang, kemas kini apl.

composio apps update

Kini, anda sudah bersedia untuk beralih ke bahagian pengekodan.


Membina Rakan AI

Sekarang anda telah menyediakan persekitaran, mari pergi ke bahagian pengekodan.

Mula-mula, import perpustakaan dan mulakan set alatan.

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])

Jadi, dalam blok kod di atas,

  • Kami mengimport semua perpustakaan dan modul yang diperlukan.
  • Memuatkan pembolehubah yang ditakrifkan dalam fail .env.
  • Mencipta instance OpenAI() dan CompositoToolSet.
  • Mendapatkan Tindakan daripada SYSTEMTOOLS dan IMAGEANALYSERTOO.

Jadi, inilah yang dilakukan oleh alatan ini.

  • ALAT SISTEM: Alat sistem mempunyai dua Tindakan: pemberitahuan tolak dan tangkapan skrin.
  • IMAGEANALYSERTOOL: Alat ini hanya mempunyai satu Tindakan: menganalisis imej menggunakan LLM berbilang modal seperti GPT-4o dan Claude Sonnet, dsb.

Jika anda ingin memeriksa kod dan cara ia berfungsi, semak fail kod untuk alat sistem dan alat penganalisis imej.

Nota: Tindakan dalam Composio ialah tugas yang boleh dilakukan oleh ejen anda, seperti mengklik tangkapan skrin, menghantar pemberitahuan atau menghantar mel.

Sediakan Pembantu OpenAI

Sekarang, tentukan gesaan yang jelas dan padat untuk ejen. Ini penting untuk prestasi ejen. Anda boleh mengubah gesaan berdasarkan keperluan anda.

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)

Dalam blok kod di atas,

  • Arahan pembantu terperinci disediakan.
  • Mencipta tika pembantu baharu dengan arahan yang ditakrifkan sebelum ini, nama model dan tindakan yang ditakrifkan sebelum ini.
  • Akhir sekali, buat urutan untuk interaksi dengan model.

Tentukan dan Jalankan Pembantu

Sekarang, tentukan fungsi untuk menjalankan pembantu.

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()

Berikut ialah perkara yang berlaku dalam kod di atas.

  • Hantar Mesej 'SEMAK': Ini menghantar mesej "SEMAK" kepada pembantu dalam urutan yang ditentukan untuk memastikan model responsif.
  • Ejen Laksanakan: Mencipta larian untuk pembantu menggunakan urutan dan ID pembantu yang ditentukan.
  • Kendalikan Panggilan Alat: Menunggu dan mengendalikan panggilan alat yang dibuat oleh pembantu menggunakan set alat Composito.
  • Gelung Ejen: Gelung ejen supaya ia berjalan dan memantau aliran kerja anda secara berterusan.

Akhir sekali, laksanakan fail dengan menjalankan fail Python dan biarkan rakan AI baharu anda memastikan anda fokus pada matlamat anda.

Ejen memantau skrin anda dan menghantar pemberitahuan apabila ia melihat anda melakukan sesuatu yang anda tidak sepatutnya.

Kod penuh boleh didapati di sini

Berikut ialah contoh ejen yang sedang beraksi.


Langkah Seterusnya

Dalam artikel ini, anda membina rakan AI peribadi anda yang memantau aktiviti anda. Walau bagaimanapun, menambah integrasi luaran seperti Kalendar atau alat Gmail boleh menjadikannya lebih berguna. Ini memberitahu anda jika anda mempunyai beberapa acara untuk dihadiri atau e-mel penting untuk dibalas.

Anda boleh melakukannya dengan mudah dengan pelbagai integrasi Composito, daripada GitHub dan Kalendar kepada Slack, Discord dan banyak lagi.

Jika anda ingin melihat lebih banyak artikel berkaitan AI, beritahu saya dalam ulasan dan berikan kami bintang di GitHub.

Bintangkan repositori Composito.dev ⭐

Terima kasih kerana membaca! <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>

Atas ialah kandungan terperinci Saya Mencipta Rakan AI yang Memantau Skrin Saya dan Membantu Memperbaiki Skrin Saya ✨. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn