Maison >développement back-end >Tutoriel Python >J'ai créé un compagnon IA qui surveille mon écran et m'aide à réparer mes erreurs ✨

J'ai créé un compagnon IA qui surveille mon écran et m'aide à réparer mes erreurs ✨

PHPz
PHPzoriginal
2024-08-09 07:46:02852parcourir

Dernièrement, j'ai eu du mal avec ma dépendance à regarder Naruto en frénésie. Même si c'est agréable, cela ne m'aide certainement pas à créer de la valeur pour les actionnaires. ?

Alors, pourquoi ne pas créer un assistant personnel IA qui surveille mon écran et me fait savoir si j'exagère quelque chose que je ne devrais pas faire, comme regarder un anime ? ?

Compte tenu du développement rapide de l'IA au cours de l'année écoulée, j'ai décidé d'utiliser un modèle de langage multimodal pour surveiller mon écran et me faire savoir quand je passe trop de temps sur des activités non productives.

Alors, voici comment j'ai procédé.

  • Configurez OpenAI GPT-4o, modèle d'IA multimodal.
  • Utilisez un outil d'analyse d'écran de Composio pour surveiller l'écran.
  • Transmettez les captures d'écran à GPT à intervalles réguliers.
  • Rendu du message de GPT sous forme de notification dans le système.

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

Dans cet article, j'expliquerai également comment vous pouvez créer votre ami IA personnel en utilisant OpenAI et Composio.


Composio - Votre plateforme d'outils pour agents IA

Composio est une plateforme open source qui équipe vos agents IA d'outils et d'intégrations. Il vous permet d'étendre la capacité et la polyvalence de vos agents IA grâce à des outils d'intégration tels que l'interpréteur de code, RAG, Embedding et des intégrations comme GitHub, Slack, Jira, etc.

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

S'il vous plaît, aidez-nous avec une étoile. ?

Cela nous aiderait à créer plus d'articles comme celui-ci ?

Démarrez le référentiel Composio.dev ⭐


Conditions préalables pour créer un ami IA

Pour mener à bien le projet, vous aurez besoin des éléments suivants.

  • SDK OpenAI et clé API : Pour interagir avec le LLM.
  • Composio : Pour accéder à l'outil d'analyse d'images.
  • PyAutoGUI : Pour automatiser les interactions à l'écran.
  • Osascript : pour exécuter des commandes AppleScript pour contrôler les applications macOS.

Alors, commençons.


Commençons ?

Commencez par créer un environnement virtuel Python.

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

Maintenant, installez les dépendances suivantes.

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

Ensuite, créez un fichier .env et ajoutez des variables d'environnement pour la clé API OpenAI.

OPENAI_API_KEY=your API key

Configurer Composio

Vous pouvez utiliser la CLI pour configurer Composio facilement.

Tout d'abord, connectez-vous à votre compte en exécutant la commande suivante.

composio login

Terminez le flux de connexion pour continuer.

Maintenant, mettez à jour les applications.

composio apps update

Maintenant, vous êtes prêt à passer à la partie codage.


Construire l'ami de l'IA

Maintenant que vous avez configuré l'environnement, passons à la partie codage.

Tout d'abord, importez les bibliothèques et initialisez les ensembles d'outils.

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

Donc, dans le bloc de code ci-dessus,

  • Nous avons importé toutes les bibliothèques et modules requis.
  • Chargé les variables définies dans le fichier .env.
  • Création d'une instance d'OpenAI() et de ComposioToolSet.
  • Récupération des actions de SYSTEMTOOLS et IMAGEANALYSERTOO.

Voici donc ce que font ces outils.

  • OUTILS SYSTÈME : les outils système ont deux actions : les notifications push et la capture d'écran.
  • IMAGEANALYSERTOOL : Cet outil n'a qu'une seule Action : analyse les images à l'aide de LLM multimodaux comme GPT-4o et Claude Sonnet, etc.

Si vous souhaitez examiner le code et son fonctionnement, vérifiez les fichiers de code pour les outils système et l'outil d'analyse d'images.

Remarque : les actions dans Composio sont des tâches que votre agent peut effectuer, comme cliquer sur une capture d'écran, envoyer une notification ou envoyer un e-mail.

Configurer l'assistant OpenAI

Maintenant, définissez une invite claire et concise pour l'agent. Ceci est crucial pour les performances des agents. Vous pouvez modifier les invites en fonction de vos besoins.

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)

Dans le bloc de code ci-dessus,

  • Une instruction d'assistant détaillée est fournie.
  • Création d'une nouvelle instance d'assistant avec l'instruction, le nom du modèle et les actions précédemment définis.
  • Enfin, créez un fil de discussion pour interagir avec les modèles.

Définir et exécuter l'assistant

Maintenant, définissez une fonction pour exécuter les assistants.

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

Voici ce qui se passe dans le code ci-dessus.

  • Envoyer un message « CHECK » : cela envoie un message « CHECK » à l'assistant dans le fil de discussion spécifié pour garantir que le modèle est réactif.
  • Exécuter l'agent : crée une exécution pour l'assistant en utilisant le thread spécifié et les ID d'assistant.
  • Gérer les appels d'outils : attend et gère les appels d'outils effectués par l'assistant à l'aide de l'ensemble d'outils Composio.
  • Bouclez l'agent : bouclez l'agent pour qu'il exécute et surveille votre flux de travail en continu.

Enfin, exécutez le fichier en exécutant le fichier Python et en laissant votre nouvel ami IA vous garder concentré sur vos objectifs.

L'agent surveille votre écran et envoie une notification lorsqu'il vous voit faire quelque chose que vous ne devriez pas.

Le code complet peut être trouvé ici

Voici un exemple de l'agent en action.


Prochaines étapes

Dans cet article, vous avez créé votre ami IA personnalisé qui surveille votre activité. Cependant, l'ajout d'intégrations externes telles qu'un outil Calendrier ou Gmail peut le rendre encore plus utile. Cela vous permet de savoir si vous avez des événements auxquels assister ou des e-mails importants auxquels répondre.

Vous pouvez le faire facilement grâce au large éventail d'intégrations de Composio, de GitHub et Calendar à Slack, Discord, et plus encore.

Si vous souhaitez voir plus d'articles sur l'IA, faites-le-moi savoir dans les commentaires et donnez-nous une étoile sur GitHub.

Démarrez le référentiel Composio.dev ⭐

Merci d'avoir lu ! <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>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn