Spaces:
Paused
Paused
| Текущее состояние | |
| Цель прототипа: | |
| Показать, как AI генерирует план урока на основе: | |
| Загруженного учебника (PDF). | |
| Параметров от учителя (тема урока, метод, количество учеников и т.д.). | |
| Технологии: | |
| Backend: Python + Responses API (OpenAI). | |
| Frontend: Streamlit (для быстрого создания веб-интерфейса). | |
| Обработка файлов: Responses API (загрузка и поиск в PDF). | |
| Упрощения: | |
| Работаем только с текстом (пока не обрабатываем картинки/аудио/видео). | |
| Используем один учебник для тестирования. | |
| План работы над прототипом | |
| 1. Подготовка (1-2 часа) | |
| Убедитесь, что у вас есть: | |
| API-ключ от OpenAI. | |
| Установленный Python (рекомендую версию 3.8+). | |
| Установленные библиотеки: | |
| bash | |
| Copy | |
| pip install openai streamlit | |
| Пример PDF учебника для тестирования. | |
| 2. Создание веб-интерфейса (2-3 часа) | |
| Используем Streamlit для создания простого интерфейса: | |
| Поле для загрузки PDF. | |
| Поля для ввода параметров урока (тема, метод, количество учеников). | |
| Кнопка для генерации плана урока. | |
| Пример кода: | |
| python | |
| Copy | |
| import streamlit as st | |
| import openai | |
| # Настройка OpenAI API | |
| openai.api_key = "ваш API-ключ" | |
| # Заголовок приложения | |
| st.title("AI-ассистент учителя") | |
| # Параметры урока | |
| lesson_topic = st.text_input("Тема урока") | |
| class_size = st.number_input("Количество учеников", min_value=1) | |
| method = st.selectbox("Метод обучения", ["Test-Teach-Test", "Проектный", "Лекция"]) | |
| # Загрузка PDF | |
| uploaded_file = st.file_uploader("Загрузите учебник (PDF)", type="pdf") | |
| if uploaded_file and lesson_topic: | |
| # Сохраняем PDF временно | |
| with open("temp.pdf", "wb") as f: | |
| f.write(uploaded_file.getvalue()) | |
| # Загрузка файла в OpenAI | |
| file = openai.File.create( | |
| file=open("temp.pdf", "rb"), | |
| purpose="search" | |
| ) | |
| # Поиск в файле | |
| search_response = openai.File.search( | |
| file_id=file.id, | |
| query=lesson_topic | |
| ) | |
| # Генерация плана урока | |
| prompt = f""" | |
| Создай план урока по теме: {lesson_topic}. | |
| Метод: {method}. | |
| Количество учеников: {class_size}. | |
| Материалы учебника: {search_response.data[0].text} | |
| Формат плана: | |
| - Цели урока | |
| - Необходимые материалы | |
| - Шаги урока с таймингом | |
| - Домашнее задание | |
| """ | |
| lesson_plan = openai.ChatCompletion.create( | |
| model="gpt-4", | |
| messages=[{"role": "user", "content": prompt}] | |
| ) | |
| # Вывод результата | |
| st.write("**План урока:**") | |
| st.markdown(lesson_plan.choices[0].message.content) | |
| 3. Тестирование (1-2 часа) | |
| Загрузите PDF учебника. | |
| Введите параметры урока (например, тема "Фотосинтез", метод "Test-Teach-Test", 25 учеников). | |
| Проверьте, генерирует ли AI корректный план урока. | |
| 4. Улучшение прототипа (3-4 часа) | |
| Обработка ошибок: | |
| Добавьте проверку на пустые поля. | |
| Обработайте случаи, когда в учебнике нет информации по теме. | |
| Оптимизация запросов: | |
| Ограничьте объем текста, передаваемого в промпт (например, первые 3000 символов). | |
| Улучшение интерфейса: | |
| Добавьте возможность выбора раздела учебника. | |
| Отобразите найденные фрагменты текста перед генерацией плана. | |
| Логирование: | |
| Сохраняйте запросы и ответы в лог-файл для анализа. | |
| 5. Демонстрация и обратная связь (2-3 часа) | |
| Покажите прототип учителям или коллегам. | |
| Соберите обратную связь: | |
| Удобен ли интерфейс? | |
| Соответствуют ли планы уроков ожиданиям? | |
| Какие функции нужно добавить? | |
| 6. Дальнейшие шаги | |
| После успешного тестирования MVP: | |
| Добавьте обработку картинок/аудио/видео (если нужно). | |
| Интегрируйте веб-поиск для поиска дополнительных материалов. | |
| Расширьте функциональность: | |
| Сохранение планов уроков. | |
| Редактирование сгенерированных планов. | |
| Оптимизируйте производительность: | |
| Кэшируйте результаты поиска. | |
| Используйте асинхронные запросы. |