309просмотров
10 мая 2024 г.
question📷 ФотоScore: 340
Могут ли сейчас GPT генерировать корректный SQL? #sql #ChatGPT Увидел новость про новую версию модели для генерации SQL запросов - Sqlcode 8b, которая в этой задаче якобы бьет даже GPT 4. Стало интересно посмотреть так ли все хорошо и вот результаты. Для теста взял довольно простое тестовое задание, однако, GPT 3.5 с ним не справляется. Звучит оно так:
Напишите SQL запрос, который бы вернул список клиентов, сумму их покупок и телефон, если они соответствуют условиям:
- Первая покупка была совершена в 2017 году
- Совершившие 3 и более покупки по настоящий момент purchases:
- purchase_id
- user_id
- purchase_date
- price users:
- user_id
- phone Пробовать будем на Sqlcode и GPT 4, для чистоты эксперимента промпты (описание задачи) одинаковые и на английском. Промпт я несколько раз переписывал, чтобы дать максимум контекста. ➖ Sqlcode не смог выдать корректный запрос, хотя был очень близок. Сам запрос на первом скриншоте к посту. Подзапрос в нём корректный, но вот во внешнем запросе обращение к несуществующему полю и ненужная группировка, т.е. он даже не запустился бы. Тест был на публичном демо - эффективность ниже, чем прод версия, со слов авторов. ➖ GPT 4 написал полностью корректный запрос, более того в нём присутсвтуют комментарии. Запрос на втором скриншоте. Победитель очевиден, но насколько отличается "прод" версия sqlcode - неизвестно. Вероятно, это просто маркетинг и она бы выдала такой же результат. Как итог, писать корректные запросы некоторые GPT могут, однако, для этого им нужен подробный промпт и вам нужно внимательно перепроверять результат. Получается, что смысл в этом теряется: если вы новичок, вам сложно будет понять/проверить логику запроса, велик шанс получить некорректный результат. Если вы сами отлично знаете SQL, то напишете запрос быстрее, чем будете писать хороший промпт для этого (и не факт, что получится).