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

29.11.24

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Использование в 1С генеративных языковых моделей:
.cfe 46,54Kb
1
1 Скачать (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

См. также

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

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

22800 руб.

24.06.2021    9978    4    4    

15

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

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

5000 руб.

13.03.2023    18430    47    50    

76

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

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

5000 руб.

08.11.2023    2832    12    0    

21

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

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

10.01.2025    1512    mkalimulin    57    

26

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

Поставщики присылают счета на оплату. Чтобы на основе счета сделать платежное поручение, нужно завести контрагента, создать его банковский счет, вбить реквизиты, назначение платежа. А это около 5 минут времени, если поставщик новый. Данное решение позволяет вставить скопированный текст счета в окно 1С и по одной кнопке нейросеть вычислит реквизиты контрагента, сгенерирует самого контрагента, его банковский счет. Далее по кнопке будет создано платежное поручение и для удобства сгенерирован qr код, который, например, можно задействовать для оплаты в мобильном банке.

3 стартмани

09.01.2025    341    4    svcoopers    0    

2

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

Решение демонстрирует механизмы взаимодействия с сетями TVM (Telegram Open Network Virtual Machine), такими как Everscale, TON и другими, построенными на базе этой виртуальной машины. Взаимодействие реализовано через клиента командной строки ever-cli. Пример реализации выполнен для сети Everscale, но с небольшими доработками может быть использована для сети TON.

2 стартмани

27.12.2024    401    0    lectorkoba    0    

2

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

Иногда читаешь статью на Инфостарте и понимаешь, что для тебя это слишком сложно. К счастью, сейчас есть искусственный интеллект. Искусственный интеллект разберет статью на тезисы и ответит на вопросы о непонятом. Можно, конечно, задать вопрос автору статьи, но есть проблема. Всегда есть вероятность, что твой вопрос окажется «глупым». С искусственным интеллектом можно не стесняться и задавать любые вопросы. Хочу рассказать, как я осмысливал сложную статью с Инфостарта с помощью языковой модели O1 от OpenAI.

24.12.2024    803    Torin57    1    

5

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

Разговоров о применении искусственного интеллекта в бизнесе сейчас много. Но по большей части это именно что разговоры. Довольно часто все сводится к перечислению того, что ИИ можно применить вот так и вот так, вот здесь и здесь, без каких-либо дальнейших подробностей. Предлагаю вашему вниманию подробное описание одного из возможных применений технологии искусственного интеллекта в бизнесе. С техническими подробностями и экономикой

23.12.2024    2552    mkalimulin    35    

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