Задача Добавить функции загрузки картинок и фоток и распознование их
Добавить функции загрузки картинок и фоток и распознование их
Думаю, очень полезная механика - что-то сфотать, загрузить на сайте и попросить агенту объяснить что и как там. Здесь отличие от обычного общения с ИИ в том, что есть личное информационное пространство, совместная база знаний с ИИ, координаты и т.п. То есть все это очень хорошо подходит для исследования мира вокруг.
Ворклоги
Сама функция реализована. Но теперь надо сделать сложное - полный жизненный цикл информации. Когда пользователь загружает фото, он может много что с ним сделать, но одна из функций - попросить ИИ объяснить ее. На выходе у фото появляется описание его, как свойстов самой записи File. Далее у пользователя есть выбор - сделать ли это фото публичным. Если делает, то фото должно пройти модерацию и после этого уже не может быть изменено, может быть только снято с публикации. Нежелание давать после этого редактирование не связано с политическим решением, а чисто техническое - в таком случае потребовалось бы изменить жизненный цикл информации - сначала пользователь предлагает изменения, после они должны опять пройти этап модерации и только после этого примениться к самому фоту. Сейчас это лишняя нагрузка без реальной необходимости.
После того, как фото будет опубликовано, оно не только доступно как источник публичной информации, в том числе с расположением на карте, но и как источник информации для ИИ-агента, который может другим пользователям рассказать где что есть интересное, отталкиваясь от их запросов.
В целом все сделано. Но опять возникла ситуация, которая подсвечивает, что даже в простых задачах с ЛЛМ никак нельзя исключать вероятность ошибок на ровном месте. В данном случае ЛЛМ за фейлила в самом простом месте - она не смогла тупо воспроизвести пусть к файлу, который надо было распознать. При чем она не просто в паре символов ошиблась - она целый кусок пути потеряла, при чем дважды. То есть она раз попыталась отправить путь на тулзу, получила ошибку, попыталась исправить и опять отправила не тот путь, хотя у нее этот путь в контексте был двумя сообщениями выше. Все это лишний раз подталкивает меня к работе над своей давней мыслью - реализовать систему переменных для ЛЛМ. Но, даже так, в конечном итоге переменные, пусть и короче, все равно отправляются ЛЛМкой, а значит это все равно не исключает вероятность ошибки, пусть и снижает эту вероятность, так как длина переменной будет сильно меньше, чем конечное значение переменной.
Но тут я хочу еще одно наблюдение подсветить... Вот был исходный путь:
cmr1pztsm0003r90q4juuycrs/chat/1782890662561-17828906555453720229472878214886.jpg
А вот путь, который пыталась отправить ЛЛМ.
cmr1pztsm0003r90q4juuycrs/chat/17828906555453720229472878214886.jpg
Что тут бросается в глаза? Она выкинула из него 1782890662561-, то есть таймстамп. Вероятно, в процессе обучения ее подпихивали к тому, чтобы игнорировать временные метки, что довольно часто бывает и может это здесь и прояснилось. Можно было бы предположить, что "Этой временной метки не могло быть ранее, вот она и не могла о ней никогда знать", но "17828906555453720229472878214886" она тоже вряд ли где когда видела, как и cmr1pztsm0003r90q4juuycrs, тем не менее, воспроизвела. К тому же в 17828906555453720229472878214886 часть значения - это 17828906, что тоже является временной меткой. Думаю, здесь конкретно сработал эффект снижения внимания, буквально точечная слепота.