37 lines
1.1 KiB
PHP
37 lines
1.1 KiB
PHP
<?php
|
||
|
||
namespace App\Http\Controllers;
|
||
|
||
use App\Services\AiSuggestorService;
|
||
use Illuminate\Http\Request;
|
||
|
||
class AiController extends Controller
|
||
{
|
||
public function suggest(Request $request)
|
||
{
|
||
$validated = $request->validate([
|
||
'task_id' => 'nullable|integer',
|
||
'custom_prompt' => 'nullable|string',
|
||
'budget' => 'nullable|numeric|min:0',
|
||
]);
|
||
|
||
try {
|
||
$service = new AiSuggestorService();
|
||
$result = $service->suggest(
|
||
$request->input('task_id'), // ✅ Безопасно: вернёт null, если нет
|
||
$request->input('custom_prompt'),
|
||
$request->input('budget')
|
||
);
|
||
|
||
return response()->json([
|
||
'message' => 'Сборка успешно сгенерирована ИИ.',
|
||
'build' => $result['build']->load('components'),
|
||
], 201);
|
||
} catch (\Exception $e) {
|
||
return response()->json([
|
||
'message' => 'Не удалось сгенерировать сборку.',
|
||
'error' => $e->getMessage()
|
||
], 500);
|
||
}
|
||
}
|
||
} |