Проект на тему "Разработка ИИ чат-ботов"

Рейтинг: 1

разработка ИИ чат-ботов
Тематика: 
Автор: 
Ляшенко Дарья Сергеевна
Руководитель: 
Макаренко Наталья Анатольевна
Учреждение: 
МБОУ Гимназия № 2 г. Георгиевска
Класс: 
10

Исследовательская работа (проект) по информатике на тему «Разработка ИИ чат-ботов» ученицы 10 класса направлена на изучение принципов создания интеллектуальных систем, способных взаимодействовать с пользователями на естественном языке.

Также проект по информатике направлен на практическое освоение технологий искусственного интеллекта и программирования. В ходе работы учащаяся знакомится с основами обработки естественного языка (NLP), алгоритмами машинного обучения и логикой построения диалоговых систем.


В рамках индивидуального проекта о разработке ИИ чат-ботов учащейся рассматриваются вопросы удобства взаимодействия (UX), корректности и этичности ответов, а также безопасности данных пользователей. В результате выполнения работы автор приобретает навыки программирования, логического и системного мышления, работы с современными цифровыми технологиями, а также понимание перспектив развития искусственного интеллекта и его применения в различных сферах жизни.

Оглавление

Введение

  1. Основные сведения об интернет-мессенджере Telegram
  2. 1.1. Преимущества Telegram для разработки ботов
    1.2. Библиотека python-telegram-bot

  3. Теоретические основы искусственного интеллекта и языковых моделей.
  4. 2.1. Большие языковые модели (LLM)
    2.2. Режим рассуждения (Reasoning)
    2.3. Платформа OpenRouter

  5. Технические особенности создания кулинарного бота.
  6. 3.1. Архитектура проекта
    3.2. Системный промпт
    3.3. Управление историей диалога

  7. Разработка и реализация кулинарного бота
  8. 4.1. Установка зависимостей и настройка окружения.
    4.2. Функция обращения к ИИ
    4.3. Обработчики команд и кнопок

  9. Практическое применение кулинарного бота.
  10. 5.1. Начало работы и главное меню
    5.2. Генерация случайного рецепта
    5.3. Рецепт по запросу пользователя.
    5.4. Области применения

Заключение
Список используемых источников
Приложения

ВВЕДЕНИЕ

В современном мире технологии искусственного интеллекта проникают во все сферы жизни человека. Умные ассистенты, чат-боты, рекомендательные системы — всё это стало частью повседневной реальности. Одним из наиболее доступных и популярных инструментов для взаимодействия с ИИ являются чат-боты в мессенджерах, в частности, в Telegram.

Кулинария - одна из тех областей, где помощь искусственного интеллекта может быть особенно полезна: не всегда понятно, что приготовить из имеющихся продуктов, как правильно соблюсти пропорции и последовательность действий.

Актуальность данного проекта определяется сочетанием двух факторов: стремительным развитием технологий ИИ и массовой аудиторией мессенджера Telegram. Создание кулинарного бота позволяет объединить достижения в области больших языковых моделей с повседневными потребностями людей, делая доступ к кулинарным знаниям простым и удобным.

Цель проекта: разработать чат-бота для мессенджера Telegram, способного генерировать кулинарные рецепты и пошаговые инструкции приготовления блюд с использованием технологии большой языковой модели.

Для достижения поставленной цели необходимо решить следующие задачи:

  1. изучить возможности мессенджера Telegram и его Bot API;
  2. исследовать принципы работы больших языковых моделей (LLM) и режима рассуждения (Reasoning);
  3. изучить возможности платформы OpenRouter для доступа к ИИ-моделям;
  4. разработать архитектуру и структуру кулинарного чат-бота;
  5. реализовать бота на языке программирования Python;
  6. протестировать работу бота и проверить корректность генерации рецептов.

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

Объект исследования: чат-боты в мессенджере Telegram.

Предмет исследования: применение искусственного интеллекта для создания кулинарного ассистента.

1. ОСНОВНЫЕ СВЕДЕНИЯ О МЕССЕНДЖЕРЕ TELEGRAM И ЕГО BOT API


Telegram — кроссплатформенный мессенджер с функциями обмена сообщениями, голосовыми и видеозвонками, стикерами и файлами. Сервис создан Павлом и Николаем Дуровыми и использует собственный протокол MTProto, обеспечивающий высокую скорость и безопасность передачи данных.

По данным на 2024 год аудитория Telegram превышает 900 миллионов активных пользователей в месяц, что делает платформу одним из самых популярных мессенджеров в мире. Приложение доступно на платформах Android, iOS, Windows, macOS и Linux, а также через веб-браузер.

