import 'dart:convert'; import 'package:flutter/foundation.dart'; import 'package:http/http.dart' as http; class GeminiService { static const String apiKey = 'AIzaSyCGpxG4Jn_eXvFEfANnCLPTpVimEzQZcaM'; // Gunakan API key yang sama dengan fitur deteksi static const String baseUrl = 'https://generativelanguage.googleapis.com/v1beta/models'; static const String model = 'gemini-1.5-flash'; // Model yang lebih ringan dan cepat /// Metode untuk bertanya ke Gemini API static Future askGemini(String prompt) async { try { final requestBody = { 'contents': [ { 'parts': [ {'text': prompt}, ], }, ], 'generationConfig': { 'temperature': 0.1, // Lebih deterministik untuk jawaban ya/tidak 'topK': 1, 'topP': 1, 'maxOutputTokens': 50, // Cukup untuk jawaban pendek }, }; final response = await http.post( Uri.parse('$baseUrl/$model:generateContent?key=$apiKey'), headers: {'Content-Type': 'application/json'}, body: jsonEncode(requestBody), ); if (response.statusCode != 200) { debugPrint( 'Gemini API error: ${response.statusCode} - ${response.body}', ); return 'ya'; // Fallback ke positif jika terjadi error } final responseData = jsonDecode(response.body); if (responseData['candidates'] == null || responseData['candidates'].isEmpty) { return 'ya'; // Fallback ke positif jika tidak ada respons } final generatedText = responseData['candidates'][0]['content']['parts'][0]['text']; return generatedText.trim().toLowerCase(); } catch (e) { debugPrint('Error in Gemini service: $e'); return 'ya'; // Fallback ke positif jika terjadi exception } } }