Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

ГОСТ-Ассистент: FastAPI Сервис & Streamlit Веб-интерфейс

Этот проект представляет собой интеллектуального ассистента для автоматического аудита технических заданий (ТЗ) на соответствие стандартам безопасности ГОСТ 34.602-89 и требованиям ФСТЭК. Проект состоит из двух частей: асинхронного бэкенда на FastAPI и стильного интерактивного фронтенда на Streamlit. В качестве «мозга» системы по умолчанию используется локальная языковая модель через Ollama, но сервис поддерживает подключение любой сторонней LLM через OpenAI-совместимый API (OpenRouter, OpenAI, DeepSeek и др.) — переключение делается одной переменной окружения.


🚀 Быстрый старт

1. Установка зависимостей

Убедитесь, что у вас установлен Python 3.9+. Установите необходимые библиотеки:

pip install -r requirements.txt

2. Настройка LLM-провайдера

Проект поддерживает два режима.

Вариант 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 эндпоинтом.

3. Запуск бэкенда (FastAPI)

Запустите API-сервер:

python gost_assistant_api.py

Сервер запустится по адресу: http://localhost:8000. Интерактивная документация Swagger UI доступна по адресу 👉 http://localhost:8000/docs.

4. Запуск фронтенда (Streamlit)

В новом окне терминала запустите веб-интерфейс:

streamlit run gost_assistant_app.py

📡 Эндпоинты API

После запуска сервера вам доступна интерактивная документация Swagger UI по адресу: 👉 http://localhost:8000/docs

1. POST /analyze (Аудит ТЗ через JSON)

Принимает текст ТЗ в формате JSON.

Пример запроса (curl):

curl -X POST -H "Content-Type: application/json" \
  -d '{"text": "ТЗ на систему Сертификация-Про. Безопасность обеспечивается антивирусом."}' \
  http://localhost:8000/analyze

Ответ:

{
  "report": "# Результаты аудита ТЗ...\n\n| Раздел | Нарушение | Рекомендация |..."
}

2. POST /analyze-file (Аудит ТЗ из файла)

Позволяет загрузить готовый файл .txt или .md напрямую.

Пример запроса (curl):

curl -X POST -F "file=@my_tz_draft.md" http://localhost:8000/analyze-file

3. GET /health (Проверка статуса)

Проверяет работоспособность сервиса и статус подключения к текущему LLM-провайдеру (Ollama или сторонний OpenAI-совместимый API).

image image

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages