21 lines
958 B
PHP
21 lines
958 B
PHP
<?php
|
|
|
|
namespace Modules\AI\Http\Controllers;
|
|
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Routing\Controller;
|
|
use Modules\AI\Contracts\AIManager;
|
|
use Modules\AI\Models\AIPrompt;
|
|
|
|
final class AIApiController extends Controller
|
|
{
|
|
public function execute(Request $request, AIPrompt $prompt, AIManager $manager): JsonResponse
|
|
{
|
|
$data = $request->validate(['variables' => 'nullable|array', 'provider_id' => 'nullable|integer', 'model' => 'nullable|string|max:150']);
|
|
$execution = $manager->execute($prompt, $data['variables'] ?? [], array_filter(['provider_id' => $data['provider_id'] ?? null, 'model' => $data['model'] ?? null]));
|
|
|
|
return response()->json(['data' => ['execution_id' => $execution->execution_id, 'status' => $execution->status, 'output' => $execution->output, 'usage' => $execution->usage, 'error' => $execution->error]], $execution->status === 'completed' ? 200 : 422);
|
|
}
|
|
}
|