smart_reply 0.1.0 icon indicating copy to clipboard operation
smart_reply: ^0.1.0 copied to clipboard

Generate relevant replies to messages using MLKit's Smart Reply API.

smart_reply #

Generate relevant replies to messages using MLKit with an on-device model so no messages are sent to a server.

Note: this is an unofficial plugin.

How to Use #

See example for a full example of usage

import 'package:smart_reply/smart_reply.dart';

var messages = [
        text: 'Message Text',
        userId: 'abcd1234',
        isLocalUser: true,
        text: 'Message Reply',
        userId: 'wxyz1234',
        isLocalUser: false,

var suggestions = await SmartReply.getSuggestions(messages);
// ['No worries', '😞', 'No problem!']

Android Setup #

In your android/app/build.gradle, disable compression of tflite files:

android {
    // ...
    aaptOptions {
        noCompress "tflite"

Otherwise getSuggestions will throw a PlatformException

iOS Setup #


  • Xcode 11.7 or greater.
  • 64-bit architectures (x86_64 and arm64). You must limit your app to 64-bit devices only.

In Xcode, set the following values:

Build settings > Architectures:

  • Set to arm64 only. (click Other -> + and than enter arm64)

Build settings > Valid architectures:

  • Set to arm64 only.


  • Set UIRequiredDeviceCapabilities to arm64 only.

You also have to set the iOS Deployment Target to at least 8.0.

Key capabilities #

  • The Smart Reply model generates reply suggestions based on the full context of a conversation, not just a single message. This means the suggestions are more helpful to your users.
  • The on-device model generates replies quickly and doesn't require you to send users' messages to a remote server.

Limitations #

  • Smart Reply is intended for casual conversations in consumer apps. Reply suggestions might not be appropriate for other contexts or audiences.
  • Currently, only English is supported. The model automatically identifies the language being used and only provides suggestions when it's English.

How the model works #

  • The model uses up to 10 of the most recent messages from a conversation history to generate reply suggestions.
  • It detects the language of the conversation and only attempts to provide responses when the language is determined to be English.
  • The model compares the messages against a list of sensitive topics and won’t provide suggestions when it detects a sensitive topic.
  • If the language is determined to be English and no sensitive topics are detected, the model provides up to three suggested responses. The number of responses depends on how many meet a sufficient level of confidence based on the input to the model.

Provide feedback #

  • Due to the complexity of natural language processing, the suggestions provided by the model may not be appropriate for all contexts or audiences. If you encounter inappropriate reply suggestions, reach out to ML Kit support. Your feedback helps to improve the model and the filters for sensitive topics.

Example results #

Input #

TimestampUser IDLocal User?Message
Thu Feb 21 13:13:39 PST 2019trueare you on your way?
Thu Feb 21 13:15:03 PST 2019FRIEND0falseRunning late, sorry!

Suggested replies #

Suggestion #1Suggestion #2Suggestion #3
No worries😞No problem!
pub points


verified publisher

Generate relevant replies to messages using MLKit's Smart Reply API.

Repository (GitHub)
View/report issues


API reference


Icon for licenses.MIT (LICENSE)




Packages that depend on smart_reply