Skip to content

Instantly share code, notes, and snippets.

@sergkh
Last active October 31, 2025 08:34
Show Gist options
  • Save sergkh/40f021e542c851d73455b71a0cfb7637 to your computer and use it in GitHub Desktop.
Save sergkh/40f021e542c851d73455b71a0cfb7637 to your computer and use it in GitHub Desktop.
Дурна методичка
#!/usr/bin/env python3
# Необхідно розмістити цей скрипт у папці, де знаходяться файли .txt з кожною з лекцій, які потрібно обробити.
# Для роботи з ChatGPT необхідно встановити утиліту https://github.com/kardolus/chatgpt-cli і задати токен $OPENAI_API_KEY.
import subprocess
from pathlib import Path
import re
print("Введіть назву дисципліни:")
course = input()
prompts = [
f"придумай ключові слова та терміни до цієї лекції з дисципліни {course}. виведи тільки ключові слова та терміни без нумерації й більш нічого",
f"придумай 15 теоретичних питань для самостійної роботи студентів з дисципліни {course}, які будуть дотичні до цієї лекції але бажано не присутні в ній. виведи тільки питання без нумерації й більш нічого",
f"зроби 15 тем рефератів що відносяться до тем цієї лекції з дисципліни {course}. виведи тільки теми без нумерації й більш нічого",
f"зроби 20 тестових завдань на 4 варіанти відповіді а,б,в,г по цій лекції з дисципліни {course}. виведи тільки тести без нумерації й більш нічого",
f"зроби 20 запитань без варіантів відповіді по цій лекції з дисципліни {course}. виведи тільки запитання без нумерації й більш нічого"
]
files = list(Path('.').glob('*.txt'))
count = len(files)
for fpath in files:
print(f"Обробляємо '{fpath.name}' ({files.index(fpath) + 1}/{count})")
out_path = fpath.with_suffix(fpath.suffix + '.out')
with open(out_path, 'a', encoding='utf-8') as fout:
for prompt in prompts:
fout.write(f"\n## {prompt}\n\n")
result = subprocess.run(
["chatgpt", prompt],
input=fpath.read_text(encoding='utf-8'),
text=True,
capture_output=True
)
# Видаляє зайві порожні рядки, які любить вставляти ChatGPT
out = re.sub(r'\n\s*\n', '\n', result.stdout)
fout.write(out)
fout.write("\n\n")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment