Nano Banana Pro
Agent skill for nano-banana-pro
Этот файл содержит подробные инструкции для GitHub Copilot по разработке проекта **Manimify2Explain**. Наш проект предназначен для автоматизации преобразования PDF-документов (учебников, конспектов и технических материалов) в анимированные сцены с использованием библиотеки Manim. Ниже приведены поша
Sign in to like and favorite skills
Этот файл содержит подробные инструкции для GitHub Copilot по разработке проекта Manimify2Explain. Наш проект предназначен для автоматизации преобразования PDF-документов (учебников, конспектов и технических материалов) в анимированные сцены с использованием библиотеки Manim. Ниже приведены пошаговые указания для генерации каждого модуля.
pdf_extractor.py)Задача:
Создать модуль для извлечения текста и изображений из PDF-файлов с помощью библиотеки PyMuPDF.
Инструкции для Copilot:
fitz (PyMuPDF).extract_text(pdf_path: str) -> str:
extract_images(pdf_path: str) -> list:
page.get_images(full=True)).doc.extract_image(xref)) и сохраните его в список.Пример запроса Copilot:
Напиши модуль pdf_extractor.py, использующий PyMuPDF. Он должен содержать функции: - extract_text(pdf_path: str) -> str: открывает PDF, извлекает текст со всех страниц и объединяет его. - extract_images(pdf_path: str) -> list: проходит по всем страницам, извлекает изображения и возвращает их список. Не забудь добавить необходимые комментарии и docstrings.
table_processor.py)Задача:
Создать модуль, который с помощью OpenCV и pytesseract обрабатывает изображения для извлечения текста из таблиц.
Инструкции для Copilot:
cv2 и pytesseract.ocr_table(image):
--oem 3 --psm 6) для извлечения текста.Пример запроса Copilot:
Напиши модуль table_processor.py с функцией ocr_table(image), которая: - Принимает изображение (numpy array). - Преобразует изображение в серый формат. - Применяет бинаризацию с порогом 150. - Использует pytesseract с конфигом --oem 3 --psm 6. - Возвращает извлечённый текст.
graph_processor.py)Задача:
Разработать модуль для анализа изображений, содержащих графы или диаграммы, и преобразования их в структуры данных с помощью NetworkX.
Инструкции для Copilot:
cv2 и networkx (как nx).extract_graph_structure(image):
cv2.findContours.nx.Graph() и добавьте узлы с координатами.Пример запроса Copilot:
Напиши модуль graph_processor.py с функцией extract_graph_structure(image), которая: - Конвертирует изображение в серый формат. - Применяет бинаризацию. - Находит контуры с помощью cv2.findContours. - Отфильтровывает мелкие контуры (площадь меньше 100). - Вычисляет центр каждого значимого контура. - Создает NetworkX граф и добавляет узлы с координатами центра. - Возвращает объект графа.
manim_script_generator.py)Задача:
Создать модуль, который генерирует Python-скрипт для Manim на основе извлечённого текста, данных таблиц и графа.
Инструкции для Copilot:
generate_manim_script(text: str, table_text: str, graph) -> None.from manim import *.AutoScene(Scene) c методом construct.Text для отображения текста и анимацию его появления.table_text, добавьте аналогичный объект для таблицы.Graph из Manim для визуализации.generated_manim_scene.py.Пример запроса Copilot:
Напиши модуль manim_script_generator.py с функцией generate_manim_script(text: str, table_text: str, graph) -> None, которая: - Формирует список строк с кодом Manim-скрипта. - Включает импорт from manim import * - Определяет класс AutoScene(Scene) с методом construct, который: - Если задан text, создает объект Text и анимирует его появление. - Если задан table_text, создает и анимирует текстовый объект. - Если граф доступен, создает словарь позиций узлов и генерирует объект Graph. - Записывает итоговый код в файл generated_manim_scene.py. Не забудь добавить необходимые комментарии.
main.py)Задача:
Создать модуль, который объединяет все остальные компоненты и реализует общий пайплайн обработки PDF и генерации Manim-сцены.
Инструкции для Copilot:
pdf_extractor.py, table_processor.py, graph_processor.py и manim_script_generator.py.main(pdf_path: str):
Пример запроса Copilot:
Напиши файл main.py, который: - Импортирует extract_text и extract_images из pdf_extractor.py, - Импортирует ocr_table из table_processor.py, - Импортирует extract_graph_structure из graph_processor.py, - Импортирует generate_manim_script из manim_script_generator.py, - Определяет функцию main(pdf_path: str), которая: - Извлекает текст и изображения из PDF, - Для каждого изображения конвертирует байты в cv2-изображение, - Выполняет ocr_table и extract_graph_structure, - Накопляет полученные данные, - Вызывает generate_manim_script с извлечённым текстом, таблицами и графом. Не забудь добавить комментарии и обработку ошибок.
Задача:
При желании расширить интерфейс проекта, добавьте модуль или расширьте main.py для интеграции с функционалом cline-yandex — это позволит управлять проектом через интерактивный CLI.
Инструкции для Copilot:
Пример запроса Copilot:
Напиши дополнительный модуль или расширь main.py для интеграции с cline-yandex, чтобы: - Инициализировать CLI-сессию, - Предоставлять команды для управления процессом (например, запуск извлечения, просмотр логов), - Выводить подсказки и логи, - Документировать, как использовать эти команды.
Документация и комментарии:
Во всех модулях используйте понятные docstrings и комментарии для облегчения сопровождения кода.
Обработка ошибок:
Добавьте необходимую обработку исключений, чтобы пользователь получил информативные сообщения при возникновении ошибок.
Тестирование:
Создайте тесты для ключевых функций, чтобы убедиться, что модули работают корректно при разных входных данных.
Единый стиль кода:
Все файлы должны придерживаться единого стиля кодирования (например, PEP8) для повышения читаемости и удобства поддержки.