Загрузка данных


import bpy
import urllib.request
import json

# Твои данные из curl
API_URL = "https://birdsubss.lol/v1/chat/completions"
API_KEY = "sk-cvc-fb48ef204e20036bc40de4a94fe895d2fb7a00934aa1ad3859cca7a60a0db210"
MODEL_NAME = "gpt-5.4-mini"

# ПИШИ СВОЙ ЗАПРОС СЮДА (Что ИИ должен сделать в Blender):
PROMPT = "Напиши Python скрипт для Blender, который создаст багажную дорожку аэропорта длиной 15 метров и добавит на неё модификатор Wave, чтобы она двигалась."

def ask_ai(prompt):
    headers = {
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json"
    }
    data = {
        "model": MODEL_NAME,
        "messages": [
            {"role": "system", "content": "You are a Blender Python expert. Return ONLY raw executable Python code, no markdown, no explanations, no ```python wrappers."},
            {"role": "user", "content": prompt}
        ]
    }
    
    req = urllib.request.Request(API_URL, data=json.dumps(data).encode('utf-8'), headers=headers)
    try:
        with urllib.request.urlopen(req) as response:
            res = json.loads(response.read().decode('utf-8'))
            ai_code = res['choices'][0]['message']['content'].strip()
            # Очистка от случайных markdown-кавычек, если ИИ их добавит
            if ai_code.startswith("```"):
                ai_code = ai_code.split("```")[1]
                if ai_code.startswith("python"):
                    ai_code = ai_code[6:]
            return ai_code
    except Exception as e:
        print(f"Ошибка запроса: {e}")
        return None

# Запуск
print("Запрос к ИИ...")
generated_code = ask_ai(PROMPT)

if generated_code:
    print("Код получен! Выполняю в Blender...")
    try:
        exec(generated_code)
        print("Объект успешно создан и анимирован!")
    except Exception as e:
        print(f"Ошибка выполнения кода ИИ: {e}")
        print("Сгенерированный код был:\n", generated_code)