В этой статье вы узнаете, как создать простого чат‑бота‑гадалку, который будет работать в чате tv3 (платформа для живых трансляций). Мы рассмотрим все этапы разработки: от регистрации бота и получения токенов до написания кода, генерации предсказаний и развертывания проекта.
План статьи
- Что такое tv3 и как получить доступ к API чата
- Выбор технологии: Node.js, Python или другие
- Создание бота‑гадалки: логика и структура
- Генерация предсказаний: простая модель vs. GPT‑3
- Интеграция с tv3: подключение к чату и реагирование на команды
- Развертывание и тестирование
- Полезные ресурсы и ссылки
Что такое tv3 и как получить доступ к API чата
tv3 – это платформа для живых трансляций, аналогичная Twitch, но с открытым API для ботов. Для работы нам понадобится:
- Аккаунт на tv3
- Разрешение на создание ботов
- Токен доступа (OAuth)
Пошагово:
- Зайдите в Настройки → API → Создать токен.
- Выберите область «Chat» и сохраните токен в переменной окружения.
- Убедитесь, что бот имеет права «Читать» и «Писать» в чате.
Выбор технологии
Вы можете использовать любую технологию, но для большинства разработчиков удобней 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_USERNAMETV3_OAUTH_TOKENTV3_CHANNELOPENAI_API_KEY
- Запустите локально:
node index.js. - Для продакшена можно использовать Heroku или Cloud Run.
- Проверьте, что бот реагирует на команды и отвечает в чате.
Полезные ресурсы и ссылки
- Документация tv3 API
- tmi.js GitHub
- OpenAI API Docs
- Пример генерации предсказаний
Создать гадалку на tv3 несложно: достаточно зарегистрировать бота, подключиться к чату через tmi.js, написать простую логику генерации предсказаний и развернуть приложение. Вы можете расширять функциональность, добавляя более сложные модели, голосовой ввод, или интеграцию с другими сервисами. Удачной разработки!