klg-asutk-app/docs/LEGAL_MODULE.md
Yuriy 44b14cc4fd feat: все AI-функции переведены на Anthropic Claude API
- 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>
2026-02-15 15:51:59 +03:00

5.4 KiB
Raw Permalink Blame History

Модуль анализа и подготовки юридических документов

Система с мультиагентной ИИ-архитектурой для анализа, подготовки в соответствии с нормами законодательства разных стран документов (законодательных, рекомендательных, директивных, уведомительных и т.д.), перекрёстных ссылок на цитируемые документы, правовых комментариев и судебной практики.

Компоненты

Модели БД

Таблица Описание
legal_jurisdictions Юрисдикции (RU, KZ, EU, US, ICAO, EASA и др.)
legal_documents Документы: законодательные, рекомендательные, директивные, уведомительные, нормативные, договорные, судебные
legal_cross_references Перекрёстные ссылки между цитируемыми документами
legal_comments Правовые комментарии для использования в базе
legal_judicial_practices Судебная практика (решения, определения)

Типы документов (document_type)

  • legislative — законодательный (закон, кодекс)
  • recommendatory — рекомендательный
  • directive — директивный
  • notification — уведомительный
  • regulatory — нормативно-правовой (приказы, постановления)
  • contractual — договорной
  • judicial — судебный акт
  • other — иное

ИИ-агенты

  1. DocumentClassifierAgent — классификация типа документа
  2. NormComplianceAgent — проверка соответствия нормам юрисдикции
  3. CrossReferenceAgent — поиск и добавление перекрёстных ссылок на цитируемые документы
  4. CommentEnrichmentAgent — подбор правовых комментариев из базы
  5. JudicialPracticeAgent — подбор судебной практики из базы
  6. FormattingAgent — рекомендации по структуре и оформлению по требованиям юрисдикции

Оркестратор LegalAnalysisOrchestrator запускает агентов, при необходимости сохраняет перекрёстные ссылки в БД и обновляет документ (analysis_json, compliance_notes).

API (префикс /api/v1/legal)

Юрисдикции

  • GET /legal/jurisdictions — список
  • POST /legal/jurisdictions — создание (admin)
  • GET /legal/jurisdictions/{id} — одна
  • PATCH /legal/jurisdictions/{id} — обновление (admin)

Документы

  • GET /legal/documents?jurisdiction_id=&document_type=&limit= — список
  • POST /legal/documents — создание
  • GET /legal/documents/{id} — одна
  • PATCH /legal/documents/{id} — обновление
  • GET /legal/documents/{id}/cross-references?direction=outgoing|incoming — перекрёстные ссылки

Перекрёстные ссылки

  • POST /legal/cross-references — ручное добавление ссылки

Правовые комментарии

  • GET /legal/comments?jurisdiction_id=&document_id= — список
  • POST /legal/comments — создание
  • PATCH /legal/comments/{id} — обновление

Судебная практика

  • GET /legal/judicial-practices?jurisdiction_id=&document_id= — список
  • POST /legal/judicial-practices — создание
  • PATCH /legal/judicial-practices/{id} — обновление

ИИ-анализ

  • POST /legal/analyze — анализ по переданным jurisdiction_id, title, content (и опционально document_id). Тело:
    {
      "document_id": "uuid или null",
      "jurisdiction_id": "uuid",
      "title": "Название документа",
      "content": "Текст или фрагмент",
      "skip_agents": ["classifier", "formatting"],
      "save_cross_references": true
    }
    
  • POST /legal/documents/{id}/analyze?skip_agents=&save_cross_references= — анализ существующего документа по id

Настройка LLM

В .env или переменных окружения:

  • ANTHROPIC_API_KEY — ключ Anthropic Claude API
  • ANTHROPIC_MODEL — модель (по умолчанию claude-sonnet-4-20250514)

В app.core.config добавлены: ANTHROPIC_API_KEY, ANTHROPIC_MODEL.

Если LLM недоступен (нет ключа или ошибка), агенты работают в режиме заглушек (эвристики, пустые списки).

Первичное заполнение

Юрисдикции (RU, KZ, BY, EU, US, US-CA, ICAO, EASA):

cd backend && python -m app.db.seed_legal

Зависимости

  • anthropic>=0.42.0 — для вызова LLM (Anthropic Claude API).