getTextAndDocumentCompletion method

  1. @override
Future<String?> getTextAndDocumentCompletion(
  1. String text,
  2. List<Uint8List> files
)
override

Implementation

@override
Future<String?> getTextAndDocumentCompletion(
  String text,
  List<Uint8List> files,
) async {
  bool initComplete = await initialize();
  if (!initComplete) {
    return Future.value(null);
  }

  Completer<String?> c = Completer();

  final gemini = Gemini.instance;

  gemini
      .textAndImage(
    text: text,
    images: files,
  )
      .then(
    (value) {
      if (value?.content?.parts?.last.text == null) {
        c.complete(null);
        return;
      }

      c.complete(value?.content?.parts?.last.text);
    },
  ).catchError(
    (e) {
      setStatusBasedOnError(e);
      c.completeError(e);
    },
  );

  return c.future;
}