generateResponse method

  1. @override
Future<String> generateResponse(
  1. String prompt, {
  2. List<String>? context,
})
override

Implementation

@override
Future<String> generateResponse(String prompt,
    {List<String>? context}) async {
  final fullPrompt =
      context != null ? '${context.join('\n')}\n\n$prompt' : prompt;

  final response = await http.post(
    Uri.parse('https://api.x.ai/v1/chat/completions'),
    headers: {
      'Content-Type': 'application/json',
      'Authorization': 'Bearer $apiKey',
    },
    body: jsonEncode({
      'model': modelName,
      'messages': [
        {'role': 'user', 'content': fullPrompt}
      ],
    }),
  );

  if (response.statusCode == 200) {
    final data = jsonDecode(response.body);
    return data['choices'][0]['message']['content'] as String;
  } else {
    throw Exception(
        'Failed to generate response from Grok: ${response.body}');
  }
}