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