Предисловие. Продолжаю публиковать свои наработки и мысли по работе с ИИ. На этот раз я решил что просто собирать информацию с сервисов или агентов генерировать ответ это интересно, но скучно. Надо что бы система могла делать сложные действия. Для выполнения сложного действия нужен программа или я как это назвал сценарий. Сценарий работает исходя и списка доступных сервисов который есть у него. Доступные сервисы предполагают не только получения информации но и действия . К примеру отправка письма или приведение в действие какого либо устройства с необходимый для работы параметрами. Генерация сценария это только первый этап работы по обработки сложных запросов. Но начнем с него. Дальше с полученным json кодом будет работать интерпретатор. Его я буду рассматривать в следующих статьях. Наверное. Но это не точно может мне будет лень продолжать. Так что начнем вот сама статья.

В современном мире автоматизации бизнес-процессов одной из ключевых проблем остается координация различных сервисов и инструментов для выполнения комплексных задач. Представьте систему, которая способна не только понимать ваши запросы на естественном языке, но и автоматически генерировать последовательности действий, объединяющие различные API и сервисы. Именно такую задачу решает ScenarioGenerator — интеллектуальный координатор рабочих процессов.

Как работает система

Архитектура решения

ScenarioGenerator построен на принципе декомпозиции задач. Когда пользователь формулирует запрос, система:

  1. Анализирует доступные ресурсы из конфигурационного файла resources.json

  2. Создает интеллектуальный промт для языковой модели

  3. Генерирует JSON-сценарий с последовательностью шагов

  4. Валидирует результат и возвращает готовый план действий

# Пример конфигурации инструментов
{
  "resources": [
    {
      "name": "vessels_radius_search",
      "description": "Поиск судов в радиусе от указанных координат",
      "type": "http", 
      "url": "http://127.0.0.1:12323/vessels/radius"
    },
    {
      "name": "email_service", 
      "description": "Сервис для работы с электронной почтой",
      "type": "http",
      "url": "http://127.0.0.1:12322/emails"
    }
  ]
}

Практическое применение

Пример 1: Логистическая аналитика

Запрос: "Найти суда рядом с портом Владивосток и отправить уведомление по email"

Сгенерированный сценарий:
{
  "scenario": [
    {
      "step": 1,
      "tool": "vessels_radius_search",
      "purpose": "Поиск судов в радиусе 50 км от порта Владивосток",
      "parameters": {
        "latitude": 43.133,
        "longitude": 131.900, 
        "radius_km": 50
      }
    },
    {
      "step": 2,
      "tool": "email_service",
      "purpose": "Отправка отчета по найденным судам",
      "parameters": {
        "recipient": "logistics@company.com",
        "subject": "Отчет по судам в порту Владивосток"
      }
    }
  ]
}

Пример 2: Бизнес-аналитика

Запрос: "Найти в базе документов информацию о поставщиках и сравнить с номенклатурой из 1С"

Сгенерированный сценарий:
{
  "scenario": [
    {
      "step": 1,
      "tool": "chroma_vector_db", 
      "purpose": "Семантический поиск документов о поставщиках",
      "parameters": {
        "query": "поставщики контракты договоры",
        "limit": 10
      }
    },
    {
      "step": 2,
      "tool": "1c_products",
      "purpose": "Получение номенклатуры товаров для анализа",
      "parameters": {
        "category": "all",
        "limit": 100
      }
    }
  ]
}

Технические особенности

Интеграция с LM Studio

Система использует локальную языковую модель через LM Studio API, что обеспечивает:

  • Конфиденциальность данных — все обработки происходят локально

  • Гибкость в выборе моделей

  • Контроль над качеством генерации через параметры temperature и max_tokens

response = requests.post(
    self.lm_studio_url,
    json={
        "messages": [
            {"role": "system", "content": "Ты создаешь JSON сценарии..."},
            {"role": "user", "content": prompt}
        ],
        "temperature": 0.1,  # Низкая температура для детерминированности
        "max_tokens": 2000
    },
    timeout=90
)

Обработка ошибок

Система включает многоуровневую обработку ошибок:

  • Проверка доступности инструментов

  • Валидация JSON-ответов

  • Обработка сетевых сбоев

  • Резервные сценарии при недоступности сервисов

Преимущества подхода

Для бизнеса

  • Сокращение времени на проектирование workflows

  • Унификация процессов взаимодействия с различными API

  • Масштабируемость — легко добавлять новые инструменты

  • Документирование процессов через автоматически генерируемые сценарии

Для разработчиков

  • Чистая архитектура с разделением ответственности

  • Простота расширения функциональности

  • Логирование и отладка сложных последовательностей

  • Переиспользование существующих сервисов

Перспективы развития

Текущая реализация открывает путь для множества улучшений:

  1. Визуальный редактор сценариев

  2. Система мониторинга выполнения workflows

  3. Машинное обучение для оптимизации последовательностей действий

  4. Интеграция с оркестраторами т

  5. Система шаблонов для часто используемых сценариев

Заключение

ScenarioGenerator представляет собой мост между естественным языком и технической реализацией сложных процессов. Эта система не просто автоматизирует рутинные задачи — она создает новый уровень взаимодействия человека с цифровой инфраструктурой, где сложные технические последовательности становятся доступными через простые запросы на естественном языке.

В эпоху, когда количество инструментов и сервисов растет экспоненциально, способность эффективно координировать их работу становится ключевым конкурентным преимуществом. ScenarioGenerator предлагает элегантное решение этой проблемы, открывая новые возможности для автоматизации бизнес-процессов.

Продолжение наверное последует.

Комментарии (2)


  1. mimocrocodile007
    11.11.2025 11:59

    по сути ничего нового, простая аккумуляция решений, что уже были в голове, но при этом есть особое изящество в том как просто автор это описал. Статья как бы говорит: это просто, это логично и эффективно, ты можешь взять и сделать)


    1. stilrambler Автор
      11.11.2025 11:59

      Когда все разложено по полочкам все всегда просто. Если честно я особо и не претендую на НОУХАУ. Можно просто загнать эту статью в тот же деекппиик и она даст тебе рабочий код. Все просто.