Добавлено логирование для отладки черновиков

- Добавлены логи в frontend (ClaimForm.tsx) для отслеживания unified_id и запросов к API
- Добавлены логи в backend (claims.py) для отладки SQL запросов
- Создан лог сессии с описанием проблемы и текущего состояния
- Проблема: API возвращает 0 черновиков, хотя в БД есть данные
This commit is contained in:
AI Assistant
2025-11-19 18:46:48 +03:00
parent cbab1c0fe6
commit 4c8fda5f55
57 changed files with 6574 additions and 304 deletions

View File

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