Spaces:
Sleeping
Sleeping
File size: 9,004 Bytes
8ea1efd 9738d7d 8ea1efd 9738d7d 8ea1efd 9738d7d 8ea1efd 8bd6343 8ea1efd 9738d7d f2da72b 9738d7d 5837356 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 |
---
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
### Встановлення
```bash
# Клонування репозиторію
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 (рекомендовано)
1. Зареєструйтесь на [OpenRouter](https://openrouter.ai/)
2. Отримайте API ключ у вашому профілі
3. Експортуйте змінну середовища:
```bash
export OPENROUTER_API_KEY=ваш-api-ключ
```
### Anthropic (опціонально)
1. Зареєструйтесь на [Anthropic](https://www.anthropic.com/)
2. Отримайте API ключ для Claude
3. Експортуйте змінну середовища:
```bash
export ANTHROPIC_API_KEY=ваш-api-ключ
```
## Запуск системи
```bash
# Запуск локальної версії
python app.py
# Запуск з публічним доступом через Gradio
python main.py
```
## Інструкція з використання
### 1. Основний інтерфейс
- **Поле введення тексту НПА**: Вставте текст нормативно-правового акту для аналізу.
- **Вибір провайдера**: Оберіть провайдера LLM (OpenRouter або Anthropic).
- **Вибір моделі**: Оберіть конкретну модель для аналізу в межах обраного провайдера.
- **Режим роздумів**: Увімкніть для більш глибокого аналізу (доступно тільки для моделей Anthropic).
- **Бюджет токенів для роздумів**: Налаштуйте обсяг роздумів (від 1024 до 8000 токенів).
### 2. Процес аналізу
1. **Підготовка**: Вставте повний текст проекту НПА в текстове поле.
2. **Налаштування**: Оберіть провайдера та модель для аналізу.
3. **Додаткові параметри**: За бажанням увімкніть режим роздумів (якщо підтримується).
4. **Запуск**: Натисніть кнопку "Аналіз".
5. **Результат**: Перегляньте висновок на вкладці "Висновок".
6. **Роздуми моделі**: Якщо було увімкнено режим роздумів, перегляньте процес міркування на вкладці "Роздуми моделі".
### 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
## Підтримка та контакти
За питаннями та пропозиціями звертайтеся: [email protected]
---
## Технічна інформація для розробників
### Архітектура системи
Система побудована на модульній архітектурі:
- **app.py** / **main.py**: Точки входу для запуску системи
- **src/analyzer.py**: Основний модуль для аналізу НПА
- **src/llm_providers.py**: Абстракція різних LLM провайдерів
- **src/interface.py**: Gradio інтерфейс користувача
- **src/prompts.py**: Шаблони промптів для аналізу
### Розширення підтримуваних провайдерів
Для додавання нового провайдера потрібно:
1. Створити новий клас, що наслідує `LLMProvider` в `llm_providers.py`
2. Реалізувати всі абстрактні методи
3. Додати новий провайдер у функцію `get_provider()`
4. Оновити `get_available_providers()`
## Ліцензія
MIT License |