Google's ML Kit GenAI Prompt for Flutter

Pub Version analysis Star on Github License: MIT

A Flutter plugin to use Google's ML Kit GenAI Prompt API to generate text content based on custom prompts.

PLEASE READ THIS before continuing or posting a new issue:

  • Google's ML Kit was build only for mobile platforms: iOS and Android apps. Web or any other platform is not supported, you can request support for those platform to Google in their repo.

  • This plugin is not sponsored or maintained by Google. The authors are developers excited about Machine Learning that wanted to expose Google's native APIs to Flutter.

  • Google's ML Kit APIs are only developed natively for iOS and Android. This plugin uses Flutter Platform Channels as explained here.

Requirements

Android

  • minSdkVersion: 26
  • targetSdkVersion: 35
  • compileSdkVersion: 35

Note: This API is currently only available on Android. iOS support may be added in the future.

Usage

Prompt

Create an instance of Prompt

final prompt = Prompt();

Check feature status

final status = await prompt.checkFeatureStatus();
if (status == FeatureStatus.downloadable) {
  await prompt.downloadFeature(
    onDownloadCompleted: () {
      // Start prompt generation
    },
  );
} else if (status == FeatureStatus.available) {
  // Start prompt generation
}

Generate text from prompt

final text = "Write a 3 sentence story about a magical dog.";
final response = await prompt.runInference(text);
print('Response: $response');

Generate text from multimodal prompt (image + text)

final imageData = {
  'type': 'file',
  'path': '/path/to/image.jpg',
};
final text = "What's in this image?";
final response = await prompt.runInference(text, imageData: imageData);
print('Response: $response');

Release resources with close()

prompt.close();

Example app

Find the example app here.

Contributing

Contributions are welcome. In case of any problems look at existing issues, if you cannot find anything related to your problem then open an issue. Create an issue before opening a pull request for non trivial fixes. In case of trivial fixes open a pull request directly.