Как Codex помог мне разработать Telegram-приложение для поисковиков из «ЛизыАлерт»
Этот текст написан в Сообществе, в нем сохранены авторский стиль и орфография
Цели и задачи
Пишу "помог", имею в виду "полностью реализовал мою идею".
Мы с коллегами-поисковиками из ЛизыАлерт выходим на поиски пропавших людей. Такие поиски могут быть как в городе, так и в лесу. Как днём, так и ночью. Для ориентировки на местности мы используем навигатор, а для коммуникации во время поиска с другими командами и со штабом — рацию. В интерфейсе навигатора всевозможные природные места — река, горелый лес или бурелом, железная дрога или просека — обозначены специальными знаками, их надо знать. А для коммуникации по рации мы используем специальный фонетический алфавит ICAO. Например, на карте навигатора есть точка C2 — по рации мы говорим "Чарли два", про точку J5 мы говорим "Джульет пять". Этот алфавит тоже надо знать.
Погрузившись в изучение всей этой красоты, я увидел, что нет никакого готового решения для простых запоминания и тренировки знания условных знаков на навигаторе и фонетического алфавита. Есть только тесты, которые можно проходить, по пути набивая шишки и запоминая правильные ответы. Тесты в вот таком не очень приглядном и нативном для смартфона виде: https://letstest.ru/71254
Проходить такие тесты — мучительно больно, особенно если ты совсем новичок. А хотелось простого и симпатичного решения — чтобы, играючи и с приятным интерфейсом, запоминать и тренировать знания. Желательно на мобильном, потому что… впрочем, надо ли объяснять. Интерфейс мобильного — привычнее и удобнее.
У меня подписка Plus ChatGPT, и я решил воспользоваться Кодексом — это решение для написания и реализации кода. Сразу скажу, что опыта и знаний в этом деле у меня ровно ноль. Я не программист и вообще по складу ума совсем не технарь. В этом деле — полный ноль и даже меньше.
Когда готовил первый тест — пришлось "помучаться" с дизайном приложения и всех кнопок внутри и механик. Визуальный дизайн приложения, которое получилось — это дизайн, который я попросил Кодекс сделать по аналогии с дизайном приложения Foursquare (если кто помнит такое). Это база, а дальше уже накручиваем кнопки или интерфейсы по своему желанию.
Чтобы примерно понимать, как работает "разработка" (я всё ещё ставлю это слово в кавычки, потому что естественно ни в коей мере не считаю себя разработчиком в самом серьёзном смысле этого слова):
- я сохранил в папку на яндекс диске нужные мне картинки, а их файлы имеют соответствующие названия. К примеру, "Курган" — и его картинка.
- я даю Кодексу ссылку на эту папку и говорю ему: "Вот тебе ссылка на папку, там картинки и названия файлов, сделай мне курс, который будет в заголовке показывать название места, возьми эти названия из названия файлов, а в букве i к каждому из мест напиши описание этого места и как его узнать при встрече с ним в природе.
- всё, он берёт файлы из папки, например "Курган", у него есть это название, к нему есть картинка, и он сам пишет описание к кургану — что это вообще такое и его понять, что это именно он, когда ты на него наткнёшься в природе. Понятно, что все скорее всего знают, что такое река или озеро или горелый лес, но есть вещи, о которых могут знать не все — что такое, например, горизонталь? И что имеется в виду под понятием "овраги и промоины"? А "заструги"?
- Кодекс многое делает самостоятельно: пишет код, собирает файлы в ZIP папку. А к чему-то у него нет доступа, и тогда мне приходится делать это самому — например, чтобы всё это работало, нужна яндекс-функция (не спрашивайте, сам не знаю), эту штуку мне пришлось создать самостоятельно в своём яндекс-аккаунте, и туда прописываются какие-то переменные (не спрашивайте), туда загружается ZIP-файл с самим кодом. В общем, телеграм-бот обращается к этой функции, и в ней как раз крутится вся эта красота. Изначально ничегошеньки в этом не понимал, но Кодекс мне всё объяснил, и теперь разбираюсь достаточно, чтобы реализовать проект. Теперь уже все нововведения Кодекс выдаёт мне новым ZIP-файлом, и мне только нужно подгрузить его в мою функцию.
Результаты
Что получилось: бот. Приятный и нативный для мобильного телефона интерфейс с анимациями. Кодекс знает, как устроены эти тесты, и для меня добавление в приложение нового теста — дело теперь очень быстрое и простое. Для пользователя, особенно если это совсем новичок в нашем поисковом деле, такое приложение — удобный и симпатичный способ запомнить информацию, а также потренировать и закрепить знания.
Здесь в приложении у тебя есть и словесное описание, и иллюстрация того, как это выглядит. Иллюстрации к словам я подготовил отдельно — в ChatGPT. Я попробовал попросить Кодекс подготовить иллюстрации, и он справлялся, но потом почему-то страница нашего с ним разговора начала подвисать. Чтобы не сломать логику нашего с ним разговора о коде приложения, решил перенести разговор о картинках в отдельное место — в ChatGPT.
Если суммировать то количество часов, которое я привёл за "разработкой" этой красоты, получится наверное часов 10. Не за один присест, а в сумме на релизацию разных идей. Иногда сядешь с идеей — и сделаешь её за час, иногда поковыряешься подольше.
Общаюсь с Кодексом на простом человеческом языке, он уже понимает контекст того, что я делаю и для чего — что речь идёт о поисковиках в природе, например, и все описания надо придумывать именно в этом контексте.
Плюсы и минусы чат-бота
Минус наверное обозначу только один, но он применим только относительно лично моей задачи:
Изучение фонетического алфавита у меня идёт через визуально-ассоциативный ряд. Например, как запомнить "F — Фокстрот"? Через слово и иллюстрацию "Fox" — лиса. А "M — Майк"? Через ассоциацию с Майклом Джексоном. "V — Виктор"? Естественно, Виктор Цой. Так вот — были проблемы с тем, чтобы ChatGPT подготовил иллюстрации с изобржениями персонажей, которые хорошо напоминали бы Майкла Джексона и Виктора Цоя. С Папой римским для "P — Папа" была такая же проблема, кстати. ChatGPT всячески отказывался готовить такие изображения, ссылаясь на авторские права. Пришлось уговаривать, формулировать запрос больше в сторону "Сделай персонажа, который карикатурно напоминал бы Виктора Цоя, но на самом деле не являлся бы им". Интересно, что временами ChatGPT нормально соглашался на такое, а временами наотрез отказывался.
В общем, как можете видеть в приложении, всё-таки удалось получить хорошие, очень похожие изображения. Максимально похожие, честно говоря, о лучшем и мечтать бы не мог.
Также, отдельный минус (хотя, минус ли это, скорее нет, а просто реальность): за это удовольствие приходится платить. Подписка сама себя не оплатит. Но это нормально — за всё хорошее приходится платить.
Ещё наверное минус, хотя на практике не очень: у тебя — ограниченное количество запросов к Кодексу. Есть такое. Но на самом деле их количество для вот этого моего проекта — вполне достаточно, и я только лишь время от времени натыкаюсь на сообщение: "Запросы закончились, возвращайся через пару часов". Вполне Окей. А запросов я делаю достаточно много. Поэтому, в целом серьёзным минусом это не считаю.
Советы
Какие тут могут быть советы — да только наверное один:
Будьте открытыми к новым технологиям, не бойтесь экспериментировать, ошибаться и искать новые пути для решения ваших задач, вкладывать время в изучение чего-то нового.




















