Как сделать телеграм-бота на нейросети ChatGPT на node.js?
ChatGPT - очень популярная нейросеть, которая умеет весьма осмысленно отвечать на вопросы пользователей, в том числе на русском языке. Попробовать пообщаться с ней можно на сайте, также в интернетах есть уже весьма много готовых реализаций ботов для разных платформ, в том числе и для телеграма, но забавно, что сделать свою реализацию может оказаться быстрее, чем развернуть чей-нибудь проект. Чтобы получить ответ от нейросети достаточно дернуть один запрос в апи openai с немного неочевидным названием: Create completion.
Собственно, к процессу создания:
- создаем бота в телеграме с помощью BotFather, отсюда забираем token, еще можно сразу отключить Group privacy в настройках бота после создания;
- регистрируемся в openai и в профиле создаем секретный ключ и сохраняем куда-нибудь.
Если node.js уже установлена, тогда описанные выше шаги - это самое сложное.
Для общения с апи телеграма воспользуемся библиотекой node-telegram-bot-api, а для общения с openai возьмем одноименную библиотеку (на основе нее примеры в доке), ну и остается написать код и запустить.
[source]bot.js[/source]
Параметры для вызова openai api можно найти в примерах: обычный чат, чат с другом. В этих примерах генерится кусок диалога и нейросеть дополняет этот диалог, отсюда и получается, что результат метода выглядит как вопрос.
Это самая примитивная реализация, которую уже можно развивать под свои нужды, например, добавить проверку chat.type на приватные сообщения и супергруппу, также отработать вариант обращения к боту по имени и прочее, в общем, сделать то, чего вам не хватает в чужих реализациях. Успехов! =)
Сколько стоит?
В конце 2022 openai выдавало 18 бесплатных баксов на пробное использование их апи со сроком годности до апреля 2023. В профиле можно посмотреть как расценки, так и сколько денег уже потрачено. На деле где-то 200 ответов от ИИ обходятся в 1 бакс, чего вполне достаточно, чтобы заценить сервис.