Найти в Дзене
Артем Антонов

Простой Telegram-бот с использованием Ollama на Go

Привет! Для того чтобы обращаться к нейросети Ollama (которая установлена на моем компьютере) удаленно, я решил написать простого Telegram-бота. Этот бот понимает русский язык и отвечает на сообщения. Давайте разберём его по частям! Как установить Ollama себе на ПК я рассказал в статье: Ollama - ваш персональный AI на компьютере. Просто и мощно! Здесь мы задаём: Здесь: Это как дать боту инструкцию: Нейросеть подтверждает, что поняла правила Вы можете добавлять свои правила или инструкции для нейросети Бот постоянно проверяет: Этапы обработки: Здесь бот: Важно: Telegram имеет ограничение на длину сообщений (4096 символов), поэтому длинные ответы отправляются файлом. Каждые 5 секунд бот показывает анимацию "печатает", пока нейросеть думает. Чтобы нейросеть не "перегружалась", сохраняем только последние 30 сообщений. Этот бот - отличная основа для создания умных помощников! Вы можете добавить новые функции, например: Весь код бота есть на Boosty, переходите и скачивайте. Жду ваших коммент
Оглавление

Привет! Для того чтобы обращаться к нейросети Ollama (которая установлена на моем компьютере) удаленно, я решил написать простого Telegram-бота. Этот бот понимает русский язык и отвечает на сообщения. Давайте разберём его по частям!

Как установить Ollama себе на ПК я рассказал в статье: Ollama - ваш персональный AI на компьютере. Просто и мощно!

1. Основные компоненты программы

  • package main - главный пакет программы
  • import - библиотеки для работы с Telegram, нейросетью Ollama и другими базовыми функциями

2. Настройки бота

-2

Здесь мы задаём:

  • Какую языковую модель использовать (в моем случае это deepseek-r1:32b)
  • Сколько сообщений помнить (чтобы не перегружать память)
  • Токен бота (получаем у @BotFather)
  • Ваш личный ID (чтобы бот отвечал только вам)

3. Сердце бота - структура Bot

-3
  • api - общение с Telegram
  • client - общение с нейросетью
  • history - память диалога

4. Запуск программы

-4

Здесь:

  • Настраиваем подключение к Ollama
  • Создаём объект бота
  • Загружаем правила для нейросети
  • Запускаем основную логику

5. Загрузка правил для нейросети

-5

Это как дать боту инструкцию:

  1. Чтобы нейросеть по умолчанию отвечала на русском языке
  2. DeepSeek часто вставляет иероглифы в текст, избавляемся от них

Нейросеть подтверждает, что поняла правила

Вы можете добавлять свои правила или инструкции для нейросети

6. Основной цикл работы бота

-6

Бот постоянно проверяет:

  • Пришло ли новое сообщение
  • От нужного ли пользователя
  • Это команда или обычный текст

7. Обработка сообщений

-7

Этапы обработки:

  1. Сохраняем вопрос пользователя
  2. Показываем анимацию печати
  3. Отправляем вопрос нейросети
  4. Форматируем ответ
  5. Отправляем ответ пользователю
  6. Убираем старые сообщения из памяти

8. Общение с нейросетью

-8

Здесь бот:

  1. Ждёт ответ от нейросети
  2. Передаёт всю историю диалога
  3. Возвращает полученный ответ

9. Отправка сообщений

-9

Важно: Telegram имеет ограничение на длину сообщений (4096 символов), поэтому длинные ответы отправляются файлом.

10. Полезные фишки

Индикатор печати:

-10

Каждые 5 секунд бот показывает анимацию "печатает", пока нейросеть думает.

Очистка истории:

-11

Чтобы нейросеть не "перегружалась", сохраняем только последние 30 сообщений.

Как это работает вместе:

  1. Вы пишете сообщение в Telegram
  2. Бот добавляет его в историю диалога
  3. Бот показывает "печатает..."
  4. Нейросеть обрабатывает запрос с учётом всей истории
  5. Бот форматирует ответ
  6. Ответ отправляется вам
  7. Старые сообщения удаляются из памяти
-12

Советы для начинающих:

  • Всегда проверяйте ошибки (как в b.api.Send(msg))
  • Экспериментируйте с разными моделями Ollama
  • Ограничивайте длину истории для экономии памяти

Этот бот - отличная основа для создания умных помощников! Вы можете добавить новые функции, например:

  • Распознавание голосовых сообщений
  • Работу с базами данных
  • Поддержку нескольких пользователей

Весь код бота есть на Boosty, переходите и скачивайте.

Жду ваших комментариев! Поставьте лайк, если хотите видеть больше интересного контента.

До скорой встречи!