Эта статья является продолжением статьи “Создание AI-телеграм бота на Go с Gemini API и AWS Lambda” и содержит детальные инструкции по настройке и деплою Telegram бота на AWS Lambda с использованием Function URL.
В этой статье мы рассмотрим, как создать интеллектуального Telegram бота на Go, который выступает в роли прокси между пользователями и API Google Gemini. Бот будет выполнять две основные функции: отвечать на сообщения пользователей и генерировать изображения. Хотя этот механизм может быть существенно расширен дополнительными возможностями, такими как генерация голоса и видео, мы сосредоточимся на этих двух типах запросов для простоты.
Ранее мы обсуждали локальную отладку с помощью IDE GoLand. Теперь мы обсудим, как удалённо отлаживать программу, работающую внутри Docker-контейнера, используя Visual Studio Code и GoLand IDE.
Ранее мы рассматривали деплой бинарного файла программы через SSH на сервер
Сейчас мы рассмотрим как реализовать деплой Docker контейнера из Gitlab CI.
Утилита и пакет Go для ожидания открытия портов (TCP, UDP).
Давайте обсудим, как создать минимальный Docker образ для Go программы.
Давайте рассмотрим, как работает компиляция Go и как использовать GitLab CI для этого.
Все примеры из статьи находятся в репозитории на github.
Давайте рассмотрим инструменты HTTP в GO.
Давайте рассмотрим использование sync.Map и его исходный код.
Go имеет богатые инструменты профилирования с самого начала — пакет pprof и go tool pprof. Давайте обсудим, почему профилирование полезно, как с ним работать и что нового в этой области.
Давайте поговорим о паттерне внедрения зависимостей и управлении зависимостями в больших программах.
Пакеты text/template и html/template являются частью стандартной библиотеки Go. Шаблоны Go используются во многих программах, написанных на Go — Docker, Kubernetes, Helm. Многие сторонние библиотеки интегрированы с шаблонами Go, например Echo. Знание синтаксиса шаблонов Go очень полезно.
Эта статья состоит из документации пакета text/template и нескольких решений автора. После описания синтаксиса шаблонов Go мы погрузимся в исходники text/template и html/template.
Когда необходимо отфильтровать данные по списку значений (например, по ID: 1, 2, 3), следует использовать оператор ANY в сочетании с pq.Array из драйвера PostgreSQL.
В блоге Go описывается, как использовать срезы. Давайте посмотрим на внутреннее устройство срезов.
В Go у нас есть функциональность горутин из коробки. Мы можем запускать код параллельно. Однако в нашем параллельно выполняющемся коде мы можем работать с общими переменными, и не совсем понятно, как именно Go обрабатывает такие ситуации.
Программный интерфейс map в Go описан в блоге Go. Нам просто нужно вспомнить, что map — это хранилище ключ-значение, и оно должно извлекать значения по ключу как можно быстрее.
Почему регулярные выражения с точкой (".") работают по-другому в Go по сравнению с PHP и JavaScript.
Эта задача не так проста, особенно с GORM.
Пример простого TCP чата на Go с объяснением логики.
Отладчик — это очень полезный и мощный инструмент. Он может помочь вам точно понять, что происходит в вашем коде, изучить новые проекты и избежать ненужных изменений отладочного кода.