getAiImageFile static method

Future<File> getAiImageFile({
  1. required AiTextClient aiClient,
  2. String? prompt,
  3. Duration timeout = const Duration(seconds: 25),
})

Implementation

static Future<File> getAiImageFile({
  required AiTextClient aiClient,
  String? prompt,
  Duration timeout = const Duration(seconds: 25),
}) async {
  final url = await aiClient.generateImageUrl(
      prompt: prompt ?? 'A modern office workspace with natural light');
  final resp = await http.get(url).timeout(timeout);

  if (resp.statusCode >= 200 && resp.statusCode < 300) {
    final tempDir = await getTemporaryDirectory();
    final file = File(
        '${tempDir.path}/ai_${DateTime.now().millisecondsSinceEpoch}.jpg');
    await file.writeAsBytes(resp.bodyBytes);
    return file;
  } else {
    return getFakeImageFile();
  }
}