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

14.08.24

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Бесплатно
Библиотека искусственного интеллекта для 1С:
.cfe 48,25Kb ver:10
238
238 Скачать бесплатно

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

 

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

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

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

 

 

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

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

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

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

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

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

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

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

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

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

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

ЗапроситьИзображение(промт, модель)

Создает запрос на генерацию изображения на основе текстового описания (промт). В результате выдает идентификатор запроса на создание изображения. Этот идентификатор далее используется в функции ПолучитьИзображение()

ПолучитьИзображение(идентификатор, модель)

Получаем изображение, созданное ранее по запросу ЗапроситьИзображение(). Изображение выдается в base64
 

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

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

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

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

ОтправитьАудиоТелеграм(бот, чат, аудиофайл, меню=неопределено)

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

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

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

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

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

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

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

 

UPD 19.03.2024

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

 

UPD 07.04.2024

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

 

UPD 04.05.2024

Добавлена модель для генерации изображений yandex-art и две новые функции ЗапроситьИзображение() и ПолучитьИзображение()

 

UPD 12.05.2024

Добавлена функция отправки аудио в Телеграм ОтправитьАудиоТелеграм(). Теперь можно сделать полностью голосовой интерфейс. Пользователь говорит голосом и получает ответ тоже голосом. Также добавлены две модели типа Текст2Аудио (tts) от OpenAI. Общее количество поддерживаемых моделей сейчас 21. 

UPD 19.06.2024

Компания NVIDIA тут решила, что не все ей для других стараться, надо что-то и для себя сделать. Выпустила свою LLM модель. 340B, что немало. Напомню, что нашумевший в свое время ChatGPT имел в своей основе модель 130B. У модели NVIDIA уже неплохой ЭЛО. Думаю, что у этого гиганта достаточно ресурсов, чтобы войти в топ и составить компанию расположившимся там Microsoft, Google и Amazon. Добавил в библиотеку нового провайдера NVIDIA и новую модель генерации nvidia/nemotron-4-340b-instruct. На данный момент на старте дают 1000 бесплатных запросов, что означает по сути бесплатный доступ. Отвечает не так быстро, как GPT-4o, но в целом приемлемо.    

UPD 27.06.2024

А вот и первый "китаец". Китайские модели от провайдеров Alibaba, 01 AI и Zhipu AI уже давно присутствуют на рынке и занимают места крепких середнячков в рейтинге ЭЛО https://chat.lmsys.org/?leaderboard. Но до сих пор у меня лично не получалось подключиться к кому-нибудь из них через API. То номер телефона нужен китайский, то еще что-то. Наконец удалось подключиться и проверить работу флагманской модели glm-4-0520 от Zhipu AI. Процесс подключения прошел не просто легко, а суперлегко. На сайте указал российский номер телефона, email. Получил на email код подтверждения, ввел его и сразу же получил работающий API ключ. Начальный уровень бесплатный. Пока не настучишь запросов на 50 юаней. При том, что у меня средний запрос это примерно 0.1 юань. В общем, хорошая альтернатива Open AI, на фоне того, что они недавно объявили об ужесточении мер по контролю за доступом. 

Также есть новости от Anthropic. Они запускают линейку 3.5 на смену 3. Начали, правда не с флагманской Opus, а со средней Sonnet. Тем не менее, их модель claude-3-5-sonnet-20240620 прямо сейчас находится на втором месте в рейтинге. Добавил и эту модель в библиотеку.  

UPD 06.07.2024

Партия сказала "надо"... В Open AI заявили, что будут предпринимать дополнительные меры к тому, чтобы их модели нельзя было использовать на "неправильных" территориях. Видимо, в руководстве Китая быстро смекнули, к чему идет дело, и распорядились немедленно организовать доступ к их моделям для всех желающих, по всему миру. Без проблем подключился к еще одному китайскому лидеру 01 AI. Их модель yi-large в рейтинге lmsys сейчас располагается чуть выше, чем glm-4-0520 от Zhipu AI, которую я анонсировал в прошлый раз. Вдвоем эти "китайцы" буквально дышат в затылок лидерам LLM (OpenAI, Anthropic, Google). Добавил в библиотеку еще одного провайдера и еще одну модель. 

UPD 15.08.2024

Добавил возможность вызова функций. Теперь можно не только поболтать, но и сделать из модели полезного работника. Подробности здесь: Приделываем "лапки" к ИИ

См. также

SALE! %

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

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

12000 10000 руб.

02.09.2020    161235    892    399    

872

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 руб.

20.08.2024    8553    65    29    

76

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

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

22200 руб.

06.10.2023    15675    38    8    

73

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

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    23835    70    45    

119

SALE! %

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

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

15000 10000 руб.

10.11.2023    10655    38    27    

63

SALE! %

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

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

4800 3840 руб.

14.01.2013    188480    1142    0    

913

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

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

22800 руб.

24.06.2021    9848    4    4    

15

SALE! %

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

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

20000 15000 руб.

07.10.2021    17552    6    32    

42
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. baldorc 4 11.03.24 18:13 Сейчас в теме
А сами апи ключи внутри или их получать отдельно?
baracuda; +1 Ответить
2. mkalimulin 1231 11.03.24 18:25 Сейчас в теме
3. Luis-Gomer 56 12.03.24 08:25 Сейчас в теме
4. mkalimulin 1231 12.03.24 09:36 Сейчас в теме
(3) Пользуйтесь на здоровье! Обратите внимание, что за год с лишним разработок в этой области появилось раз-два и обчелся. Есть чем заняться, присоединяйтесь!
SAD777; Shmell; +2 Ответить
5. Luis-Gomer 56 12.03.24 09:51 Сейчас в теме
(4)Да, тема действительно интересная. Пожалуй окунусь и попробую присоединиться. Изучу ваше решение) Спасибо)
6. eufes 12.03.24 21:17 Сейчас в теме
а есть примеры генерации запросов?
7. mkalimulin 1231 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 1231 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 1231 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 22 13.03.24 10:43 Сейчас в теме
(11)
Далее, обучив модель полностью, этот владелец "открывает" последний слой (из 96) для всех желающих.
откуда инфа про то что только последний слой?
13. mkalimulin 1231 13.03.24 12:54 Сейчас в теме
(12) Точно вам сейчас уже никто не скажет. Прошли те времена, когда OpenAI была open. Жесткая конкурентная борьба вынуждает скрывать технические детали. Один они слой оставляют или два. Но сути это не меняет. Fine tuning большой модели это "заморозка" всех слоев, кроме нескольких последних. Лично я поставил бы на то, что оставляют один слой. Два слоя сразу сильно увеличивают нагрузку
etmarket; +1 Ответить
17. AlexanderEkb 25 13.06.24 05:17 Сейчас в теме
(10) Получится. Я так уже работаю. Для этого AI агент используется. Правда всю БСП я туда по не смог загрузить, но думаю, в ближайшем году они этот баг исправят. Но вот подсистемы легко. И расширение уважаемого автора этой статьи я тоже туда загрузил и не читая код (не запуская конфигуратор) могу анализировать код, делать рефакторинг, вносить изменения. Вот скрин экрана этого AI агента, который мне за несколько секунд сделал анализ проекта и описал бизнес логику расширения из этой статьи. Так же скрин моего запроса на рефакторинг - второй скрин (не виден весь экран). Автора этого расширение не использует паттерны программирования (стратегия, фабрика и прочие). Я попросил этого AI агента отрефакторить код согласно этим паттернам. Круто справился
Прикрепленные файлы:
14. cloud666 28 13.03.24 16:37 Сейчас в теме
А модели и провайдеры где?.. Как начать пользоваться? Вопрос отпал, но может заполнение сделать при открытии формы теста?
15. mkalimulin 1231 13.03.24 17:15 Сейчас в теме
(14) Да, пожалуй добавлю и туда. Спасибо!
16. mkalimulin 1231 08.05.24 10:17 Сейчас в теме
Сегодня, 08.05.2024 библиотека сделана бесплатной. Я, как автор, конечно хотел бы получать не только моральное вознаграждение. Но реальность устроена немного сложнее. Сейчас библиотека продается на множестве площадок из категории "слив курсов". Поощрять подобное я не хочу, поэтому принял решение сделать продукт бесплатным.
Благодарю всех, кто честно приобрел продукт на Инфостарте и тем самым поддержал его развитие, которое на этом не остановится. Новые версии по прежнему будут появляться здесь.
Также сообщаю, что я сейчас разрабатываю программу компенсации тем, кто купил продукт. До конца этого месяца я планирую предложить ее покупателям следующих продуктов:
https://infostart.ru/1c/tools/2059795/
https://infostart.ru/1c/tools/2015260/
https://infostart.ru/1c/reports/2027806/
https://infostart.ru/1c/tools/1868902/
sergei_tekh; igel9780; arkarimov; artbear; +4 Ответить
18. altar 234 10.08.24 10:26 Сейчас в теме
Добрый день)
А по поиску по вхождению объекта (изображения) в графическом файле есть что нибудь?
19. mkalimulin 1231 10.08.24 12:59 Сейчас в теме
(18) Добрый день!
Да, у лидеров (Google, OpenAI, Anthropic) сейчас есть возможность передавать изображения в запросе. Просто руки пока не дошли добавить в библиотеку. Можете сами "подкрутить". В самом простом варианте, вы просто передаете картинку в base64. Ну или дождитесь релиза библиотеки
20. grin_64 37 17.10.24 07:26 Сейчас в теме
Добрый день!
В Процедуре Генерация для Яндекс заменил
Заголовки.Вставить("Authorization", "Api-Key "+модель.Провайдер.Ключ);
на
Заголовки.Вставить("Authorization", "Bearer " + модель.Провайдер.Ключ);
Заработало
Оставьте свое сообщение