Как стать автором
Обновить

Kakikata Shogun AI: Telegram-бот для изучения американского английского — и отличный pet-проект для стажёра

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.4K

Привет, Хабр!

Сегодня я хочу рассказать о создании простого, но полезного пет-проекта — Telegram-бота, который помогает пользователям улучшать их английский с помощью GPT-4. Проект отлично подойдет для начинающих разработчиков, так как использует современный стек технологий и имеет понятную архитектуру.

Что умеет бот?

  • Исправляет грамматические ошибки

  • Улучшает стилистику предложений

  • Делает речь более естественной, приближенной к носителям языка

  • Объясняет внесенные правки

  • Поддерживает разные стили общения (формальный, неформальный)

Технологический стек

  • .NET 9.0 — современная и производительная платформа

  • Telegram.Bot SDK — официальный SDK для работы с Telegram API

  • OpenAI API — для взаимодействия с GPT-4

  • PostHog — аналитика использования бота

  • Sentry — отслеживание ошибок

Структура проекта

KakikataShogun.Bot/
├── MessageBuilders/      # Построители сообщений
├── Handlers/             # Обработчики событий
├── Interfaces/           # Интерфейсы
└── Program.cs            # Точка входа

Пошаговая реализация

1. Создание проекта

dotnet new console -n KakikataShogun.Bot
cd KakikataShogun.Bot

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

dotnet add package Telegram.Bot
dotnet add package OpenAI
dotnet add package PostHog
dotnet add package Sentry

3. Реализация базового функционала

Главным компонентом является IMessageBuilder, который обрабатывает сообщения:

internal interface IMessageBuilder
{
    string CommandPattern { get; }
  
    Task<string> BuildMessageAsync(string message, CancellationToken cancellationToken);
}

Основная логика коррекции текста находится в DefaultMessageBuilder:

internal class DefaultMessageBuilder(ChatClient openAIClient) : IMessageBuilder
{
    public string CommandPattern => "default";

    public async Task<string> BuildMessageAsync(string message, CancellationToken cancellationToken)
    {
        var completion = await openAIClient.CompleteChatAsync(
            @"You are an AI language assistant specializing in American English..."
        );
        return completion.Content;
    }
}

4. Настройка DI и конфигурации

В Program.cs настраиваем все зависимости:

var host = Host.CreateDefaultBuilder(args)
    .ConfigureServices((context, services) =>
    {
        services.AddHostedService<TelegramBotHostedService>();
        services.AddTransient<ITelegramBotUpdateHandler, TelegramBotUpdateHandler>();
        // ... другие сервисы
    })
    .Build();

Что получилось в итоге?

  1. Современное приложение с чистой архитектурой

  2. Использование паттернов проектирования (Factory, Builder)

  3. Асинхронная обработка сообщений

  4. Мониторинг ошибок и аналитика

  5. Простой деплой на Linux-сервер

Полезные советы для начинающих

  1. Начните с минимального функционала

  2. Используйте современные практики и инструменты

  3. Добавьте логирование с самого начала

  4. Пишите чистый, поддерживаемый код

  5. Используйте GitHub для версионирования

Заключение

Этот проект — отличный способ познакомиться с:

  • Разработкой ботов для Telegram

  • Интеграцией с OpenAI API

  • Современной разработкой на .NET

  • Основами CI/CD

  • Мониторингом приложений

Ссылка на бота: https://t.me/kakikatabot

Весь код проекта доступен на GitHub: https://github.com/paulbuzakov/kakikatabot

Буду рад, если вы поддержите проект звездочкой ⭐️ и подпишетесь на мой профиль на GitHub!

Теги:
Хабы:
+2
Комментарии3

Публикации

Работа

Ближайшие события