DeepSeekV3 vs Claude-Sonnet vs o1-Mini vs Gemini-ept-1206: Тестирование AI-ассистентов для программирования в реальных сценариях

В современном мире AI-ассистированного программирования выбор правильного AI-ассистента становится все более важным. Как давний пользователь AI-ассистентов для программирования, я недавно провел интересный эксперимент, сравнивая четыре основных AI-ассистента в реальном проекте. Этот эксперимент не только дал мне более глубокое понимание каждой модели, но и выявил некоторые удивительные результаты.

Предыстория эксперимента: Реальная потребность в разработке

Во время рождественских праздников я начал разрабатывать проект умного домашнего помощника, стремясь создать что-то лучшее, чем Google Home и Alexa. Одной из ключевых функций была реализация системы памяти ИИ - например, когда пользователь говорит "Я не люблю яйца, запомни это", система должна избегать рекомендации рецептов с яйцами в будущем.

Для реализации этой функции мне нужно было разработать проект Azure Functions в качестве прокси, обрабатывающий взаимодействие с данными Azure Table Storage, и интегрировать его в существующее приложение Blazor WASM. Это, казалось бы, простое требование на самом деле включало множество аспектов, включая создание проекта, развертывание в облаке и расширение функционала существующего проекта, что делало его идеальным для тестирования AI-ассистентов.

Claude-Sonnet: Надежный ветеран

Claude-Sonnet работал как опытный старший инженер. На протяжении всего процесса разработки он демонстрировал исключительный контроль качества кода, автоматически обнаруживая и исправляя проблемы в коде, и даже интеллектуально предзаполняя URL-адреса инструментов после развертывания. Однако услуги этого "ветерана" недешевы. В базовой версии API он достиг лимита всего после $0.2, вынуждая переключиться на OpenRouter. Еще удивительнее, что стоимость через OpenRouter взлетела до $2.1, с некоторым ухудшением производительности.

DeepSeekV3: Темная лошадка

Производительность DeepSeekV3 была действительно впечатляющей. Я тестировал его через OpenRouter и официальный API, с поразительно разными результатами. Через OpenRouter он казался несколько неуклюжим, с дублированием кода и ограниченной функциональностью. Однако при использовании официального API это была совершенно другая модель - качество кода почти соответствовало Claude, плавная работа и уникальные подходы к решению. Наиболее впечатляющим было его ценовое преимущество, выполнение всей задачи всего за $0.02. На этапе развертывания, хотя он выбрал более традиционный метод ручного развертывания zip, он показал некоторые удивительные возможности, такие как автономный поиск ресурсов и построение строк подключения к хранилищу.

Gemini-ept-1206: Растущие боли многообещающего новичка

Gemini ощущается как многообещающий, но неопытный новичок. Он показал самое сильное взаимодействие среди всех моделей, проактивно спрашивая о версиях среды выполнения и других деталях. Он преуспел в конфигурации развертывания, предвидя настройку переменных окружения. Однако он также показал некоторые "растущие боли": медленная скорость обработки, часто требующая 20 минут для выполнения задач; ограничения токенов, часто требующие нескольких сессий; и, что наиболее разочаровывающе, даже через 24 часа его статистика затрат оставалась непрозрачной, делая невозможным точную оценку затрат на использование.

o1-Mini: Невыполненные обещания

Производительность o1-Mini была довольно разочаровывающей. Начало было хорошим, с плавной настройкой проекта и приемлемым начальным качеством кода. Но дальше дела пошли под гору: медленное время отклика, частые неверные предположения (например, создание групп ресурсов в неправильных географических местоположениях) и неэффективное решение проблем. После траты $2.2 он даже предложил понизить версию .NET для решения проблем, вынуждая меня досрочно прекратить тест.

Практические выводы и рекомендации

В результате этого эксперимента я сделал некоторые практические выводы. Для индивидуальных разработчиков и небольших проектов DeepSeekV3, несомненно, является лучшим выбором, идеально балансируя качество кода и стоимость. Для тех, у кого достаточный бюджет, Claude-Sonnet остается надежным выбором для корпоративной разработки. Gemini подходит для сценариев, требующих подробного интерактивного руководства, в то время как o1-Mini может найти свою нишу в специфических задачах оптимизации алгоритмов.

Стоит отметить, что использование этих моделей через OpenRouter часто влияет на их производительность, поэтому рекомендуется использовать официальные API, когда это возможно. Кроме того, мы должны признать, что область AI-ассистентов для программирования быстро развивается, все модели постоянно улучшают свои возможности. Конкурентный ландшафт может значительно измениться в будущем. Выбор правильного AI-ассистента должен основываться на конкретных требованиях проекта, бюджетных ограничениях и сценариях разработки, а не слепо следовать какому-либо конкретному варианту.