Форум Pawn.Wiki - Воплоти мечту в реальность!: Реализация AI NPC - Форум Pawn.Wiki - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Scr ][ Other ]
Реализация AI NPC
Оценка: ***** 1 Голосов

#1
Пользователь офлайн   KrasavaGhost 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
Всем привет. Хочу поделится одной наработкой, а именно которая заставляет NPC общаться не по скрипту.

Ниже будет пример для локальной работы, но к сожалению, я не нашел как это все перенести, чтобы работало 24/7 думаю решается обычным VDS

Для реализации понадобится:

  • Сам AI, и это будет LM Studio
  • Yandex Cloud для реализации озвучки, если кому-то важно
  • Любить уток


Клиентская часть
Установка LM Studio

Скачать можно по специальной ссылке: https://lmstudio.ai/
После установки система предложит скачать одну из моделей, вам нужно ее пропустить через кнопку Skip

После установки вы будете в общем меню
Общее меню [Показать]


Далее в самом верху нужно выбрать Select a model to load и в поиске написать gemma-2-9b-it и выбираем от bartowski
Фотография для наглядности [Показать]


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

Фотография [Показать]


Настройка сервера JS

Для начала нужно создать папку в любом месте (для удобства), а в ней создать файл server.js
После в папке нажимает Shift+ПКМ и открываем терминал, вписываем следующее npm install express axios iconv-lite fluent-ffmpeg, после установки зависимостей пишем node server.js


Настройка Yandex Cloud для озвучки (опционально)

Тут все просто, нам нужно создать API ключ и ID аккаунта, но для начала:

- Регистрируемся по специальной ссылке в сервисе: https://yandex.cloud/
- После регистрации система вас направит в консоль: https://console.yandex.cloud/

Общее меню консоли [Показать]


- Переходим на получение гранта в 4000 рублей, привязываем карту и активируем (расходы будут минимальными тк я потратил всего 10 рублей).
- В самом вверху (показал на фотографии) у вас будет профиль default (копируем id) и сохраняем;

Далее у каталога default нажимаем на 3 точки и выбираем "Создать сервисный аккаунт"
Фотография [Показать]


При создании указываем любое имя, например admin и выбираем следующие роли ai.speechkit-tts.user и ai.speechkit-stt.user
Пример [Показать]


Отлично. Половина настройки озвучки уже завершена. В разделе "Ресурсы" у вас отобразится новый блок "Identity and Access Management", нажимаем и нас перенаправляет в список сервисных аккаунтов, выбираем наш созданный
Фотография раздела ресурсов [Показать]


Теперь мы в нашем сервисном аккаунте. В самом верху будет "Создать новый ключ", выбираем "Создать Api-ключ"
Фотография [Показать]


При создании выбираем следующее: yc.ai.languageModels.execute, yc.ai.speechkitTts.execute и yc.ai.speechkitStt.execute. Создаем и сохраняем наш API

Создание API-ключа [Показать]


Настройка server.js

После создания ключа возвращаемся в наш файл server.js и вписываем следующий код. Нам нужно 2 строки YANDEX_API_KEY и YANDEX_FOLDER_ID, в YANDEX_API_KEY вписываем ключ, который создавали в сервисном аккаунте, а YANDEX_FOLDER_ID (это ID нашего каталога). Найти можно на странице https://console.yandex.cloud/. Ранее на фотографии был как default.

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

Код server.js [Показать]


Настройка серверной части. Pawn

Хочу сразу предупредить, что писал все в базовом моде bare без подключения сторонних плагинов.

В начало мода пишем следующий код:

Код [Показать]


В OnGameModeInit() прописываем следующий код
Код [Показать]


К командам OnPlayerCommandText добавим следующий код:

Код [Показать]


- Команда /aisettings настраивает наш искусственный интеллект, то есть, позволяет включить озвучку или отключить AI полностью
- Команда /drunkme, та самая команда, которая поможет протестить пьянку в чате;
- Команда /clearai очищает память NPC к вам;
- Команда /airep помогает посмотреть репутацию.

Слова для репутации можно исправить в server.js
На данный момент слова, который понижают репутацию (нахуй|хуй|сука|бля|уебок|гавно|мать|завали)
Слова, которые повышают репутацию и делают нпс добрее к вам (сэр|шериф|офицер|пожалуйста)

Тему не сносите из-за текста выше, это лишь пример.

В OnDialogResponse добавим следующий код

Код [Показать]


В OnPlayerText добавим следующий код

Код [Показать]



В конец мода вписываем следующий код и завершаем pawn подключение

Код [Показать]


Завершение

Остается запустить наш сервер, далее перейти в папку с файлом server.js и через Shift+ПКМ повторно открыть терминал и прописать node server.js
Также убедитесь, что порт 1234 свободен и в панеле из начала решения сервер также запущен. Он будет все время открыт на фоне и вы его не заметите



Результат

На фотографии можно заметить настройку, переадресацию на озвучку и вывод текста в чате.
Я добавил небольшую задержку между сообщением и ответом, чтобы флуда не было. Теперь нейронка для каждого нпс работает индивидуально.

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

Фотография [Показать]

Сообщение отредактировал KrasavaGhost: 21 декабря 2025 - 06:47

5

#2
Пользователь офлайн   KrasavaGhost 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
Немного внес изменения, а именно:

- Добавил ИИ в транспорт, который реагирует на скорость, столкновения и можно просто поговорить.
Для общения используйте /c

- Исправил пьяный чат, иногда писал некорректно или переключался на другие языки
- Немного внес изменения в голосовые реплики
- Исправил отправку голосовых сообщений у нпс
- Добавил КД при аварии, чтобы голосовые фразы машины не спамились

- Готовый server.js уже в оглавлении, а ниже pawn код

Система ИИ в машине

В начало мода

Код [Показать]


В OnPlayerUpdate

Код [Показать]


Ко всем командам

Код [Показать]


В OnPlayerStateChange

Код [Показать]



В конец мода

Код [Показать]

Сообщение отредактировал KrasavaGhost: 21 декабря 2025 - 06:49

2

#3
Пользователь офлайн   KrasavaGhost 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
Скоро выпущу обновление тематики с AI, а именно:

Было найдено бесплатное решение держать активную ai модель (не понадобится мощный комп и открывает доступ к системе на всех устройствах)
Также в процессе генерация музыки прямо на сервере через ai совершенно бесплатно и без скачиваний моделей

Сообщение отредактировал KrasavaGhost: 04 января 2026 - 15:48

0

#4
Пользователь офлайн   Relentless! 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Гениальное изобретение! Молодец! :blush:
1

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика