Использование в 1С генеративных языковых моделей

29.11.24

Интеграция - Нейросети

Рассмотрим использование генеративного ИИ в 1С. Как установить, настроить и пользоваться, где можно применять, а также немного мыслей в конце статьи.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Использование в 1С генеративных языковых моделей:
.cfe 46,54Kb
6
6 Скачать (5 SM) Купить за 3 050 руб.

Общая информация

Ollama - это платформа с открытым исходным кодом, разработанная для облегчения развертывания больших языковых моделей (LLM) в локальных средах. Она направлена на упрощение сложностей, связанных с запуском этих моделей и управлением ими, обеспечивая беспрепятственный доступ пользователей к различным операционным системам. Т.е. буквально любой на своём домашнем компьютере может использовать большую языковую модель. Характеристики моего ноута я описывал тут, мне писали, что даже для EDT слабоват, но небольшую LLM запустить получилось.

Моё личное знакомство с LLM и их возможностями началось с приложения Alpaca под Linux с FlatHub, там настолько просто, что и писать нечего. Выбрал модель, загрузил, начал пользоваться.

Alpaca - это графический интерфейс, построенный на платформе Ollama, что делает использование LLM доступным даже для пользователей без опыта работы в командной строке. Без Alpaca работа с Ollama осуществляется в командной строке.

Установка и настройка

Буду описывать установку для Linux, у кого Windows, сами разберётесь, у вас проще. Ollama ставится скриптом, он там прямо на главной странице написан.
Конфигурирование службы осуществляется через редактирование unit-файла /etc/systemd/system/ollama.service, описание убрал под спойлер

 
 Тут параметры сервера и их описание

Перезапускаем службу заходим браузером на http://localhost:11434, видим фразу "Ollama is running" и радуемся. Но не долго. Конкретно для Alt Linux я не нашёл готовых приложений, которые умеют работать с сервером Ollama через API. Сразу скажу искал плохо, т.к. всё равно нужно писать своё.

Загрузка моделей

Дальше идём на сайт проекта, в раздел Models, видим там большой список, отсортированный по популярности, начать можно с модели llama3.1:8b, она маленькая и быстрая. Даём в консоли команду

ollama pull llama3.1:8b

и пока загружается, смотрим список моделей и читаем про них... По каждой популярной модели есть обзоры на русском языке, там описаны параметры и под какие задачи обучалась.
После окончания загрузки даём команду

ollama run llama3.1:8b

и погружаемся в мир генеративного ИИ. Можно прямо в консоли начинать общение.

Аппаратные требования

Вся модель должна поместиться в память, поэтому смотрим размер модели и соизмеряем возможности. Например llama3.1:8b занимает 4.7 Гб и должна поместиться в память почти любого современного компа. Соответственно смотрим на реально большие модели с 405 млрд. параметров, которые весят > 200 Гб и копим деньги...
Но не только память нужна для работы генеративного ИИ, но и ядра, желательно графические и чем больше, тем лучше. Но для маленьких моделей и 8 ядер обычного ноутбука хватит попробовать.

Аппаратные возможности

Имеем довольно бюджетный сервер на двух Intel Xeon 2200, 12 ядер, 24 потока в каждом и память 512 Гб. Все эксперименты будем делать на виртуалке с 16 ядрами, 256 Гб оперативки, ОС Astra Linux 1.8 Orel.

Описание API

Официальная документация API доступна на сайте и достаточно проста для понимания. В ней описаны два основных режима работы с моделями: генерация и чат.

В режиме генерации клиент отправляет на сервер Ollama имя модели и промпт.  Ответ может поступать частями, имитируя набор текста, или возвращаться целиком. Также в этом режиме можно передать на сервер массив изображений в формате Base64 для анализа мультимодальными моделями, например llava.

В режиме чата вместо промпта используется массив сообщений с указанием роли отправителя (user – пользователь, assistant – ИИ). Контекст диалога сохраняется за счет постоянной передачи истории сообщений между клиентом и сервером.

Общий модуль расширения включает функции для получения списка доступных моделей, работы в режимах генерации и чата, а также процедуру загрузки модели в память (например, перед началом рабочего дня). Загрузка модели llama3.1:405b с медленных дисков может занимать около 20 минут. Расширение также включает обработки, позволяющие непосредственно выбрать модель и начать с ней работу.

Для чего всё это нужно?

А это очень не простой вопрос. Сейчас генеративный ИИ очень популярен, но в основном, как маркетинговая замануха. Я не смог найти в Инете статьи, где показали бы конкретный кейс, как ИИ смог ускорить какой-нибудь бизнес-процесс.
Предлагаю пофантазировать на эту тему. Предположим у нас организация, в которой установлен 1С:Документооборот. Входящая электронная корреспонденция приходит в виде сканов в формате PDF (в основном), бумажная сканируется. Поле краткое содержание в карточке документа никто не заполняет. А было бы удобно, открываешь карточку и через 10 сек. понятно о чём документ. Пусть его заполняет ИИ. Сначала документ нужно распознать, для этого можно воспользоваться приложением OCR Cuneiform, а можно взять более прогрессивную OCR Tesseract (тут). А потом сверху (или снизу) к текстовому образу при писать фразу «Сформулируй краткое содержание текста» и... примерно через минуту у нас будет вполне корректный ответ.
Не будем себя ограничивать и попросим ИИ подготовить данные для заполнения задач в процессе «Рассмотрение», обычно оно заполняется по резолюции начальника, но можно и помощь ему с правильным решением. Сверху к текстовому образу припишем «Подготовь список задач для исполнителей по документу, ответ в формате JSON». И мы получим JSON со списком задач. Нет, мы получим хрень.
А ещё представьте комплексный процесс, в котором есть такая задача «Подготовить положительный ответ», т.е. какой-то запрос прошёл все согласования и нужно просто ответить «Да». Можно у этой задачи сделать вспомогательный предмет в виде текстового файла, содержимое которого сгенерировать следующим промптом: «Подготовь положительный ответ по документу в деловом стиле».

Выбор модели и подбор промптов

А какая модель самая лучшая и подходит именно для вашего бизнеса? Как формулировка промпта влияет на конечный результат? На эти вопросы ответить сложно, нужно вручную готовить запросы к ИИ, потом анализировать ответы, сводить в таблицу... А вот если бы такая таблица сама заполнилась!
В расширении есть специальная обработка, которая на вход получает каталог с образцами текстовых файлов, список моделей и список управляющих промптов, потом долго думает и возвращает большую таблицу с ответами всех моделей по всем текстам и промптам, и с замерами времени. 
Поделюсь своими результатами:

  • обработка текстов большими моделями, такими, как mistral-large:123b и llama3.1:405b занимает более 20 минут, что неприемлемо;
  • модели mistral-nemo:12b и phi3:14b плохо работают с русским языком;
  • очень порадовали результатом llama3.1:70b и gemma2:27b, причём вторая по качеству не сильно хуже первой не смотря на разницу в параметрах, модели думают долго (120 – 800 секунд), но для фоновой обработки сгодится;
  • ну и для для чата подойдут llama3.1:8b и gemma2:9b не очень умные, но быстрые, обычно отвечают от 25 секунд до 1,5 минут (llama3.1:8b иногда использует английские слова, а gemma2:9b везде суёт эмодзи);
  • модель для обработки изображений (llava:7b) не хочет отвечать на русском, но её ответ можно перевести с помощью другой модели.

Общие впечатления

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

Я попробовал этот совет и получил более развёрнутый ответ, чем раньше. Пойду думать, спасибо за внимание.

В расширении используется функционал длительных операций БСП 3.1

 
 Стилистика текста переработана с помощью модели gemma2:27b

UPD 29.11.2024. Тут МТС выкатила в свободный доступ модель MTSAIR, сделанную на основе Qwen 2. Она быстрая и достаточно умная, можно использовать для чата. Это очень просто. Сайт huggongface.co умеет отдавать модели на сервер Ollama. Заходим на страницу модели MTSAIR/Cotype-Nano-GGUF, нажимаем справа вверху кнопку "Use this model", выбираем Ollama и получаем код для запуска на своём сервере. Если просто скачиваем, а не запускаем, то команду run меняем на pull 

ollama pull hf.co/MTSAIR/Cotype-Nano-GGUF

 

Проверено на следующих конфигурациях и релизах:

  • 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.10.295

ollama генеративный ИИ MTSAIR

См. также

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

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

5000 руб.

08.11.2023    3656    15    0    

25

Нейросети Программист Платформа 1С v8.3 Россия Бесплатно (free)

Все пишут, какой умный о3 от openAI, как он прекрасно разбирается в логике и какой у него замечательный механизм рассуждения. Проверим это на примитивных задачах 1С. Мы знаем, что буржуйский зверь не учили на нормальных данных по 1С и, следовательно, он толком ничего не умеет, но при этом он неплохо ищет в интернете, так вот заценим, сможет ли он скомпилировать что-то рабочее из того, что он там в интернетах найдет.

вчера в 17:00    143    IncomeGroup    0    

0

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

Расширение, которое подходит для любой конфигурации на платформе 1С:Предприятие 8.3 и позволяет встроить в экранные формы механизм заполнения текстовых полей при помощи DeepSeek. Методы по работе с нейросетью вынесены в отдельный модуль. Благодаря этому их легко использовать для реализации собственных схем применения DeepSeek в 1С.

2 стартмани

30.04.2025    1486    5    impro_otr    6    

20

Нейросети Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Абонемент ($m)

Данная публикация демонстрирует основы взаимодействия 1С по АПИ с GigaChat от Сбера. Приведены примеры получения токена, отправки файла для последующей обработки и чат с ИИ, и непосредственно обработка файла.

2 стартмани

14.04.2025    800    4    exitone    14    

2

Нейросети Бесплатно (free)

Недавно в сервисе MAKER-STUDIO появился ИИ ассистент, разработчики также обещают, что ИИ ассистент будет добавлен и в встроенный текстовый редактор, что ускорит написание документации по проекту, а также ИИ ассистент научиться генерировать схемы и формы. Пока поделимся тем, какие функции уже есть, приведем примеры наиболее востребованных на наш взгляд ПРОМТОВ, которые могут пригодиться в работе.

12.04.2025    4877    1Concept    0    

6

Нейросети 1С:Элемент Программист Бесплатно (free)

Технология 1С:Элемент позволяет быстро и качественно разрабатывать компактные и практичные мини-решения, не зацикливаясь на технических деталях, думая не о коде, а о бизнес-идее. Расскажем о том, какие приложения лучше всего разрабатывать на 1С:Элемент, кому это легче делать и какие трудности могут быть в освоении.

09.04.2025    4263    Dziden    65    

0

Нейросети Инструментарий разработчика Программист Платформа 1С v8.3 Бесплатно (free)

Если вы раздумываете, какую бы среду разработки освоить в дополнение к старому доброму Конфигуратору, тогда для вас самое время посмотреть на этот редактор.

09.04.2025    2830    43    mkalimulin    17    

22

Инструментарий разработчика Нейросети Программист Платформа 1С v8.3 Россия Абонемент ($m)

Быстро разбирайтесь в логике отчетов (ERF) и обработок (EPF) 1С с помощью AI! Расширение анализирует код, позволяя задавать вопросы и получать понятные объяснения о работе объекта на естественном языке.

3 стартмани

07.04.2025    6070    39    vanya_gonchar    20    

24
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. GarriSoft 152 19.09.24 20:38 Сейчас в теме
Как можно подключить к модели данные о продажах например в 1с?
Чтобы можно было задавать вопросы связанные с продажами?
6. soulner 472 20.09.24 12:09 Сейчас в теме
(1) Модель можно использовать для анализа текста запроса, а потом уже формировать запрос к базе и возвращать пользователю ответ. Вот пример использование промпта "Проанализируй запрос [текст] и найди в нём наименования контрагента и номенклатуры, а также вида запроса, такие как взаимозачет, остаток на складе, цена продажи. Ответ верни в формате JSON с полями Контрагент, Номенклатура, Вид запроса". Результаты на скринах, модель gemma2:27b
Прикрепленные файлы:
2. forestfield 20.09.24 07:25 Сейчас в теме
Спасибо! Про Ollama и Alpaca не знал.
3. mkalimulin 1525 20.09.24 07:37 Сейчас в теме
Примерно так:
Передаете модели схему базы и свой вопрос. В ответ получаете текст запроса. Выполняете запрос на своей стороне. Получаете результат.
4. soulner 472 20.09.24 08:43 Сейчас в теме
(3) Так точно не получится, должна быть специально обученная модель, которая из запроса на естественном языке формирует запрос на неком абстрактном языке (пример перевод запроса в SDBL) а потом уже обычные алгоритмы обрабатывают этот запрос на конкретных метаданных конфигурации. Вопрос у коллеги не простой, тут подумать нужно.
5. mkalimulin 1525 20.09.24 11:25 Сейчас в теме
(4) Что значит " не получится"? Вы пробовали?
Оставьте свое сообщение