self-operating-computer README

The project's README from github.com/OthersideAI/self-operating-computer. As one markdown file: README.md.

ome

Self-Operating Computer Framework

A framework to enable multimodal models to operate a computer.

Using the same inputs and outputs as a human operator, the model views the screen and decides on a series of mouse and keyboard actions to reach an objective. Released Nov 2023, the Self-Operating Computer Framework was one of the first examples of full computer-use.

Key Features

Demo

https://github.com/OthersideAI/self-operating-computer/assets/42594239/9e8abc96-c76a-46fb-9b13-03678b3c67e0

Run Self-Operating Computer

  1. Install the project
pip install self-operating-computer
  1. Run the project
operate
  1. Enter your OpenAI Key: If you don't have one, you can obtain an OpenAI key here. If you need you change your key at a later point, run vim .env to open the .env and replace the old key.
  1. Give Terminal app the required permissions: As a last step, the Terminal app will ask for permission for "Screen Recording" and "Accessibility" in the "Security & Privacy" page of Mac's "System Preferences".

Using operate Modes

OpenAI models

The default model for the project is gpt-4o which you can use by simply typing operate. To try running OpenAI's new o1 model, use the command below.

operate -m o1-with-ocr

To experiment with OpenAI's latest gpt-4.1 model, run:

operate -m gpt-4.1-with-ocr

Multimodal Models -m

Try Google's gemini-pro-vision by following the instructions below. Start operate with the Gemini model

operate -m gemini-pro-vision

Enter your Google AI Studio API key when terminal prompts you for it If you don't have one, you can obtain a key here after setting up your Google AI Studio account. You may also need authorize credentials for a desktop application. It took me a bit of time to get it working, if anyone knows a simpler way, please make a PR.

Try Claude -m claude-3

Use Claude 3 with Vision to see how it stacks up to GPT-4-Vision at operating a computer. Navigate to the Claude dashboard to get an API key and run the command below to try it.

operate -m claude-3

Try qwen -m qwen-vl

Use Qwen-vl with Vision to see how it stacks up to GPT-4-Vision at operating a computer. Navigate to the Qwen dashboard to get an API key and run the command below to try it.

operate -m qwen-vl

Try LLaVa Hosted Through Ollama -m llava

If you wish to experiment with the Self-Operating Computer Framework using LLaVA on your own machine, you can with Ollama!
Note: Ollama currently only supports MacOS and Linux. Windows now in Preview

First, install Ollama on your machine from https://ollama.ai/download.

Once Ollama is installed, pull the LLaVA model:

ollama pull llava

This will download the model on your machine which takes approximately 5 GB of storage.

When Ollama has finished pulling LLaVA, start the server:

ollama serve

That's it! Now start operate and select the LLaVA model:

operate -m llava

Important: Error rates when using LLaVA are very high. This is simply intended to be a base to build off of as local multimodal models improve over time.

Learn more about Ollama at its GitHub Repository

Voice Mode --voice

The framework supports voice inputs for the objective. Try voice by following the instructions below. Clone the repo to a directory on your computer:

git clone https://github.com/OthersideAI/self-operating-computer.git

Cd into directory:

cd self-operating-computer

Install the additional requirements-audio.txt

pip install -r requirements-audio.txt

Install device requirements For mac users:

brew install portaudio

For Linux users:

sudo apt install portaudio19-dev python3-pyaudio

Run with voice mode

operate --voice

Optical Character Recognition Mode -m gpt-4-with-ocr

The Self-Operating Computer Framework now integrates Optical Character Recognition (OCR) capabilities with the gpt-4-with-ocr mode. This mode gives GPT-4 a hash map of clickable elements by coordinates. GPT-4 can decide to click elements by text and then the code references the hash map to get the coordinates for that element GPT-4 wanted to click.

Based on recent tests, OCR performs better than som and vanilla GPT-4 so we made it the default for the project. To use the OCR mode you can simply write:

operate or operate -m gpt-4-with-ocr will also work.

Set-of-Mark Prompting -m gpt-4-with-som

The Self-Operating Computer Framework now supports Set-of-Mark (SoM) Prompting with the gpt-4-with-som command. This new visual prompting method enhances the visual grounding capabilities of large multimodal models.

