- ai_service.py: единый AI-сервис (chat, chat_with_history, analyze_document) - routes/ai.py: POST /api/v1/ai/chat (chat, summarize, extract_risks, classify, translate) - config.py: ANTHROPIC_API_KEY, ANTHROPIC_MODEL - requirements.txt: anthropic>=0.42.0 - api-client.ts: aiApi (chat, summarize, extractRisks) - CSP: connect-src добавлен https://api.anthropic.com - app/api/ai-chat: прокси на бэкенд /api/v1/ai/chat (Anthropic) - legal_agents/llm_client.py: переведён на ai_service (Claude) - AIAccessSettings: только Claude (Sonnet 4, 3 Sonnet, 3 Opus) - k8s, .env.example: OPENAI → ANTHROPIC - package.json: удалена зависимость openai - Документация: OpenAI/GPT заменены на Claude/Anthropic Провайдер: исключительно Anthropic Claude Модель по умолчанию: claude-sonnet-4-20250514 Co-authored-by: Cursor <cursoragent@cursor.com>
269 lines
10 KiB
Markdown
269 lines
10 KiB
Markdown
# Функции ИИ Агента
|
||
|
||
## Обзор
|
||
|
||
ИИ Агент системы контроля лётной годности теперь поддерживает:
|
||
1. Управление доступом операторов через настройки
|
||
2. Загрузку и обработку документов (PDF, JPEG, PNG, XLS, XLSX, CSV, TXT, DOC, DOCX)
|
||
3. Автоматическое внесение данных из документов в карточки ВС, аудитов и чек-листов
|
||
4. Форматы чек-листов и отчетов об аудите согласно требованиям АРМАК, ИКАО, FAA, EASA
|
||
|
||
## Управление доступом к ИИ агенту
|
||
|
||
### Настройка доступа
|
||
|
||
1. Откройте **Настройки** (кнопка в правом верхнем углу)
|
||
2. Перейдите на вкладку **"ИИ Агент"**
|
||
3. Выберите операторов, которым нужно предоставить доступ
|
||
4. Включите опции:
|
||
- **Полный доступ ИИ агенту** - разрешает автоматическое внесение данных
|
||
- **Автоматическая обработка документов** - включает автоматическое извлечение данных из файлов
|
||
|
||
### Функции доступа
|
||
|
||
- **Просмотр**: Оператор может использовать ИИ агента для поиска информации
|
||
- **Загрузка документов**: Оператор может загружать файлы для анализа
|
||
- **Автоматическое внесение данных**: ИИ агент может автоматически вносить данные в карточки (требует подтверждения)
|
||
|
||
## Загрузка документов
|
||
|
||
### Поддерживаемые форматы
|
||
|
||
- **PDF** - документы, сертификаты, отчеты
|
||
- **Изображения** - JPEG, JPG, PNG (требуется OCR для извлечения текста)
|
||
- **Таблицы** - XLS, XLSX, CSV
|
||
- **Текстовые** - TXT, DOC, DOCX
|
||
|
||
### Как использовать
|
||
|
||
1. Откройте **ИИ Агент** (кнопка на дашборде)
|
||
2. Нажмите кнопку **📎** для выбора файлов
|
||
3. Выберите один или несколько файлов
|
||
4. Введите команду, например:
|
||
- "Проанализируй эти документы и внеси данные о воздушных судах"
|
||
- "Извлеки информацию об аудитах из файлов"
|
||
- "Создай чек-лист на основе данных из CSV"
|
||
5. Нажмите **Отправить**
|
||
|
||
### Обработка документов
|
||
|
||
ИИ агент автоматически:
|
||
- Извлекает текст из документов
|
||
- Анализирует структурированные данные (CSV, Excel)
|
||
- Определяет тип информации (ВС, аудиты, чек-листы)
|
||
- Предлагает внести данные в соответствующие карточки
|
||
|
||
## Форматы чек-листов
|
||
|
||
### Соответствие стандартам
|
||
|
||
Система поддерживает форматы чек-листов согласно требованиям:
|
||
|
||
- **ICAO Annex 6** - Международная организация гражданской авиации
|
||
- **EASA Part-M** - Европейское агентство по безопасности авиации
|
||
- **FAA Part 91/135** - Федеральное управление гражданской авиации США
|
||
- **АРМАК** - Агентство по регулированию гражданской авиации РФ
|
||
|
||
### Структура чек-листа
|
||
|
||
```typescript
|
||
{
|
||
checklistNumber: string;
|
||
aircraftRegistration: string;
|
||
aircraftType: string;
|
||
operator: string;
|
||
date: string;
|
||
inspector: string;
|
||
checklistType: 'pre-flight' | 'post-flight' | 'maintenance' | 'annual' | 'special';
|
||
standards: {
|
||
icao?: boolean;
|
||
easa?: boolean;
|
||
faa?: boolean;
|
||
armak?: boolean;
|
||
};
|
||
items: ChecklistItem[];
|
||
summary: {
|
||
total: number;
|
||
compliant: number;
|
||
nonCompliant: number;
|
||
notApplicable: number;
|
||
pending: number;
|
||
};
|
||
conclusion: 'approved' | 'conditional' | 'rejected';
|
||
signatures: {
|
||
inspector: { name, license, date, signature };
|
||
operator?: { name, position, date, signature };
|
||
};
|
||
}
|
||
```
|
||
|
||
### Категории чек-листов
|
||
|
||
#### ICAO Annex 6
|
||
- Aircraft Airworthiness
|
||
- Flight Operations
|
||
- Maintenance
|
||
- Cabin Safety
|
||
|
||
#### EASA Part-M
|
||
- Все категории ICAO +
|
||
- Continuing Airworthiness
|
||
- Airworthiness Review Certificate (ARC)
|
||
- Continuing Airworthiness Management Exposition (CAME)
|
||
|
||
#### FAA Part 91/135
|
||
- Все категории ICAO +
|
||
- FAA Registration
|
||
- FAA Operating Certificate
|
||
- FAA Maintenance Program
|
||
|
||
#### АРМАК
|
||
- Все категории ICAO +
|
||
- Сертификат лётной годности
|
||
- Разрешение на эксплуатацию
|
||
- Программа технического обслуживания (ПТО)
|
||
- Соответствие ФАП
|
||
|
||
## Форматы отчетов об аудите
|
||
|
||
### Соответствие стандартам
|
||
|
||
Отчеты об аудите соответствуют требованиям:
|
||
- **ICAO** - стандарты международной гражданской авиации
|
||
- **EASA** - европейские стандарты безопасности
|
||
- **FAA** - стандарты США
|
||
- **АРМАК** - российские стандарты
|
||
|
||
### Структура отчета
|
||
|
||
```typescript
|
||
{
|
||
reportNumber: string;
|
||
reportType: 'scheduled' | 'unscheduled' | 'follow-up' | 'special';
|
||
auditDate: string;
|
||
auditLocation: string;
|
||
organization: {
|
||
name: string;
|
||
type: string;
|
||
certificate?: string;
|
||
address: string;
|
||
};
|
||
auditTeam: Array<{
|
||
name: string;
|
||
role: 'lead-auditor' | 'auditor' | 'observer';
|
||
license?: string;
|
||
organization: string;
|
||
}>;
|
||
auditScope: {
|
||
description: string;
|
||
standards: {
|
||
icao?: boolean;
|
||
easa?: boolean;
|
||
faa?: boolean;
|
||
armak?: boolean;
|
||
};
|
||
areas: string[];
|
||
};
|
||
findings: AuditFinding[];
|
||
summary: {
|
||
totalFindings: number;
|
||
critical: number;
|
||
major: number;
|
||
minor: number;
|
||
observations: number;
|
||
complianceRate: number;
|
||
};
|
||
conclusion: {
|
||
overall: 'compliant' | 'non-compliant' | 'conditional';
|
||
details: string;
|
||
recommendations: string[];
|
||
};
|
||
actionPlan?: Array<{
|
||
findingId: string;
|
||
action: string;
|
||
responsible: string;
|
||
deadline: string;
|
||
status: 'pending' | 'in-progress' | 'completed';
|
||
}>;
|
||
signatures: {
|
||
leadAuditor: { name, license, date, signature };
|
||
organizationRepresentative: { name, position, date, signature };
|
||
};
|
||
}
|
||
```
|
||
|
||
### Категории нарушений
|
||
|
||
#### ICAO
|
||
- Airworthiness
|
||
- Operations
|
||
- Maintenance
|
||
- Personnel
|
||
- Documentation
|
||
- Safety Management (SMS)
|
||
|
||
#### EASA
|
||
- Все категории ICAO +
|
||
- Continuing Airworthiness
|
||
- Airworthiness Review
|
||
- CAME Compliance
|
||
|
||
#### FAA
|
||
- Все категории ICAO +
|
||
- FAA Certification
|
||
- FAA Operations
|
||
- FAA Maintenance
|
||
|
||
#### АРМАК
|
||
- Все категории ICAO +
|
||
- АРМАК Сертификация
|
||
- Соответствие ФАП
|
||
- ПТО (Программа технического обслуживания)
|
||
|
||
## Примеры использования
|
||
|
||
### Пример 1: Загрузка CSV с данными о ВС
|
||
|
||
1. Загрузите CSV файл с колонками: registrationNumber, aircraftType, operator
|
||
2. Отправьте команду: "Проанализируй этот CSV и внеси данные о воздушных судах в базу"
|
||
3. ИИ агент извлечет данные и предложит создать карточки ВС
|
||
|
||
### Пример 2: Загрузка отчета об аудите
|
||
|
||
1. Загрузите PDF или Word документ с отчетом об аудите
|
||
2. Отправьте команду: "Извлеки информацию об аудите и создай отчет в формате АРМАК"
|
||
3. ИИ агент создаст структурированный отчет согласно требованиям АРМАК
|
||
|
||
### Пример 3: Создание чек-листа
|
||
|
||
1. Загрузите документ с требованиями проверки
|
||
2. Отправьте команду: "Создай чек-лист в формате ICAO Annex 6 на основе этого документа"
|
||
3. ИИ агент создаст структурированный чек-лист с соответствующими категориями
|
||
|
||
## Безопасность
|
||
|
||
- Все действия ИИ агента логируются в системе аудита
|
||
- Автоматическое внесение данных требует подтверждения пользователя
|
||
- Доступ к ИИ агенту контролируется через настройки
|
||
- Все загруженные файлы проверяются на безопасность
|
||
|
||
## Технические детали
|
||
|
||
### API Endpoints
|
||
|
||
- `POST /api/ai-chat` - Основной endpoint для общения с ИИ агентом
|
||
- Поддерживает FormData для загрузки файлов
|
||
- Обрабатывает JSON запросы без файлов
|
||
|
||
### Библиотеки
|
||
|
||
- `csv-parse` - для парсинга CSV файлов
|
||
- `ai` - для работы с Anthropic Claude API
|
||
- В будущем: `pdf-parse`, `xlsx`, `tesseract.js` для полной поддержки всех форматов
|
||
|
||
### Файлы
|
||
|
||
- `lib/ai/document-parser.ts` - парсер документов
|
||
- `lib/compliance/checklist-formats.ts` - форматы чек-листов
|
||
- `lib/compliance/audit-report-formats.ts` - форматы отчетов об аудите
|