Содержание
Чат-бот для 1С — это интеллектуальный помощник на основе генеративных моделей искусственного интеллекта, обеспечивает получение аналитики из 1С:ERP через запросы на естественном языке. Подробнее о возможностях чат-бота рассказали в статье.
Руководитель часто в движении, в пути. Он бывает настолько занят, что у него недостаточно времени, чтобы проанализировать данные, используя привычные программы. Но, скорее всего, у руководителя всегда под рукой есть мобильное устройство, и этого вполне достаточно, чтобы посмотреть нужные отчеты. Современные технологии и ИИ могут помочь в любой момент времени получить оперативную информацию и эффективно и своевременно принимать решения. Достаточно задать вопрос чат-боту в Telegram и в течение минуты получить необходимые данные из учетных систем. В этой статье расскажем, что умеет наш чат-бот и чем он отличается от аналогов.
Бот для получения информации по данным 1С
Наш интеллектуальный чат-бот на основе генеративных моделей искусственного интеллекта обеспечивает получение аналитики из 1С:ERP через запросы на естественном языке, например: «По каким клиентам у нас на сегодня есть задолженность?». При формировании ответа на вопрос чат-бот:
- знает структуру и содержимое регистров и умеет оперировать интеграционным API для самостоятельного составления запросов произвольной сложности. Это избавляет от необходимости обращаться к техническим специалистам для получения новых данных из 1С:ERP;
- применяет интеллектуальные автономные агенты, что обеспечивает самообучаемость системы, более глубокое понимание контекста и способность к самостоятельным действиям;
- умеет не только находить, но и агрегировать информацию;
- обеспечивает легкий, но приватный доступ к данным;
- может быть полностью локальным, размещенным в контуре компании без передачи информации за ее пределы.
Наш чат-бот использует поисковый движок на векторных и графовых базах данных. Применение интеллектуальных автономных агентов обеспечивает самообучаемость системы, более глубокое понимание контекста и способность к самостоятельным действиям.
Так как это on-premise аналог ChatGPT, мы гарантируем, что данные останутся в контуре компании при сопоставимом качестве результата. Интерфейс бота встраивается в Telegram или в другую информационную систему в текстовом или голосовом виде.
Работа ведется с помощью технологии text-to-1c: специально обученная локальная модель преобразует произвольный текстовый запрос пользователя в произвольный запрос гибкого API, реализованного на стороне 1С. Это возможно благодаря тому, что модель знает схему базы данных и как она связана с параметрами API.
В зависимости от имеющихся ресурсов и, соответственно, возможности разместить модель с большим или малым контекстным окном, схема базы может либо меняться через промпт, либо закладываться в модель при обучении, чтобы не требовалось каждый раз передавать ее вместе с запросом. В этом случае есть механизм легкого переобучения модели при изменениях схемы.
Что происходит на стороне 1С
1С по запросу через API формирует и отправляет информацию в формате json.
Взаимодействие между двумя системами происходит через опубликованный http-сервис, реализованный в расширении конфигурации 1С. В общем модуле расширения 1С реализованы алгоритмы обработки сообщений от сторонних систем, алгоритм получения данных из базы и алгоритм конвертации полученных значений в формат json.
В 1С поступает сообщение со следующей структурой:
- action — определяет действие, которое должна выполнить 1С. Значение «data» говорит о том, что необходимо вернуть данные роботу;
- fields — представляет массив полей, которые нужно получить из источника данных;
- filters — описывает условия отбора данных из источника;
- source — определяет источник данных;
- vt_param — описывает параметры виртуальных таблиц. В зависимости от источника данных для каждой виртуальной таблицы будет собственный набор параметров:
Регистр накопления Остатков - Период (Period) - Условие (Condition) |
(&Период, Склад = &Склад)
|
Регистр сведений СрезПервых`Последних` (&Период, Склад = &Склад) - Период (Period) - Условие (Condition) |
|
Регистр накопления Обороты
- НачалоПериода (BeginningPeriod) - КонецПериода (EndPeriod) - Периодичность (Frequency) - Условие (Condition) |
(&НачалоПериода, &КонецПериода, Период, Склад = &Склад)
|
Регистр накопления ОстаткиОбороты
- НачалоПериода (BeginningPeriod) - КонецПериода (EndPeriod) - Периодичность (Frequency) - МетодДополнения (CompletionMethod) - Условие (Condition) |
(&НачалоПериода, &КонецПериода, Период, Движения, Склад = &Склад)
|
После проверки корректности переданных данных в 1С происходит процесс формирования запроса к базе данных для получения необходимой информации.
Полученные данные 1С упаковывает в json со структурой:
- labels — массив наименований колонок таблицы с данными;
- data — массив с массивами данных, которые соответствуют labels.
Примеры диалога с чат-ботом
Пример №1
Диалог пользователя и чат-бота:
- Какие кондиционеры у нас есть?
- В базе имеются следующие кондиционеры:
- Кондиционер ELEKTA
- Кондиционер FIRMSTAR 12М
- Кондиционер БК-2300
- Пожалуйста, уточните, какой именно кондиционер вас интересует?
- elekta
- ### Кондиционер ELEKTA
- #### Остатки на складе:
- **Склад бытовой техники**:
- Количество: 97 штук
- Дата: 26.10.2022
- **Центральный склад**:
- Количество: 415 штук
- Дата: 26.10.2022
- **Торговый зал**:
- Количество: 22 штук
- Дата: 26.10.2022
Взаимодействие чат-бота и 1С для получения актуальных остатков:
1. В 1С поступает информация в формате json:
{
"action": "data",
"fields": [
"Организация",
"АналитикаУчетаНоменклатуры.Номенклатура",
"АналитикаУчетаНоменклатуры.МестоХранения",
"КоличествоОстаток",
"&Период"
],
"filters": [
{
"left": "АналитикаУчетаНоменклатуры.Номенклатура",
"operator": "equal",
"right": "Кондиционер ELEKTA"
}
],
"source": "РегистрНакопления.ТоварыОрганизаций.Остатки",
"vt_param": {
"BeginningPeriod": "",
"CompletionMethod": "",
"Condition": "",
"EndPeriod": "",
"Frequency": "",
"Period": "2022-10-26T12:31:02"
}
}
2. В 1С генерируется и выполняется запрос:
В ВЫБРАТЬ
ТоварыОрганизацийОстатки.Организация Как Организация,
ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.Номенклатура Как Номенклатура,
ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.МестоХранения Как МестоХранения,
ТоварыОрганизацийОстатки.КоличествоОстаток Как КоличествоОстаток,
&Период Как Период
ИЗ
РегистрНакопления.ТоварыОрганизаций.Остатки(&Период,) КАК ТоварыОрганизацийОстатки
ГДЕ
ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.Номенклатура = &ТоварыОрганизаций_Номенклатура1с
3. 1С отправляет ответ по актуальным остаткам в формате json:
{
"labels": [
"Организация",
"Номенклатура",
"МестоХранения",
"КоличествоОстаток",
"Период"
],
"data": [
[
"Торговый дом \"Комплексный\"",
"Торговый дом \"Комплексный\"",
"Торговый дом \"Комплексный\"",
"Торговый дом \"Комплексный\""
],
[
"Кондиционер ELEKTA",
"Кондиционер ELEKTA",
"Кондиционер ELEKTA",
"Кондиционер ELEKTA"
],
[
"Центральный склад",
"Склад бытовой техники",
"Бытовая техника",
"Торговый зал"
],
[
415,
97,
17,
22
],
[
"2022-10-26T12:31:02",
"2022-10-26T12:31:02",
"2022-10-26T12:31:02",
"2022-10-26T12:31:02"
]
]
}
Как видим из примера, чат-бот не просто отвечает на вопросы, а понимает формализованные вопросы и именно общается и задает необходимые уточняющие вопросы для корректного ответа.
Пример №2
Диалог пользователя и чат-бота:
- Посчитай среднюю выручку за месяц по кондиционерам в 22 году.
- Для расчета средней выручки за месяц по кондиционерам в 2022 году, нам понадобятся данные о выручке за каждый месяц. Давайте соберем данные по выручке за каждый месяц и затем рассчитаем среднюю выручку.
### Данные по выручке за 2022 год:
1. **Январь**: Нет данных
2. **Февраль**: Нет данных
3. **Март**: Нет данных
4. **Апрель**: Нет данных
5. **Май**: Нет данных
6. **Июнь**: Нет данных
7. **Июль**: Нет данных
8. **Август**: Нет данных
9. **Сентябрь**:
- 10 сентября 2022 года: 1,124.53 рублей (2 штуки).
- 30 сентября 2022 года: 2,816.08 рублей (5 штук).
- Итого: 3,940.61 рублей.
10. **Октябрь**:
- 20 октября 2022 года: 1,105.07 рублей (2 штуки).
- Итого: 1,105.07 рублей.
11. **Ноябрь**:
- 30 ноября 2022 года: 1,105.07 рублей (2 штуки).
- Итого: 1,105.07 рублей.
12. **Декабрь**: Нет данных
### Расчет средней выручки:
1. **Сентябрь**: 3,940.61 рублей.
2. **Октябрь**: 1,105.07 рублей.
3. **Ноябрь**: 1,105.07 рублей.
Итого выручка за 3 месяца: 3,940.61 + 1,105.07 + 1,105.07 = 6,150.75 рублей.
- Средняя выручка за месяц = Общая выручка / Количество месяцев.
- Средняя выручка за месяц = 6,150.75 / 3 = 2,050.25 рублей.
### Результат:
- Средняя выручка за месяц по кондиционерам в 2022 году составляет 2,050.25 рублей.
- Если у вас есть дополнительные данные за другие месяцы, пожалуйста, предоставьте их, и я пересчитаю среднюю выручку.
- Из этого примера видим, что чат-бот не только может показать данные из 1С:ERP, но произвести действия и расчеты с этими данными. При этом будут предоставлены разъяснения по произведенным расчетам.
Наши планы по развитию
Сейчас мы получаем информацию из учетных систем оперативно, независимо от скорости работы компьютера или ноутбука. Наша следующая цель — получать графическое отображение в виде дашбордов и графиков.
Остались вопросы?
Проконсультируйтесь с нашими специалистами