[PYTHON] Machen Sie einen LINE BOT (Chat)

Machen Sie einen Chat LINE BOT mit A3RT

Der zuvor erstellte Make a LINE BOT wurde verbessert, um einen BOT für den Chat mit der von Recruit bereitgestellten A3RT Talk-API zu erstellen. Hat gemacht.

(1) Holen Sie sich den API-Schlüssel von A3RT

Stellen Sie den API-SCHLÜSSEL auf der [A3RT-Site] aus (https://a3rt.recruit-tech.co.jp/product/talkAPI/).

(2) Überprüfen Sie die Struktur des A3RT

Überprüfen Sie die Struktur von A3RT, bevor Sie die zuletzt erstellte Datei main.py ändern. Führen Sie den folgenden Code aus, um die Struktur von A3RT zu überprüfen und zu überprüfen, ob AI die Antwort auf "Guten Morgen" ordnungsgemäß zurückgibt. Installieren Sie zunächst pya3rt in einer virtuellen Umgebung.

pip install pya3rt

Versuchen Sie, Folgendes im Terminal-Python-Modus auszuführen.

import pya3rt

apikey = "*******************************"
client = pya3rt.TalkClient(apikey)
reply_message = client.talk("Guten Morgen")

print(reply_message)
{'status': 0,'message': 'ok','results': [{'perplexity': 0.07743213382788067, 'reply': 'Guten Morgen'}]}

Wird sein. Ich möchte "Guten Morgen" in der Antwort erhalten, daher habe ich sie wie folgt geändert

import pya3rt

apikey = "****************************"
client = pya3rt.TalkClient(apikey)
reply_message = client.talk("Guten Morgen")

print(reply_message['results'][0]['reply'])

Dann

Guten Morgen

Dann gab er richtig "Guten Morgen" → "Guten Morgen" zurück. Integrieren Sie dies in die zuvor erstellte Datei main.py.

(3) Ändern Sie die zuvor erstellte Datei main.py.

Zunächst wird die obige Beschreibung von pya3rt wie folgt in eine Funktion umgewandelt.

def talk_ai(word):
    apikey = "****************************"
    client = pya3rt.TalkClient(apikey)
    reply_message = client.talk(word)
    return reply_message['results'][0]['reply']

Letztes Mal Ändern Sie die erstellte main.py.

.py:main.py


from flask import Flask, request, abort
from linebot import (
    LineBotApi, WebhookHandler
)
from linebot.exceptions import (
    InvalidSignatureError
)
from linebot.models import (
    MessageEvent, TextMessage, TextSendMessage,
)
import os
#hinzufügen
import pya3rt

app = Flask(__name__)

YOUR_CHANNEL_ACCESS_TOKEN = os.environ["YOUR_CHANNEL_ACCESS_TOKEN"]
YOUR_CHANNEL_SECRET = os.environ["YOUR_CHANNEL_SECRET"]

line_bot_api = LineBotApi(YOUR_CHANNEL_ACCESS_TOKEN)
handler = WebhookHandler(YOUR_CHANNEL_SECRET)

@app.route("/")
def hello_world():
    return "hello world!"


@app.route("/callback", methods=['POST'])
def callback():
    signature = request.headers['X-Line-Signature']
    body = request.get_data(as_text=True)
    app.logger.info("Request body: " + body)

    try:
        handler.handle(body, signature)
    except InvalidSignatureError:
        print("Invalid signature. Please check your channel access token/channel secret.")
        abort(400)
    return 'OK'



@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
    #(Zusatz-) Gespräch_Übergeben Sie das Argument an die ai-Methode und geben Sie den Rückgabewert ai an_Der Nachricht zuweisen
    ai_message = talk_ai(event.message.text)
    line_bot_api.reply_message(
        event.reply_token,
        #TextSendMessage(text=event.message.txt))
        #(Behoben) ai_Nachricht zurückgeben
        TextSendMessage(text=ai_message))

#(Ergänzung) Antwort ai Gespräch mit pya3rt
def talk_ai(word):
    apikey = "****************************"
    client = pya3rt.TalkClient(apikey)
    reply_message = client.talk(word)
    return reply_message['results'][0]['reply']

if __name__ == "__main__":
    port = int(os.getenv("PORT", 5000))
    app.run(host="0.0.0.0", port=port)

Wenn Sie das Problem beheben können, aktualisieren Sie die Anforderungen.txt und

pip freeze > requirements.txt

Danach stellen Sie es auf Heroku bereit und Sie sind fertig.

Recommended Posts

Machen Sie einen LINE BOT (Chat)
Machen Sie einen LINE BOT
Erstellen Sie mit Amazon Lex einen LINE WORKS-Bot
Machen wir einen Discord Bot.
Machen Sie mit LINE + Flask einen morphologischen Analyse-Bot
[Zum Spielen] Versuche Yuma zu einem LINE Bot zu machen (Python)
[Super einfach] Machen wir einen LINE BOT mit Python.
[Python] Erstelle deinen eigenen LINE-Bot
Wie man einen lockeren Bot macht
[LINE Bot] Ich bin ein Ranger! Teil 2
Erstellen Sie mit Django einen LINE-Bot
Erstellen Sie mit GoogleAppEngine / py einen LINE-Bot. Einfache nackte Version
Lassen Sie uns einen LINE-Bot mit verschiedenen Diensten erstellen [ngrok edition]
Erstellen Sie einen Regenbenachrichtigungs-Bot für Hangouts Chat mit explosiver Geschwindigkeit
Erstellen eines LINE-Bots ~ Erstellen, Bereitstellen und Starten von ~
[Python] [LINE Bot] Erstellen Sie einen LINE Bot mit Papageienrückgabe
Machen wir einen Twitter-Bot mit Python!
Python-Anfänger haben beschlossen, einen LINE-Bot mit Flask zu erstellen (Flask-Kommentar)
Ich habe versucht, "Sakurai-san" LINE BOT mit API Gateway + Lambda zu erstellen
Ich habe einen Stempelersatzbot mit Linie gemacht
Machen Sie Twitter Trend Bot mit Heroku + Python
Erstellen Sie einen Bot für Skype unter EC2 (CentOS)
Erstellen Sie mit Minette für Python einen LINE BOT
Mach ein Janken-Spiel in einer Zeile (Python)
Ich habe einen LINE Bot mit Serverless Framework erstellt!
[Chat De Tornado] Erstellen Sie einen Chat mit WebSocket in Tornado
Lass uns ein Squashspiel machen
Machen Sie einen Funktionsdekorateur
Erstellen Sie eine Distanzmatrix
LINE BOT, wenn ~ gestolpert ist
Ich mache ein Passwort!
Machen Sie einen Nyan-Knopf
Mach ein Spiel im Tetris-Stil!
Erstellen Sie einen Base64-Decoder
Erstellen Sie einen Slack Bot
[AWS] Ich habe BOT mit LINE WORKS daran erinnert
Ich habe mit LINE Bot ein Haushaltsbuch für Bot erstellt
Erstellen Sie einen BOT, der die Discord-URL verkürzt
Ich habe versucht, LINE BOT mit Python und Heroku zu machen
Vorgehensweise zum Erstellen eines Linienbot in AWS Lambda
Python-Anfänger haben einen Chat-BOT erstellt, also habe ich versucht, zusammenzufassen, wie man es macht
Die weltweit am einfachsten zu verstehende Erklärung zur Herstellung von LINE BOT (1) [Kontoerstellung]
So erstellen Sie mit Flask einen BOT für Cisco Webex-Teams
Erstellen Sie ein Blueqat-Backend ~ Teil 1
Erstellen Sie ein Blueqat-Backend ~ Teil 2
Erstellen Sie eine App für maschinelles Lernen mit ABEJA Platform + LINE Bot
[Django] Erstellen Sie ein Pulldown-Menü
Bis Django etwas mit einem Linienbot zurückgibt!
Erstellen Sie ein Lesezeichen in Python
Machen Sie eine Lotterie mit Python
Machen Sie Responder zu einem Daemon (Dienst)
Ich möchte eine Nachricht von Python an LINE Bot senden
Papagei gibt LINE BOT-Erstellung zurück
Ich habe einen Zwietrachtbot gemacht
Sicherheitsbestätigung LINE bot [Erklärung]
Machen Sie ein Feuer mit kdeplot
So erstellen Sie einen interaktiven LINE BOT 004 (beantworten Sie den Stichtag eines börsennotierten Unternehmens)
Erstellen Sie einen Berechnungsbohrdruck
[AWS] Ich habe BOT mit LINE WORKS (Implementierung) in Erinnerung gerufen.