Для работы нам понадобится Библиотека искусственного интеллекта для 1С. Она распространяется бесплатно, и, более того, под лицензией CC BY 4.0. Это означает, что вы можете использовать ее для создания своих коммерческих продуктов. Скачать бесплатно можно по ссылке выше. Но если у кого появится желание и возможность поблагодарить автора, тогда можно скачать ее здесь за стартмани.
Добавив опцию загрузки изображения в библиотеку, я стал экспериментировать. Как и положено 1С-нику, экспериментировал я ни с чем иным, как с УПД. Взял первый попавшийся документ в демонстрационной базе Управление Торговлей ред. 11. Вывел на экран и сфотографировал, немного наклонив.
Изображение передается в формате base64. При этом, сначала идет префикс вида: "data:image/png;base64,", а затем собственно строка base64. В префиксе указывается формат изображения. Поддерживаются форматы PNG (.png), JPEG (.jpeg and .jpg), WEBP (.webp), non-animated GIF (.gif).
В расширении, содержащем библиотеку, есть также обработка "Библиотека искусственного интеллекта пример". Воспользуемся ею для экспериментов. Укажем путь к файлу изображения и зададим простой вопрос.
Теперь спросим что-нибудь сложнее
Что здесь считать строкой разобрались без проблем. Попробуем теперь получить ИНН продавца.
В общем ИИ неплохо ориентируется. Не путается в терминах "продавец"/"поставщик", ИНН от КПП отличает. Попробуем преобразовать это изображение в заданную нами структуру
В принципе, это работает, но до практического применения еще далеко. Если вы попробуете воспользоваться этим вот так просто, что называется "в лоб", тогда вам надо будет написать парсер для полученного ответа. Это только кажется относительно простой задачей. На деле, она почти не решаемая. ИИ будет вам выдавать правильные по сути структуры. Но по форме они будут время от времени "плавать", например так:
В state-of-art моделях предусмотрена опция response_format для того, чтобы задавать фиксированный формат ответа. Я добавил поддержку этой опции в версию 14 библиотеки. Зададим JSON-схему ответа.
Посмотрим, что у нас получится в ответе. Обратите внимание на то, что я оставил вопрос пользователя пустым. В данной ситуации он не нужен. Модели и так понятно, что надо преобразовать картинку в JSON. Что бы вы ни написали в поле "вопрос" результат будем один и тот, же. Поэтому не будем зря тратить входные токены.
Вот мы и получили на выходе JSON структуру, соответствующий заданной нами схеме. Дальше можете делать с ней что хотите. Например, создавать документы в базе данных (ПТиУ или РТиУ).
Обработка "Библиотека искусственного интеллекта пример" более или менее универсальна. Для решения рассматриваемой здесь задачи она будет избыточна. Поэтому я сделал заготовку, в которой нет ничего лишнего
Превращение потока в структуру, будь то голос, письменная речь или картинка - одна из важнейших, если не самая важная способность больших языковых моделей. А умение правильно использовать данную способность - одно из важнейших, если не самое важное сейчас качество разработчика.
Проверено на следующих конфигурациях и релизах:
- Управление торговлей, редакция 11, релизы 11.5.20.101