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)