Рубрика «FSM»

Большая часть моих заказов на ботов выглядит одинаково. Человек хочет, чтобы клиент нажал кнопку, ответил на несколько вопросов и заявка упала менеджеру. Имя, телефон, что нужно, удобное время. Звучит как задача на вечер, и по коду это правда вечер.

Проблемы начинаются потом, когда бот уже работает у заказчика. Ниже три истории, после которых я поменял свой шаблон. Все примеры на aiogram 3.

Грабли первая: MemoryStorage в проде

В документации и туториалах почти везде стоит так:

from aiogram import Bot, Dispatcher
from aiogram.fsm.storage.memory import MemoryStorage

dp = Dispatcher(storage=MemoryStorage())

Читать полностью »

Постановка задачи
Есть река и надо перевести на другой берег козу, капусту и волка. В лодку помещается только крестьянин и что-то одно из груза: капуста, волк или коза. Если на одном берегу без присмотра крестьянина оставить козу и капусту, то коза съест капусту. Если оставить волка и козу, то волк съест козу. Как перевести груз без потерь?

Решение
Решать задачу буду через конечный автомат.

Фаза 1: Перечислить стостояния
Конфигурацию берегов можно представить в виде одного байта при помощи битов.

В 2025 году каждый крупный провайдер LLM пережил минимум один значимый сбой. Большинство решений этой проблемы — gateway‑слой снаружи приложения: LiteLLM, Bifrost, Kong AI Gateway. Они перехватывают упавший HTTP‑запрос и повторяют его на другом провайдере.

Это работает для одного вызова, но не работает для многошагового пайплайна — gateway не знает, что упавший запрос был вторым шагом из трёх. Он видит запрос, которому нужен retry, а не позицию в конечном автомате.

В этой статье — как реализовать fallback провайдера как явный переход FSM на реальном стеке llm‑nano‑vm 0.8.6Читать полностью »

Пролог

Исследуя остатки от древней цивилизации среди археологических раскопок на даче вы можете найти что-то похожее на это.

Декодирование IR сигнала с TV (или исследование пультовых лучей) - 1

Читать полностью »

Запуск I2S Трансивера на Artery [часть 2] (DMA, FSM, PipeLine) - 1

Пролог

В этом тексте вы узнаете, что общего между I2S трансивером и оладьями. Да... Именно так. Зачем программисту микроконтроллеров конвейеры и цифровые фильтры.

В этом тексте изложено как источать звук при помощи I2S DMA.

В чём проблема?

В прошлом текстеЧитать полностью »

Существует классическая задача:

Есть 2 емкости: 5 литров и 3 литра. Как отмерить 4 литра жидкости используя только эти 2 емкости?

Понятное дело что тут важно не сколько знание правильного ответа, а знание метода решения таких задач. Ведь вместо целевых 4х литров могут спросить отсчитать и 1,2,6,7 литров.

В этом тексте я решу эту задачу в общем виде при помощи конечного автомата. Так как тут явно можно проследить состояния и входные воздействия. Также я упомяну про малоизвестный язык Front-End разметки DotЧитать полностью »

Признаюсь, но я не знаю Python. Просто потому, что не использую. Тем не менее, взявшись за его освоение, а также в попытках расшифровать загадочную аббревиатуру GIL, вышел на статью с описанием «необъяснимых магических явлений» параллельного варианта CPU-зависимой функции на Python. Возникло желание перепроверить данный тест и сравнить с эквивалентной реализацией в форме модели конечного автомата (Finite-state machine или сокращенно FSM) в среде Визуального Компонентного Программирования (автоматного) — ВКП(а).

Очевидно любая программа в определенной мере CPU-зависима. С другой стороны, если это только не ассемблер, то тестированием на том или ином языке высокого уровня мы в большей степени исследуем программную прослойку, скрываемую им. Поэтому, рассматривая Python, правильнее было бы говорить о CPU-зависимости его интерпретатора. Можно даже утверждать, что программа на Python будет иметь скорость, зависимую от версии интерпретатора, и обладать характерной для него «мистикой».

В то же время есть ситуации, когда зависимости от CPU может почти не быть (в этом мы убедимся). Речь идет о языках, вычислительная модель которых отлична от типовой архитектуры процессоров. Вычислительная модель Python, ей соответствует, а автоматная модель вычислений, о которой далее пойдет речь, имеет другую архитектуру и это будет определять специфику ее тестирования. Какая будет скорость и будет ли иметь место мистика выяснится в процессе тестирования «автоматного кода».
Читать полностью »

Снова на связи продуктовый аналитик отечественной service desk. В прошлый раз мы рассказывали про нашего клиента, сервисную компанию “Брант”, которая внедрила нашу платформу во время активного роста своего бизнеса.

Одновременно с ростом числа заявок у “Бранта” выросло и число объектов обслуживания — количественно и территориально. Как следствие, понадобилось больше разъездов на большие расстояния, и бюджет на расходы по ГСМ значительно увеличился. Как автоматизация диспетчерской службы помогла уберечь ее от этих расходов, хочу рассказать в этом посте.

Автоматизация диспетчерской службы, или Как сервисной компании сократить транспортные расходы на 30% - 1
Читать полностью »

Меня зовут Дарья, я продуктовый аналитик. Основной продукт моей компании — service desk, облачная платформа, которая автоматизирует бизнес-процессы: например, ремонтные работы, техническое обслуживание различных объектов. Одна из моих задач — участие в процессе внедрения нашей платформы в бизнес клиентов, при этом нужно погрузиться в специфику работы конкретной компании как можно глубже.

Хочу поведать, как удалось автоматизировать трудоемкие бизнес-процессы одному из наших клиентов, сервисной компании “Брант”. Компания обратилась к нашей платформе, когда количество ее клиентов, и, соответственно, заявок на обслуживание, стало стремительно расти. Бизнес активно развивается, ведь это отлично, в чем подвох? В том, что резко растет и количество однотипных рутинных процессов, и эту опасность нельзя недооценивать. А кроме того, становится очевидно, что нельзя пользоваться теми же инструментами, которые работали, когда заявок было меньше.

Как Service Desk спас сервисную компанию, или Что делать, если ваш бизнес растет? - 1
Знакомо?

Итак, история спасения.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js