Эта статья основана на видеокурсе freeCodeCamp.org, который провела разработчик Ана Кубо (Ania Kubów). В материале подробно разбирается работа с моделями Google Gemini AI, архитектура больших языковых моделей (LLM) и процесс создания полноценного чат-бота на стеке Node.js и React.
🤖 Что такое Gemini и как работает современный ИИ 1:29
Google Gemini — это серия мультимодальных генеративных моделей ИИ . В отличие от узкоспециализированных систем, Gemini является мультимодальной: она способна обрабатывать не только текст, но и изображения, выдавая текстовые ответы в зависимости от выбранной вариации модели .
По определению Ани Кубо, ИИ — это симуляция человеческого интеллекта машинами. Важно понимать, что на текущем этапе ИИ не обладает сознанием; это сложная система машинного обучения . Принцип её работы строится на:
- Анализе огромных массивов данных для поиска корреляций.
- Предсказании результатов на основе выявленных паттернов .
Например, если скормить модели тысячи текстов о моде и финансах, она с высокой точностью определит категорию нового абзаца, просто сопоставив ключевые слова и структуры .
🧠 Анатомия LLM: вероятности и «температура» 5:46
Большие языковые модели (LLM) — это подвид машинного обучения, предназначенный для понимания и генерации человеческого языка. По мнению Кубо, на базовом уровне LLM можно сравнить с очень продвинутой системой автодополнения текста .
Процесс генерации ответа в LLM проходит в два этапа:
- Детерминированный этап: Модель анализирует ввод и вычисляет распределение вероятностей для следующего токена (слова). Для фразы «Собака прыгнула через...» слово «забор» будет иметь более высокий балл вероятности, чем «одеяло» .
- Этап декодирования: Здесь в игру вступает параметр Temperature (Температура) .
🔑 Безопасность и получение API-ключа 8:51
Для интеграции Gemini в свои приложения необходим API-ключ, который можно получить в Google AI Studio .
Ана Кубо делает критически важное предупреждение: никогда не публикуйте свой API-ключ в открытом доступе и не используйте его в клиентском коде (frontend) . Любой пользователь может просмотреть код страницы через инспектор браузера, украсть ключ и израсходовать ваши лимиты или средства на банковской карте .
Безопасный метод работы — хранение ключа на бэкенд-сервере в переменных окружения (.env) .
🛠 Обзор инструментов и токенизация 12:10
Перед началом разработки важно понять, как измеряется объем данных. В Gemini используются токены.
- Правило большого пальца: 1 токен ≈ 4 символа. 100 токенов — это примерно 60–80 английских слов .
- Инструментарий курса включает:
Основные модели в семействе Gemini:
- Gemini Pro: Оптимизирована для задач, основанных только на тексте .
- Gemini Pro Vision: Мультимодальная модель, принимающая текст и изображения .
- Embedding-001: Создает векторные представления текста для поиска сходства .
🖼 Практика: текст, изображения и эмбеддинги 21:35
Генерация текста
Базовый запрос выполняется методом generateContent. Пример кода включает инициализацию модели и асинхронное ожидание ответа . В тесте модели Ана попросила написать сказку о магическом рюкзаке, и ИИ сгенерировал историю о девочке по имени Ана, что ведущая назвала забавным совпадением .
Работа с изображениями (Vision)
Для анализа картинок используется модель Gemini Pro Vision. В демонстрации Кубо передала функции два изображения (кота и персонажа Рика из «Рика и Морти») и попросила найти различия . Модель успешно распознала кота, но ошиблась с Риком, назвав его персонажем из аниме One Punch Man .
Эмбеддинги (Embeddings)
Это продвинутая техника представления текста в виде массива чисел (векторов) .
- Схожие по смыслу слова (например, «кошка» и «собака») будут иметь похожие числовые значения векторов .
- Это позволяет машинам понимать контекстуальную близость понятий, даже если слова разные.
💻 Финальный проект: AI Code Buddy 38:55
В завершающей части курса Ана создает полноценное фулстек-приложение — чат-бота с сохранением контекста беседы.
Архитектура проекта:
- Frontend: React. Основные компоненты: поле ввода, кнопка «Surprise me» для случайных вопросов и область отображения диалога .
- Backend: Express (Port 8000). Обрабатывает POST-запросы и общается с API Google .
Ключевая особенность: Мульти-чат (Multi-turn conversation)
Чтобы бот помнил предыдущие фразы, на бэкенд передается не только последний вопрос, но и весь массив history .
История состоит из объектов с ролями:
Благодаря этому, если пользователь спрашивает «Когда Рождество?», а затем задает уточняющий вопрос «Ты уверен?», Gemini понимает, что вопрос «Ты уверен?» относится именно к дате Рождества, а не к чему-то другому .
В итоге получается адаптивный интерфейс, где кнопка «Surprise me» подставляет случайные глубокие вопросы о Нобелевской премии или приготовлении сэндвичей, а ИИ поддерживает связный диалог, имитируя человеческое общение .