исправь код: import os
import re
from PyPDF2 import PdfReader  # Используем PdfReader вместо PdfFileReader
from pathlib import Path

def extract_text_from_pdf(filepath):
    try:
        with open(filepath, 'rb') as file:
            reader = PdfReader(file)
            text = ""
            for page in reader.pages:
                text += page.extract_text()
            return text
    except Exception as e:
        print(f"Ошибка при извлечении текста из PDF: {e}")
        return None

def split_text_into_paragraphs(text):
    paragraphs = re.split(r'\n\s*\n', text)  # Разделение по двум и более пустым строкам
    paragraphs = [p.strip() for p in paragraphs if p.strip()]  # Удаление пустых строк
    return paragraphs

def get_heading_from_paragraph(paragraph, word_limit=5):
    # Взять первые несколько слов из абзаца для заголовка
    words = paragraph.split()
    heading = ' '.join(words[:word_limit])
    return heading.strip()

def generate_chatgpt_prompts(paragraphs):
    prompts = {}
    for i, paragraph in enumerate(paragraphs):
        heading = get_heading_from_paragraph(paragraph)
        prompt_text = paragraph.strip()
        if i == 0:
            if 'карты' in heading.lower():
                prompt = f"Опиши формат данных для карт в игре Babylon5 CCG, используя этот текст: {prompt_text}"
            elif 'правила' in heading.lower():
                prompt = f"Используя этот текст, обобщи и опиши основные правила игры Babylon5 CCG: {prompt_text}"
            else:
                prompt = f"Создай соответствующий программный код на Python, используя этот текст: {prompt_text}"
        else:
            if 'карты' in heading.lower():
                prompt = f"Добавь новый функционал, который описывает формат данных для карт в игре Babylon5 CCG, используя этот текст: {prompt_text}"
            elif 'правила' in heading.lower():
                prompt = f"Добавь новый функционал для описания основных правил игры Babylon5 CCG, используя этот текст: {prompt_text}"
            else:
                prompt = f"Добавь новый функционал в программный код на Python, используя этот текст: {prompt_text}"
        cleaned_heading = clean_filename(f"{i+1}{heading}")
        prompts[cleaned_heading] = prompt
    return prompts

def clean_filename(filename):
    # Заменяем недопустимые символы и убираем переводы строк для имен файлов
    return re.sub(r'[/*?:"<>|\n]', "", filename).strip()

def save_prompts_to_files(prompts, output_dir):
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)

    for section, prompt in prompts.items():
        filename = f"{section[:50]}.txt"  # Ограничиваем длину имени файла
        filepath = os.path.join(output_dir, filename)
        try:
            with open(filepath, 'w', encoding='utf-8') as f:
                f.write(prompt)
        except OSError as e:
            print(f"Ошибка при сохранении файла {filepath}: {e}")

if __name__ == "__main__":
    filepath = Path("game_rules.pdf")  # Замените на путь к вашему PDF файлу
    pdf_text = extract_text_from_pdf(filepath)
    if pdf_text:
        paragraphs = split_text_into_paragraphs(pdf_text)
        chatgpt_prompts = generate_chatgpt_prompts(paragraphs)
        save_prompts_to_files(chatgpt_prompts, "prompts")
        print("Промпты успешно сохранены в папку 'prompts'.")
    else:
        print("Не удалось извлечь текст из PDF.") не все абзацы из файла корректно обрабатываются, чтото пропускается, надо этого избежать, содержимое каждого файла должно соответствовать заголовку