Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

आईओएस पर एमएल किट के साथ स्मार्ट जवाब जेनरेट करें

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

आप ऑन-डिवाइस मॉडल का उपयोग करके संदेश उत्तर उत्पन्न करने के लिए एमएल किट का उपयोग कर सकते हैं।

स्मार्ट उत्तर उत्पन्न करने के लिए, आप एमएल किट को बातचीत में हाल के संदेशों का लॉग पास करते हैं। यदि एमएल किट निर्धारित करता है कि बातचीत अंग्रेजी में है, और बातचीत में संभावित रूप से संवेदनशील विषय नहीं है, तो एमएल किट अधिकतम तीन उत्तर उत्पन्न करता है, जिसे आप अपने उपयोगकर्ता को सुझा सकते हैं।

शुरू करने से पहले

  1. यदि आपने पहले से अपने ऐप में Firebase नहीं जोड़ा है, तो आरंभ करने की मार्गदर्शिका में दिए गए चरणों का पालन करके ऐसा करें।
  2. अपने पॉडफाइल में एमएल किट लाइब्रेरी शामिल करें:
    pod 'Firebase/MLCommon', '6.25.0'
    pod 'Firebase/MLNLSmartReply', '6.25.0'
    
    अपने प्रोजेक्ट के पॉड्स को इंस्टॉल या अपडेट करने के बाद, अपने एक्सकोड प्रोजेक्ट को इसके .xcworkspace का उपयोग करके खोलना सुनिश्चित करें।
  3. अपने ऐप्लिकेशन में, Firebase आयात करें:

    तीव्र

    import Firebase

    उद्देश्य सी

    @import Firebase;

1. बातचीत इतिहास वस्तु बनाएं

स्मार्ट उत्तर उत्पन्न करने के लिए, आप ML किट को TextMessage ऑब्जेक्ट्स की कालानुक्रमिक रूप से क्रमबद्ध सरणी पास करते हैं, जिसमें सबसे पहले टाइमस्टैम्प पहले होता है। जब भी उपयोगकर्ता कोई संदेश भेजता या प्राप्त करता है, तो संदेश, उसका टाइमस्टैम्प, और संदेश भेजने वाले की उपयोगकर्ता आईडी को वार्तालाप इतिहास में जोड़ें।

उपयोगकर्ता आईडी कोई भी स्ट्रिंग हो सकती है जो वार्तालाप के भीतर प्रेषक की विशिष्ट रूप से पहचान करती है। उपयोगकर्ता आईडी को किसी भी उपयोगकर्ता डेटा के अनुरूप होने की आवश्यकता नहीं है, और उपयोगकर्ता आईडी को स्मार्ट उत्तर जनरेटर की बातचीत या आमंत्रण के बीच संगत होने की आवश्यकता नहीं है।

यदि संदेश उस उपयोगकर्ता द्वारा भेजा गया था जिसे आप उत्तरों का सुझाव देना चाहते हैं, isLocalUser को सत्य पर सेट करें।

तीव्र

var conversation: [TextMessage] = []

// Then, for each message sent and received:
let message = TextMessage(
    text: "How are you?",
    timestamp: Date().timeIntervalSince1970,
    userID: "userId",
    isLocalUser: false)
conversation.append(message)

उद्देश्य सी

NSMutableArray *conversation = [NSMutableArray array];

// Then, for each message sent and received:
FIRTextMessage *message = [[FIRTextMessage alloc]
        initWithText:@"How are you?"
        timestamp:[NSDate date].timeIntervalSince1970
        userID:userId
        isLocalUser:NO];
[conversation addObject:message];

एक वार्तालाप इतिहास वस्तु निम्न उदाहरण की तरह दिखती है:

समय-चिह्न यूज़र आईडी स्थानीय उपयोगकर्ता? संदेश
गुरु फरवरी 21 13:13:39 पीएसटी 2019 सच क्या तुम अपने रास्ते पर हो?
गुरु फरवरी 21 13:15:03 पीएसटी 2019 दोस्त0 असत्य देर से चल रहा है, क्षमा करें!

ध्यान दें कि ऊपर दिए गए उदाहरण में सबसे हाल का संदेश एक गैर-स्थानीय उपयोगकर्ता का है। यह महत्वपूर्ण है क्योंकि एमएल किट आपके ऐप के उपयोगकर्ता द्वारा भेजे जाने वाले उत्तरों का सुझाव देता है: स्थानीय उपयोगकर्ता। आपको यह सुनिश्चित करना चाहिए कि आप एमएल किट को एक वार्तालाप लॉग पास कर रहे हैं जो एक संदेश के साथ समाप्त होता है जिसका आपका उपयोगकर्ता उत्तर देना चाहता है।

2. संदेश उत्तर प्राप्त करें

किसी संदेश के लिए स्मार्ट उत्तर उत्पन्न करने के लिए, SmartReply का एक उदाहरण प्राप्त करें और वार्तालाप इतिहास को इसके suggestReplies(for:completion:) विधि में पास करें:

तीव्र

let naturalLanguage = NaturalLanguage.naturalLanguage()
naturalLanguage.smartReply().suggestReplies(for: conversation) { result, error in
    guard error == nil, let result = result else {
        return
    }
    if (result.status == .notSupportedLanguage) {
        // The conversation's language isn't supported, so the
        // the result doesn't contain any suggestions.
    } else if (result.status == .success) {
        // Successfully suggested smart replies.
        // ...
    }
}

उद्देश्य सी

FIRNaturalLanguage *naturalLanguage = [FIRNaturalLanguage naturalLanguage];
FIRSmartReply *smartReply = [naturalLanguage smartReply];
[smartReply suggestRepliesForMessages:inputText
                           completion:^(FIRSmartReplySuggestionResult * _Nullable result,
                                        NSError * _Nullable error) {
  if (error || !result) {
    return;
  }
  if (result.status == FIRSmartReplyResultStatusNotSupportedLanguage) {
      // The conversation's language isn't supported, so the
      // the result doesn't contain any suggestions.
  } else if (result.status == FIRSmartReplyResultStatusSuccess) {
      // Successfully suggested smart replies.
      // ...
  }
}];
]

यदि ऑपरेशन सफल होता है, तो एक SmartReplySuggestionResult ऑब्जेक्ट को पूरा करने वाले हैंडलर को पास कर दिया जाता है। इस ऑब्जेक्ट में 3 सुझाए गए उत्तरों की एक सूची है, जिसे आप अपने उपयोगकर्ता को प्रस्तुत कर सकते हैं:

तीव्र

for suggestion in result.suggestions {
  print("Suggested reply: \(suggestion.text)")
}

उद्देश्य सी

for (FIRSmartReplySuggestion *suggestion in result.suggestions) {
  NSLog(@"Suggested reply: %@", suggestion.text);
}

ध्यान दें कि यदि मॉडल सुझाए गए उत्तरों की प्रासंगिकता के बारे में आश्वस्त नहीं है, इनपुट वार्तालाप अंग्रेजी में नहीं है, या यदि मॉडल संवेदनशील विषय वस्तु का पता लगाता है, तो ML किट परिणाम नहीं लौटा सकती है।