https://d226lax1qjow5r.cloudfront.net/blog/blogposts/build-a-faq-answering-service-with-openai-and-vonage-ai-studio/faq-answering_chatgpt_ai-studio.png

OpenAIとVonage AI StudioでFAQ応答サービスを構築する

最終更新日 March 9, 2023

所要時間:1 分

注:OpenAIはAPIの無料使用に関するポリシーを変更しました。アクセスするにはお金を払う必要があります。

ChatGPTが開発した最先端の会話言語モデルです。 OpenAI.これは トランスフォーマーアーキテクチャに基づいており、様々なインターネット上のテキストで訓練されているため、様々な質問やプロンプトに対して人間のような応答を生成することができる。また、コンピュータプログラムの作成、作曲、詩の作成なども可能です!下記はVonageのCommunication APIsのために書いた詩のサンプルです。

Write a poem about Vonagevonagepoem.png

ご覧の通り、ChatGPTはとてもパワフルです。今日はGPT APIを使って、FAQ(よくある質問)回答サービスを作成します。 AIスタジオローコード/ノーコードの会話AIプラットフォームで、企業がVoiceやテキストを通じて複雑な顧客とのやり取りを処理できるようにします。

GPT3.5ターボをベースモデルとして使用することで、以下のようなFAQ応答サービスにどのような利点があります。 AIスタジオ?OpenAIでは 大規模言語モデル(LLM)テクノロジーを使用しているため、エージェントのトレーニングにかかる時間が短縮されます。手動でインテントとアクティビティセットを作成する代わりに、開発者は大量のテキストを入力し、カスタム応答でフォールバックを設定することができます。さらに、提供されたトレーニングデータ以外のクエリに答えるためにエージェントを微調整する機会も得られます。

例えば、今日、顧客の潜在的な質問を入力し、各質問のインテントを作成し、発話に対応し、入力の不一致をテストし、結果に基づいて最適化することで、モデルをトレーニングするかもしれません。対照的に、私たちは明日、インテントの代わりに大量のテキストを入力し、カスタム応答でフォールバックを作成することによってデータをトレーニングします。

前提条件

作業を始める前に、以下の作業が完了していることを確認してください:

  • A Vonage開発者アカウント- お持ちでない場合は、作成することができ、私たちのAPIで遊ぶために無料のクレジットを提供します。

  • (英語) OpenAIアカウントAPIキーは無料で、ユーザーの入力から返答を得るために必要です。この例では、GTP 3.5 Turboをベースモデルとして使用します。このモデルや他のモデルについての詳細は ドキュメント.* を押す。新しい秘密鍵を作成"を押し、その情報を安全な場所に保管してください。以下の例をご覧ください。

  • ngrok- 無料アカウントが必要です。このツールを使用すると、開発者はローカルの開発サーバーをインターネットに公開することができます。

  • Pythonがインストールされていること - この記事では現在バージョン3.11.1を使っている。

  • ピップがインストールされているか - ターミナルやコマンドプロンプトから pipターミナルまたはコマンドプロンプトから実行できることを再確認してください。

OpenAI API Key Dialogapikeys.png

サーバーの作成

ユーザーが携帯電話から質問を入力したら、AI Studioが呼び出すサーバーアプリケーションを作成する必要があります。

そのために、短いPythonスクリプトを使って、OpenAIの認証情報を使ってポート9000でサーバーを起動します。Pythonを使っていますが、お好きな言語を使って同じものを作成できます。

from datetime import datetime, timedelta
import os
from pickle import TRUE
from urllib import response
import openai
from PIL import Image
from flask import Flask, request, jsonify, render_template, Response, redirect

from flask_login import LoginManager, UserMixin, login_required, login_user

application = Flask(__name__)

app = application

openai_key = 'YOUR-OWN-OPENAI-API-KEY'
openai.api_key = openai_key

@app.route("/webhook", methods=["POST"])
def webhook():
    input = request.headers.get('input')
completions = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user",
         "content": input},
    ]
)
response = completions.choices[0].message.content
return {'res': response.strip()}

if __name__ == '__main__':
    app.run(port=9000, host='0.0.0.0', debug=True)  # run app in debug mode on port 5000

このコードを使用するには

  • 提供されたすべてのPythonコードを、以下の名前のファイルにコピーする。 application.py.

  • 交換 を置き換えてください。を先ほど作成した OpenAI API Key に置き換えてください。

  • スクリプトが依存するパッケージをインストールする

    • sudo pip install openai- OpenAIのライブラリについて

    • sudo pip install flask_login- ウェブサイト

    • sudo pip install pillow- イメージング・ライブラリー用

アプリケーションが正常に起動すると、デプロイメントURLが表示されます。例えば、私の場合は http://10.0.0.190:9000/AI StudioからこのURLを呼び出すには、次のようなものを使う必要があります。 ngrok.

ngrokを走らせる

ngrokは、開発者が最小限の労力でローカルの開発サーバーをインターネットに公開することを可能にするクロスプラットフォームアプリケーションです。私たちのサービスをインターネットに公開するために使用します。ngrokを使うのが初めての方は ブログ記事で詳しく説明しています。ngrokをセットアップしてログインしたら(ここでも無料アカウントでOK)、以下のコマンドを実行する:

