ML Kit może generować krótkie odpowiedzi na wiadomości przy użyciu modelu na urządzeniu.
Aby wygenerować inteligentne odpowiedzi, przekaż ML Kit dziennik ostatnich wiadomości w rozmowie. Jeśli ML Kit stwierdzi, że rozmowa jest prowadzona w języku angielskim i nie dotyczy potencjalnie wrażliwych tematów, wygeneruje maksymalnie 3 odpowiedzi, które możesz zaproponować użytkownikowi.
| Łączenie w pakiety | Odłączone | |
|---|---|---|
| Nazwa biblioteki | com.google.mlkit:smart-reply | com.google.android.gms:play-services-mlkit-smart-reply | 
| Implementacja | Model jest statycznie połączony z aplikacją w momencie jej tworzenia. | Model jest pobierany dynamicznie za pomocą Usług Google Play. | 
| Wpływ rozmiaru aplikacji | Wzrost rozmiaru o około 5,7 MB. | Wzrost rozmiaru o około 200 KB. | 
| Czas inicjowania | Model jest dostępny od razu. | Przed pierwszym użyciem może być konieczne poczekanie na pobranie modelu. | 
Wypróbuj
- Wypróbuj przykładową aplikację, aby zobaczyć przykład użycia tego interfejsu API.
Zanim zaczniesz
- W pliku - build.gradlena poziomie projektu dodaj repozytorium Maven firmy Google do sekcji- buildscripti- allprojects.
- Dodaj zależności dla bibliotek ML Kit na Androida do pliku Gradle na poziomie aplikacji modułu, który zwykle znajduje się w - app/build.gradle. Wybierz jedną z tych zależności w zależności od potrzeb:- Aby połączyć model z aplikacją:
 - dependencies { // ... // Use this dependency to bundle the model with your app implementation 'com.google.mlkit:smart-reply:17.0.4' }- Aby używać modelu w Usługach Google Play:
 - dependencies { // ... // Use this dependency to use the dynamically downloaded model in Google Play Services implementation 'com.google.android.gms:play-services-mlkit-smart-reply:16.0.0-beta1' }- Jeśli zdecydujesz się użyć modelu w Usługach Google Play, możesz skonfigurować aplikację tak, aby automatycznie pobierała model na urządzenie po zainstalowaniu aplikacji ze Sklepu Play. Dodając do pliku - AndroidManifest.xmlaplikacji tę deklarację:- <application ...> ... <meta-data android:name="com.google.mlkit.vision.DEPENDENCIES" android:value="smart_reply" > <!-- To use multiple models: android:value="smart_reply,model2,model3" --> </application>- Możesz też sprawdzić dostępność modelu i poprosić o pobranie za pomocą interfejsu ModuleInstallClient API w usługach Google Play. - Jeśli nie włączysz pobierania modelu w momencie instalacji lub nie poprosisz o wyraźne pobranie, model zostanie pobrany przy pierwszym uruchomieniu generatora inteligentnych odpowiedzi. Żądania wysłane przed zakończeniem pobierania nie przyniosą żadnych wyników. - 1. Tworzenie obiektu historii rozmów- Aby wygenerować inteligentne odpowiedzi, przekaż ML Kit chronologicznie uporządkowaną listę - Listobiektów- TextMessage, zaczynając od najwcześniejszego znacznika czasu.- Za każdym razem, gdy użytkownik wyśle wiadomość, dodaj ją wraz z sygnaturą czasową do historii rozmowy: - Kotlin- conversation.add(TextMessage.createForLocalUser( "heading out now", System.currentTimeMillis())) - Java- conversation.add(TextMessage.createForLocalUser( "heading out now", System.currentTimeMillis())); - Gdy użytkownik otrzyma wiadomość, dodaj ją, jej sygnaturę czasową i identyfikator użytkownika nadawcy do historii rozmowy. Identyfikator użytkownika może być dowolnym ciągiem znaków, który jednoznacznie identyfikuje nadawcę w rozmowie. Identyfikator użytkownika nie musi odpowiadać żadnym danym użytkownika ani być spójny w przypadku różnych rozmów lub wywołań generatora inteligentnych odpowiedzi. - Kotlin- conversation.add(TextMessage.createForRemoteUser( "Are you coming back soon?", System.currentTimeMillis(), userId)) - Java- conversation.add(TextMessage.createForRemoteUser( "Are you coming back soon?", System.currentTimeMillis(), userId)); - Obiekt historii rozmów wygląda tak jak w tym przykładzie: - Sygnatura czasowa - userID - isLocalUser - Wiadomość - Cz, 21 lutego 2019 r., 13:13:39 PST - prawda - Jesteś w drodze? - Thu Feb 21 13:15:03 PST 2019 - FRIEND0 - fałsz - Spóźnię się, przepraszam. - ML Kit sugeruje odpowiedzi na ostatnią wiadomość w historii rozmowy. Ostatnia wiadomość powinna pochodzić od użytkownika spoza sieci lokalnej. W przykładzie powyżej ostatnia wiadomość w wątku pochodzi od użytkownika spoza sieci lokalnej FRIEND0. Gdy przekażesz ten log do ML Kit, zasugeruje on odpowiedź na wiadomość użytkownika FRIENDO: „Running late, sorry!” (Spóźnię się, przepraszam!). - 2. Otrzymywanie odpowiedzi na wiadomości- Aby wygenerować inteligentne odpowiedzi na wiadomość, uzyskaj instancję - SmartReplyGeneratori przekaż historię rozmowy do jej metody- suggestReplies():- Kotlin- val smartReplyGenerator = SmartReply.getClient() smartReply.suggestReplies(conversation) .addOnSuccessListener { result -> if (result.getStatus() == SmartReplySuggestionResult.STATUS_NOT_SUPPORTED_LANGUAGE) { // The conversation's language isn't supported, so // the result doesn't contain any suggestions. } else if (result.getStatus() == SmartReplySuggestionResult.STATUS_SUCCESS) { // Task completed successfully // ... } } .addOnFailureListener { // Task failed with an exception // ... } - Java- SmartReplyGenerator smartReply = SmartReply.getClient(); smartReply.suggestReplies(conversation) .addOnSuccessListener(new OnSuccessListener - () { @Override public void onSuccess(SmartReplySuggestionResult result) { if (result.getStatus() == SmartReplySuggestionResult.STATUS_NOT_SUPPORTED_LANGUAGE) { // The conversation's language isn't supported, so // the result doesn't contain any suggestions. } else if (result.getStatus() == SmartReplySuggestionResult.STATUS_SUCCESS) { // Task completed successfully // ... } } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { // Task failed with an exception // ... } }); - Jeśli operacja się powiedzie, do funkcji obsługi sukcesu zostanie przekazany obiekt - SmartReplySuggestionResult. Ten obiekt zawiera listę maksymalnie 3 sugerowanych odpowiedzi, które możesz wyświetlić użytkownikowi:- Kotlin- for (suggestion in result.suggestions) { val replyText = suggestion.text } - Java- for (SmartReplySuggestion suggestion : result.getSuggestions()) { String replyText = suggestion.getText(); } - Pamiętaj, że ML Kit może nie zwracać wyników, jeśli model nie jest pewien trafności sugerowanych odpowiedzi, rozmowa wejściowa nie jest w języku angielskim lub jeśli model wykryje temat o charakterze poufnym. 
