Использование в 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    9848    4    4    

15

Нейросети Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Платные (руб)

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

6000 руб.

03.04.2024    6729    4    0    

8

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

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

5000 руб.

13.03.2023    18050    46    50    

75

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

Хочешь понять, с кем беседуешь на Инфостарте? Воспользуйся детектором тролля. Детектор тролля покажет количество сообщений с троллингом у собеседника и гистограмму по видам троллинга. Если % троллинга в сообщениях собеседника зашкаливает, то собеседнику можно не отвечать. Бараку Монголову посвящается.

26.11.2024    1296    10    Torin57    83    

18

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

В статье рассказываю, как ChatGPT может стать помощником разработчика в заполнении таймшитов. Делюсь личным опытом, описываю несколько простых и эффективных подходов, как автоматизировать этот процесс с помощью ИИ.

11.11.2024    476    user1931231    0    

5

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

В современном мире, где технологии развиваются с невероятной скоростью, искусственный интеллект (ИИ) становится неотъемлемой частью бизнеса. Но как именно ИИ интегрируется в платформу 1С, которая является основой для управления бизнесом в тысячах российских компаний? В этой статье мы подробно рассмотрим реальные примеры, конкретные детали и перспективы использования ИИ в 1С, чтобы помочь вам понять, как эти технологии могут преобразовать ваш бизнес.

29.10.2024    1489    user2110835    4    

-3

WEB-интеграция Нейросети Мессенджеры и боты Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Данная консоль позволяет делать обращения из вашей рабочей области к YandexGPT в режиме чата и промт-режиме, а также логировать промт-запросы и просматривать их результаты.

1 стартмани

15.10.2024    2205    9    serezh1a    3    

7

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

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

6 стартмани

08.10.2024    539    4    soulner    0    

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