OpenAI API 経由で独自のデータでトレーニングされたチャットボットを作成する — SitePoint
この記事では、OpenAI API を使用して独自のチャットボットをトレーニングおよびテストする方法と、それを世界と共有できる Web アプリに変換する方法を学びます。
AI は情報テクノロジーに革命をもたらしたため、多くの企業が OpenAI などの API プロバイダーを使用して AI をデータに統合しています。
AI をデータに使用する特に良い方法は、独自のチャットボットを作成することです。
たとえば、数千の企業収益レポートで構成されるデータセットがあると想像してください。 何時間も費やさずに調査して分析したいと考えています。 良い選択肢は、文書に関するあらゆる質問に答えるチャットボットを作成することです。これにより、手動で文書を検索する手間を省くことができます。
たとえば、「前四半期で最も収益が高かったのはどの企業ですか?」と尋ねるとよいでしょう。 — 通常、データセットを手動で調べて答える必要がある質問です。 データに基づいてトレーニングされたチャットボットを使用すると、その質問に対する答えを数秒で得ることができます。
独自のチャットボットを開始するには、まず OpenAI API にアクセスする必要があります。 OpenAI API キーを取得するには、OpenAI Web サイトにサインアップしてください。 次に、ホームページの右上隅にあるプロフィール アイコンをクリックし、APIキーを表示するをクリックして、新しい秘密キーの作成新しい API キーを生成します。
このチュートリアルでは、コンピューター用の Wikipedia ページを使用して、コンピューターとその歴史に関する一般的な質問に答えることができる簡単なチャットボットを作成します。
この記事の GitHub リポジトリからデータセットをテキスト形式でダウンロードできます。
チャットボットを作成する新しいフォルダーを作成します。 次に、プロジェクト フォルダー内に chatbot_docs という名前のフォルダーを作成し、データセット ファイルをそのフォルダーに貼り付けます。 (フォルダーの名前は重要ではありませんが、このチュートリアルでは、chatbot_docs という名前を付ける方が簡単です。)
API キーとデータセット ファイルを入手したら、実際のコードを開始できます。
プロジェクト フォルダーに移動し、新しいプロジェクト フォルダー内に空の Python ファイルを作成します。
それが完了したら、ターミナルで次のコマンドを実行して、使用するライブラリをダウンロードします。
最後に、必要なライブラリをすべてインストールしたら、この Python コードをリポジトリから Python ファイルに貼り付けます。
このチュートリアルでは、最も高速でコスト効率が高い gpt-3.5-turbo OpenAI モデルを使用します。 コードをご覧になった方はお気づきかと思いますが、チャットボットの温度を 0 に設定しました。チャットボットを可能な限り事実に忠実にするためにこれを行いました。 の温度パラメータはチャットボットの創造性を決定します。温度 0 はチャットボットが常に事実に正確であることを意味し、温度 1 はチャットボットが創造性のために回答や詳細を完全に自由に作成できることを意味します。正確ではない。 温度が高くなるほど、チャットボットの創造性は高まり、事実の正確性は低くなります。
このコード全体で、「埋め込み」という言葉について言及しています。 これは、チャットボットが理解して意味を理解できるように、Wikipedia ドキュメント内のテキストが変換されたものにすぎません。 各埋め込みは、各情報を他の情報との関連性の高さによって関連付ける、-1 から 1 までの範囲の数値のリストです。 text-embedding-ada-002 が何を意味するのか疑問に思っている方のために付け加えておきますが、これは最もコストと時間の効率が高いため、埋め込みを作成するために使用されているモデルにすぎません。
このコードは、chatbot_docs フォルダー内のドキュメントごとに埋め込み CSV ファイルを作成します。(このチュートリアルの目的では) 埋め込みファイルは 1 つしかないため、作成される埋め込みファイルは 1 つだけです。 ただし、さらに多くのドキュメントがある場合、コードはドキュメントごとに埋め込みファイルを作成します。 このアプローチにより、チャットボットの拡張性が高まります。
おそらく、チャンクの部分についても疑問に思っているでしょう。
説明しましょう。 このコードは、コンピューターに関する Wikipedia ページを 2000 文字のチャンクと 250 文字の重複チャンクに分割します。 チャンク サイズが大きいほど、チャットボットのコンテキストも大きくなりますが、速度が低下する可能性もあるため、このチュートリアルでは 0 ~ 4096 (最大チャンク サイズ) の適切な中間点として 2000 を選択しました。