Одной из ключевых особенностей Telegram является открытый Bot API — программный интерфейс, позволяющий разработчикам создавать автоматизированные аккаунты (боты), которые могут взаимодействовать с пользователями, отвечать на сообщения, отправлять файлы, создавать интерактивные меню и выполнять множество других действий.

Боты в Telegram широко применяются в самых разных сферах: в образовании, бизнесе, технической поддержке, интернет-магазинах и медиа. С их помощью можно автоматизировать обработку запросов, отправку уведомлений, проведение опросов, приём заказов и предоставление справочной информации. Благодаря этому Telegram стал не только средством общения, но и удобной платформой для реализации цифровых сервисов.

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

1.1. Преимущества Telegram для разработки ботов

Telegram предоставляет разработчикам следующие возможности:

  • Бесплатный Bot API без ограничений на количество сообщений;
  • Встроенная поддержка кнопок (InlineKeyboard и ReplyKeyboard);
  • Возможность отправки файлов, изображений, голосовых сообщений;
  • Поддержка форматирования текста (Markdown и HTML);
  • Webhook и Long Polling — два способа получения обновлений;
  • Отсутствие необходимости хранить личные данные пользователей.

Для создания бота необходимо обратиться к официальному боту @BotFather в Telegram. Он выдаёт уникальный токен — строку символов, служащую ключом доступа к API. Этот токен используется в коде программы для авторизации запросов.

1.2. Библиотека python-telegram-bot

Для работы с Telegram Bot API на языке Python существует несколько библиотек. В данном проекте использована библиотека python-telegram-bot версии 20+, реализующая полный асинхронный интерфейс к Telegram Bot API.

Основные компоненты библиотеки:

  • Application — главный объект приложения, управляющий жизненным циклом бота;
  • CommandHandler — обработчик команд (например, /start, /help);
  • MessageHandler — обработчик текстовых и иных сообщений;
  • ReplyKeyboardMarkup — создание клавиатуры с кнопками под полем ввода;
  • ContextTypes — типы контекста для передачи данных между обработчиками.

2. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА И ЯЗЫКОВЫХ МОДЕЛЕЙ


Искусственный интеллект (ИИ) — раздел информатики, занимающийся созданием систем, способных выполнять задачи, которые требуют человеческого интеллекта: понимание языка, распознавание образов, принятие решений, генерация текста.

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

Одним из наиболее заметных направлений развития ИИ является машинное обучение. Его суть заключается в том, что компьютер не получает готовые правила, а обучается на больших объёмах данных, выявляя закономерности и используя их для прогнозирования или классификации. Благодаря этому программы могут со временем улучшать качество своей работы.

Особое место занимает нейросетевой подход, вдохновлённый принципами работы человеческого мозга. Нейронные сети лежат в основе многих современных технологий: голосовых помощников, систем автоматического перевода, генераторов изображений и текстов. Именно развитие нейросетей в последние годы сделало ИИ особенно популярной и быстро развивающейся областью.

Несмотря на широкие возможности, использование искусственного интеллекта связано и с рядом вопросов. Среди них — защита персональных данных, прозрачность алгоритмов, возможные ошибки в принятии решений и влияние автоматизации на рынок труда. Поэтому развитие ИИ требует не только технического прогресса, но и ответственного подхода со стороны общества.

2.1. Большие языковые модели (LLM)

Большая языковая модель (Large Language Model, LLM) — нейронная сеть с огромным числом параметров, обученная на больших массивах текстовых данных. LLM способна порождать связный текст, отвечать на вопросы, писать код, составлять рецепты и решать другие языковые задачи.

Принцип работы LLM основан на механизме трансформера (Transformer), предложенном в 2017 году. Модель принимает на вход последовательность токенов (частей слов) и предсказывает следующий токен, используя механизм внимания (Attention), который позволяет учитывать контекст всего предшествующего текста.

В данном проекте используется модель arcee-ai/trinity-large-preview — большая языковая модель, доступная бесплатно через платформу OpenRouter. Модель обладает широкими знаниями в области кулинарии и способна генерировать детальные рецепты с пошаговыми инструкциями.

2.2. Режим рассуждения (Reasoning)

Режим рассуждения (Reasoning Mode) — специальный режим работы языковой модели, при котором перед формированием ответа модель выполняет скрытые рассуждения: анализирует задачу, рассматривает различные варианты решения и только затем формулирует окончательный ответ.

Данный режим значительно повышает качество ответов при решении сложных задач. В нашем боте reasoning включается параметром:
"reasoning": {"enabled": True}

При включённом reasoning модель возвращает дополнительное поле reasoning_details, содержащее цепочку рассуждений. Это поле необходимо сохранять и передавать обратно в следующем запросе — тогда модель может продолжать рассуждение в контексте предыдущих шагов.

2.3. Платформа OpenRouter

OpenRouter — агрегатор API для доступа к различным языковым моделям через единый унифицированный интерфейс, совместимый со стандартом OpenAI. Платформа предоставляет доступ к моделям от различных компаний, включая бесплатные варианты.

Преимущества OpenRouter:

  • Единый API для множества моделей;
  • Наличие бесплатных моделей с пометкой :free;
  • Поддержка режима рассуждения (reasoning);
  • Совместимость с форматом запросов OpenAI Chat Completions API.

3. ТЕХНИЧЕСКИЕ ОСОБЕННОСТИ СОЗДАНИЯ КУЛИНАРНОГО БОТА


Перед началом разработки был выбран язык программирования Python версии 3.10. Этот язык является одним из наиболее популярных для разработки ботов и работы с ИИ-сервисами благодаря богатой экосистеме библиотек и простому синтаксису.

3.1. Архитектура проекта

Бот построен по следующей архитектуре: пользователь отправляет сообщение в Telegram → Python-бот получает его через long-polling → формирует историю диалога → отправляет запрос к OpenRouter API → получает ответ от нейросети → отправляет рецепт пользователю.

Структура проекта состоит из одного файла:
bot.py — основной файл, содержащий весь код бота: настройку, обработчики команд, функции работы с ИИ и управление историей диалога.

Язык Python 3.10+
Библиотека для Telegram python-telegram-bot 20+
Библиотека для HTTP requests
Платформа ИИ OpenRouter API
Модель ИИ arcee-ai/trinity-large-preview:free
Режим ИИ Reasoning (рассуждение)

3.2. Системный промпт

Системный промпт — это специальное инструктирующее сообщение с ролью "system", которое задаёт поведение, роль и формат ответов языковой модели. В нашем боте системный промпт определяет модель как профессионального шеф-повара, задаёт строгий формат рецепта и ограничивает тематику разговора кулинарией.

Формат ответа включает: название блюда с эмодзи, время приготовления, количество порций, сложность, список ингредиентов с точными количествами, пошаговую инструкцию (не менее 6–7 шагов) и советы по подаче[1].

3.3. Управление историей диалога

Ключевой особенностью бота является сохранение истории диалога для каждого пользователя. История хранится в словаре Python, где ключ — числовой идентификатор пользователя (user_id), а значение — список сообщений в формате Telegram API.

Каждое сообщение истории содержит три поля: role (системный, пользователь или ассистент), content (текст сообщения) и, для ответов ассистента, reasoning_details (цепочка рассуждений). Последнее поле позволяет модели "помнить" логику предыдущих ответов и давать более связные ответы на уточняющие вопросы.

Чтобы не переполнить контекстное окно модели, история автоматически обрезается: при превышении 20 сообщений удаляются самые старые, а системный промпт всегда остаётся в начале[2].

4. РАЗРАБОТКА И РЕАЛИЗАЦИЯ КУЛИНАРНОГО БОТА

4.1. Установка зависимостей и настройка окружения

Для запуска бота необходимо установить две библиотеки Python. Первая — python-telegram-bot — отвечает за взаимодействие с Telegram Bot API. Вторая — requests — используется для отправки HTTP-запросов к OpenRouter API.

Установка выполняется командой в терминале:
pip install python-telegram-bot requests

После установки необходимо вставить в файл bot.py два ключа: токен Telegram-бота, полученный от @BotFather, и API-ключ OpenRouter, полученный после регистрации на openrouter.ai.

4.2. Функция обращения к ИИ

Центральным элементом бота является функция call_ai(), которая принимает идентификатор пользователя, формирует запрос с полной историей диалога и отправляет его к модели. Ключевой момент — включение режима reasoning и сохранение поля reasoning_details в истории[3].

4.3. Обработчики команд и кнопок

Бот реагирует на следующие команды и кнопки:

  • /start — сброс истории и отображение главного меню с кнопками; [4]
  • Кнопка «Случайный рецепт» — ИИ самостоятельно выбирает блюдо;
  • Кнопка «Рецепт по запросу» — приглашение указать продукты или название;
  • Кнопка «Очистить историю» — сброс диалога; [5]
  • Любое текстовое сообщение — обработка как кулинарного запроса. [6]

