Skip to content

Ai task generation#438

Open
VladimirKhmelev wants to merge 14 commits into
mainfrom
AI-task-generation
Open

Ai task generation#438
VladimirKhmelev wants to merge 14 commits into
mainfrom
AI-task-generation

Conversation

@VladimirKhmelev
Copy link
Copy Markdown
Collaborator

@VladimirKhmelev VladimirKhmelev commented May 12, 2026

  • Добавлена ​​генерация топологии сети на основе ИИ для преподавателей (только для администраторов)
  • Интегрированы API RouterAI (Сонннет 4.5) и Yandex Cloud (Qwen3, YandexGPT, Deepseek)
  • Ключи API хранятся на сервере
  • Проверка топологии с автоматическим исправлением и повторной попыткой при ошибках
  • Исправлена ​​отрисовка сетки в общем представлении сети (синхронизация области просмотра)
  • Исправлена ​​отрисовка описания сети в JS (фильтр tojson)

Подробности

  • Новый конечный пункт POST /ai/generate-task — только для администраторов (роль >= 1)
  • 3 уровня сложности с различной сложностью топологии
  • Проверка валидатором топологии: связность, ссылки на ребра, количество интерфейсов, связность графа (BFS)

Инструкция по настройке ключей API

Миграция БД (обязательно для локального и прод окружения)
Добавить колонку ai_keys в таблицу пользователей:

ALTER TABLE "user" ADD COLUMN IF NOT EXISTS ai_keys TEXT;
Локально:

docker exec postgres psql -U postgres -d miminet -c "ALTER TABLE "user" ADD COLUMN IF NOT EXISTS ai_keys TEXT;"
На проде — выполнить тот же SQL в продакшн БД.

Добавить ключи администратору
Ключи хранятся в БД в JSON формате в поле ai_keys у пользователя с role=1.

Формат JSON:

{
"routerai": "sk-...",
"yandex_api_key": "AQVN...",
"yandex_folder_id": "b1g..."
}
Локально:

docker exec postgres psql -U postgres -d miminet -c "UPDATE "user" SET ai_keys='{"routerai":"ВАШ_ROUTERAI_КЛЮЧ","yandex_api_key":"ВАШ_ЯНДЕКС_КЛЮЧ","yandex_folder_id":"ВАШ_FOLDER_ID"}' WHERE role=1;"
Где получить ключи:

RouterAI (Claude): routerai.ru → Настройки → API-ключи
Yandex Cloud: console.yandex.cloud → Yandex AI Studio→ API-Создать ключ
Yandex Folder ID: console.yandex.cloud → главная страница облака
Выдать роль администратора

docker exec postgres psql -U postgres -d miminet -c "UPDATE "user" SET role=1 WHERE id=ВАШ_ID;"
Узнать свой ID:
docker exec postgres psql -U postgres -d miminet -c "SELECT id, nick, role FROM "user";"

Comment thread front/src/ai_generate.py Fixed
Comment thread front/src/ai_generate.py Fixed
Comment thread front/src/templates/home.html Fixed
Comment thread front/src/templates/home.html Fixed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants