AI-ассистент (чат-бот) на базе YandexGPT для генерации ответов по локальной базе документов

28.01.25

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

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

Скачать файл

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

Наименование Бесплатно
ВыгрузкаБазыДанных
.dt 5,19Mb
39
39 Скачать бесплатно

Сервис Yandex Foundation Models

Подробная информация о сервисе Yandex Foundation Models доступна по ссылке: О сервисе Yandex Foundation Models.

Полное руководство по использованию YandexGPT API можно найти на официальном сайте: Yandex.Cloud.

AI Assistant API

AI Assistant API — это инструмент для создания AI-ассистентов. Он позволяет разрабатывать персонализированных помощников, реализовывать сценарии генерации ответов с использованием информации из внешних источников (RAG, Retrieval Augmented Generation), а также сохранять контекст запросов к модели.

Официальная документация: AI Assistant API.

На момент написания статьи функциональность AI Assistant API находится на стадии Preview.

Постановка задачи

Реализовать на платформе «1С:Предприятие 8» AI-ассистента для генерации ответов на основе локальной базы документов, используя только возможности технологической платформы. В качестве примера выбран AI Assistant API от Yandex, так как он предоставляет широкий набор API и готовую Yandex.Cloud Python SDK (Yandex.Cloud SDK), что упрощает взаимодействие с сервисом.

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

Результат

В рамках задачи реализована базовая функциональность, объединенная на уровне метаданных в подсистему «YandexGpt».

В интерфейсе конфигурации доступны две обработки:

  1. AI ассистент — реализует функции AI-ассистента для генерации ответов, имитируя чат-бот с удобным интерфейсом (в целом, реализовано как в 1С:СППР). 

  2. Тестирование API Yandex GPT ассистента — инструмент для проверки и отладки API. Полезен для освоения последовательности действий, необходимых для получения генеративного ответа, а также для отладки каждого метода.

Форма «AI ассистента»

 

 

Форма «Тестирование API Yandex GPT ассистента»

 

 

Терминология API

  1. Каталог пользователя — рабочее пространство в Yandex Cloud, создаваемое при регистрации. Включает каталог default и сеть default. Пользователь может создавать новые каталоги и ресурсы, управлять правами доступа.

  2. folderId — идентификатор каталога пользователя.

  3. File — загружаемый файл для генерации ответов. Файлы могут быть маркированы с помощью свойства labels.

  4. Search Index — поисковый индекс, созданный для определенного набора файлов или всех файлов в каталоге пользователя. Индексы могут быть маркированы с помощью свойства labels.

  5. Assistant — AI ассистент.

  6. Threads — ветка (поток) AI ассистента.

  7. Message — сообщение с вопросом пользователя.

  8. Run — задача для генерации ответа.

Базовый алгоритм взаимодействия с сервисом включает следующие этапы:

  1. Загрузка файлов в каталог пользователя - файлы могут загружаться в один или несколько каталогов. В текущей реализации все файлы размещаются в едином каталоге пользователя, при этом количество каталогов и файлов внутри них может варьироваться;
  2. Создание поискового индекса - пользователь имеет возможность создать один или несколько поисковых индексов. Каждый индекс может быть связан с одним или несколькими файлами, загруженными в каталог;
  3. Создание AI-ассистента - на данном этапе пользователь создает AI-ассистента, который будет использоваться для дальнейшего взаимодействия;
  4. Создание ветки ассистента - для организации диалога создается ветка ассистента, которая представляет собой отдельный контекст взаимодействия;
  5. Создание сообщения с идентификатором ветки ассистента - пользователь формирует сообщение, указывая идентификатор созданной ветки ассистента, чтобы обеспечить корректную обработку запроса в рамках выбранного контекста;
  6. Запуск задачи генерации ответа и ожидание завершения - инициируется процесс генерации ответа на основе предоставленного сообщения. Пользователь ожидает завершения формирования ответа, после чего получает результат.

Пошаговый сценарий использования (первый запуск без переиспользования предыдущих результатов), используя обработку "Тестирование API Yandex GPT ассистента"

  1. Проверить наличие файлов в каталоге пользователя с помощью команды Files.List(). Ответ сервера при пустом каталоге: {"files":[],"next_page_token":""}.

  2. Загрузить файлы в облако с помощью команды Files.Create().

  3. Проверить наличие файлов в каталоге пользователя с помощью команды Files.List(). Ответ сервера при наличии файлов: {"id":"fvtsbqj4fahsllcbe4mk","folder_id":"b1g0v75e6ebk1diphg05"....

  4. Создать поисковый индекс с помощью команды SearchIndexs.Create(). В асинхронном режиме сервер возвращает объект Operation с идентификатором операции — operationId.

  5. Проверить завершение операции с помощью команды Operations.Get(). Успешный ответ: {"done": true, "response": {"@type": "type.googleapis.com/yandex.cloud.ai.assistants.v1.searchindex.SearchIndex"..., где id — идентификатор индекса.

  6. Проверить наличие поискового индекса с помощью команды SearchIndexs.Get(), используя id из предыдущего шага. Успешный ответ: {"id":"fvtngm941398v3acj2n0","folder_id":"b1g0v75e6ebkldiphg05"....

  7. Создать AI ассистента с помощью команды Assistants.Create(). При успешном создании заполняется поле assistantId.

  8. Создать ветку ассистента с помощью команды Threads.Create(). При успешном создании заполняется поле threadid.

  9. Заполнить поле content вопросом и выполнить команду Messages.Create(threadId, content). При успешном создании заполняется поле messageId.

  10. Запустить задачу с помощью команды Runs.Create(assistantId, threadid). При успешном создании заполняется поле runId.

  11. Получить ответ с помощью команды Runs.Get(runId). Ответ формируется через некоторое время. Статус "status":"COMPLETED" указывает на завершение задачи.

Пошаговый сценарий использования используя обработку "AI ассистент"

  1. Если в каталог пользователя  загружены файлы, то достаточно нажать на кнопку Начать работу с AI ассистентом и дождаться сообщения в чате Готов к работе.... Если файлы предварительно в каталог пользователя не загружены, то необходимо нажать на кнопку Обновить файлы, выбрать каталог на диске с файлами и дождаться сообщения в чате Готов к работе...
  2. В поле ввода Вопрос пользователя ввести строку с текстом вопроса и нажать на кнопку Отправить вопроса
  3. Текст вопроса отобразится в чате внутри блока зеленого цвета, а полученный через некоторый промежуток времени ответ также отобразится в чате, но в серого цвета

Все действия, связанные с сервисом, которые подробно описаны в предыдущем разделе в пунктах с 1 по 11, скрыты от пользователей. Однако для целей отладки все идентификаторы сохраняются и доступны для анализа в разделе «Отладка (свёрнуто)».

 

 

Подготовка к работе

  1. Создать или использовать существующий Яндекс ID.

  2. Получить API-ключ в Yandex.Cloud и сохранить его в свойстве APIключ структуры ПараметрыАвторизации в модуле YandexGptОбщегоНазначенияКлиентСервер.

  3. Получить идентификатор каталога и сохранить его в свойстве FolderId структуры ПараметрыАвторизациив модуле YandexGptОбщегоНазначенияКлиентСервер.

  4. Создать платежный аккаунт.

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

P.S. JSON Viewer позаимствован в статье //infostart.ru/1c/tools/1348459

P.S.S. Пример работы демонстрировался на файлах pdf выгруженных из статей ИТС про СППР, статья 1, статья 2, статья 3, статья 4

P.S.S.S Версия технологической платформы - 1С:Предприятие 8.3 (8.3.25.1394).

YandexGPT 1C AI Assistant

См. также

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

Интеграция мессенджера WhatsApp и 1С: УНФ, УТ, КА, ERP - отправка и получение сообщений, картинок, файлов и видео прямо в 1С. Расширение работает с сервисом GreenApi.

15600 руб.

23.06.2023    10731    64    13    

40

SALE! 25%

Мессенджеры и боты Системный администратор Программист Бизнес-аналитик Пользователь Руководитель проекта Платформа 1С v8.3 Платные (руб)

Развитие популярного решения для интеграции мессенджера Telegram с нашей любимой 1С - конструктор чат-ботов в Телеграм.

15000 11250 руб.

18.06.2021    67057    318    272    

376

Мобильная разработка Мессенджеры и боты Платформа 1С v8.3 Платные (руб)

Теперь создать telegram-бота - элементарно. Достаточно просто нарисовать блок-схему телеграм-бота, и он сразу заработает. Это возможно при использовании Графического конструктора телеграм-ботов. Это единственный конструктор ботов для telegram, чье качество и функционал подтверждены фирмой 1С, есть сертификат 1С:Совместимо. Расширение в интерактивном режиме, с помощью блок-схем, позволяет с минимальными трудозатратами создать телеграм-ботов в любой конфигурации, работающей на платформе «1С:Предприятие 8.3».

13200 руб.

27.12.2021    39723    112    163    

206

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

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

22800 руб.

24.06.2021    10043    4    4    

15

Документооборот и делопроизводство (СЭД) Мессенджеры и боты Учет документов Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 Платные (руб)

Расширение для согласования справочников и документов в основных типовых конфигурациях. Ролевая адресация, условная маршрутизация, чат-бот telegram, интеграция с n8n, последовательное и параллельное согласование, уведомление о новых задачах на почту, блокировка объектов в зависимости от статуса, запрет проведения в зависимости от статуса, автозапуск процессов согласования, отчеты по исполнительской дисциплине. Не требуется снятие конфигурации с поддержки. Настройка без программирования. Версия для 1cfresh.com. Сертификат 1С-Совместимо.

14900 руб.

15.11.2018    30951    37    49    

71

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

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

5000 руб.

13.03.2023    18583    47    50    

76
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. mkalimulin 1285 29.01.25 00:28 Сейчас в теме
Возможно стоит добавить модную аббревиатуру RAG
2. aximo 2135 29.01.25 09:00 Сейчас в теме
Информация написана здорово, возможности нейросетей удивляют конечно, но 99% пользователей, прочитав данную статью, отвалятся на шаге "Создать платежный аккаунт."
3. SultanovStas 17 29.01.25 10:03 Сейчас в теме
(2) В ходе двухмесячного эксперимента было потрачено 160 рублей. Я ставил перед собой задачу разработать решение, не используя готовые библиотеки, чтобы стимулировать участников к освоению нового и интересного материала.
4. Torin57 33 29.01.25 17:45 Сейчас в теме
(3) Для чего это может быть применимо? Это может быть применимо в саппорте пользователей? Типа у пользователя что-то не получается, например, заполнить документ Премия в ЗУП 3.1 из текстового файла. Какая-нибудь ошибка с красным крестиком, или сотрудника обработка не нашла. И пользователь обращается к помощнику, спрашивает почему Садыков не подобрался. Помощник говорит, проверьте дату рождения в загрузочном файле. Проверьте что ФИО совпадает буква в букву и так далее. Что-нибудь такое?

Также поясню про себя, чтобы вы понимали с кем общаетесь. Я немножко знаком с API ИИ, детектор тролля написал, но фокус внимания у меня на другом. Я больше пользователь и писатель промтов чем специалист по ИИ. Поэтому со мной желательно говорить на уровне пользователя.
5. starik-2005 3098 30.01.25 10:25 Сейчас в теме
Я сегодня попросил дипсик китайский написать статью о его АПИ с примерами на 1С 8.3. И знаете, я несколько испужался...
6. mkalimulin 1285 30.01.25 15:59 Сейчас в теме
(5) Дефицит - страшная сила. А дефицит данных для обучения ИИ - страшная вдвойне. Интернет выжали досуха, со всем, что там было. И 1С в том числе.
Оставьте свое сообщение