taravel/app/Http/Controllers/Api/Frontend/PromptController.php
2024-11-13 16:26:27 +08:00

47 lines
1.3 KiB
PHP

<?php
namespace App\Http\Controllers\Api\Frontend;
use App\Http\Controllers\Controller;
use App\Http\Requests\SendPromptRequest;
use App\Services\AiProviderService;
use Illuminate\Http\JsonResponse;
class PromptController extends Controller
{
private AiProviderService $ai_provider_service;
public function __construct(AiProviderService $ai_provider_service)
{
$this->ai_provider_service = $ai_provider_service;
}
/**
* 處理並發送提示到活躍的 AI 提供者
*
* @param SendPromptRequest $request
* @return JsonResponse
*/
public function sendPrompt(SendPromptRequest $request): JsonResponse
{
try {
$response = $this->ai_provider_service->processPrompt($request->prompt);
if (!$response['success']) {
return response()->json([
'error' => $response['error'] ?? '處理提示失敗。請稍後再試。'
], 500);
}
return response()->json([
'response' => $response['response']
], 200);
} catch (\Exception $e) {
return response()->json([
'error' => '處理提示失敗。請稍後再試。',
'details' => config('app.debug') ? $e->getMessage() : null
], 500);
}
}
}