ngrok http 9000

ngrokが実行されると、この記事の後半でWebhookのベースとして使用する転送URLが表示されます。私のは以下のような感じだ:

Ngrok Runningngrokrunning.png

さて、AI Studioを通してローカルのPythonサーバーにアクセスしたい場合、スクリーンショットに示した転送アドレスを使うことになる。

AI Studio

に移動します。 Vonage AI Studioに移動します。ホームページに移動し、[Create Agent]ボタンを押します。作成したいエージェントのタイプのオプションが表示されます。

Agent Creationagent-creation.png

テレフォニー・エージェントを選択し を押します、携帯電話で使用できる音声通話シナリオを作成します。

ここで詳細を記入する必要がある:

  • 地域:貴社の代理店が通常使用される地域 - 米国または欧州

  • 代理店名:あなたにとって意味のあるユニークな名前をエージェントにつけてください。

  • 言語:エージェントの言語を選択します。

  • Voice:任意のVoiceを選択(私はマシューを使っています)。

  • タイムゾーン:エージェントが活動するタイムゾーンを選択します。

次に、テンプレートを選択するオプションがあります。 他のテンプレートを表示できます。ここでは スクラッチから開始を選択し 次へ.

最後に イベントの選択.イベントは、ユーザまたはエージェント自身によって開始されるかどうかに関わらず、エージェントをトリガします。ここでは 着信コール作成を押します。

次に、AI Studioのメイン・ユーザー・インターフェースをご覧いただきます!AI Studioの機能を知りたい方は こちら.

物事をシンプルにするために、次のような会話の流れを使うことにする:

Simple User Interfacesimpledesignlayout.png

私たちはこう付け加えた:

  • 2 ユーザーが入力した値と、OpenAIの応答を格納するパラメータ。

    • カスタムパラメータ

    • 名前AGENT_RES とエンティティは @sys.any です。

    • 名前INPUTとエンティティは@sys.anyである。

  • Collect Input Node - ユーザーを歓迎し、入力を収集します。

    • パラメータ:前のステップで作成したINPUT Parameterを使用する。

    • プロンプトテキストVonage FAQへようこそ!ご質問を入力してください!

      • Agentを実行する際には、通常の会話で誰もが使うような言葉、例えば"Vonage本社はどこですか?"Vonageはどのような通信APIをサポートしていますか?".

  • ウェブフック・ノード

    • リクエストURL

    • ヘッダー

      • HTTPヘッダー - INPUTおよび値は$INPUTです。

    • レスポンスマッピング:

      • オブジェクトパス - res

      • 値は$AGENT_RES

  • スピークノード - OpenAIからの結果を出力する。

    • テキスト - あなたの答えは: $AGENT_RES

  • End Call Node(通話終了ノード) - 会話のフローが完了したら、会話を終了する。

を押してアプリケーションを実行してみましょう。 テスターボタンを押してアプリケーションを実行し、どのような出力が得られるか見てみましょう。はじめに、最初の質問とともにウェルカムメッセージが表示されます。ユーザは次のように入力するかもしれません。Vonage 本社はどこですか?「バーチャルエージェントは OpenAI から戻ってきたメッセージで応答します:

Sample Question #1chatgpt-example1.png

あるいは、「Vonageはどのような通信APIを提供していますか?すると次のような返事が返ってくる:

Sample Question #2chatgpt-example2.png

GPT APIはマルチインテントハンドリングもサポートしています。これは、複数のインテントを持つ入力があり、システムが両方を処理する場合に発生します。この良い例は、"Vonage本社はどこにあり、会社はいつ設立されましたか?"と尋ねるようなものです。その結果を見て驚くかもしれません!

Sample Question #3chatgpt-example3.png

まとめ

VonageのAI StudioにOpenAIのGPT APIを実装すると、昼食を取るのにかかる時間よりも短い時間で実装できることがわかりました!この例では)FAQを自動化することで、一般的な従業員がデータを収集して回答を作成するのに費やす時間を節約することができます。また、エージェントを公開して携帯電話でテストしてみるのもよいでしょう!

また、現在のウェブフックによる統合は短期的なソリューションであり、2023年第2四半期末までにLLMをサポートする専用ノードを開発する予定であることに留意してほしい。

何を待っているんだ?GPT APIと AIスタジオを試してみてください!また、質問やフィードバックがある場合は Vonage Developer Slackに参加するか ツイッターをお送りください。また次回もお楽しみに!

シェア:

https://a.storyblok.com/f/270183/400x400/7cdff37c0e/michael-crump.png
Michael Crumpデベロッパー・エクスペリエンス・マネージャー

マイケル・クランプはVonageのデベロッパーエクスペリエンスチームに所属し、コーダー、YouTuber、そして様々な.NETやクラウド/通信開発トピックについて頻繁に講演を行っています。彼は、開発者がそれぞれの利点を分かりやすく理解できるようにすることに情熱を注いでいます。