Генерация кода — ChatGPT, Gemini и DeepSeek
Теория LLM — в больших языковых моделях; здесь — рабочий цикл: выбрать сервис, сформулировать задачу, получить код, проверить и встроить в проект. Антипаттерн "копировать без понимания" — вайб-кодинг; однотипный мусорный вывод — нейрослоп.
Теоретическая база генерации кода
LLM генерирует код как последовательность токенов по вероятностной модели:
P(next_token | prompt, history, system_rules).
Отсюда следуют три практических вывода:
- Качество ответа определяется качеством контекста. Если контекст расплывчатый, модель оптимизирует "правдоподобный" код, а не "правильный для вашего проекта".
- Детерминизм ограничен. Даже при низкой температуре возможны различия между прогонами, если меняется окружение запроса или версия модели.
- Модель аппроксимирует инженерный стиль из корпуса. Она уверенно воспроизводит паттерны, которые часто встречались в обучении, и хуже работает на редких доменных соглашениях команды.
В терминах инженерии это означает: промпт играет роль временной спецификации, а тесты и линтеры играют роль контракта корректности.
Что влияет на качество кода
Качество генерации удобно оценивать по четырём осям:
| Ось | Вопрос к ответу | Типичный сбой |
|---|---|---|
| Семантика | Решает ли код исходную задачу? | "Похоже на решение", но ломает edge-case |
| Надёжность | Учитывает ли ошибки, таймауты, null-сценарии? | Оптимистичный код без обработки отказов |
| Сопровождаемость | Понятен ли код команде через 6 месяцев? | Слишком "умный" и хрупкий рефакторинг |
| Безопасность | Нет ли инъекций, утечек, небезопасных дефолтов? | SQL без параметризации, логирование секретов |
Поэтому "код сгенерировался без ошибки" не является признаком качества. Формальная проверка нужна даже для тривиальных модулей.
Три уровня помощи
| Уровень | Инструмент | Когда уместен |
|---|---|---|
| Чат | ChatGPT, Gemini, DeepSeek в браузере | Черновик функции, объяснение чужого кода, рефакторинг фрагмента |
| IDE с контекстом | Cursor, GitHub Copilot, JetBrains AI | Правки в открытом репозитории, многофайловые изменения |
| Агент | Cursor Agent, Claude Code, Codex | "Собери MVP", миграция, тесты + запуск (с человеческим контролем) |
Архитектура агентов — Агенты ИИ. Перед запуском shell от агента — Опасные скрипты.
ChatGPT (OpenAI)
Сильные стороны для кода
- Широкий стек языков и фреймворков в обучающем корпусе.
- Режимы Canvas / правка файла в чате (удобно для одного модуля).
- API (
gpt-4o,o-seriesдля рассуждений) — основа для своих ботов и CI.
Ограничения
- Контекст ограничен; целый монорепозиторий в один промпт не поместится.
- Секреты и внутренний код — только в корпоративном контуре или без PII; иначе ответственное использование.
Типичный промпт для функции
Роль: senior Python-разработчик.
Задача: функция validate_email(s: str) -> bool по RFC 5322 (упрощённо).
Ограничения: только stdlib, type hints, docstring на русском.
Формат ответа: один блок кода + 3 pytest-теста.
Если вход None — ValueError.
Параметры API для кода: temperature 0.1–0.3, top_p ~0.9, явный max_tokens и response_format при JSON. Шпаргалка по всем полям — Параметры генерации LLM.
Google Gemini
Сильные стороны
- Длинный контекст (в Pro-версиях — миллионы токенов): целый файл конфигурации, лог сборки, несколько модулей в одном запросе.
- Интеграция с Google Cloud Vertex AI — единый биллинг и политики для компании.
- Мультимодальность: скрин UI + "сгенерируй CSS под этот макет".
Ограничения
- Качество на редких стеках (1С, legacy Delphi) может уступать лидерам; ответ всегда сверяйте с документацией вендора.
- Бесплатный веб-чат и платный API — разные квоты и политики хранения данных.
Когда выбирать Gemini
- Нужно "скормить" большой diff или PDF спецификации.
- Проект уже в GCP (Artifact Registry, Cloud Run).
- Команда работает в Google Workspace и использует Gemini в Docs/Sheets как черновик, код — в IDE.
Документация: Google AI Studio и Vertex AI.
DeepSeek
Сильные стороны
- DeepSeek-Coder / DeepSeek-V3 — сильный баланс цена/качество для кода и математики.
- Открытые веса и API: удобно для локального запуска и регионов с требованием суверенности.
- DeepSeek-R1 (reasoning) — цепочка рассуждений перед ответом; полезно для алгоритмов и разбора legacy.
Ограничения
- Задержки и доступность API зависят от нагрузки; для продакшена закладывайте fallback-модель.
- Юридические ограничения лицензии на веса — читайте актуальный текст перед коммерческим продуктом.
Локально и через API
ollama pull deepseek-coder:6.7b
ollama run deepseek-coder:6.7b
Подробнее — локальные модели.
Сравнение для ежедневной разработки
| Критерий | ChatGPT | Gemini | DeepSeek |
|---|---|---|---|
| Черновик функции | ★★★★ | ★★★★ | ★★★★ |
| Огромный контекст (лог, репо) | ★★★ | ★★★★★ | ★★★ |
| Цена API (ориентир) | выше | средняя | ниже |
| Локальный запуск весов | через партнёров | Gemma | ★★★★★ |
| Корпоративный контур | Azure/OpenAI | Vertex | on-prem + API |
Одного "лучшего" сервиса для всех задач не существует: держите два (облачный + локальный или дешёвый API) и сравнивайте на своём стеке. Такой подход быстрее даёт стабильный результат, чем попытка подобрать универсальную модель "на все случаи".
Научный взгляд на различия моделей
Сравнение ChatGPT, Gemini и DeepSeek полезно проводить не по "общему впечатлению", а по воспроизводимому протоколу:
- Фиксируйте датасет задач: 20–50 типичных задач вашего проекта.
- Стандартизируйте промпт: одна структура входа для всех моделей.
- Измеряйте метрики: pass@k по тестам, средняя латентность, стоимость 1 успешного решения.
- Повторяйте замеры: минимум 3 прогона на каждую задачу.
Такой протокол превращает выбор модели из субъективного обсуждения в инженерное решение, которое можно защитить перед командой и бизнесом.
Рабочий цикл (не вайб-кодинг)
- Задача — вход, выход, граничные случаи, стек (версия Python, "без новых зависимостей").
- Контекст — существующий интерфейс, стиль проекта (приложите 30–80 строк эталона).
- Генерация — один модуль за раз; для агента — чеклист файлов.
- Review —
ruff/eslint, unit-тест, поиск секретов в диффе. - Коммит — вы автор; в сообщении можно пометить
Co-authored-byполитикой команды.
API-ключи, пароли prod, персональные данные клиентов в публичный чат не отправляйте. Для корпоративного кода — только одобренный тенант (Copilot Enterprise, Vertex с DPA, локальный Ollama).
Критерии "готово к merge"
Практика показывает, что для AI-сгенерированного кода полезно ввести явный gate:
- зелёный CI;
- покрыты критичные ветки тестами;
- нет новых high/critical уязвимостей в SAST;
- код соответствует соглашениям команды;
- понятен план отката.
Без этого команда накапливает "скрытый техдолг", который появляется через несколько спринтов в виде нестабильности и дорогой поддержки.
Промпт-шаблон для рефакторинга
Контекст: React 18 + TypeScript, проект на Vite.
Файл (фрагмент):
<вставка кода>
Задача: вынести логику фильтрации в хук useOrderFilter.
Сохранить поведение: тесты ниже должны проходить без изменений.
<вставка тестов>
Вывод: только diff в формате unified diff, без пояснений.
Такой формат снижает "лишнюю прозу" и упрощает применение патча. На практике это уменьшает число итераций "перегенерируй ответ", потому что модель сразу ограничена нужным типом вывода.
Связка с IDE-агентом (Cursor и аналоги)
Чат хорош для мысли; агент — для действий в дереве файлов.
| Действие | Чат | Агент |
|---|---|---|
| Объяснить regex | ✓ | избыточно |
| Добавить эндпоинт + тест + запись в OpenAPI | частично | ✓ |
npm install и правка 12 файлов | ✗ | ✓ с лимитами |
Правила для агента в репозитории (.cursor/rules, AGENTS.md) задают стиль кода и запреты — это продолжение промпт-инжиниринга. См. разработку ИИ-решений (промпты в коде, версионирование).
Что читать дальше
- Цифровые инструменты без ручного кодинга — конструкторы и AI-сборщики UI.
- Локальные модели — Ollama, API на localhost.
- Монетизация цифровых продуктов — как упаковать навык в доход.
См. также
Другие статьи этого же раздела в боковом меню (как на странице "О разделе"). Большая языковая модель (Large Language Model, LLM) — это класс машинных моделей глубокого обучения, предназначенный для обработки естественного языка и генерации связных текстов, соответствующих по. При компрометации одного агента ущерб ограничен его полномочиями — это реализация принципа минимальных привилегий. Стратегический подход, когда ИИ становится центральным элементом проектирования, разработки и функционирования. Сегодня генеративные нейросети стали рабочим инструментом широкого круга специалистов: программисты используют их для генерации кода и документации, юристы — для составления шаблонов договоров. Model Context Protocol — ресурсы, tools и prompts для LLM; сравнение с классическим HTTP API. Автономные тестовые агенты обладают способностью к постоянному совершенствованию. Этот процесс основан на сборе данных о результатах работы и применении методов машинного обучения. Агент ИИ — система, где языковая модель не только отвечает текстом, но и выбирает действия: вызвать API, выполнить запрос к БД, открыть тикет, сгенерировать файл. Семь основных настроек при вызове LLM: max tokens, temperature, top_p, top_k, frequency и presence penalty, stop — что делают и типичные значения. Пять классических архитектур агента — от простого рефлекса до обучения: как воспринимают среду, хранят состояние, выбирают действия и связаны с современными LLM-агентами. Как слой знаний (RAG), слой подключений (MCP) и слой исполнения (AI-агент) складываются в архитектуру современного ИИ-приложения. Итоги раздела Модели и инструменты — вопросы для самопроверки в энциклопедии Вселенная IT.Большие языковые модели и ChatGPT
ИИ-агенты
Подход AI First в разработке продуктов
Признаки использования нейросетей в цифровых продуктах
MCP-серверы
Автономные тестовые агенты
Агенты искусственного интеллекта
Параметры генерации LLM — напоминалка
Типы интеллектуальных агентов
RAG, MCP и агенты — три слоя архитектуры
Чек-лист самопроверки