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.
Émettez la CLE API sur le site 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.
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