Библиотека искусственного интеллекта для 1С

07.04.24

Разработка - Инструментарий разработчика

Уже год с лишним, как большие языковые модели (LLM GPT) находятся в центре внимания. За это время появилось понимание, как можно использовать данную технологию в связке с 1С. Кроме того, теперь у нас есть множество провайдеров. Среди них не только зарубежные, но и местные. Данная библиотека обобщает опыт использования искусственного интеллекта в 1С и дает вам возможность создавать собственные решения, не отвлекаясь на второстепенные технические детали.

Скачать исходный код

Наименование Файл Версия Размер
Библиотека искусственного интеллекта для 1С:
.cfe 42,00Kb
33
.cfe 3 42,00Kb 33 Скачать

Библиотека представлена в виде расширения 1С. В расширении один общий модуль, три справочника и одна демонстрационная обработка. Расширение применимо к любой типовой или нетиповой конфигурации.

 

Обзор функций

Генерация(промт, модель, температура)

Это основная функция библиотеки. Вы задаете большой языковой модели вопрос и получаете ответ. Вопрос тут зовется промтом, так уж сложилось. Вторым параметром вы задаете модель, это ссылка на элемент справочника Модели. В настоящий момент список всех моделей выглядит так:

 

 

Для генерации можно использовать семь моделей от четырех провайдеров. У каждого провайдера есть свои особенности в реализации API. Но от вас не требуется вникать в эти технические детали. Вы можете полностью сосредоточиться на разработке логики вашего решения.

Параметр Температура служит для задания уровня "креативности" модели. Применение больших языковых моделей в 1С, как правило, подразумевает нулевую "креативность". Например, вы даете пользователю ввести вопрос, преобразовываете этот вопрос в запрос к базе данных, выполняете запрос и выдаете результат пользователю. В этом случае надо устанавливать значение параметра Температура в 0.

Но есть задачи именно на креативность. Например вы говорите большой языковой модели: у меня вот такая структура базы данных, придумай 5 разных запросов к ней. Здесь будет уместно установить значение параметра Температура в 0.8 или в 1.

ТекстЗапроса(промт, модель, схема, общий_журнал=ложь, журнал_ошибок=ложь)

Эта функция выдает текст запроса на языке запросов 1С. В дополнении к промту и модели, вы указываете схему. Схема - это ссылка на элемент справочника Схемы БД. Схема состоит из двух частей. Первая описывает таблицы. Вторая задает соответствие между описанием из первой части и реальными именами таблиц и полей в вашей базе.  

Вектор(текст, модель)

Для заданного текста выдает массив чисел. Это векторное представление (embedding) текста. Это нужно для сравнения текстов. Дело в том, что в модель нельзя загрузить большой объем текста за раз. Допустим, вы хотите сделать на базе искусственного интеллекта некоего консультанта. Весь объем знаний этого консультанта вам придется разбить на относительно небольшие части. Затем вам потребуется как-то определять к какой именно части относится вопрос пользователя. Здесь вам и поможет векторное представление.

ПолучитьТекстИзАудио(аудио, модель)

Речь может быть письменной, а может быть голосом. Во втором случае, прежде, чем задействовать большую языковую модель, нам потребуется распознать текст. Эта функция преобразует аудио данные в текст.

ПолучитьАудиоИзТекста(текст, модель)

Обратная операция, т.е. озвучка текста может потребоваться, если вы захотите создать полностью голосового бота.

ПолучитьСообщениеТелеграм(бот)

Большие языковые модели работают с текстом. Поэтому интеграция с мессенджерами вам рано или поздно потребуется. Эта функция получает сообщение от бота Телеграм.

ОтправитьСообщениеТелеграм(бот, чат, текстСообщения, меню=неопределено)

Эта функция отправляет сообщение боту Телеграм.

ПолучитьАудиоДанныеТелеграм(бот, сообщение)

А с помощью этой функции вы сможете вытащить аудио-данные из сообщения от бота Телеграм. Там это делается немного замороченно, в несколько шагов. Эта функция упростит вам жизнь.

ПроверитьИЗаполнитьСправочники()

Эта процедура производит начальное заполнение справочников БИИ_Провайдеры и БИИ_Модели, если они пустые.

Тестировалось на 8.3.23.1912.

Управляемые формы.

 

UPD 19.03.2024

