Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Digital Assistant

Digital Assistant — проект цифрового помощника для Windows 10/11, предназначенного для взаимодействия с искусственным интеллектом, анализа состояния рабочего стола, работы с PowerShell и помощи в выполнении технических и системных задач.

Основная цель проекта — создать помощника, способного не только давать пользователю инструкции, но и наблюдать результат выполненных действий, анализировать новое состояние системы и последовательно помогать в решении задачи до её завершения.

Проект развивается как модульная платформа. Текущая версия работает с приложением ChatGPT без использования OpenAI API, однако архитектура предусматривает создание параллельных версий с API, локальными моделями искусственного интеллекта и гибридными схемами работы.

Основной рабочий цикл проекта:

наблюдение → анализ → действие → проверка результата → следующий шаг


Цель проекта

Digital Assistant создаётся как экспериментальная система взаимодействия между:

  • компьютерным зрением;
  • языковыми моделями;
  • Windows UI Automation;
  • PowerShell;
  • WinAPI;
  • локальной автоматизацией Windows;
  • системным администрированием.

Помощник должен уметь получать задачу пользователя, анализировать состояние компьютера, взаимодействовать с ИИ, выполнять разрешённые действия и проверять результат.

Предполагаемый рабочий процесс:

  1. Пользователь ставит задачу.
  2. Помощник анализирует состояние рабочего стола.
  3. При необходимости создаётся снимок экрана или активного окна.
  4. Информация передаётся модели искусственного интеллекта.
  5. ИИ анализирует ситуацию и предлагает следующий шаг.
  6. Помощник проверяет действие по правилам безопасности.
  7. Выполняется разрешённое действие или команда.
  8. Получается результат выполнения.
  9. Новый результат повторно анализируется.
  10. Цикл продолжается до выполнения задачи или необходимости подтверждения пользователя.

Текущий статус проекта

Проект находится в активной разработке.

На текущем этапе реализован рабочий механизм взаимодействия с установленным приложением ChatGPT через Windows UI Automation и WinAPI.

Текущая версия проекта не использует:

  • OpenAI API;
  • Playwright;
  • Selenium;
  • браузерные расширения;
  • фиксированные координаты элементов интерфейса.

Вместо этого приложение динамически находит окно ChatGPT и элементы его интерфейса через Windows UI Automation.

Это позволяет взаимодействовать с интерфейсом приложения независимо от абсолютного положения окна на экране.


Реализованные возможности

На текущем этапе реализованы:

  • поиск окна ChatGPT через AutomationElement.RootElement;
  • поиск окна по NameProperty = "ChatGPT";
  • получение дескриптора окна;
  • восстановление свёрнутого окна;
  • перевод окна на передний план;
  • работа с окном в свёрнутом, обычном и развёрнутом состоянии;
  • использование WinAPI для управления окном;
  • поиск поля ввода по AutomationId = "prompt-textarea";
  • определение положения поля ввода через BoundingRectangle;
  • динамическая установка фокуса на поле ввода;
  • вставка текста через буфер обмена;
  • эмуляция Ctrl+V;
  • поиск кнопки отправки по AutomationId = "composer-submit-button";
  • отправка сообщения через InvokePattern;
  • повторный поиск окна перед критическими действиями;
  • повторный поиск UI Automation элементов;
  • тайм-ауты ожидания элементов интерфейса;
  • чтение последнего ответа ChatGPT;
  • тестовые сценарии взаимодействия с интерфейсом;
  • базовая конфигурация безопасности;
  • каркас модуля создания скриншотов;
  • каркас будущего автоматического цикла задач.

Планируемая архитектура

Основная архитектура Digital Assistant строится вокруг замкнутого цикла:

получение состояния системы → анализ ИИ → формирование плана → проверка безопасности → выполнение действия → получение результата → повторный анализ

В перспективе система должна работать следующим образом:

  1. Получить задачу пользователя.
  2. Определить активное приложение или рабочую область.
  3. Сделать снимок экрана или получить текстовый результат команды.
  4. Передать данные системе искусственного интеллекта.
  5. Получить анализ ситуации.
  6. Получить предложение следующего действия.
  7. Проверить действие через модуль безопасности.
  8. При необходимости запросить подтверждение пользователя.
  9. Выполнить разрешённое действие.
  10. Получить результат.
  11. Проверить успешность выполнения.
  12. Продолжить работу или завершить задачу.

