Spaces:
Sleeping
Sleeping
metadata
title: NPA_AI_Analysis_Assistant v.3.0
emoji: 🛡️
colorFrom: blue
colorTo: green
sdk: gradio
sdk_version: 5.8.0
app_file: app.py
pinned: false
NPA Analysis Assistant v.3.0
Призначення
AI Асистент аналізу нормативно-правових актів (НПА) - це професійний інструмент, призначений для автоматизації процесу антикорупційної експертизи проектів нормативно-правових актів. Використовуючи потужні моделі штучного інтелекту, система допомагає виявляти потенційні корупціогенні фактори відповідно до офіційної методології НАЗК.
Ключові особливості
- Мультипровайдерна підтримка: використання моделей від OpenRouter і Anthropic
- Розширений вибір моделей: підтримка різних моделей великої мовної моделі (LLM)
- Режим роздумів: покрокове мислення для моделей Anthropic Claude
- Адаптивний інтерфейс: автоматична зміна доступних опцій залежно від обраного провайдера
- Україномовний аналіз: повна підтримка української мови на всіх етапах
- Професійний експертний висновок: структурований текст з рекомендаціями
Технічні вимоги
Залежності
- Python 3.8+
- Anthropic SDK (v0.47.1+)
- OpenAI SDK (v1.0.0+)
- Gradio (v4.44.1+)
- python-dotenv (v1.0.0+)
- requests
Встановлення
# Клонування репозиторію
git clone https://github.com/SZabolotnii/NPA_Analysis_Assistant.git
cd NPA_Analysis_Assistant
# Створення віртуального середовища
python -m venv npa_env
source npa_env/bin/activate # На Windows: npa_env\Scripts\activate
# Встановлення залежностей
pip install -r requirements.txt
Налаштування API ключів
Для роботи системи необхідно мати API ключі для провайдерів, які ви плануєте використовувати:
OpenRouter (рекомендовано)
- Зареєструйтесь на OpenRouter
- Отримайте API ключ у вашому профілі
- Експортуйте змінну середовища:
export OPENROUTER_API_KEY=ваш-api-ключ
Anthropic (опціонально)
- Зареєструйтесь на Anthropic
- Отримайте API ключ для Claude
- Експортуйте змінну середовища:
export ANTHROPIC_API_KEY=ваш-api-ключ
Запуск системи
# Запуск локальної версії
python app.py
# Запуск з публічним доступом через Gradio
python main.py
Інструкція з використання
1. Основний інтерфейс
- Поле введення тексту НПА: Вставте текст нормативно-правового акту для аналізу.
- Вибір провайдера: Оберіть провайдера LLM (OpenRouter або Anthropic).
- Вибір моделі: Оберіть конкретну модель для аналізу в межах обраного провайдера.
- Режим роздумів: Увімкніть для більш глибокого аналізу (доступно тільки для моделей Anthropic).
- Бюджет токенів для роздумів: Налаштуйте обсяг роздумів (від 1024 до 8000 токенів).
2. Процес аналізу
- Підготовка: Вставте повний текст проекту НПА в текстове поле.
- Налаштування: Оберіть провайдера та модель для аналізу.
- Додаткові параметри: За бажанням увімкніть режим роздумів (якщо підтримується).
- Запуск: Натисніть кнопку "Аналіз".
- Результат: Перегляньте висновок на вкладці "Висновок".
- Роздуми моделі: Якщо було увімкнено режим роздумів, перегляньте процес міркування на вкладці "Роздуми моделі".
3. Вибір провайдера та моделі
OpenRouter (за замовчуванням)
- openrouter/quasar-alpha: Потужна модель з широким контекстним вікном.
- Інші моделі: google/gemini-2.0-flash-thinking-exp:free, deepseek/deepseek-r1-zero:free, тощо.
Anthropic
- claude-3-7-sonnet-latest: Рекомендована потужна модель для детального аналізу і можливим режимом роздумів.
- claude-3-5-haiku-latest: Більш проста, швидша та дешевша модель.
4. Режим роздумів
Режим роздумів дозволяє моделі проводити покрокове міркування перед наданням висновку. Цей режим:
- Доступний тільки для провайдера Anthropic
- Значно покращує якість аналізу
- Займає більше часу та ресурсів
- Автоматично відображає хід роздумів на відповідній вкладці
5. Інтерпретація результатів
Результат аналізу включає:
- Загальну характеристику документа
- Виявлені корупціогенні фактори
- Рекомендації щодо усунення виявлених факторів
- Посилання на відповідні пункти методології
Усунення проблем
| Проблема | Можливе рішення |
|---|---|
| Помилка "API ключ не знайдено" | Перевірте, чи правильно експортовано змінні середовища |
| Таймаут при аналізі | Зменшіть розмір тексту або бюджет токенів для роздумів |
| Пуста або неповна відповідь | Спробуйте іншу модель або провайдера |
| Помилка "NoneType object" | Перевірте підключення до інтернету та правильність API ключа |
| Низька якість аналізу | Увімкніть режим роздумів та збільште бюджет токенів |
Обмеження
- Аналіз дуже великих документів може бути обмежений контекстним вікном моделі
- Безкоштовні моделі можуть мати нижчу якість аналізу
- Режим роздумів доступний лише для моделей Anthropic
Підтримка та контакти
За питаннями та пропозиціями звертайтеся: zabolotniua@gmail.com
Технічна інформація для розробників
Архітектура системи
Система побудована на модульній архітектурі:
- app.py / main.py: Точки входу для запуску системи
- src/analyzer.py: Основний модуль для аналізу НПА
- src/llm_providers.py: Абстракція різних LLM провайдерів
- src/interface.py: Gradio інтерфейс користувача
- src/prompts.py: Шаблони промптів для аналізу
Розширення підтримуваних провайдерів
Для додавання нового провайдера потрібно:
- Створити новий клас, що наслідує
LLMProviderвllm_providers.py - Реалізувати всі абстрактні методи
- Додати новий провайдер у функцію
get_provider() - Оновити
get_available_providers()
Ліцензія
MIT License