Создаем Telegram-бота для новостей на Go, PostgreSQL и OpenAI API (ChatGPT)

preview_player
Показать описание
В этом ролике мы с вами напишем проект, который не стыдно положить на свой GitHub. Это будет Telegram-бот, который автоматически достаёт свежие новости и статьи про язык программирования Go из разных источников, генерирует для них саммари с помощью OpenAI API (ChatGPT), а затем публикует их в Telegram-канал. И всё это автоматически!

Такой проект может послужить отличным преимуществом при поиске работы, особенно если вы джуниор-разработчик, и вам нужно выделиться среди других соискателей ;)

❤️ Реквизиты, если у вас есть желание поддержать меня и развитие канала:
BTC — 19xwFstmVQsVYqZP64iMVg1StLNSah6Smo

00:00 - Вступление
00:11 - Суть проекта
00:55 - Архитектура
04:45 - Подготавливаем окружение
05:55 - Миграции и модели для источников и статей
13:04 - RSS-клиент
18:05 - Хранилище источников
22:17 - Fetcher (соединяем RSS-клиент с хранилищем)
30:51 - Хранилище статей
37:04 - Модуль конфигурации
41:25 - Notifier (объединяем всё вместе и постим в канал)
52:56 - Генерируем саммари с помощью API ChatGPT
57:55 - Запускаем бота (наконец-то!)
01:02:12 - Пишем обвязку для работы с Telegram Bot API
01:08:57 - Регистрируем бота в Telegram через BotFather
01:13:40 - Добавляем админские команды в бота
01:22:05 - Middleware для админских команд
01:24:29 - Дальнейшие шаги
01:24:30 - Финал

#golang #chatgpt #telegram #postgresql
Рекомендации по теме
Комментарии
Автор

Это было круто! Вот это я понимаю - Создаём Телеграмм бота, - полный функционал, подробное описание и объяснение действий. Многим "преподавателям" стоило-бы поучиться, - не "глотать" объяснение своих действий.

imalive
Автор

Редко пишу комменты. Автор - красавчик. Однозначно подписка :)

_cstrp
Автор

Ждем видео, почему постоянно запрашиваешь соединение, а не юзаешь готовый метод

zhanbolatnurutdin
Автор

Здравствуйте. Подскажите, что в файле /config.local.hcl и как источники в таблицу добавили?

ovvngen
Автор

Использование собственных кастомных библиотек, и проектирование некоторых моментов «не по гошному» я могу понять только в собственном проекте, но никак не в обучающем видео, которое показано остальным как пример для сохранения в свой репозиторий. Считаю такое максимально бестактным.

redice
Автор

У Вас в видео не показывается полный код creat_acti....
11:52

KGamingTOP
Автор

Я в шоке, ты пишешь быстрее чем я успеваю понимать что вокруг происходит

germanytoday
Автор

У меня при попытке мигрировать пишет что не смогли соединится с бокалом, в чем причина может быть?

KGamingTOP
Автор

Привет! На 45:45 ты предлагаешь обернуть все в транзакции. Как это сделать правильно? Переписать методы стора и добавить дополнительное поле к методам или как?

AdamsonBor
Автор

Я подумал у меня глаза сломались, а схема реально двигается...

artishoo
Автор

Ролик интересный, посмотрел с удовольствием полностью. По ходу возникло несколько вопросов:
1) Почему не использовать асинхронную мапу, чтоб не корячиться с вейт-группами и вот этим всем ?
2) Чем не подошел стандартный сет из стандартной мапы ?
3) В итоге fetcher и notifier закомпилены в единый исполняемый файл? А как же то, что fetcher может тупить, тормозить итд. Надеялся хотя бы на примитивный SOA =(
3) Какие же портянки говнокода =D (Тут дожен быть вставлен картинко-мем "Они же дети!") Без особых претензий, просто улыбает.

kselnaag
Автор

Спасибо за видео. Очень полезное!.
А почему fetcher и notifier это не два отдельных приложения

kazarovroman
Автор

как называется IDE на видео?

upd: Goland
нашел снизу в коменнтах, оставлю тут)

TraderOff-Road
Автор

Такие миграции никогда не пройдут ревью в серьезной команде:
- поля времени без таймзоны
- varchar вместо text (это бессмысленно, т.к. varchar это просто text с навершенным на него ограничением на длину)
- устаревший синтаксис (SERIAL вместо IDENTITY, CONSTRAINT вместо REFERENCES)
- goose StatementBegin/StatementEnd там где он не нужен
Это только то что сразу бросается в глаза
Кроме того, миграции это то, что доступно извне и используются внешними утилитами при деплое, т.е. идеологически не должно быть в Internal. Но это уже холиварная тема.

qxkmwpp
Автор

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

varvaraize
Автор

Полезная информация.
Мне пригодится)
Я ✍ся, вы?

asstudio
Автор

Это copilot так помогает быстро писать код?

И еще вопрос, что за терминал с автозаполнением?

ljlewpo
Автор

Спасибо! На какое облако можно выгрузить, что то ничего доступного не нашел?

rustamsai
Автор

Привет. Я в программировании ничерта не шарю, но меня так заинтересовал такой бот. Мне надоело читать новости с разных источников и хотел сделать для себя бота, который будет собирать интересные мне рубрики. Но я так и не нашел какие программы надо использовать. И вообще у меня как у новичка получится так сделать?

Volombo
Автор

Спасибо большое за ролик. А как вообще освоить либу sqlx. зайти на сайт с документацией и каждую функцию смотреть-учить?

liftoach