- Добавлены логи в frontend (ClaimForm.tsx) для отслеживания unified_id и запросов к API - Добавлены логи в backend (claims.py) для отладки SQL запросов - Создан лог сессии с описанием проблемы и текущего состояния - Проблема: API возвращает 0 черновиков, хотя в БД есть данные
262 lines
9.2 KiB
Markdown
262 lines
9.2 KiB
Markdown
# Готовые 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: "Дата покупки" }
|
||
}
|
||
};
|
||
|
||
<Form schema={schema} />
|
||
```
|
||
|
||
**Вывод:** Полезно для рендеринга, но структуру всё равно нужно генерировать самим.
|
||
|
||
---
|
||
|
||
### 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` или свой компонент
|
||
|
||
**Это оптимальный баланс скорости, контроля и стоимости.**
|
||
|