Возможные сценарии использования

Digital Assistant разрабатывается для помощи в таких задачах, как:

  • диагностика ошибок Windows;
  • работа с PowerShell;
  • установка программного обеспечения;
  • настройка программ;
  • создание Python virtual environment;
  • установка зависимостей Python;
  • анализ ошибок терминала;
  • анализ stdout и stderr;
  • помощь в настройке среды разработки;
  • автоматизация повторяющихся действий;
  • помощь системному администратору;
  • диагностика состояния системы;
  • выполнение пошаговых технических инструкций;
  • анализ результатов выполнения команд;
  • работа с графическими приложениями;
  • взаимодействие с Windows через UI Automation;
  • техническая поддержка пользователя;
  • автоматизация локальных рабочих процессов.

Структура проекта

Digital_Assistant/
├── Start_Assistant.cmd
├── Digital_Assistant.ps1
│
├── src/
│   ├── UIAutomation.ps1
│   ├── WindowControl.ps1
│   ├── InputControl.ps1
│   ├── ChatGPT.ps1
│   ├── ScreenCapture.ps1
│   └── TaskLoop.ps1
│
├── config/
│   └── settings.json
│
├── screenshots/
│   └── .gitkeep
│
├── logs/
│   └── .gitkeep
│
├── tests/
│   ├── Inspect-ChatGPTMessages.ps1
│   ├── Read-LastChatGPTAssistantMessage.ps1
│   ├── Test-ChatGPT.ps1
│   ├── Test-ChatGPTScrollToBottom.ps1
│   └── Test-ReadLastResponse.ps1
│
├── report_codex.md
├── README.md
└── .gitignore

Запуск

Для обычного запуска проекта:

.\Start_Assistant.cmd

Скрипт запускает Windows PowerShell 5.1 из директории проекта и применяет ExecutionPolicy Bypass только для текущего запуска.

При обычном запуске сообщение в ChatGPT автоматически не отправляется.


Ручной тест отправки сообщения

Перед тестированием приложение ChatGPT должно быть установлено, запущено и открыто.

Окно ChatGPT может быть:

  • свёрнуто;
  • открыто в обычном размере;
  • развёрнуто на весь экран.

Для запуска теста:

powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\tests\Test-ChatGPT.ps1

Тест отправляет в текущий чат сообщение:

Тест Digital_Assistant из проекта


Безопасность

Автоматическое выполнение команд из ответов ChatGPT пока не реализовано.

В файле:

config/settings.json

предусмотрена базовая модель безопасности:

  • allowlist разрешённых команд;
  • denylist потенциально опасных команд;
  • обязательное подтверждение опасных операций.

Примеры операций, которые должны блокироваться или требовать дополнительного контроля:

  • форматирование дисков;
  • очистка дисков;
  • удаление разделов;
  • рекурсивное принудительное удаление файлов;
  • отключение компонентов безопасности Windows;
  • изменение настроек Microsoft Defender;
  • создание локальных пользователей;
  • изменение локальных пользователей;
  • удаление локальных пользователей.

Будущий исполнитель команд должен проверять каждое действие перед выполнением.

Критические операции не должны выполняться автоматически без дополнительной проверки и, при необходимости, подтверждения пользователя.


Развитие семейства проектов

Текущая версия Digital Assistant разрабатывается как вариант цифрового помощника, взаимодействующего с приложением ChatGPT через Windows UI Automation и WinAPI без использования OpenAI API.

При этом проект не ограничивается только одним способом взаимодействия с искусственным интеллектом.

На основе общей архитектуры возможно создание отдельных параллельных веток или самостоятельных связанных проектов.

Возможные направления:

  • версия с использованием официальных API моделей искусственного интеллекта;
  • поддержка нескольких AI-провайдеров;
  • работа с локальными языковыми моделями;
  • работа с локальными мультимодальными моделями;
  • подключение специализированных моделей компьютерного зрения;
  • использование локальных серверов инференса;
  • гибридный режим работы;
  • совместное использование локальных и облачных моделей;
  • автоматический выбор модели в зависимости от типа задачи;
  • распределение задач между несколькими моделями;
  • отдельная модель для анализа изображений;
  • отдельная модель для планирования действий;
  • отдельная модель для генерации команд;
  • отдельный модуль проверки результата;
  • серверная версия помощника;
  • управление несколькими рабочими станциями;
  • специализированная версия для системного администрирования;
  • версия для технической поддержки;
  • версия для диагностики компьютеров;
  • версия для автоматизации рабочих процессов.

Разные варианты проекта смогут использовать общую модульную архитектуру:

источник данных → анализ ИИ → планирование → проверка безопасности → исполнитель → контроль результата

Текущая версия без API является одним из направлений проекта и исследует возможность взаимодействия с искусственным интеллектом через пользовательский интерфейс приложения.

Параллельные версии смогут использовать API, локальные модели, локальные AI-серверы и другие технологии взаимодействия с искусственным интеллектом.


Направления дальнейшего развития

Следующие этапы проекта:

  • полноценное создание скриншотов;
  • захват всего рабочего стола;
  • захват активного окна;
  • автоматическое прикрепление изображений к сообщениям;
  • надёжное чтение ответов ChatGPT;
  • определение момента завершения генерации ответа;
  • выделение структурированных действий из ответа;
  • безопасный исполнитель PowerShell-команд;
  • выполнение команд в отдельном процессе;
  • контроль времени выполнения;
  • получение stdout;
  • получение stderr;
  • анализ кода возврата процесса;
  • определение успешности действия;
  • автоматический цикл выполнения задач;
  • журналирование действий;
  • подтверждение опасных операций;
  • ограничение количества итераций;
  • аварийная остановка;
  • восстановление после ошибок;
  • работа с несколькими приложениями;
  • управление окнами;
  • работа с терминалами;
  • расширение возможностей компьютерного зрения;
  • поддержка нескольких AI-моделей;
  • поддержка API-версий;
  • поддержка локальных моделей;
  • создание гибридного режима работы.

Основная идея

Digital Assistant создаётся как экспериментальная платформа для исследования взаимодействия между компьютерным зрением, языковыми моделями и локальной автоматизацией операционной системы.

Главная задача проекта — создать помощника, который способен не только предложить пользователю команду или инструкцию, но и наблюдать результат её выполнения, анализировать новое состояние системы и последовательно продолжать работу до завершения задачи.

В перспективе система должна уметь самостоятельно определять:

  • что произошло на экране;
  • успешно ли выполнено предыдущее действие;
  • требуется ли повторная попытка;
  • какое действие необходимо выполнить следующим;
  • является ли действие безопасным;
  • требуется ли подтверждение пользователя;
  • достигнута ли конечная цель задачи.

Требования текущей версии

  • Windows 10 или Windows 11;
  • Windows PowerShell 5.1;
  • установленное приложение ChatGPT;
  • разрешённый доступ к буферу обмена;
  • активная пользовательская сессия Windows.

Ограничения текущей версии

На текущем этапе проект является экспериментальным.

Некоторые модули находятся в стадии разработки или представлены в виде архитектурного каркаса.

Автоматическое выполнение команд из ответов ИИ пока не является частью стабильной версии.

Проект не рекомендуется использовать для полностью автономного управления критическими или производственными системами без дополнительного тестирования, журналирования, ограничений прав и контроля пользователя.


Видение проекта

В долгосрочной перспективе Digital Assistant может стать основой для семейства цифровых помощников, способных работать с различными моделями искусственного интеллекта и различными способами взаимодействия с операционной системой.

Основной принцип проекта:

ИИ должен не только давать совет, но и уметь анализировать результат следующего шага.

Это позволяет перейти от обычного формата вопрос–ответ к последовательному циклу решения реальных технических задач.

About

AI-powered desktop assistant using computer vision to analyze screenshots, assist with PowerShell, Python environments, troubleshooting, and system administration tasks.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages