Инструмент с открытым исходным кодом для управления операциями macOS с помощью голоса и текста

Общее введение

MacOS LLM Controller - это настольное приложение с открытым исходным кодом, размещенное на GitHub, которое позволяет пользователям выполнять команды системы macOS, вводя команды на естественном языке с помощью голоса или текста. Оно основано на модели Llama-3.2-3B-Instruct и использует LlamaStack для генерации Python-кода, который вызывает системные API macOS для выполнения задач. Пользователь может сказать "Открыть терминал" или набрать "Новая папка", и инструмент автоматически разберет и выполнит операцию. В проекте используется React Фронт-энд и бэк-энд Flask с обратной связью о состоянии в реальном времени и историей команд идеально подходят для пользователей macOS, чтобы повысить эффективность работы, особенно для разработчиков или людей с ограниченными возможностями. Код находится в открытом доступе, и сообщество может участвовать в оптимизации.

用语音和文字控制macOS操作的开源工具

 

Список функций

  • Распознавание голосовых команд: вводите свой голос через микрофон и переводите его в команды macOS в режиме реального времени.
  • Ввод текстовых команд: поддерживает ввод текста на естественном языке для выполнения системных операций.
  • История команд: отображает статус успешности или неудачи выполненных команд.
  • Обратная связь в режиме реального времени: интерфейс динамически обновляет статус подключений к сервисам и выполнения команд.
  • Генерация кода Python: превращает инструкции в исполняемый код вызовов API macOS на основе LlamaStack.
  • Локализованная работа: вся обработка выполняется локально, чтобы защитить конфиденциальность пользователя.
  • Проверка безопасности: выполняет базовую проверку безопасности сгенерированного кода Python.

 

Использование помощи

Процесс установки

Контроллер LLM для macOS требует настройки среды на системе macOS, включая фронтэнд, бэкэнд и модель LlamaStack. Ниже приведены подробные шаги по установке, чтобы гарантировать пользователям бесперебойную работу:

1. Подготовка окружающей среды

Убедитесь, что система соответствует следующим требованиям:

  • операционная система: macOS (проект разработан для macOS и не поддерживает другие системы).
  • Node.js: Версия 16 или выше, включая npmNode.js. Его можно загрузить с сайта Node.js.
  • Python: версия 3.8 или выше, включает pipМы делаем это впервые. Его можно загрузить с сайта Python.
  • Оллама: Для запуска модели Llama. Доступ Оллама Официальный сайт Установка.
  • Docker: Для запуска LlamaStack установите Docker Desktop.
  • требования к оборудованиюДля поддержки вывода модели рекомендуется 16 ГБ или более оперативной памяти и многоядерный процессор.

2. Клонирование кодов проектов

Откройте терминал и выполните следующую команду, чтобы клонировать код:

git clone https://github.com/duduyiq2001/llama-desktop-controller.git
cd llama-desktop-controller

3. Настройка LlamaStack

LlamaStack - это основная зависимость проекта для генерации Python-кода. Шаги по настройке следующие:

Установка переменных окружения::
Выполните следующую команду в терминале, чтобы задать модель вывода:

export INFERENCE_MODEL="meta-llama/Llama-3.2-3B-Instruct"
export OLLAMA_INFERENCE_MODEL="llama3.2:3b-instruct-fp16"

Запуск сервера рассуждений Ollama::
Выполните следующую команду, чтобы запустить модель и установить, что она будет активна в течение 60 минут:

ollama run $OLLAMA_INFERENCE_MODEL --keepalive 60m

Запуск LlamaStack с помощью Docker::
Установите порт и запустите контейнер:

export LLAMA_STACK_PORT=5001
docker run \
-it \
-p $LLAMA_STACK_PORT:$LLAMA_STACK_PORT \
-v ~/.llama:/root/.llama \
llamastack/distribution-ollama \
--port $LLAMA_STACK_PORT \
--env INFERENCE_MODEL=$INFERENCE_MODEL \
--env OLLAMA_URL=http://host.docker.internal:11434

Убедитесь, что LlamaStack находится в http://localhost:5001 Он работает нормально.

4. Внутренняя настройка

Бэкэнд основан на Flask и отвечает за обработку API-запросов и генерацию кода. Шаги выглядят следующим образом:

  • Перейдите в каталог внутреннего интерфейса:
    cd backend
    
  • Установите зависимости Python:
    pip install -r ../requirements.txt
    

    Зависимости включают flask, иflask-cors, иrequests, иpyobjc ответить пением llama-stack-client. Если установка не удалась, воспользуйтесь домашним зеркалом:

    pip install -r ../requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
    
  • Запустите сервер Flask:
    python server.py
    
  • Убедитесь, что бэкэнд запущен на http://localhost:5066.

5. Настройка фронтальной части

Фронт-энд основан на React и обеспечивает пользовательский интерфейс. Этапы работы следующие:

  • Перейдите в каталог внешнего интерфейса:
    cd ..  # 返回项目根目录
    
  • Установите зависимость Node.js:
    npm install
    
  • Запустите сервер разработки:
    npm run dev
    
  • Убедитесь, что внешний модуль запущен на http://localhost:5173.

6. доступ к приложениям

Откройте браузер и посетите http://localhost:5173. Убедитесь, что бэкэнд и LlamaStack работают правильно, иначе функциональность может быть ограничена.

Руководство по эксплуатации функций

1. использование голосовых команд