Learn more about SoM Prompting in the detailed arXiv paper: here.

For this initial version, a simple YOLOv8 model is trained for button detection, and the best.pt file is included under model/weights/. Users are encouraged to swap in their best.pt file to evaluate performance improvements. If your model outperforms the existing one, please contribute by creating a pull request (PR).

Start operate with the SoM model

operate -m gpt-4-with-som

Contributions are Welcomed!:

If you want to contribute yourself, see CONTRIBUTING.md.

Feedback

For any input on improving this project, feel free to reach out to Josh on Twitter.

Join Our Discord Community

For real-time discussions and community support, join our Discord server.

Follow HyperWriteAI for More Updates

Stay updated with the latest developments:

Compatibility

OpenAI Rate Limiting Note

The gpt-4o model is required. To unlock access to this model, your account needs to spend at least $5 in API credits. Pre-paying for these credits will unlock access if you haven't already spent the minimum $5.
Learn more here

self-operating-computer (OthersideAI/self-operating-computer)

Searching Database…

Что это такое?Фреймворк, который позволяет мультимодальной ИИ-модели управлять вашим компьютером: она видит экран и выполняет действия мышью и клавиатурой, чтобы достичь поставленной вами цели. Один из первых полноценных проектов по управлению компьютером через ИИ (ноябрь 2023).
А как именно он управляет компьютером — это отдельное приложение?Нет, это Python-фреймворк, который запускается из терминала командой 'operate'. Он берёт под контроль вашу настоящую мышь и клавиатуру, ориентируясь на то, что видит на вашем экране.
Как его запустить?Установите Python-пакет, затем выполните 'operate' и вставьте свой API-ключ OpenAI (он сохранится в файл .env, который потом можно отредактировать). На macOS Терминалу также понадобятся разрешения «Запись экрана» и «Универсальный доступ» в Системных настройках.
Какие ИИ-модели могут им управлять — ключ от OpenAI единственный вариант?Нет, он рассчитан на разные мультимодальные модели: GPT-4o, GPT-4.1, o1, Gemini Pro Vision, Claude 3, Qwen-VL, а также LLaVa через Ollama. Вы вводите API-ключ того провайдера, у которого его запросят; по умолчанию используется GPT-4o.
Есть ли подвох, прежде чем режимы OpenAI заработают?Да, используемая им vision-модель закрыта ограничением: на аккаунте OpenAI должно быть потрачено минимум $5 на API-кредиты, так что даже для быстрой пробы, возможно, придётся заранее пополнить баланс на эту сумму.
Работает ли он на Windows или только на Mac?На всех трёх основных настольных системах: macOS, Windows и Linux, хотя на Linux должен быть установлен X-сервер. Вариант с локальной моделью через Ollama поддерживает только macOS и Linux.
Можно ли запустить его с локальной моделью и обойтись без облачных API?Да, в режиме LLaVA: установите Ollama, скачайте модель LLaVA (около 5 ГБ), запустите сервер Ollama и выполните 'operate -m llava'. Честное предупреждение: сейчас доля ошибок очень высокая; в README его называют базой для дальнейшей разработки по мере улучшения локальных моделей.
Как он понимает, куда нажимать?Режим по умолчанию, gpt-4-with-ocr, передаёт GPT-4 хеш-карту кликабельных элементов с их координатами, поэтому модель выбирает цель по тексту, а координаты вычисляет код. Недавние тесты показали, что с OCR точность выше, чем у Set-of-Mark и чистого GPT-4, — поэтому он и используется по умолчанию.
Что такое Set-of-Mark prompting в этом проекте?Это режим -m gpt-4-with-som: техника визуального промптинга, которая улучшает способность модели связывать текст с изображением. Отметки формирует модель YOLOv8, обученная распознавать кнопки; её веса best.pt лежат в model/weights/ и их можно заменить на свои.
Можно ли ставить ему цели голосом?Да, запустите его с флагом --voice. Для голоса после клонирования репозитория нужна дополнительная настройка: установите requirements-audio.txt плюс зависимости для вашего устройства (для Mac и Linux есть отдельные шаги).
Size
12.6 MB
Stars
10.3K
Age
2y
Commits · 90 Days