# Готовые 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 - ❌ Не решает проблему генерации структуры **Использование:** ```typescript import Form from "@rjsf/core"; const schema = { type: "object", properties: { item: { type: "string", title: "Название товара" }, purchase_date: { type: "string", format: "date", title: "Дата покупки" } } };
``` **Вывод:** Полезно для рендеринга, но структуру всё равно нужно генерировать самим. --- ### 2. **Form.io** (платный сервис) **Что это:** Платформа для создания форм с API **Плюсы:** - ✅ Есть API для создания форм программно - ✅ Поддержка условной логики - ✅ Готовые компоненты **Минусы:** - ❌ Платный (от $99/месяц) - ❌ Нет генерации структуры из описания - ❌ Нужно самому создавать формы через API **API пример:** ```javascript // Создание формы через 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/core` - `formik` + `yup` (схемы валидации) **Плюсы:** - ✅ Стандарт JSON Schema - ✅ Гибкость в описании форм - ✅ Валидация из коробки **Минусы:** - ❌ Нужно самому генерировать схему - ❌ Не решает задачу генерации структуры **Пример JSON Schema:** ```json { "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? 1. **Специфичность задачи:** Генерация визарда на основе описания проблемы - это очень специфичная задача для юридической сферы 2. **Контекст:** Нужно понимать контекст дела, типы документов, требования законодательства 3. **Кастомизация:** Каждый проект имеет свои требования к структуре визарда ### Что есть: - ✅ Библиотеки для **рендеринга** форм (React, Vue, JS) - ✅ Сервисы для **создания** форм программно (Form.io, Typeform) - ❌ API для **генерации структуры** визарда из описания - **НЕТ** --- ## 💡 Рекомендации ### Вариант 1: Свой генератор (рекомендуется) **Архитектура:** ``` Описание → ИИ (классификация) → Бэкенд (шаблоны) → JSON Schema → Фронтенд (рендеринг) ``` **Плюсы:** - ✅ Полный контроль - ✅ Оптимизация под наши нужды - ✅ Нет зависимости от внешних сервисов - ✅ Бесплатно **Реализация:** 1. ИИ классифицирует случай 2. Бэкенд выбирает шаблон 3. Генерируем JSON Schema или наш формат 4. Фронтенд рендерит через `react-jsonschema-form` или свой компонент --- ### Вариант 2: Гибридный подход **Использовать готовые библиотеки для рендеринга:** - `@rjsf/core` для рендеринга форм - Свой генератор JSON Schema в бэкенде **Плюсы:** - ✅ Готовая валидация и UI - ✅ Меньше кода на фронтенде - ✅ Стандартный формат (JSON Schema) **Минусы:** - ❌ Нужно адаптировать под наш формат визарда - ❌ Может быть избыточно --- ### Вариант 3: Использовать Form.io (если бюджет есть) **Если готовы платить $99+/месяц:** - Использовать Form.io API для создания форм - Но генерацию структуры всё равно делать самим через ИИ **Вывод:** Не стоит того, так как генерацию структуры всё равно нужно делать самим. --- ## 🚀 Итоговая рекомендация ### Использовать свой генератор + готовые библиотеки для рендеринга **Стек:** 1. **Генерация структуры:** Свой бэкенд (ИИ + шаблоны) 2. **Формат:** JSON Schema или наш формат 3. **Рендеринг:** `@rjsf/core` или свой компонент **Почему:** - ✅ Нет готовых API для генерации структуры - ✅ Готовые библиотеки для рендеринга есть - ✅ Полный контроль над процессом - ✅ Оптимизация под наши нужды --- ## 📚 Полезные ссылки ### Библиотеки для рендеринга: - [react-jsonschema-form](https://github.com/rjsf-team/react-jsonschema-form) - [@rjsf/core](https://github.com/rjsf-team/react-jsonschema-form) - [Formik](https://formik.org/) - управление формами в React - [React Hook Form](https://react-hook-form.com/) - производительные формы ### JSON Schema: - [JSON Schema Specification](https://json-schema.org/) - [JSON Schema Examples](https://json-schema.org/learn/examples-guide) ### Сервисы (для справки): - [Form.io](https://form.io/) - платный, от $99/мес - [Typeform API](https://developer.typeform.com/) - платный, от $25/мес --- ## ✅ Вывод **Готовых API для генерации структуры визарда нет.** **Нужно делать свой генератор**, но можно использовать готовые библиотеки для рендеринга. **Рекомендуемый подход:** 1. ИИ классифицирует случай (5-10 сек) 2. Бэкенд генерирует структуру из шаблонов (0.1 сек) 3. Фронтенд рендерит через `@rjsf/core` или свой компонент **Это оптимальный баланс скорости, контроля и стоимости.**