Голосовой ввод является основной функцией проекта и подходит для быстрого управления. Операции выполняются следующим образом:

  • Активируйте голосовой режим: Нажмите на кнопку "Голосовой ввод" в главном интерфейсе (или воспользуйтесь клавишами быстрого доступа, для подтверждения необходимо обратиться к документации).
  • Инструкции по записи: Произносите команды в микрофон, например "Открыть Finder" или "Закрыть Safari". Для повышения скорости распознавания соблюдайте тишину в помещении.
  • процесс реализации: Инструмент преобразует речь в текст с помощью SpeechRecognition API, который LlamaStack разбирает на Python, вызывая API macOS для выполнения задачи.
  • Примеры общих команд::
    • "Открыть терминал": запускает приложение Terminal.app.
    • "Новая папка": создает папку в текущем каталоге.
    • "Скриншот": запускает функцию скриншотов в macOS.
  • предостережение::
    • Для первого использования микрофона необходимо авторизоваться.
    • Если распознавание не удается, проверьте настройки микрофона или переключите ввод текста.

2. Использование текстовых инструкций

Ввод текста подходит для точного управления. Операции выполняются следующим образом:

  • Откройте поле ввода: Найдите в интерфейсе область ввода текста.
  • вход: Введите на естественном языке, например "открыть календарь" или "включить громкость на 50%".
  • Представление инструкцийНажмите кнопку Выполнить или клавишу Enter, и инструмент сгенерирует и запустит Python-код.
  • Расширенное использованиеLlamaStack поддерживает сложные команды, такие как "Создать новую папку на рабочем столе под названием "Проекты" и открыть ее". LlamaStack разбивает задачи и выполняет их последовательно.
  • привлекать внимание к чему-л.: Ясность инструкций повышает успех, например, "Открыть Chrome" лучше, чем "Открыть браузер".

3. Просмотр истории команд

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

  • состояние успеха: Зеленая отметка означает, что команда была выполнена правильно.
  • состояние ошибки: Красные флажки с сообщениями об ошибках (например, "недостаточно прав").
  • буровая установка: Вы можете нажать History, чтобы повторно выполнить команду, или просмотреть сгенерированный код Python.

4. мониторинг состояния в реальном времени

Статус службы отображается в правом верхнем углу интерфейса:

  • зеленее: Бэкэнд и LlamaStack подключены правильно.
  • розовый: Служба отключена, и вам нужно проверить, запущен ли Flask или LlamaStack.
  • буровая установка: Нажмите на значок состояния, чтобы вручную обновить соединение.

5. инспекции безопасности

Инструмент выполняет базовую проверку безопасности сгенерированного Python-кода:

  • Фильтруйте команды повышенной опасности (например, удаление системных файлов).
  • Проверьте синтаксические ошибки и убедитесь, что код исполняем.
  • принимать к сведению: Следует соблюдать осторожность, чтобы не запускать команды из неизвестных источников.

предостережение

  • зависимость от модели: Проект исправлен для использования Llama-3.2-3B-Instruct и не может напрямую заменить другие модели.
  • Требования к производительности: Запуск LlamaStack требует больших вычислительных мощностей, поэтому рекомендуется закрыть посторонние программы.
  • Метод ввода в эксплуатацию: Если запуск не удался, проверьте журналы терминала или зайдите в http://localhost:5066/status Проверьте состояние бэкэнда.
  • Вопросы компетенции: Некоторые команды macOS требуют авторизации (например, для доступа к файлам или управления громкостью), и при их первом запуске появляется запрос на разрешение.
  • Поддержка общества: Проблемы могут быть представлены через GitHub Issues с логами ошибок, чтобы разработчики могли устранить неполадки.

 

сценарий применения

  1. Помощь в обеспечении доступности
    Пользователи с нарушениями зрения и мобильности могут использовать голосовые команды для управления macOS, например "Открыть почту", чтобы быстро запустить приложение Mail.app, для большего удобства использования.
  2. Эффективность разработчиков
    Разработчики могут быстро выполнять такие команды, как "Открыть Xcode и создать новый проект", экономя время на выполнении ручных задач и позволяя им сосредоточиться на задачах разработки.
  3. автоматизация рутинной работы
    Пользователи могут выполнять повторяющиеся задачи, например "Упорядочивать файлы рабочего стола в архивные папки каждый день", с помощью текстовых команд, что подходит для эффективной офисной работы.
  4. Образование и эксперименты
    Любители программирования могут изучить, как LlamaStack превращает естественный язык в код, и узнать, как ИИ интегрируется в системы.

 

QA

  1. А как насчет неточного распознавания голоса?
    Убедитесь, что микрофон работает и в окружении нет шума. Если он по-прежнему не работает, переключитесь на текстовый ввод или проверьте конфигурацию SpeechRecognition API.
  2. Что делать, если бэкэнд не удается запустить?
    Убедитесь, что зависимость Python полностью установлена и что LlamaStack запущен на сервере http://localhost:5001. Посмотреть server.py Ошибка позиционирования журнала.
  3. Поддерживает ли он системы, отличные от macOS?
    В настоящее время поддерживается только macOS, так как код опирается на API macOS, но в будущем он может быть расширен на другие платформы с помощью сообщества.
  4. Как оптимизировать производительность?
    Увеличьте объем памяти или используйте высокопроизводительный CPU/GPU и закройте другие программы, загромождающие ресурсы. Также попробуйте использовать более эффективную конфигурацию LlamaStack.
  5. Как внести свой код?
    Форк репозитория и отправка Pull Request. Рекомендуется прочитать документацию проекта и следовать рекомендациям по внесению вклада.
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...