[PYTHON] Créer un LINE BOT (chat)

Créer un chat LINE BOT avec A3RT

Amélioration du [Make LINE BOT (Aum Return)] précédemment créé (https://qiita.com/nooonchi/items/8004dfc9deea6c25754b) et utilisation de l'API A3RT Talk fournie par Recruit pour discuter avec BOT. Avait fait.

(1) Obtenez la clé API d'A3RT

Émettez la CLE API sur le site A3RT.

(2) Vérifiez la structure de l'A3RT

Vérifiez la structure d'A3RT avant de modifier le fichier main.py créé la dernière fois. Exécutez le code suivant pour vérifier la structure d'A3RT et vérifier si AI renvoie correctement la réponse à «Bonjour». Tout d'abord, installez pya3rt dans un environnement virtuel,

pip install pya3rt

Essayez d'exécuter ce qui suit en mode terminal python.

import pya3rt

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

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

Sera. Je veux obtenir "Bonjour" dans la réponse, je l'ai donc modifiée comme suit

import pya3rt

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

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

Puis

Bonjour

Puis, il est revenu correctement "Bonjour" → "Bonjour". Incorporez-le au fichier main.py.

(3) Modifiez le main.py précédemment créé

Tout d'abord, la description ci-dessus de pya3rt est transformée en une fonction comme suit.

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

Dernière fois Modifiez le 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
#ajouter à
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):
    #(Ajout) parler_Passez l'argument à la méthode ai et donnez la valeur de retour ai_Attribuer au message
    ai_message = talk_ai(event.message.text)
    line_bot_api.reply_message(
        event.reply_token,
        #TextSendMessage(text=event.message.txt))
        #(Fixe) ai_Message de retour
        TextSendMessage(text=ai_message))

#(Ajout) Répondre à une conversation par intérim avec 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)

Si vous pouvez y remédier, mettez à jour requirements.txt et

pip freeze > requirements.txt

Après cela, déployez-le sur Heroku et vous avez terminé.

Recommended Posts

Créer un LINE BOT (chat)
Créer un LINE BOT
Créer un bot LINE WORKS avec Amazon Lex
Faisons un robot Discord.
Faire un bot d'analyse morphologique de manière lâche avec LINE + Flask
[Pour jouer] Essayez de faire de Yuma un robot LINE (Python)
[Super facile] Faisons un LINE BOT avec Python.
[Python] Créez votre propre bot LINE
Comment créer un bot slack
[LINE bot] Je suis un ranger! Partie 2
Créer un bot LINE avec Django
Créez un bot LINE avec GoogleAppEngine / py. Version nue simple
Créons un bot LINE en utilisant divers services [ngrok edition]
Créez un robot de notification de pluie pour Hangouts Chat à une vitesse explosive
Création d'un bot LINE ~ Création, déploiement et lancement ~
[Python] [LINE Bot] Créer un robot LINE de retour de perroquet
Faisons un bot Twitter avec Python!
Les débutants en Python ont décidé de créer un bot LINE avec Flask (commentaire approximatif de Flask)
J'ai essayé de créer un LINE BOT "Sakurai-san" avec API Gateway + Lambda
J'ai fait un robot de remplacement de tampon avec une ligne
Créer un bot Twitter Trend avec heroku + Python
Créer un bot pour Skype sur EC2 (CentOS)
Créer un LINE BOT avec Minette pour Python
Créez un jeu Janken en une seule ligne (python)
J'ai créé un Bot LINE avec Serverless Framework!
[Chat De Tornado] Créez un chat en utilisant WebSocket dans Tornado
Faisons un jeu de squash
Faire un décorateur de fonction
Faire une matrice de distance
LINE BOT si ~ trébuché
Je vais créer un mot de passe!
Créer un bouton Nyan
Créez un jeu à la Tetris!
Créer un décodeur Base64
Créer un bot slack
[AWS] J'ai créé un BOT de rappel avec LINE WORKS
J'ai créé un bot de livre de compte de ménage avec LINE Bot
Créez un BOT qui raccourcit l'URL Discord
J'ai essayé de faire LINE BOT avec Python et Heroku
Procédure de création d'un Line Bot sur AWS Lambda
Les débutants en Python ont créé un chat BOT alors j'ai essayé de résumer comment le faire
L'explication la plus simple au monde sur la création de LINE BOT (1) [Account preparation]
Comment créer un BOT Cisco Webex Teams à l'aide de Flask
Créer un backend Blueqat ~ Partie 1
Créer un backend Blueqat ~ Partie 2
Créez une application d'apprentissage automatique avec ABEJA Platform + LINE Bot
[Django] Créer un menu déroulant
Jusqu'à ce que Django retourne quelque chose avec un robot de ligne!
Créer un bookmarklet en Python
Faites une loterie avec Python
Faire de Responder un démon (service)
Je souhaite envoyer un message de Python à LINE Bot
Création du LINE BOT Parrot Return
J'ai fait un robot discord
Confirmation de sécurité du bot LINE [Explication]
Faire un feu avec kdeplot
Comment créer un LINE BOT 004 interactif (répondre à la date de clôture d'une société cotée)
Faire une impression de forage de calcul
[AWS] J'ai créé un BOT de rappel avec LINE WORKS (implémentation)