zenivan's picture
олная очистка: удалены все бинарные файлы
58a9b80
Raw
History Blame Contribute Delete
6.53 kB
import os # Импортируем модуль для работы с переменными окружения
import asyncio # Импортируем модуль для поддержки асинхронного программирования
from dotenv import load_dotenv # Импортируем функцию для загрузки переменных окружения из файла .env
from openai import OpenAI
# Загружаем переменные окружения из файла .env
load_dotenv()
api_key=os.getenv("API_KEY_openai")
async def main():
client = OpenAI(api_key=api_key)
# Пример параметров для запроса
params = {
"нарушение": "ОНР", # Тип речевого нарушения
"цель_занятия": "Развитие фонематического слуха", # Цель занятия
"месяц": "апрель", # Месяц проведения занятия
"инвентарь": "зеркало, карточки с изображениями", # Необходимый инвентарь
"количество_детей": 1, # Количество детей на занятии
"длительность_занятия": 30, # Длительность занятия в минутах
"наличие_ДЗ": False, # Наличие домашнего задания (True или False)
"загруженные_материалы": None, # Путь к загруженным материалам, если есть
"разрешен_web_search": True # Разрешение на использование веб-поиска
}
# Формируем текст запроса (промпт) на основе предоставленных параметров
prompt = f"""
Ты — эксперт в области логопедии, специализирующийся на разработке занятий для детей с речевыми нарушениями. На вход ты получаешь следующие параметры:
- **Нарушение:** {params['нарушение']}
- **Цель занятия:** {params['цель_занятия']}
- **Месяц:** {params['месяц']}
- **Инвентарь:** {params['инвентарь']}
- **Количество детей:** {params['количество_детей']}
- **Длительность занятия:** {params['длительность_занятия']}
- **Наличие домашнего задания:** {params['наличие_ДЗ']}
- **Загруженные материалы (если есть):** {params['загруженные_материалы']}
- **Разрешен web search:** {params['разрешен_web_search']}
На основе этих параметров составь конспект занятия, который должен включать:
1. **Тема занятия, цель и задачи:** Четко сформулируй тему занятия, основную цель и конкретные задачи, которые необходимо решить.
2. **Необходимые материалы:** Перечисли все материалы и инвентарь, необходимые для проведения занятия.
3. **Ход занятия:** Разбей занятие на логически последовательные этапы.
4. **Встроенные в ход занятия упражнения с достаточным количеством материала:** Приведи конкретные упражнения с подробными примерами.
ВАЖНО: если разрешен web search: True, подбери примеры для упражнений из релевантных источников. Обязательно интегрируй ссылки на найденные источники в текст ответа.
5. **Использование загруженных файлов (если есть):** Если логопед загрузил файлы с логопедическими материалами, используй их для поиска наиболее релевантных фрагментов и интегрируй их в ход занятия.
6. **Домашнее задание (если True):** Если параметр 'наличие_ДЗ' указывает на наличие домашнего задания, предложи конкретное домашнее задание, соответствующее теме занятия.
"""
# Определяем список инструментов, которые будут использоваться в запросе
tools = []
tool_choice = None # По умолчанию tool_choice отсутствует
if params['разрешен_web_search']:
tools.append({
"type": "web_search_preview",
"search_context_size": "medium",
"user_location": {
"type": "approximate",
"country": "RU"
}
})
tool_choice = {"type": "web_search_preview"} # Устанавливаем tool_choice только если web search включен
if params['загруженные_материалы']:
tools.append({"type": "file_search"}) # Добавляем инструмент поиска по файлам, если материалы загружены
# Отправляем запрос к API OpenAI с использованием эндпоинта responses
response = client.responses.create(
model="gpt-4o-mini", # Используемая модель
input=prompt, # Текст запроса
tools=tools if tools else None, # Включаем инструменты, если они были определены
tool_choice=tool_choice, # Передаем tool_choice только если он определен
max_output_tokens=1200 # Максимальное количество токенов в ответе
)
# Выводим результат в консоль
print(response.output_text)
# Запускаем асинхронную функцию
asyncio.run(main())