Добавлены три модели генерации от Anthropic. Anthropic конкурирует с OpenAI, предлагая модели с большим контекстным окном и более низкой ценой. Общее количество моделей теперь достигло 17. Из них 10 - генерация, 4 - векторы, 2 - распознавание речи, 1 - синтез речи.

 

UPD 07.04.2024

Добавлена функция получения текста запроса на языке запросов 1С.

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    127310    688    389    

740

Infostart PrintWizard - создание и редактирование печатных форм в 1С 8.3

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 руб.

06.10.2023    8445    25    6    

46

Infostart УДиФ: Управление данными и формами 1С

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    4769    12    2    

38

SALE! %

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2280 руб.

14.01.2013    178977    1086    0    

863

Заполнение описания номенклатуры с помощью ChatGPT

Мастера заполнения Нейросети Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Платные (руб)

Расширение для заполнения описания номенклатуры с помощью модели ИИ ChatGPT. Расширение формирует продающее описание товара по его наименованию с помощью модели искусственного интеллекта. Будет полезно для владельцев интернет магазинов, каталогов товаров и продающих через маркетплейсы. Адаптировано для основных конфигураций: УТ, ЕРП, КА, УНФ. Прошло аудит на 1cfresh.com. Версия для автоматического заполнения

5000 руб.

13.03.2023    16352    43    49    

74

Потоковая предметная фотосъемка c удалением фона (Canon & Nikon)

Нейросети 8.3.6 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Обработка подключения фотокамер Canon и Nikon к Управление торговлей 11.4 для потоковой загрузки фотографий в карточки товаров с автоматическим удалением фона

22800 руб.

24.06.2021    9304    2    3    

11

Заполнение описания номенклатуры с помощью GigaChat

Нейросети Мастера заполнения Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Расширение для заполнения описания номенклатуры с помощью модели ИИ GigaChat от Сбера. Расширение формирует продающее описание товара по его наименованию с помощью модели искусственного интеллекта. Будет полезно для владельцев интернет магазинов, каталогов товаров и продающих через маркетплейсы. Адаптировано для основных конфигураций: УТ, ЕРП, КА, УНФ.

5000 руб.

08.11.2023    1573    7    0    

15

Бустер Конвертации данных 3 (Infostart Toolkit)

Инструментарий разработчика 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 руб.

07.10.2021    15131    3    12    

38
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. baldorc 4 11.03.24 18:13 Сейчас в теме
А сами апи ключи внутри или их получать отдельно?
baracuda; +1 Ответить
2. mkalimulin 1172 11.03.24 18:25 Сейчас в теме
3. Luis-Gomer 52 12.03.24 08:25 Сейчас в теме
4. mkalimulin 1172 12.03.24 09:36 Сейчас в теме
(3) Пользуйтесь на здоровье! Обратите внимание, что за год с лишним разработок в этой области появилось раз-два и обчелся. Есть чем заняться, присоединяйтесь!
SAD777; Shmell; +2 Ответить
5. Luis-Gomer 52 12.03.24 09:51 Сейчас в теме
(4)Да, тема действительно интересная. Пожалуй окунусь и попробую присоединиться. Изучу ваше решение) Спасибо)
6. eufes 12.03.24 21:17 Сейчас в теме
а есть примеры генерации запросов?
7. mkalimulin 1172 12.03.24 21:34 Сейчас в теме
(6) Ну например:
MySQL
#Склады(id, наименование)
#Товары(id, наименование, артикул)
#Контрагенты(id, наименование)
#Менеджеры(id, наименование)
#Продажи(товар_id, контрагент_id, склад_id, менеджер_id, количество, сумма, суммаприбыли, рентабельность, дата) Список уникальных покупателей артикула а-171 в 2023 году из тех у кого было менее 3 покупок любых товаров в 2022 году SELECT

Жирным выделен вопрос пользователя. Обрамляете его таким способом и на выходе получаете текст запроса в синтаксисе MySQL. Превращаете его в текст запроса 1С. Выполняете и выдаете пользователю результат
8. user778014 9 12.03.24 21:36 Сейчас в теме
Подскажите каким образом можно дообучить модели на основании дополнительного текста ?
В обработке я не увидел такого функционала.

