Files
aiform_prod/docs/WIZARD_API_ALTERNATIVES.md
AI Assistant 4c8fda5f55 Добавлено логирование для отладки черновиков
- Добавлены логи в frontend (ClaimForm.tsx) для отслеживания unified_id и запросов к API
- Добавлены логи в backend (claims.py) для отладки SQL запросов
- Создан лог сессии с описанием проблемы и текущего состояния
- Проблема: API возвращает 0 черновиков, хотя в БД есть данные
2025-11-19 18:46:48 +03:00

262 lines
9.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Готовые 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` или свой компонент
**Это оптимальный баланс скорости, контроля и стоимости.**