Использование MINDcraft с Novita AI: подробное руководство

Использование MINDcraft с Novita AI: подробное руководство

MINDcraft — это новаторский проект с открытым исходным кодом, который интегрирует большие языковые модели (LLM) для управления ботами в Minecraft, открывая новое измерение взаимодействия и творчества в игре. Он использует библиотеку Mineflayer, позволяя этим ботам выполнять сложные задачи с помощью генерации высокоуровневого кода. Этот проект не только демонстрирует потенциал ИИ в играх, но и расширяет границы возможностей языковых моделей в виртуальных средах. Novita AI рекомендуется как один из поставщиков API для проекта.

Обзор проекта MINDcraft

В основе MINDcraft лежит приложение на Node.js, которое интегрирует LLM для управления ботами в Minecraft, выполняющими различные задачи. Основной бот по имени Энди может общаться с игроками и самостоятельно ставить цели, такие как сбор ресурсов или строительство зданий. Эта способность позволяет Энди играть в игру независимо, постоянно адаптируясь и устанавливая новые задачи без вмешательства человека. Архитектура проекта позволяет Энди эффективно выполнять команды и осмысленно взаимодействовать с игровой средой.

https://www.youtube.com/embed/IeXadWbvDiE

Ключевые особенности

  • Интеграция языковых моделей: MINDcraft использует LLM для генерации кода, который управляет действиями бота в Minecraft. Эта интеграция позволяет Энди эффективно выполнять сложные задачи, интерпретируя инструкции на естественном языке и преобразуя их в игровые команды.
  • Автономный геймплей: Энди может самостоятельно ставить цели и ориентироваться в игровом мире, что расширяет его возможности выполнять задачи без прямого участия игрока. Такая автономия позволяет Энди исследовать новые стратегии и адаптировать своё поведение на основе обратной связи от окружения.
  • Параметризованные команды: Проект включает команды, аналогичные тем, что используются в Toolformer, что позволяет Энди более надёжно выполнять такие задачи, как сбор ресурсов. Эти параметризованные команды упрощают выполнение задач, предоставляя предопределённые действия, которые можно настраивать под конкретные требования.

Разработка и внедрение MINDcraft

Разработка

Вдохновение и начальная работа

Разработка MINDcraft началась после выхода заметной статьи о Voyager, в которой была представлена библиотека Mineflayer для создания ботов Minecraft на Node.js. В отличие от предыдущих исследований ИИ, использовавших изображения в качестве входных данных и низкоуровневые выходные данные, Mineflayer позволяет ИИ-системам взаимодействовать с Minecraft с помощью высокоуровневого кода, упрощая такие задачи, как навигация и сбор ресурсов, без необходимости обучения с подкреплением.

Использование LLM для выполнения инструкций

Современные LLM отлично справляются с генерацией кода и выполнением инструкций, что позволяет легко настроить LLM на генерацию кода Mineflayer на основе человеческих инструкций, что и привело к созданию Энди. Для повышения надёжности Энди при выполнении стандартных навыков были реализованы параметризованные команды. Например, Энди может вывести !collectBlocks("oak_log", 1) вместо генерации сложного кода.

Улучшения и дальнейшие планы

Со временем набор команд Энди был расширен, добавлены автоматические действия, такие как избегание агрессивных мобов. Недавно Энди научился самостоятельно играть в Minecraft, ставя цели на естественном языке (например, «Собери материалы для постройки дома»). Будущие планы включают повторное использование кода, рефлексию опыта, улучшенное пространственное восприятие, ввод изображений и взаимодействие нескольких агентов.

Внедрение

Внедрение MINDcraft

Класс Agent и основной логический цикл

Главный класс MINDcraft — это класс Agent, который создаётся каждый раз, когда Энди не вошёл в игру. Основной логический цикл в handleMessage выполняется, когда игрок отправляет сообщение Энди:

handleMessage(message):
    history.add(message)
    while true:
        hist = history.getHistory()
        response = prompter.promptConvo(hist)
        if containsCommand(response):
            cleanChat(response)
            history.add(response)
            result = executeCommand(this, response)
            history.add(result)
        else:
            cleanChat(response)
            history.add(response)
            break

