chat method

  1. @override
Future<String> chat({
  1. required String apiKey,
  2. required String model,
  3. required ChatRequest request,
})
override

Multi-turn. Returns the assistant's raw text for the final turn.

Implementation

@override
Future<String> chat({
  required String apiKey,
  required String model,
  required ChatRequest request,
}) async {
  final uri = Uri.parse('$_baseUrl/models/$model:generateContent');
  final body = jsonEncode(_buildPayload(request));
  final res = await retryRequest(
    send: () => _http
        .post(
          uri,
          headers: {
            ..._authHeaders(apiKey),
            'Content-Type': 'application/json',
          },
          body: body,
        )
        .timeout(_timeout),
    providerLabel: 'Gemini',
  );
  final json = jsonDecode(res.body) as Map<String, Object?>;
  return _extractText(json);
}