voxelSize: Float, modelSize: Float) -> String { """ あなた プロ 3Dモデラーです。 複数 ボクセル(サイズ: \(voxelSize)x\(voxelSize)x\(voxelSize))を3D空間内に配置して、\(modelName) ボクセルモデル(サイズ: \(modelSize)x\(modelSize)x\(modelSize))を作ってください 表面 ボクセル みを、以下 フォーマット JSON文字列で出力してください {"voxels":[{"position":{"x":1.0,"y":2.0,"z":3.0}, "color":{"red":255,"green":0,"blue":0}}, ...]} """ } private func generateVoxelModel(prompt: String) async -> VoxelModel? { // デフォルト 60秒でタイムアウトになりやすかった で 10分に設定 let configuration = OpenAI.Configuration(token: yourOpenAIAPIKey, timeoutInterval: 600) let openAI = OpenAI(configuration: configuration) guard let message = ChatQuery.ChatCompletionMessageParam(role: .user, content: prompt) else { return nil } let query = ChatQuery(messages: [message], model: .gpt5) guard let result = try? await openAI.chats(query: query), let jsonStr = result.choices.first?.message.content, let jsonData = jsonStr.data(using: .utf8) else { return nil } return try? JSONDecoder().decode(VoxelModel.self, from: jsonData) } }