AAYMA
RU
Войти

AI Sana Challenge Hub

MVP на Streamlit. Бизнес создаёт карточку задачи с AI-черновиком и AI-рецензией, публикует её после проверки качества. Студенческие команды…

Рабочий MVP
Команда «Triple_A» 6💬 0 комментариевс 23 сентября 2026 г.

О проекте

Команда: Triple_A
Кейс HackAlem.ai: Образование — AI Sana
Стадия: Рабочий MVP

Задача кейса: Challenge Hub: превратить задачу бизнеса в задание для студенческих команд

Суть

MVP на Streamlit. Бизнес создаёт карточку задачи с AI-черновиком и AI-рецензией, публикует её после проверки качества. Студенческие команды откликаются, бизнес выбирает команду.

Как устроено

Черновик и рецензию генерирует OpenAI Responses API (модель gpt-6-astra). Без ключа включается честно помеченный детерминированный demo-режим. Локальная оценка качества 0–100 не даёт опубликовать карточку ниже 75 баллов. Дальше каталог с поиском и фильтрами по навыкам, отклики с защитой от повторов и выбор одной команды, после которого приём откликов закрывается. Данные живут в сессии браузера.

Ключевые решения

  • quality scoring 0–100
  • publication gating
  • deterministic fallback

Особенности

Интерфейс явно показывает, откуда взят каждый результат: OpenAI или локальный demo-режим. Весь сквозной сценарий покрыт Streamlit AppTest.

Стек

Python · Streamlit · OpenAI Responses API · pytest

Модели

OpenAI gpt-6-astra


Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-dcc3f6d0-triple-a.

README

README.md

AI Sana Challenge Hub

Готовый к демонстрации MVP на Python + Streamlit. Бизнес создаёт и публикует практическую задачу, студенческая команда отправляет предложение, а представитель бизнеса выбирает команду. Данные хранятся в текущей сессии браузера.

Возможности

  • ручное создание и редактирование карточки задачи;
  • AI-черновик и AI-рецензия через OpenAI Responses API;
  • честно обозначенный локальный demo-режим без API-ключа;
  • локальная оценка качества 0–100 и блокировка слабой публикации;
  • каталог с поиском, фильтрацией по навыкам и сортировкой;
  • отклики команд, защита от повторного отклика и проверка длины полей;
  • выбор одной команды и автоматическое закрытие новых откликов;
  • адаптивный интерфейс для компьютера и мобильной ширины;
  • unit-тесты основной логики и Streamlit AppTest полного сценария.

Требования

  • Python 3.10 или новее;
  • интернет нужен только для установки зависимостей и реальных запросов к OpenAI;
  • API-ключ не нужен для локальной демонстрации.

Быстрый запуск в Windows PowerShell

Из папки проекта:

py -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.venv\Scripts\python.exe -m streamlit run app.py

Если команда py недоступна, замените её на python.

Приложение откроется по адресу http://localhost:8501.

Запуск в macOS / Linux

python3 -m venv .venv
./.venv/bin/python -m pip install -r requirements.txt
./.venv/bin/python -m streamlit run app.py

Подключение OpenAI API

Откройте .env в корне проекта и вставьте ключ после знака =:

OPENAI_API_KEY=
OPENAI_MODEL=gpt-6-astra

Файл .env уже добавлен в .gitignore; не помещайте его в архив или репозиторий. Существующая переменная окружения Windows имеет приоритет над значением из .env. Для совместимости приложение также принимает OPENAI_API_KEY из .streamlit/secrets.toml.

Вариант 2 — переменная окружения PowerShell только для текущего окна:

$env:OPENAI_API_KEY = "your-key"
.\.venv\Scripts\python.exe -m streamlit run app.py

Модель по умолчанию — gpt-6-astra. Её можно переопределить переменной OPENAI_MODEL:

$env:OPENAI_MODEL = "доступная-вам-модель"

Само наличие ключа не считается успешным подключением. После нажатия соответствующей кнопки интерфейс показывает фактический источник конкретного результата: OpenAI API или локальный demo-режим. Локальная генерация детерминирована и нигде не выдаётся за ответ модели. Ошибки API отображаются безопасным сообщением без ключа и внутренних деталей.

Демонстрационный сценарий

  1. Откройте «Создать задачу».
  2. Введите черновик для AI-помощника или заполните поля вручную.
  3. Примените AI-черновик и при необходимости отредактируйте каждое поле.
  4. Нажмите «Оценить качество задачи», изучите рекомендации и запросите рецензию.
  5. Опубликуйте карточку с оценкой не ниже 75.
  6. Найдите её в каталоге через поиск и фильтры и откройте страницу задачи.
  7. Отправьте отклик студенческой команды.
  8. В разделе «Отклики для бизнеса» выберите команду.
  9. Вернитесь на страницу задачи: новый отклик будет недоступен.

Роли переключаются через верхнюю навигацию без авторизации. Для непрерывной демонстрации используйте одну вкладку: перезапуск сервера или новая вкладка создают новую сессию.

Тесты

.\.venv\Scripts\python.exe -m pytest -q

Тесты находятся в tests/ и покрывают оценку, публикацию, повторное нажатие, локальный AI-режим, валидацию отклика, повторный отклик, выбор команды и полный Streamlit-сценарий.

Структура

  • app.py — интерфейс, навигация и состояние Streamlit;
  • ai_assistant.py — OpenAI Responses API и локальный demo-режим;
  • utils.py — оценка, публикация, отклики и выбор команды;
  • tests/ — unit- и Streamlit AppTest-тесты;
  • .streamlit/config.toml — тема и серверные настройки;
  • requirements.txt — зависимости запуска и тестов.
Звёзды
⭐ 0
Форки
0
Язык
Python
Последний push
в прошлом месяце
Коммиты
5
Авторы
2
Файлы
15
Ветки
1

Авторы коммитов

Agil 4aibarN0tF0und 1

История коммитов

  • 2026-09-23 17:55AI-SANA-1.0-MVPAgil
  • 2026-09-23 17:32ai-sana-task-1.0-mvpAgil
  • 2026-09-23 16:31ai-sana-task-0.2-mvpAgil
  • 2026-09-23 15:34Update AI Sana Hub MVPaibarN0tF0und
  • 2026-09-23 14:42ai-sana-task-0.1beta-mvpAgil
Структура репозитория (15 файлов)
.env.example
.gitignore
AUDIT_REPORT.md
PLAN.md
README.md
ai_assistant.py
app.py
questions.py
rating.py
requirements.txt
storage.py
tests/test_app.py
tests/test_questions.py
tests/test_storage_rating.py
utils.py

Обсуждение 0 комментариев

Войдите, чтобы комментировать

Пока нет комментариев — будьте первым.