Dies ist eine Fortsetzung des Artikels "Ich habe versucht, Herrn Saito zu reproduzieren, der in" Aine Kleine Nachtmusik "als Herr Sakurai von Mischil erscheint" Werden. Wenn Sie interessiert sind, empfehle ich Ihnen, zuerst den obigen Artikel zu lesen.
Zunächst werde ich vorstellen, was ich gemacht habe.
Wenn Sie sich hier als Freund registrieren, können Sie es versuchen!
https://lin.ee/WEqJMO7
Es ist einfach zu bedienen. Ich werde mit Herrn Sakurai sprechen. Dann wird Herr Sakurai einen Teil von Mischils Lied singen, der zu diesem Gefühl passt. (Um genau zu sein, wird es im Text antworten) Hinter den Kulissen verwende ich die Emotionsanalyse-API von COTOHA Es wird ein Teil der Texte zurückgegeben, die nahe am gesendeten Satz und der Emotionsbewertung liegen. Bitte haben Sie Verständnis dafür, dass es viele Fälle gibt, in denen der Inhalt nicht sehr gut übereinstimmt. (Bitte benutzen Sie es, als ob Sie spielen würden.)
Ich fühle mich ermutigend mit Ausdrücken wie flackernder Hoffnung auf Selbstbeherrschungsermüdung durch Corona.
Den in der Datenbank registrierten Teil, in dem Textphrasen und Emotionswerte gespeichert sind, finden Sie in Vorheriger Artikel. Dieses Mal werde ich die Konfiguration von LINE in die Antwort einführen. Die Konfiguration ist einfach und verwendet die Messaging-API von LINE, das API-Gateway von AWS, Lambda, RDS und die API von COTOHA.
①-②: Rufen Sie das API-Gateway von LINE per Web Hook mithilfe der LINE Messaging-API auf ③: Rufen Sie die Lambda-Funktion auf, die durch Festlegen des API-Gateways erstellt wurde ④: Ermitteln Sie den Emotionswert der gesendeten Nachricht, indem Sie die COTOHA-API aufrufen ⑤: Holen Sie sich die Phrase der Texte mit ähnlicher Emotionsbewertung aus der auf RDS erstellten Datenbank ⑥-⑦: Die erfasste Phrase wird von der Messaging-API als LINE-Antwort zurückgegeben.
Ich werde die API-Gateway-, Lambda- und LINE-Messaging-API erläutern, die möglicherweise schwierig einzurichten ist. Es gibt keine besonders schwierigen Einstellungen für RDS und COTOHA, daher werde ich sie weglassen.
(1) Erstellen Sie eine neue API aus API Gateway
(2) Als neue REST-API erstellt
(3) Erstellen einer neuen Methode
Per POST erstellen.
(4) Lambda-Registrierung
Geben Sie den Integrationstyp "Lambda-Funktion" und den Lambda-Namen in die Lambda-Funktion ein, damit Lambda ihn ausführen kann.
(5) Klicken Sie auf die Integrationsanforderung
(6) HTTP-Header-Einstellungen
Registrieren Sie den Namen als Authentifizierung und die Zuordnungsquelle als "Träger \ <LINE-Zugriffstoken >". Das Abrufen des LINE-Zugriffstokens wird später beschrieben. Geben Sie es nach der Registrierung hier ein.
(7) API bereitstellen
Klicken Sie auf Aktionen → API bereitstellen Geben Sie den Künstlernamen ein und stellen Sie ihn bereit. (Hier heißt es prod)
(8) Ausgabe des API-URI
Nach der Bereitstellung sollte die URL im linken Menü unter Stufe → Produkt → POST veröffentlicht worden sein. Ich werde es später als Webhook der LINE Messaging API registrieren, also kopieren Sie die URL irgendwo hin.
Den Quellcode finden Sie unter lambda / lambda.py auf GitHub. Beachten Sie, dass die DB-Verbindungsinformationen, die COTOHA-API-Verbindungsinformationen und die LINE-API-Tokeninformationen in den Lambda-Umgebungsvariablen registriert sind.
Außerdem ist mysql-connector-python standardmäßig nicht enthalten, sodass Sie es in Lambda einbinden müssen. Diesmal habe ich die Lambda-Schicht verwendet. Informationen zur Verwendung finden Sie unter hier.
Wenn Sie mit der Erstellung von Kanälen noch nicht vertraut sind, lesen Sie bitte hier.
Die minimal erforderlichen Einstellungen sind wie folgt.
(1) Webhook-Einstellungen
Registrieren Sie die zuvor erstellte URL bei API Gateway.
(2) Ausstellung eines Zugriffstokens
(3) Schalten Sie die automatische Antworteinstellung aus
Wenn Sie dies nicht einstellen, erhalten Sie eine irrelevante Antwort.
(4) Bestätigung der Messaging-API-Einstellungen
Wechseln Sie zu LINE Official Account Manager Klicken Sie im linken Menü auf die Messaging-API und überprüfen Sie, ob die Webhook-URL registriert ist. Wenn es nicht registriert ist, geben Sie die API-URL auf die gleiche Weise wie in (1) ein.
Ich habe auf den folgenden Artikel verwiesen.