Этот проект представляет собой интеллектуального ассистента для автоматического аудита технических заданий (ТЗ) на соответствие стандартам безопасности ГОСТ 34.602-89 и требованиям ФСТЭК. Проект состоит из двух частей: асинхронного бэкенда на FastAPI и стильного интерактивного фронтенда на Streamlit. В качестве «мозга» системы по умолчанию используется локальная языковая модель через Ollama, но сервис поддерживает подключение любой сторонней LLM через OpenAI-совместимый API (OpenRouter, OpenAI, DeepSeek и др.) — переключение делается одной переменной окружения.
Убедитесь, что у вас установлен Python 3.9+. Установите необходимые библиотеки:
pip install -r requirements.txtПроект поддерживает два режима.
Вариант A — локальная Ollama (по умолчанию). Убедитесь, что Ollama запущена и у вас скачана модель qwen2.5:14b-instruct-q4_K_M (или любая другая):
ollama run qwen2.5:14b-instruct-q4_K_MДополнительная настройка не нужна — сервис использует Ollama "из коробки".
Вариант B — сторонняя LLM (OpenRouter, OpenAI, DeepSeek и т.д.) через OpenAI-совместимый API. Задайте переменные окружения:
export LLM_PROVIDER=openai_compatible
export LLM_BASE_URL=https://openrouter.ai/api/v1
export LLM_API_KEY=sk-or-...
export LLM_MODEL=deepseek/deepseek-chatПодходит любой провайдер с OpenAI-совместимым /chat/completions эндпоинтом.
Запустите API-сервер:
python gost_assistant_api.pyСервер запустится по адресу: http://localhost:8000. Интерактивная документация Swagger UI доступна по адресу 👉 http://localhost:8000/docs.
В новом окне терминала запустите веб-интерфейс:
streamlit run gost_assistant_app.pyПосле запуска сервера вам доступна интерактивная документация Swagger UI по адресу:
👉 http://localhost:8000/docs
Принимает текст ТЗ в формате JSON.
Пример запроса (curl):
curl -X POST -H "Content-Type: application/json" \
-d '{"text": "ТЗ на систему Сертификация-Про. Безопасность обеспечивается антивирусом."}' \
http://localhost:8000/analyzeОтвет:
{
"report": "# Результаты аудита ТЗ...\n\n| Раздел | Нарушение | Рекомендация |..."
}Позволяет загрузить готовый файл .txt или .md напрямую.
Пример запроса (curl):
curl -X POST -F "file=@my_tz_draft.md" http://localhost:8000/analyze-fileПроверяет работоспособность сервиса и статус подключения к текущему LLM-провайдеру (Ollama или сторонний OpenAI-совместимый API).