- Исправлена ошибка ReferenceError при загрузке черновиков - Переименована локальная переменная claimId в finalClaimId для избежания конфликта с параметром функции - Обновлена логика извлечения claim_id из разных источников (claim.claim_id, payload.claim_id, body.claim_id, claim.id) - Добавлен fallback на параметр claimId функции для надёжности
9.2 KiB
Готовые API и решения для построения визардов
Дата: 2025-01-XX
Цель: Найти готовые API/сервисы для генерации структуры визарда
🔍 Результаты поиска
❌ Готовых API для генерации структуры визарда НЕТ
Что найдено:
- Библиотеки для рендеринга визардов на фронтенде (React, Vue, JS)
- Сервисы для создания форм программно (Form.io, Typeform)
- Но НЕТ API, который принимает описание проблемы и возвращает структуру визарда
📦 Найденные решения (для рендеринга)
1. React-jsonschema-form / @rjsf/core
Что это: Библиотека для рендеринга форм из JSON Schema
Плюсы:
- ✅ Готовая библиотека для React
- ✅ Поддержка валидации
- ✅ Условная логика (show/hide полей)
- ✅ Кастомизация виджетов
Минусы:
- ❌ Нужно самому генерировать JSON Schema
- ❌ Не решает проблему генерации структуры
Использование:
import Form from "@rjsf/core";
const schema = {
type: "object",
properties: {
item: { type: "string", title: "Название товара" },
purchase_date: { type: "string", format: "date", title: "Дата покупки" }
}
};
<Form schema={schema} />
Вывод: Полезно для рендеринга, но структуру всё равно нужно генерировать самим.
2. Form.io (платный сервис)
Что это: Платформа для создания форм с API
Плюсы:
- ✅ Есть API для создания форм программно
- ✅ Поддержка условной логики
- ✅ Готовые компоненты
Минусы:
- ❌ Платный (от $99/месяц)
- ❌ Нет генерации структуры из описания
- ❌ Нужно самому создавать формы через API
API пример:
// Создание формы через API
POST https://api.form.io/v1/form
{
"title": "Claim Form",
"components": [
{
"type": "textfield",
"key": "item",
"label": "Название товара"
}
]
}
Вывод: Дорого и не решает задачу генерации структуры.
3. Typeform API
Что это: API для создания Typeform форм
Плюсы:
- ✅ Есть API
- ✅ Красивый UI
Минусы:
- ❌ Платный (от $25/месяц)
- ❌ Нет генерации структуры
- ❌ Своя экосистема (не встраивается в наш проект)
Вывод: Не подходит для нашей задачи.
4. JSON Schema Form Generators
Библиотеки:
react-jsonschema-form@rjsf/coreformik+yup(схемы валидации)
Плюсы:
- ✅ Стандарт JSON Schema
- ✅ Гибкость в описании форм
- ✅ Валидация из коробки
Минусы:
- ❌ Нужно самому генерировать схему
- ❌ Не решает задачу генерации структуры
Пример JSON Schema:
{
"type": "object",
"properties": {
"item": {
"type": "string",
"title": "Название товара",
"required": true
},
"purchase_date": {
"type": "string",
"format": "date",
"title": "Дата покупки"
},
"documents_available": {
"type": "array",
"title": "Какие документы есть?",
"items": {
"type": "string",
"enum": ["receipt", "contract", "photos"]
},
"uniqueItems": true
}
}
}
Вывод: Можно использовать для рендеринга, но генерацию структуры нужно делать самим.
🎯 Вывод: Нет готового решения
Почему нет готового API?
- Специфичность задачи: Генерация визарда на основе описания проблемы - это очень специфичная задача для юридической сферы
- Контекст: Нужно понимать контекст дела, типы документов, требования законодательства
- Кастомизация: Каждый проект имеет свои требования к структуре визарда
Что есть:
- ✅ Библиотеки для рендеринга форм (React, Vue, JS)
- ✅ Сервисы для создания форм программно (Form.io, Typeform)
- ❌ API для генерации структуры визарда из описания - НЕТ
💡 Рекомендации
Вариант 1: Свой генератор (рекомендуется)
Архитектура:
Описание → ИИ (классификация) → Бэкенд (шаблоны) → JSON Schema → Фронтенд (рендеринг)
Плюсы:
- ✅ Полный контроль
- ✅ Оптимизация под наши нужды
- ✅ Нет зависимости от внешних сервисов
- ✅ Бесплатно
Реализация:
- ИИ классифицирует случай
- Бэкенд выбирает шаблон
- Генерируем JSON Schema или наш формат
- Фронтенд рендерит через
react-jsonschema-formили свой компонент
Вариант 2: Гибридный подход
Использовать готовые библиотеки для рендеринга:
@rjsf/coreдля рендеринга форм- Свой генератор JSON Schema в бэкенде
Плюсы:
- ✅ Готовая валидация и UI
- ✅ Меньше кода на фронтенде
- ✅ Стандартный формат (JSON Schema)
Минусы:
- ❌ Нужно адаптировать под наш формат визарда
- ❌ Может быть избыточно
Вариант 3: Использовать Form.io (если бюджет есть)
Если готовы платить $99+/месяц:
- Использовать Form.io API для создания форм
- Но генерацию структуры всё равно делать самим через ИИ
Вывод: Не стоит того, так как генерацию структуры всё равно нужно делать самим.
🚀 Итоговая рекомендация
Использовать свой генератор + готовые библиотеки для рендеринга
Стек:
- Генерация структуры: Свой бэкенд (ИИ + шаблоны)
- Формат: JSON Schema или наш формат
- Рендеринг:
@rjsf/coreили свой компонент
Почему:
- ✅ Нет готовых API для генерации структуры
- ✅ Готовые библиотеки для рендеринга есть
- ✅ Полный контроль над процессом
- ✅ Оптимизация под наши нужды
📚 Полезные ссылки
Библиотеки для рендеринга:
- react-jsonschema-form
- @rjsf/core
- Formik - управление формами в React
- React Hook Form - производительные формы
JSON Schema:
Сервисы (для справки):
- Form.io - платный, от $99/мес
- Typeform API - платный, от $25/мес
✅ Вывод
Готовых API для генерации структуры визарда нет.
Нужно делать свой генератор, но можно использовать готовые библиотеки для рендеринга.
Рекомендуемый подход:
- ИИ классифицирует случай (5-10 сек)
- Бэкенд генерирует структуру из шаблонов (0.1 сек)
- Фронтенд рендерит через
@rjsf/coreили свой компонент
Это оптимальный баланс скорости, контроля и стоимости.