Обработка ответов и команд

Энди может вернуть один диалоговый ответ или итеративно вызывать команды запроса или действия. Запросы предоставляют информацию о состоянии мира (например, !inventory, !nearbyBlocks ), а действия вызывают игровые реакции (например, !followPlayer(name) , !collectBlocks(block) ). Все действия выполняются с помощью метода execute в классе Coder.

Генерация пользовательского кода

Для сложного поведения, такого как строительство, Энди может написать собственный код, выдав команду newAction для входа в режим кодирования. Используя метод generateCode из класса Coder, Энди пишет пользовательский код JavaScript с доступом к Mineflayer и библиотеке полезных функций. Метод включает цикл для нескольких попыток отладки.

Роль контекстных примеров

Контекстные примеры имеют решающее значение для качества ответов Энди. Модель встраивания находит примеры, похожие на текущую историю, и добавляет их в контекст LLM, что гарантирует правильное использование команд и запрос информации перед выполнением задач.

Как запустить MINDcraft

Требования

  • Minecraft Java Edition (до версии 1.21.1, рекомендуется 1.20.4)
  • Установленный Node.js (не ниже версии 14)
  • Один из следующих ключей: OpenAI API Key | Gemini API Key | Anthropic API Key | Replicate API Key | Hugging Face API Key | Groq API Key | Установленный Ollama. | Qwen API Key | Novita AI API Key |

Установка и запуск

Убедитесь, что выполнены все требования.

  1. Клонируйте или загрузите этот репозиторий (большая зелёная кнопка)
  2. Переименуйте keys.example.json в keys.json и заполните свои ключи API (достаточно одного). Нужная модель задаётся в andy.json или других профилях. Для остальных моделей смотрите таблицу ниже.
  3. В терминале/командной строке выполните npm install из установленной директории
  4. Запустите мир Minecraft и откройте его по LAN на локальном порту 55916
  5. Выполните node main.js из установленной директории

Настройка

Вы можете настроить параметры проекта в settings.js. Смотрите файл. Имя агента, модель и подсказки можно настроить в его профиле, например andy.json.

API Переменная конфигурации Пример названия модели
Novita AI NOVITA_API_KEY gryphe/mythomax-l2-13b

Как получить ключ API Novita AI

Шаг 1: Перейдите на novita.ai и войдите в систему

Вы можете войти на Novita AI через Google или GitHub, что создаст новую учётную запись при первом входе. Альтернативно, вы можете зарегистрироваться, используя свой адрес электронной почты.

Шаг 2: Управление ключом API LLM Novita AI

Novita AI обеспечивает доступ к API через аутентификацию Bearer, включая ключ API в заголовок запроса, например «Authorization: Bearer {API Key}». Для управления ключами перейдите в «Key Management» в настройках. При первом входе автоматически генерируется ключ по умолчанию. Вы можете создать дополнительные ключи, нажав «+ Add New Key».

Страница управления ключами novita

Шаг 3: Пополните счёт

Novita AI предоставляет новым пользователям ваучер с некоторым кредитом для ознакомления с продуктами. Чтобы добавить больше средств, посетите Billing and Payments и следуйте руководству по способам оплаты.

Полезные ссылки и ресурсы

Заключение

MINDcraft является значительным шагом вперёд в исследованиях ИИ в игровых средах. Используя возможности LLM, он открывает новые возможности для творчества и взаимодействия в Minecraft. По мере развития проекта участие сообщества и обратная связь будут играть решающую роль в формировании его будущего. Открытый исходный код проекта поощряет сотрудничество между разработчиками и исследователями, заинтересованными в изучении пересечения ИИ и игр.

Оригинальная публикация: Novita AI

Novita AI — это облачная платформа ИИ, предоставляющая разработчикам простой способ развёртывания моделей ИИ с помощью нашего простого API, а также доступные и надёжные GPU-облака для создания и масштабирования.