Спасибо!
9. mkalimulin 1172 12.03.24 22:27 Сейчас в теме
(8) Да, в принципе, есть такой инструмент. Называется fine-tuning. Я пока в раздумьях, включать ли его сейчас в библиотеку. Дело в том, что дообучение модели это редкая разовая история. Да, провайдеры дают доступ к ней через API. Но в чем тут может быть прелесть? Чего с чем тут интегрировать? Зашел в личный кабинет, сделал себе дообучение и далее пользуйся своей моделью. Чем здесь API поможет?

Также примите во внимание, что... если у вас нет лишних 10 миллионов рублей, то ничему стоящему вы модель не обучите (говорю по собственному опыту)
triviumfan; s22; +2 Ответить
10. fedorovich2003 13.03.24 04:59 Сейчас в теме
(9) например дообучить метаданными типовых конфигураций 1С и функциями БСП. Чтобы не mysql а уже почти готовые запросы 1с получить? Или я не прав и так не получится?
11. mkalimulin 1172 13.03.24 09:21 Сейчас в теме
(10) Попробую ответить тезисно на ваш вопрос.

1. Получится все. Вопрос в стоимости.
2. Есть обучение и дообучение. Например модель gpt3.5 имеет 96 слоев. Обучением занимается создатель и владелец модели, в данном случае компания OpenAI. Далее, обучив модель полностью, этот владелец "открывает" последний слой (из 96) для всех желающих. Каждый может дообучить модель, т.е. попробовать повлиять на этот последний слой. В результате получится клон исходной модели, владельцем которого будет уже тот, кто сделал дообучение.
3. Дообучение стоит дорого. Вы платите за то, что задействуете вычислительные ресурсы. Но это малая часть затрат. Основные затраты связаны с подготовкой данных для обучения. Что означает дообучить на метаданных типовых конфигураций и БСП? Это означает подготовить 100 тысяч пар вопрос-правильный ответ. Сами посчитайте, сколько это будет стоить.
4. Даже если вам удастся это сделать, сейчас никто не даст вам гарантию, что результат понравится вам и окружающим. Не забывайте, вы затрагиваете исходную модель только чуть-чуть. Это исследовательская работа. Может получится, а может и нет. Гарантированный результат можно получить только если заняться обучением модели целиком. Гарантированный, потому что уже как минимум десяток компаний прошли этот путь и получили результат. Но это уже совсем другие деньги и другой масштаб. И другие риски.
5. Резюме. Наверное лучше будет трезво оценивать свое место в этом процессе и пользоваться тем, что уже обучили до нас. Генерация запросов для MySQL работает прекрасно. Вот и хорошо. Язык запросов 1С это всего лишь один из диалектов SQL. Перевод из одного диалекта в другой - это не очень сложная задача. Например, у 1С есть, если не ошибаюсь, 4 транслятора из одного SQL в другой (1С в MS SQL, 1С в PostgreSQL, 1С в Oracle, 1С в IBM DB2) и все они прекрасно работают. Сделать еще один сносно работающий транслятор (MySQL в 1С) вполне возможно.
Зачатки такого транслятора вы можете найти здесь https://infostart.ru/1c/reports/2027806/ и здесь https://infostart.ru/1c/tools/2015260/
RayCon; NeLenin; Артано; triviumfan; +4 Ответить
12. s22 19 13.03.24 10:43 Сейчас в теме
(11)
Далее, обучив модель полностью, этот владелец "открывает" последний слой (из 96) для всех желающих.
откуда инфа про то что только последний слой?
13. mkalimulin 1172 13.03.24 12:54 Сейчас в теме
(12) Точно вам сейчас уже никто не скажет. Прошли те времена, когда OpenAI была open. Жесткая конкурентная борьба вынуждает скрывать технические детали. Один они слой оставляют или два. Но сути это не меняет. Fine tuning большой модели это "заморозка" всех слоев, кроме нескольких последних. Лично я поставил бы на то, что оставляют один слой. Два слоя сразу сильно увеличивают нагрузку
etmarket; +1 Ответить
14. cloud666 27 13.03.24 16:37 Сейчас в теме
А модели и провайдеры где?.. Как начать пользоваться? Вопрос отпал, но может заполнение сделать при открытии формы теста?
15. mkalimulin 1172 13.03.24 17:15 Сейчас в теме
(14) Да, пожалуй добавлю и туда. Спасибо!
Оставьте свое сообщение