RAG, два, три

01.04.25

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

В библиотеке искусственного интеллекта для 1С появилась поддержка RAG (Retrieval Augmented Generation). Что это такое и как с этим работать, рассказываю в этой статье.

Скачать файл

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

Наименование Бесплатно
kolobok.txt
.txt 4,18Kb
30
30 Скачать бесплатно

Для работы вам понадобится Библиотека искусственного интеллекта для 1С.  Она распространяется бесплатно и вы можете использовать ее для создания своих коммерческих продуктов.

Когда клиенты заводят разговор о RAG, довольно часто приходится слышать об "обучении нейросетей". Дескать, давайте обучим нейросеть нашими данными с помощью RAG. Строго говоря, это неправильно. Обучение нейросетей, это отдельная сложная тема, а с RAG все несколько проще.

Представим, что мы хотим давать ответы на вопросы клиентов, задействовав для этого искусственный интеллект. Мы берем большую и умную нейросеть. Ее уже обучили всему, чему надо и она может поддерживать непринужденный разговор. Но вот конкретно про нас она не знает ничего, или почти ничего. Клиент приходит с простым вопросом: какой у вас график работы? Нам нужно сделать что-то, чтобы нейросеть смогла ответить на него. Для этого ее не надо обучать. Можно поступить проще. Добавить ответ в вопрос. Это и будет тем самым augment, т.е. расширением.

Вопрос клиента:

Какой у вас график работы?

Наше расширение:

Мы работаем по будням, с 9:00 до 18:00 

Что получает на вход нейросеть:

Мы работаем по будням, с 9:00 до 18:00 Какой у вас график работы? 

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

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

Во-первых, есть размер контекста. У разных моделей он разный. У gpt-4o от OpenAI это 128К токенов. У Claude Sonnet 3.7 от Anthropic 200K. У Gemini 2.5 pro от Google 1 миллион токенов и обещают 2 вскорости. Миллион токенов, это достаточно много. Практически "Война и мир" (на английском языке около 700К токенов). Но существует мнение, что с увеличением контекста качество ответов падает. Так что, миллион токенов, это только в теории. На практике и 32К уже многовато. Потому еще, что во-вторых, есть плата за входящие токены. У gpt-4o сейчас 2.5$ за миллион токенов, у Sonnet 3.7 это 3$. Платить по 10 рублей за каждую реплику в диалоге с клиентом может оказаться накладным.

И вот тут возникает идея подмешивать в запрос пользователя не все-все-все, а только то, что имеет отношение к этому запросу. Как определить, что имеет отношение к запросу пользователя? И тут на помощь приходит нейросеть. Она умеет превращать текст в вектор (embedding). Вектор, это много чисел, например 512. А по сути, точка в 512-мерном пространстве. Теперь мы можем разделить наш большой текст, в котором все-все-все, на маленькие части. Для каждой части получим вектор или точку в 512-мерном пространстве. Далее, получив от пользователя запрос, мы и для него рассчитаем точку и определим к какой из ранее рассчитанных точек она ближе всего. Так мы получим ту самую часть большого текста, которую надо добавить в запрос.

Конечно, трудно себе представить 512-мерное пространство, но работает это прекрасно. А еще более прекрасно то, что в Response API от OpenAI (как и в скоропостижно устаревшем Assistant API) вся эта сложная работа с векторной базой скрыта "под капотом". Вы создаете векторную базу одной простой командой, загружаете туда файл или файлы (это не важно, все равно все будет порезано на кусочки неким оптимальным способом). И все готово к работе. Все что нам нужно для того, чтобы заработало "подмешивание", это указать id векторной базы в специально выделенной для этого опции.

 

В библиотеке искусственного интеллекта для 1С, начиная с версии 19, появились функции: СоздатьВекторнуюБазу(), ЗагрузитьФайл(), РазместитьФайл()

 

   

  

В результате мы получаем подготовленную векторную базу с неким id. Этот id мы передаем в опции "vector_store_id" и получаем RAG.

Вы можете самостоятельно поэкспериментировать с этим, пользуясь обработкой БИИ_Пример, которая входит в состав библиотеки.

 

 

 

Файл kolobok.txt, на котором  экспериментировал я, прилагаю.

Как видите, RAG относительно простая вещь. А с библиотекой искусственного интеллекта для 1С это становится просто, как раз-два-три.

См. также

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

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

5000 руб.

08.11.2023    3594    15    0    

25

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

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

2 стартмани

14.04.2025    565    2    exitone    14    

2

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

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

12.04.2025    4451    1Concept    0    

6

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

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

09.04.2025    3811    Dziden    58    

1

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

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

09.04.2025    2632    38    mkalimulin    17    

20

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

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

3 стартмани

07.04.2025    5601    36    vanya_gonchar    20    

23

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

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

10 стартмани

26.03.2025    776    9    Prepod2003    5    

11
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. JohnyDeath 302 01.04.25 14:31 Сейчас в теме
Сколько в итоге токенов будет уходить на RAG? Понятно, что обращение к модели будет дешевле, но непонятно на сколько. Что будет-таки уходить в облако и какими порциями? От чего зависит размер этих порций?

Спасибо за библиотеку. Периодически подсматриваю там кусочки и что-то тестирую
cleaner_it; +1 Ответить
2. mkalimulin 1521 01.04.25 15:10 Сейчас в теме
(1) В моем примере получилось около 3000 токенов. Но я ставлю параметры auto при создании векторной базы. В принципе, можно играться размерами чанка (кусочка, chunk) и размерами перекрытия. Response API такое предусматривает. Меньше размеры, меньше токенов, но и качество ответов при этом может снижаться, поэтому оставил auto
cleaner_it; JohnyDeath; fatman78; +3 Ответить
3. vlad1976 01.04.25 18:33 Сейчас в теме
душу только травите. мне база досталась в режиме совместимости 8.3.12. и уже ваше расширение не поставить.
4. mkalimulin 1521 01.04.25 18:36 Сейчас в теме
(3) Так. А в чем загвоздка? JSON, насколько помню с 8.3.6, HTTP еще раньше. Что не дает поставить?
5. vlad1976 01.04.25 19:11 Сейчас в теме
Конфигурация.БиблиотекаИскусственногоИнтеллекта: Переопределение свойств заимствованных объектов в расширениях недопустимо в режиме совместимости 8.3.13 и ниже
6. mkalimulin 1521 01.04.25 19:35 Сейчас в теме
(5) Думаю, это можно будет убрать. Попробую в следующей версии
cleaner_it; +1 Ответить
7. timeforlive 16 02.04.25 10:28 Сейчас в теме
Думал 1 апрельская шутка этот пост. Спасибо, что осветили такой инструмент, буду пробовать.
8. mkalimulin 1521 02.04.25 11:00 Сейчас в теме
(7) Да, я что-то поздно спохватился. Совсем забыл, что 1 апреля надо публиковать либо ничего, либо веселое
9. Ndochp 104 04.04.25 12:56 Сейчас в теме
А векторная база на чем делается?
Вообще кажется что с использованием RAG мы начинаем очень слабо зависеть от ЛЛМ. Кажется токенами платим за "перескажи вывод поиска". А я точно дешевле лично не справлюсь с чтением ответа векторной базы?
10. mkalimulin 1521 04.04.25 13:12 Сейчас в теме
(9) Чтобы превратить текст в вектор нужна нейросеть. Это основной момент. А собственно векторная база играет вспомогательную роль. Просто очень быстро считает расстояния между векторами
11. Ndochp 104 04.04.25 16:35 Сейчас в теме
(10) Наш АИотдел говорит, что в вектор надо класть куски размером 1500 символов с 50% перекрытием и будет счастье. А нейросетка значит нужна чтобы этим кускам сопоставить вектора? Вот этот момент я походу и пропускал. Думал что операцию "докинь еще вот этот кусок" векторная база делает без LLM.
12. mkalimulin 1521 04.04.25 16:39 Сейчас в теме
(11) Ну, да. А раз уж все равно обращаешься к нейросети не локально, то зачем тебе своя векторная база?
Оставьте свое сообщение