generateResponse method
Implementation
@override
Future<String> generateResponse(String prompt,
{List<String>? context}) async {
final fullPrompt =
context != null ? '${context.join('\n')}\n\n$prompt' : prompt;
final url = Uri.parse(
'https://generativelanguage.googleapis.com/v1beta/models/$modelName:generateContent');
final response = await http.post(
url,
headers: {
'Content-Type': 'application/json',
'x-goog-api-key': apiKey,
},
body: jsonEncode({
'contents': [
{
'parts': [
{'text': fullPrompt}
]
}
]
}),
);
if (response.statusCode == 200) {
final data = jsonDecode(response.body);
try {
return data['candidates'][0]['content']['parts'][0]['text'] as String;
} catch (e) {
return 'Error parsing Gemini response: $e';
}
} else {
throw Exception(
'Failed to generate response from Gemini: ${response.body}');
}
}