При обработке любого запроса бот сначала отправляет пользователю сообщение «Думаю над ответом...», затем выполняет запрос к API, удаляет сообщение ожидания и отправляет готовый рецепт. Если ответ длиннее 4096 символов (ограничение Telegram), он автоматически разбивается на части.

5. ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ КУЛИНАРНОГО БОТА


После запуска бота командой python bot.py он начинает работать в режиме long-polling, ожидая входящих сообщений от пользователей. Рассмотрим основные сценарии взаимодействия с ботом.

5.1. Начало работы и главное меню

При первом запуске пользователь отправляет боту команду /start[7]. Бот инициализирует историю диалога с системным промптом и отвечает приветственным сообщением, содержащим краткое описание возможностей.

5.2. Генерация случайного рецепта

При нажатии кнопки «Случайный рецепт» бот отправляет пользователю сообщение-заглушку «Придумываю что-нибудь вкусное...» и в это время формирует запрос к нейросети. Модель самостоятельно выбирает блюдо и генерирует полный рецепт в заданном формате. [8]

Пример запроса, который бот отправляет модели:
"Предложи мне интересный случайный рецепт.
Выбери что-нибудь вкусное и не очень сложное. Удиви меня!"

Ответ модели включает название блюда, время приготовления, список ингредиентов с граммовкой и пошаговую инструкцию. Благодаря режиму reasoning модель предварительно обдумывает выбор блюда с учётом сезонности, доступности ингредиентов и оригинальности.

5.3. Рецепт по запросу пользователя

Пользователь может написать название блюда, перечислить имеющиеся продукты или описать желаемый результат. Например: «хочу суп с курицей и лапшой», «что приготовить из яиц и сыра» или «лёгкий десерт без выпечки». Бот передаёт запрос в нейросеть вместе с полной историей диалога. [9]

Особенность диалогового режима: после получения рецепта пользователь может задавать уточняющие вопросы. Например, «а можно без лука?» или «как заменить сливки?» — и бот ответит в контексте уже предложенного рецепта, поскольку история диалога сохраняется.

5.4. Области применения

Кулинарный бот может быть полезен в следующих ситуациях:

  • Ежедневное планирование меню — быстрое получение идей для завтрака, обеда или ужина;
  • Освоение кулинарии начинающими — пошаговые инструкции доступным языком;
  • Приготовление из остатков продуктов — ИИ предложит блюдо из того, что есть;
  • Изучение новых кухонь мира — запрос рецептов определённой национальной кухни;
  • Диетическое питание — запрос рецептов с указанием ограничений.

ЗАКЛЮЧЕНИЕ

Подводя итог работы над индивидуальным проектом «Разработка ИИ чат-ботов», можно констатировать, что в ходе работы над проектом был успешно разработан кулинарный Telegram-бот, использующий большую языковую модель arcee-ai/trinity-large-preview для генерации рецептов и пошаговых инструкций приготовления.

В процессе реализации исследовательского проекта по информатике были решены все поставленные задачи: изучены возможности Telegram Bot API и библиотеки python-telegram-bot, исследован принцип работы больших языковых моделей и режима рассуждения, освоена работа с платформой OpenRouter, разработана архитектура бота с поддержкой истории диалога.

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

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

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

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

  1. Telegram Bot API. Официальная документация [Электронный ресурс]. — Режим доступа: https://core.telegram.org/bots/api.
  2. OpenRouter. Документация по работе с API [Электронный ресурс]. — Режим доступа: https://openrouter.ai/docs.
  3. python-telegram-bot. Официальная документация [Электронный ресурс]. — Режим доступа: https://python-telegram-bot.readthedocs.
  4. Рашид Т. Создаём нейронную сеть. — М.: Манн, Иванов и Фербер, 2017. — 272 с.
  5. Любанович Б. Простой Python. Современный стиль программирования. 2-е изд. — СПб.: Питер, 2021. — 592 с.
  6. Официальный сайт Telegram [Электронный ресурс]. — Режим доступа: https://telegram.org.

Приложение 1

приложение 1 - ты опытный профессиональный шеф

Приложение 2

Приложение 2 - история пользователя

Приложение 3

Приложение 3 - запрос об истории пользователя

Приложение 4

Приложение 4 - история и главное меню

Приложение 5

Приложение 5 - произвольный ввод пользователя

Приложение 6

Приложение 6 - размышление над ответом

Приложение 7

Приложение 7 - кулинарный ИИ-бот

Приложение 8

Приложение 8 - Тосканский суп

Приложение 9

Приложение 9 - яичница