Создание простого чат-бота-гадалки для tv3

В этой статье вы узнаете, как создать простого чат‑бота‑гадалку, который будет работать в чате tv3 (платформа для живых трансляций). Мы рассмотрим все этапы разработки: от регистрации бота и получения токенов до написания кода, генерации предсказаний и развертывания проекта.

План статьи

  1. Что такое tv3 и как получить доступ к API чата
  2. Выбор технологии: Node.js, Python или другие
  3. Создание бота‑гадалки: логика и структура
  4. Генерация предсказаний: простая модель vs. GPT‑3
  5. Интеграция с tv3: подключение к чату и реагирование на команды
  6. Развертывание и тестирование
  7. Полезные ресурсы и ссылки

Что такое tv3 и как получить доступ к API чата

tv3 – это платформа для живых трансляций, аналогичная Twitch, но с открытым API для ботов. Для работы нам понадобится:

  • Аккаунт на tv3
  • Разрешение на создание ботов
  • Токен доступа (OAuth)

Пошагово:

  1. Зайдите в Настройки → API → Создать токен.
  2. Выберите область «Chat» и сохраните токен в переменной окружения.
  3. Убедитесь, что бот имеет права «Читать» и «Писать» в чате.

Выбор технологии

Вы можете использовать любую технологию, но для большинства разработчиков удобней Node.js с библиотекой tmi.js или Python с twitchio. В примерах ниже используется Node.js.

Установка зависимостей

npm init -y
npm install tmi.js dotenv openai

Создание бота‑гадалки: логика и структура

Бот будет реагировать на команды !прогноз и !карта. Структура проекта:

  • index.js – основной файл, подключает библиотеку и обрабатывает события.
  • .env – переменные окружения (токен tv3, ключ OpenAI).
  • utils/fortune.js – модуль генерации предсказаний.

index.js

require('dotenv').config;
const tmi = require('tmi.js');
const { generateFortune } = require('./utils/fortune');

const client = new tmi.Client({

 options: { debug: true },
 identity: {
 username: process.env.TV3_BOT_USERNAME,
 password: process.env.TV3_OAUTH_TOKEN,
 },
 channels: [ process.env.TV3_CHANNEL ],
});

client.connect;

client.on('message', (channel, tags, message, self) => {
 if (self) return;

 const command = message.trim.toLowerCase;
 if (command === '!прогноз') {
 const fortune = generateFortune(tags.username);
 client.say(channel, `@${tags.username}, ${fortune}`);
 }
});

utils/fortune.js

const openai = require('openai');
const { Configuration, OpenAIApi } = openai;

const configuration = new Configuration({
 apiKey: process.env.OPENAI_API_KEY,
});
const openaiClient = new OpenAIApi(configuration);

async function generateFortune(username) {
 const prompt = `Создай короткое, но глубокое предсказание для пользователя ${username}.`;
 const response = await openaiClient.createCompletion({
 model: 'text-davinci-003',
 prompt,
 max_tokens: 60,
 temperature: 0.7,
 });
 return response.data.choices[0].text.trim;
}

module.exports = { generateFortune };

Если вы не хотите использовать OpenAI, замените функцию generateFortune на простую случайную генерацию из массива фраз.

Генерация предсказаний: простая модель vs. GPT‑3

  • Простая модель – массив из 20–30 фраз, выбор случайной. Быстро, без внешних зависимостей.
  • GPT‑3 / GPT‑4 – более гибкая генерация, контекстуальная адаптация, но требует ключа и может иметь ограничение по токенам.

Решение зависит от бюджета и требований к качеству предсказаний.

Интеграция с tv3: подключение к чату и реагирование на команды

Библиотека tmi.js автоматически подключается к чату и слушает события. В примере выше бот реагирует на команду !прогноз. Вы можете добавить дополнительные команды:

// Команда !карта
if (command === '!карта') {
 const card = drawCard;
 client.say(channel, `@${tags.username} — ваша карта: ${card}`);
}

Где функция drawCard возвращает случайную карту из колоды.

Развертывание и тестирование

  • Создайте файл .env с переменными:
    • TV3_BOT_USERNAME
    • TV3_OAUTH_TOKEN
    • TV3_CHANNEL
    • OPENAI_API_KEY
  • Запустите локально: node index.js.
  • Для продакшена можно использовать Heroku или Cloud Run.
  • Проверьте, что бот реагирует на команды и отвечает в чате.

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

  • Документация tv3 API
  • tmi.js GitHub
  • OpenAI API Docs
  • Пример генерации предсказаний

Создать гадалку на tv3 несложно: достаточно зарегистрировать бота, подключиться к чату через tmi.js, написать простую логику генерации предсказаний и развернуть приложение. Вы можете расширять функциональность, добавляя более сложные модели, голосовой ввод, или интеграцию с другими сервисами. Удачной разработки!