chat-GPTと会話する
コールセンターでの活用に向けて、電話で会話してみたいと思いコードを書いてみた。
事前に必要なアカウント
- chat-GPT(API🔑)
- twillo
- ngrok
main.py
from flask import Flask, request, redirect
from twilio.twiml.voice_response import VoiceResponse
import twilio.twiml
import time
import requests
from twilio.twiml.voice_response import Gather, VoiceResponse, Say
import openai
import json
OPENAI_API_KEY = ""
app = Flask(__name__)
def question(comment):
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer " + OPENAI_API_KEY,
}
json_data = {
"model": "gpt-4-1106-preview",
"messages": [
{
"role": "user",
"content": comment + "短文で答えてください。",
},
],
"temperature": 0.7,
}
response = requests.post(
"https://api.openai.com/v1/chat/completions", headers=headers, json=json_data
)
json_data = json.loads(response.text)
print(json_data["choices"][0]["message"]["content"])
return json_data["choices"][0]["message"]["content"]
@app.route("/answer", methods=["GET", "POST"])
def answer_call():
"""Respond to incoming phone calls with a brief message."""
# Start our TwiML response
response = VoiceResponse()
gather = Gather(input="speech", language="ja-JP", action="/sendsms", method="POST")
gather.say(
"お電話ありがとうございます。メッセージをどうぞ。", language="ja-JP", voice="Polly.Kazuha-Neural"
)
response.append(gather)
return str(response)
@app.route("/sendsms", methods=["POST"])
def sendsms():
# 音声認識結果を取得する
result = request.form["SpeechResult"] or ""
to = request.form["From"] or ""
if result != "" and to != "":
print(result, to)
resp = VoiceResponse()
resp.say(
"音声を認識しました。ありがとうございます。確認しますので、少々お待ちください、",
language="ja-JP",
voice="Polly.Kazuha-Neural",
)
res = question(result)
resp.say(
res,
language="ja-JP",
voice="Polly.Kazuha-Neural",
)
return str(resp)
else:
resp = VoiceResponse()
resp.say("申し訳ございません。音声認識ができませんでした。", language="ja-JP", voice="alice")
return str(resp)
if __name__ == "__main__":
app.run(debug=True, host="0.0.0.0", port=8000)
- twillo登録
- 電話番号を取得
- ngrokも登録 ☜これ大事
- main.pyを立ち上げ
- 別ターミナルで以下を実行、出てきたURLをtwilloに登録
ngrok http 8000
感想
音声にして聴くと、chat-GPTのフレンドリーさが、ますますフレンドリーになりました。
chat-GPTって、文字の言葉が基本優しいしフレンドリー。
あの優しい文面を音声で話すと、もっとフレンドリーに感じる。優しい、沁みる。
クレームの一次対応は、chat-GPTで正解な気がする。