feat: [rd] 사운드로고/나레이션 AI 토큰 사용량 기록 추가
- RdController: 사운드로고-AI생성, 사운드로고-TTS 토큰 기록 - CmSongController: 나레이션-가사생성, 나레이션-TTS 토큰 기록 - AI 토큰 사용량 UI에 사운드로고/나레이션 카테고리 분류 추가
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Http\Controllers\Rd;
|
||||
|
||||
use App\Helpers\AiTokenHelper;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Rd\CmSong;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
@@ -114,6 +115,10 @@ public function generateLyrics(Request $request): JsonResponse
|
||||
}
|
||||
|
||||
$data = $response->json();
|
||||
|
||||
// 토큰 사용량 기록
|
||||
AiTokenHelper::saveGeminiUsage($data, 'gemini-2.5-flash', '나레이션-가사생성');
|
||||
|
||||
$text = $data['candidates'][0]['content']['parts'][0]['text'] ?? '';
|
||||
|
||||
return response()->json([
|
||||
@@ -165,6 +170,10 @@ public function generateAudio(Request $request): JsonResponse
|
||||
}
|
||||
|
||||
$data = $response->json();
|
||||
|
||||
// 토큰 사용량 기록
|
||||
AiTokenHelper::saveGeminiUsage($data, 'gemini-2.5-flash-preview-tts', '나레이션-TTS');
|
||||
|
||||
$inlineData = $data['candidates'][0]['content']['parts'][0]['inlineData'] ?? null;
|
||||
|
||||
if (! $inlineData || empty($inlineData['data'])) {
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Helpers\AiTokenHelper;
|
||||
use App\Models\HR\Employee;
|
||||
use App\Models\Rd\AiQuotation;
|
||||
use App\Models\Tenants\Department;
|
||||
@@ -438,6 +439,10 @@ public function soundLogoGenerate(Request $request): JsonResponse
|
||||
}
|
||||
|
||||
$data = $response->json();
|
||||
|
||||
// 토큰 사용량 기록
|
||||
AiTokenHelper::saveGeminiUsage($data, $model, '사운드로고-AI생성');
|
||||
|
||||
$text = $data['candidates'][0]['content']['parts'][0]['text'] ?? '';
|
||||
|
||||
// JSON 파싱 (코드블록 제거)
|
||||
@@ -510,6 +515,10 @@ public function soundLogoTts(Request $request): JsonResponse
|
||||
}
|
||||
|
||||
$data = $response->json();
|
||||
|
||||
// 토큰 사용량 기록
|
||||
AiTokenHelper::saveGeminiUsage($data, 'gemini-2.5-flash-preview-tts', '사운드로고-TTS');
|
||||
|
||||
$inlineData = $data['candidates'][0]['content']['parts'][0]['inlineData'] ?? null;
|
||||
|
||||
if (! $inlineData || empty($inlineData['data'])) {
|
||||
|
||||
@@ -230,6 +230,8 @@
|
||||
if (menuName.startsWith('회의록')) return '회의록';
|
||||
if (menuName.includes('명함')) return '명함OCR';
|
||||
if (menuName.includes('사업자등록증')) return '사업자등록증OCR';
|
||||
if (menuName.startsWith('사운드로고')) return '사운드로고';
|
||||
if (menuName.startsWith('나레이션')) return '나레이션';
|
||||
return menuName;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user