klg-asutk-app/docs/ОТЧЁТ_ПРОВЕРКИ_РАБОТОСПОСОБНОСТИ.md
Yuriy 0150aba4f5 Consolidation: KLG ASUTK + PAPA integration
- Unify API: lib/api.ts uses /api/v1, inbox uses /api/inbox (rewrites)
- Remove localhost refs: openapi, inbox page
- Add rewrites: /api/inbox|tmc -> inbox-server, /api/v1 -> FastAPI
- Add stub routes: knowledge/insights, recommendations, search, log-error
- Transfer from PAPA: prompts (inspection, tmc), scripts, supabase, data/tmc-requests
- Fix inbox-server: ORDER BY created_at, package.json
- Remove redundant app/api/inbox/files route (rewrites handle it)
- knowledge/ in gitignore (large PDFs)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 17:18:31 +03:00

5.4 KiB
Raw Permalink Blame History

Отчёт о проверке работоспособности (КЛГ / модуль Legal)

Дата: 2025
Проверено: приложение КЛГ (АСУ ТК), модуль юридических документов (Legal).
Примечание: в проекте нет компонента с названием «Lawer R» / «Lawyer R»; проверка выполнена для всего приложения и Legal-модуля.


1. Что проверено

Область Результат
Линтер (backend, frontend) Ошибок нет
Синтаксис Python (main, db, config, legal) Ошибок нет
Совместимость с SQLite Исправлена сортировка в Legal (см. ниже)
Зависимости для запуска без Docker Добавлен requirements-sqlite.txt (без psycopg2)

2. Внесённые исправления

Файл: backend/app/api/routes/legal.py
Проблема: В list_judicial_practices использовалось order_by(..., nulls_last()). В SQLite старше 3.30 NULLS LAST не поддерживается и запрос мог падать.

Исправление: Сортировка заменена на переносимый вариант:
order_by(decision_date.is_(None), decision_date.desc(), created_at.desc()) — строки с decision_date = NULL уходят в конец и при SQLite, и при PostgreSQL.

2.2. Запуск без Docker при отсутствии PostgreSQL

Проблема: pip install -r requirements.txt требует psycopg2-binary, для которого нужен pg_config (установленный PostgreSQL). На Mac без Homebrew/PostgreSQL установка падала.

Исправление:

  • Добавлен backend/requirements-sqlite.txt без psycopg2-binary.
  • run-without-docker.sh переведён на requirements-sqlite.txt.

Для запуска с PostgreSQL по-прежнему используется requirements.txt.


3.1. Backend

  • Роуты: юрисдикции, документы, перекрёстные ссылки, комментарии, судебная практика, ИИ-анализ (/analyze, /documents/{id}/analyze).
  • Схемы и модели согласованы.
  • При отсутствии OPENAI_API_KEY агенты работают в режиме заглушек (эвристики, без вызовов LLM), падений нет.
  • AnalysisRequest требует jurisdiction_id — проверка на стороне API есть.

3.2. Frontend

  • Отдельной страницы «Legal» / «Юридические документы» в UI нет.
  • Модуль доступен через:
    • Swagger: http://localhost:8000/docs → секция legal;
    • curl или иной HTTP-клиент.

Если под «Lawer R» подразумевается юридический модуль, для полноценного использования из браузера нужна отдельная страница и вызовы /api/v1/legal/*.


4. Рекомендации

  1. Запуск без Docker
    Использовать ./run-without-docker.sh (используется requirements-sqlite.txt).
    Если pip install для requirements-sqlite.txt падает (например, на Python 3.14) — проверить доступность колес для Вашей версии Python или использовать 3.113.12.

  2. Отладочные логи в production
    В frontend/src/api/client.ts в ответах на /aircraft остаются console.log. Для prod их лучше отключить или вынести за флаг.

  3. Интерфейс для Legal
    Для работы с юрисдикциями, документами и ИИ-анализом через браузер имеет смысл добавить страницу «Юридические документы» с вызовами /api/v1/legal/*.

  4. Docker
    Поведение при docker compose up не менялось: по-прежнему используются requirements.txt, DATABASE_URL и STORAGE_DIR из docker-compose.yml.


5. Как перепроверить

# Без Docker (SQLite)
./run-without-docker.sh
# В браузере: http://localhost:3000, токен dev

# Legal API (после запуска backend)
curl -s -H "Authorization: Bearer dev" http://localhost:8000/api/v1/legal/jurisdictions
curl -s http://localhost:8000/api/v1/health

6. Итог

  • Критичных ошибок в коде и конфигурации не найдено.
  • Устранены: несовместимость Legal с SQLite и зависимость запуска без Docker от установленного PostgreSQL.
  • Модуль Legal на backend реализован и пригоден к использованию через API; в веб-интерфейсе для него отдельного раздела пока нет.