50 lines
1.4 KiB
PHP
50 lines
1.4 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace App\Http\Controllers\Api;
|
||
|
|
|
||
|
|
use App\Http\Controllers\Controller;
|
||
|
|
use Illuminate\Http\JsonResponse;
|
||
|
|
use Illuminate\Http\Request;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Gemini API Controller
|
||
|
|
*
|
||
|
|
* Google Gemini Live API 연동을 위한 API 키 제공 컨트롤러
|
||
|
|
* SAM AI 음성 어시스턴트에서 사용
|
||
|
|
*/
|
||
|
|
class GeminiController extends Controller
|
||
|
|
{
|
||
|
|
/**
|
||
|
|
* Gemini API 키 조회
|
||
|
|
*
|
||
|
|
* 인증된 사용자에게만 API 키를 제공합니다.
|
||
|
|
* .env 파일의 GEMINI_API_KEY 환경변수를 사용합니다.
|
||
|
|
*/
|
||
|
|
public function getApiKey(Request $request): JsonResponse
|
||
|
|
{
|
||
|
|
// 환경변수에서 API 키 조회
|
||
|
|
$apiKey = config('services.gemini.api_key');
|
||
|
|
|
||
|
|
if (empty($apiKey)) {
|
||
|
|
return response()->json([
|
||
|
|
'success' => false,
|
||
|
|
'error' => 'Gemini API 키가 설정되지 않았습니다. .env 파일에 GEMINI_API_KEY를 설정해주세요.',
|
||
|
|
], 500);
|
||
|
|
}
|
||
|
|
|
||
|
|
// API 키 유효성 검사 (최소 길이)
|
||
|
|
if (strlen($apiKey) < 20) {
|
||
|
|
return response()->json([
|
||
|
|
'success' => false,
|
||
|
|
'error' => '유효하지 않은 Gemini API 키입니다.',
|
||
|
|
], 500);
|
||
|
|
}
|
||
|
|
|
||
|
|
return response()->json([
|
||
|
|
'success' => true,
|
||
|
|
'apiKey' => $apiKey,
|
||
|
|
'projectId' => config('services.gemini.project_id', 'codebridge-chatbot'),
|
||
|
|
]);
|
||
|
|
}
|
||
|
|
}
|