Представим, что у нас есть мини-пиццерия. Мы предлагаем покупателям три вида пиццы в двух размерах и два напитка.
- пицца Маргарита большая и средняя
- пицца Пепперони большая и средняя
- пицца Карбонара большая и средняя
- напиток морс
- напиток липтон
Мы хотим иметь возможность:
- Добавлять и удалять товары. Менять их названия.
- Устанавливать и менять цены товаров.
- Принимать заказы от покупателей.
- Устанавливать статусы заказов по мере их выполнения.
- Анализировать продажи за выбранный нами период
В нашем распоряжении пустая база данных MySQL вот с такими таблицами
- товары(id, название, цена)
- заказы(id, покупатель_id, дата, статус, сумма)
- состав_заказов(заказ_id, товар_id, количество, цена, сумма)
Также в нашем распоряжении два телеграм-бота. Один "внутренний" и один "внешний". Внешний телеграм-бот будет принимать заказы от покупателей, а внутренний делать все остальное.
Начнем создавать список товаров. Для этого скажем внутреннему боту, что хотим добавить новый товар.
Здесь и далее я буду показывать вам на картинках отладочную информацию (у нас же вести из лаборатории!). В первой части отражается результат распознавания аудио. Во второй части показывается, во что превращается первая часть после обработки большой языковой моделью. Наконец, в третьей части можно увидеть результат. В рабочем режиме отладочная информация конечно убирается.
Вернемся к изображению. Я говорил, что будет немного магии. А она тут есть! Во-первых, расшифровка аудио выдала не точно то, что я сказал. Я сказал "добавь товар пицца маргарита...". Это превратилось в "добавь в товар пиццу маргарита..." Так работают распознаватели речи. Они всегда дают некоторое количество ошибок. Радует то, что для "великого и могучего" это количество будет относительно небольшим. У какого-нибудь французского или турецкого оно существенно больше. Но тем не менее, до появления больших языковых моделей это было очень серьезной проблемой. А теперь нет никакой разницы: "добавь товар...", "добавь в товар"... модель все поймет. Можно также сказать "новый товар" или "еще товар" и это сработает.
Посмотрим, что у нас в итоге получилось. Для этого произнесем "магические" слова "список товаров".
Для средней Маргариты мы забыли установить цену, а для Карбонары не указали размер. Исправим.
Работает. Попробуем удаление. Чтобы удалить ненужный товар, сначала надо добавить ненужный товар.
Теперь попробуем удалить
Да, бывают и неудачи. Тогда пусть будет так
Список товаров с ценами у нас есть. Теперь можно принимать заказы. Заказы будет принимать внешний бот. Логика его работы полностью отличается от логики работы внутреннего бота. Внешний бот слушает, что говорит покупатель и пытается сделать из этого заказ.
Внешнему боту ставится задача превратить голосовое сообщение пользователя в JSON. Как видите, он прекрасно справляется с этим, невзирая на то, что пользователь не то чтобы очень точен. Да и ASR вместо "мне большую..." выдает "у меня большую..."
Как бы там ни было, мы получаем структурированную информацию, которая тривиальным образом превращается в соответствующие записи в таблицах.
Вернемся к внутреннему боту. Нам нужно получить список новых заказов, отработать их, а потом закрыть.
Чтобы получить список новых заказов можно так и сказать: "список новых заказов". Можно проще: "новые заказы". Все будет работать. Но лучше: "номера новых заказов". Так нам не будет мешать лишняя информация.
Что там внутри заказа 1
Допустим, мы отработали этот заказ и хотим его закрыть.
Я не говорил "после". Она сама!
Операционная деятельность налажена. Перейдем к "стратегии". Поработав так некоторое время, мы хотим проанализировать нашу деятельность.
Нет проблем! Говорите, что вам надо, и получайте, что вам надо. Можно так
Или так
В отличие от обычных учетных систем, здесь вы никак не ограничены в своих вопросах.
Подведем итоги. Мы получили учетную систему на "естественном" интерфейсе. Пусть и на уровне "ларька", но это полноценная учетная система со всем тем, что ей полагается. При этом, у такой системы есть свои особые плюсы. Есть системы, которые "могут все", но они очень сложные (и дорогие, заметим). Сложные в установке, изучении, внедрении, эксплуатации. Есть очень простые системы (иногда они бывают бесплатными). Но эти системы могут "чуть". Система, построенная на естественном интерфейсе, проще самой простой из известных. А может она "чуть более, чем все". Не верите? Тогда попробуйте найти в типовых отчет о том, что перестало продаваться. Такая, казалось бы очевидная вещь, но ее нет нигде, я недавно проверял. Система с голосовым вводом запросто выдаст вам такую информацию. Она вообще так устроена, чтобы выдавать вам все, что вы спросите.
Если у вас возникли вопросы, не стесняйтесь, пишите в комментариях. Постараюсь ответить.