dnevnik-praktiki-pgtu
v1.0.4
Published
ИИ-помощник для оформления «Дневника практики» ПГТУ: из свободного описания студента генерирует готовый .docx по шаблону вуза. Работает с Claude, ChatGPT, Gemini, DeepSeek.
Maintainers
Readme
📔 Дневник практики — ИИ-помощник для оформления
Наговори данные в свободной форме — получи готовый «Дневник практики» ПГТУ в .docx. Работает с любым популярным ИИ.
Что это?
Помощник, который оформляет официальный «Дневник практики» Поволжского государственного технологического университета (ПГТУ).
Студент просто рассказывает о себе и месте практики — голосом или текстом, в
свободной форме. ИИ понимает, что речь о дневнике практики, вытаскивает из
рассказа нужные поля, уточняет недостающее коротким вопросом и выдаёт
заполненный .docx строго по шаблону вуза.
Под капотом — обычный Python-скрипт и шаблон .docx, поэтому проект не привязан
к одному ассистенту и работает с любым ИИ, который умеет выполнять код.
Зачем
Заполнять дневник руками — нудно: одни и те же ФИО, кафедра, сроки, план из 8 пунктов с датами. Помощник делает это за секунды и не ошибается в формате.
Поддержка ИИ
| Ассистент | Как использовать |
|-----------|------------------|
| Claude (Cowork / Claude Code) | Установить как skill (skills/dnevnik-praktiki) — ИИ сам спросит данные и пришлёт документ |
| ChatGPT (с Code Interpreter / Data Analysis) | Загрузить fill_diary.py и template.docx, вставить промпт ниже |
| Gemini (с выполнением кода) | То же: загрузить файлы скрипта и шаблона, вставить промпт |
| DeepSeek и другие с запуском кода | То же — загрузить файлы и дать промпт |
| GigaChat (через API) | Установить зависимости, задать ключи в .env, вызвать providers/gigachat_client.py |
| Яндекс GPT (через API) | Установить зависимости, задать ключи в .env, вызвать providers/yandex_gpt_client.py |
| Любой ИИ без запуска кода | Может заполнить шаблон вручную, но это менее надёжно — рекомендуется ассистент с выполнением кода |
Как пользоваться
Вариант 1 — Claude (нативно, как skill)
Установите скилл из папки
skills/dnevnik-praktiki.Напишите в свободной форме:
Оформи дневник практики. Я Иванов Иван Иванович, группа ИСТ-31, 3 курс, кафедра информационных систем, практика в ООО «ТехноСофт» с 29 июня по 12 июля, тема — разработка модуля учёта заявок.
Claude уточнит, чего не хватает, и пришлёт готовый документ.
Вариант 2 — ChatGPT, Gemini, DeepSeek и др.
- Загрузите в чат два файла:
skills/dnevnik-praktiki/scripts/fill_diary.pyиskills/dnevnik-praktiki/assets/template.docx. - Вставьте универсальный промпт из
AI_PROMPT.mdи добавьте свои данные в свободной форме. - ИИ соберёт данные в JSON, запустит скрипт и вернёт готовый
.docx.
Вариант 3 — GigaChat (через API)
Получите
client_idиclient_secretна developers.sber.ru.Скопируйте
.env.exampleв.envи заполнитеGIGACHAT_CREDENTIALSиGIGACHAT_SCOPE.Установите зависимости и запустите:
pip install -r requirements.txt python providers/gigachat_client.pyИмпортируйте в свой скрипт:
from providers.gigachat_client import ask reply = ask("Оформи дневник практики. Я Иванов Иван...")
Вариант 4 — Яндекс GPT (через API)
Создайте сервисный аккаунт в Yandex Cloud с ролью
ai.languageModels.user.Скопируйте
.env.exampleв.envи заполнитеYANDEX_FOLDER_IDиYANDEX_API_KEY.Установите зависимости и запустите:
pip install -r requirements.txt python providers/yandex_gpt_client.pyИмпортируйте в свой скрипт:
from providers.yandex_gpt_client import ask reply = ask("Оформи дневник практики. Я Иванов Иван...")
MCP-сервер (для Claude Desktop)
mcp_server.py реализует Model Context Protocol через stdio —
подключается напрямую к Claude Desktop и даёт ему три инструмента:
| Инструмент | Что делает |
|---|---|
| fill_diary | Заполняет шаблон .docx по данным студента и возвращает путь к файлу |
| ask_gigachat | Отправляет запрос в GigaChat и возвращает ответ |
| ask_yandexgpt | Отправляет запрос в Яндекс GPT и возвращает ответ |
Подключение к Claude Desktop
Установите зависимости:
pip install -r requirements.txtЗаполните
.env(скопируйте из.env.exampleи добавьте ключи).Добавьте сервер в конфиг Claude Desktop (
~/.config/claude/claude_desktop_config.jsonна Linux/Mac,%APPDATA%\Claude\claude_desktop_config.jsonна Windows):{ "mcpServers": { "dnevnik-praktiki": { "command": "python", "args": ["/полный/путь/до/mcp_server.py"] } } }Перезапустите Claude Desktop — в интерфейсе появятся инструменты
fill_diary,ask_gigachat,ask_yandexgpt.
Пример использования
После подключения можно написать Claude:
Оформи дневник практики. Я Иванов Иван Иванович, группа ИСТ-31, 3 курс, кафедра информационных систем, практика в ООО «ТехноСофт» с 2026-06-29 по 2026-07-12, задание — разработка модуля учёта заявок.
Claude сам вызовет fill_diary и вернёт путь к готовому .docx.
Что внутри
skills/dnevnik-praktiki/
├── SKILL.md # инструкции для Claude: что спрашивать и как собирать
├── scripts/
│ └── fill_diary.py # подстановка данных в шаблон + расчёт дат плана
└── assets/
├── template.docx # шаблон ПГТУ с плейсхолдерами {{...}}
└── data_example.json # пример входных данных
AI_PROMPT.md # универсальный промпт для любого ИИ
requirements.txt # зависимости (python-docx)
tests/
└── test_fill_diary.py # автотест: генерация из примера + нет {{...}}
tools/
├── build_template.py # как из исходного дневника собран шаблон
└── template_src.docx # исходный документ-образецЗапуск скрипта вручную
pip install -r requirements.txt
python3 skills/dnevnik-praktiki/scripts/fill_diary.py data.json "Дневник_Иванов.docx"На некоторых Linux pip требует флаг
--break-system-packages. На Windows и в виртуальном окружении (venv) он не нужен.
Тесты
pip install -r requirements.txt
python3 tests/test_fill_diary.py # или: pytestПоля
| Поле | Обязательно | Описание |
|------|:----------:|----------|
| fio | да | ФИО студента полностью |
| kafedra | да | кафедра / факультет |
| spec | да | специальность с кодом |
| kurs, gruppa | да | курс и группа |
| mesto | да | место прохождения практики |
| start_date, end_date | да | сроки, формат ГГГГ-ММ-ДД |
| zadanie | да | индивидуальное задание / содержание отчёта |
| vid, tip, forma | нет | вид/тип практики, форма обучения |
| prikaz_n/date, dog_n/date, instr_vuz, instr_org | нет | если нет — в документе остаются прочерки |
План работ из 8 пунктов и распределение дат по срокам считаются автоматически — отдельно вводить не нужно.
Автопубликация на npm
При пуше git-тега вида vX.Y.Z GitHub Actions сам публикует пакет на npm
(версия берётся из тега). Workflow: .github/workflows/publish.yml.
Разовая настройка: добавь npm-токен в Secrets репозитория —
Settings → Secrets and variables → Actions → New repository secret,
имя NPM_TOKEN, значение — npm-токен с обходом 2FA (Automation или
Granular с Bypass 2FA).
Дальше цикл такой:
# поправил код, затем:
git tag v1.0.3
git push origin v1.0.3 # Actions опубликует 1.0.3 на npmЛицензия
MIT — см. LICENSE.
