技術サポートフォーラム向けのサポートボットに関するアドバイス(Discourse AI対Discourse Chatbot)

非表示とは、ほとんどのユーザーに表示されないカテゴリのことです。非表示にする必要はありませんが、RAGがアクセスできる知識としてPDFのみを含むカテゴリがあると、他のユーザーによって散らかってしまう可能性があります。

PDFを例として使用したのは、多くのマニュアルがすでにPDFとして存在し、理解しやすいように非表示カテゴリに配置できるためです。非表示カテゴリを必要としない他の可能性については、Langchain Retrieval が良い出発点となります。

問題ありません。やるべきことのアイデアが正しい方向に進みます。

しかし、「アシスタント」という言葉は、文脈によっては新しいGPTsにその座を譲りつつあるようです。GPTsはChatGPTプラグインも置き換えているようですが、私は数ヶ月間ChatGPTプラグインを使用していないので、実際には気づいていません。フォーラムでそのような話題を見かけるだけです。

「いいね!」 1

しかし、待ってください。

  • アシスタントAPIとGPTは同じ日に発表されたのではないでしょうか?
  • GPTは、API経由で呼び出す可能性を欠いた、アシスタントのより(エンド)ユーザーフレンドリーなノーコードフロントエンドにすぎないのではないでしょうか?
「いいね!」 2

はい

https://platform.openai.com/docs/assistants/overview

あなたはそこにいましたか?私はいませんでした。

Discourseのスタッフの一人がそこにいたことを知っています。

正直に言うと、私は十分な知識がなかったので、このビデオを見ました。

「アシスタント」に関しては、GPTは以下を提供してくれるようです。

  • Webブラウジング
  • DALL*E画像生成
  • コードインタープリター

あなたの指摘のほとんどに同意します。

ビデオを見てGPTについてさらに多くのことを学んだばかりなので、印象的ですが、ほとんどの人々のニーズを満たすことはできないでしょうが、進歩はしています。また、ChatGPTプラグインと似ている、または同じであるJSONの一部を見るのは興味深かったです。

このトピックに関して、OpenAIフォーラムの多くの人がRAGで使用するためにファイルをアップロードしようとしますが、ファイル数が10個に制限されていることにすぐに気づくでしょう。GPTへのリンクを共有することもできますが、相手もChatGPT Plusのサブスクライバーである必要があるため、多くの商業的な取り組みにとってこれはおそらく行き止まりの選択肢です。

「いいね!」 1

OpenAIのAssistant APIは、まだ開発の初期段階にあり、実質的にプレビュー版です。

  • 法外に高価であると報告されています(利用可能なコンテキストを、必要かどうかに関わらず毎回埋めてしまい、必要なくてもその分の料金を支払うことになります)。
  • 「無限ループ」の問題を抱えているようです。これは、時折無限に反復してしまう問題です。同社の専門知識を考えると驚くべき問題ですが、これを緩和する設計は非常に簡単です。

さらに時間をかけて、初期採用者からのフィードバックを取り入れる必要があると考えられます。

ChatbotのようなAIサービスのダウンストリームコンシューマーにとって、将来的な簡略化の可能性として歓迎します。

いずれにせよ、Discourseとのインターフェースが必要です。

Chatbotは、Assistant APIと同じパワーを、その問題なしにすでに提供しており、さらにDiscourseとのインターフェースも提供しています。最終的にはAPIの反復に依存せず、利用可能なサービスとともに進化します。将来的にはAssistant APIオプションを提供する可能性も十分にありますが、現時点ではそれを行うメリットはありません。なぜなら、それは(上記の問題を含む)問題を引き起こすだけだからです。

「いいね!」 3

物理的にはいません :confused:

20、しかし、はい、非常に限られた量です。これは、必要なすべてのファイルを1つの大きなファイルに連結することによって(すぐにかなり高価になります)なんとか回避できます。

そして驚くべきことは、後でどれだけ高価になるかわからないことです…

ほとんど - アシスタントAPIは、Discourseの外部にあるプライベートでカスタムな知識を含めることができます。

私だけではないとわかって嬉しいです :wink:

「いいね!」 1

Discourseにアップロードされたデータやプライベートプロンプトの使用と、どのように違うのでしょうか?

もちろん、データは彼らのサービスにアップロードされます。

上記の例を参照してください。ユーザーマニュアルを含むPDFがあり、Discourseにアップロードされた場合、それらは処理およびインデックス化されません。マークダウンに変換する必要があります。これは面倒なだけでなく、追加の自動化と変換が必要になります。

なぜ古いPDFをアップロードしなければならないのですか?

一度変換すれば、ローカルで編集できるようになる方が良いのではないでしょうか。

いずれにせよ、このスペースではチャットボットに関する情報がさらに追加される予定ですので、ご期待ください…

「いいね!」 1

現実かもしれません。
真実は、ほとんどのドメイン知識はマークダウンで簡単に入手できるわけではないということです。

ここでも、上記の例を見てください。彼らはPDFの立派なユーザーマニュアルを持っており、それはまったく別の部門によって作成されています。一度変換してローカルで編集するのではうまくいきません。

:fire: :fire:

「いいね!」 1

PDFリーダーのPRは歓迎します、リチャード!

しかし、現時点ではMarkdown機能で十分だと推測します。

エリックに戻って

アシスタントがもう少し安価になるまで待ちます。そしてはい、その間はmarkdownで問題ありません!

「いいね!」 1

これを他の人も共有してくれて嬉しいです。ライアンにとって有益なものになることを願っています。

おそらく、@37Rb(ライアン)さんがさらに詳しい情報を提供してくれるでしょう。

  1. Discourseサイト上のDiscourse AIボットのために、RAG(Retrieval-Augmented Generation)で使用するマニュアルの使用を想定していますか?
    a. 現在、そのようなマニュアルの形式は何ですか?紙媒体、PDF、ウェブサイト、その他ですか?
    b. ナレッジベースは、マニュアルの新規または改訂版でどのくらいの頻度で更新されますか?
    c. マニュアルはサイト上で公開されますか?
  2. Discourseフォーラム以外に、サポートサイトでの応答にAIにとって価値のある情報は他にありますか?
  3. Discourse AIボットを作成する際に、ボットの他のニーズを想定していますか?これは、DiscourseのAIボット作成の履歴を読み返すと、多くの変更を経てきたことがわかります。最初の作成で完璧なボットではなく、現在も多くの変更が見られます。
  4. ボットまたはエージェントがどのように使用されるかの例をいくつか作成できますか?例えば、ユーザーがボットとチャットするいくつかの異なるケースを示してください。
    注:エージェントという言葉は、Langchain agent と同様の意味で使用しており、OpenAI assistant と混同しないでください。
「いいね!」 2

それはどういう意味ですか?

ユーザーとのコミュニケーション方法に影響を与える、ボットのみが直接認識できる非公開情報

@37Rb

YouTubeデモでOpenAI GPTが作成されているのを見て、今アイデアが浮かびました。

ChatGPT Plusのサブスクリプションと、おそらくウェイティングリストへのアクセスが必要になりますが、OpenAI GPTを作成することができます。これは、そのようなテクノロジーの長所と短所について学びたいこと、そしてDiscourse AIボットの作成に活用できることと同様です。ボットを作成することを提案しているわけではありませんが、AIができることと、それがひどく失敗する可能性のある場所をよりよく理解できるでしょう。

「いいね!」 2

はい。

PDF または HTML(オンラインでホストされている)ですが、テキスト/Markdown に変換して Discourse の投稿として維持しても構いません。スクリプトを作成して簡単にできるようにします。

製品マニュアルは頻繁には更新されませんが、ナレッジベースの他のコンテンツは更新されます。FAQ、頻繁/トレンドの問題などは、より頻繁に更新されます。可能な限り公開しますが、機密情報ではないものの、公開投稿としては奇妙でわかりにくいと思われるものは非公開にするのが理にかなっています。

はい、公式製品マニュアルは通常 PDF です。例として…

今のところ、おそらく何もありません。インターネットを検索させて、私たちにとって真実ではない結果を得るリスクが高すぎます。

将来的には、顧客自身のセキュリティシステムに関する追加のコンテキストをボットに提供することに価値を見出すかもしれませんが、プライバシーの問題によりそれが不可能になる可能性があります。

RAG に基づいているため、最も重要なことは、ボットがフォーラムを検索する方法と AI にプロンプトを送信する方法を細かく制御できることだと考えられます。読んだ限りでは、merefield の Discourse Chatbot は今日ではそれをより良く実行しているようです。今週それをテストするつもりです。

私たちにとって、それは常にユーザー/顧客のサポートを提供し、彼らの質問に答えたり、問題を解決したりすることです。たとえば:

  1. 彼らが自宅を確保するために何を購入すべきかを判断するのを助ける。時には彼らがすでに持っているホームセキュリティ機器を考慮に入れる。
  2. システムのインストールと使用を支援する。
  3. 問題が発生したときのトラブルシューティングを支援する。
  4. 物事がどのように機能するか、将来何が利用可能になるかなど、彼らが持っている好奇心旺盛な質問に答える。

最良の例は、毎日投稿される実際の例 であり、サポートチーム(または時にはコミュニティメンバー)が回答しています。

「いいね!」 4

ありがとうございます!

これはあなたにとっては簡単なリンク共有かもしれませんが、サポートサイトを立ち上げ、AIボットに応答させ、公開フォーラムでのアイデアのやり取りを他の人が見られるようにするという、あなたの足跡をたどる多くの人々にとって、これは最先端です。企業がこれを非公開で行っていることは知っていますが、あなたはこれを公開で行っています。:slightly_smiling_face:

図面を見られたことも嬉しかったです。それは私の考えていたことが正しいことを再確認させてくれました。

それはしない方が良いでしょう。

ボットは、投稿内のテキストを検索するような方法でフォーラムを実際に検索しません。このために学ぶ必要があるキーワードと関連技術は、ベクトルデータベース最近傍探索です。

そのようなものが使用されているコード例を見るには、以下を確認してください。

頑張ってください!

「いいね!」 1

通常、有料の製品を勧めることはありませんが、数年前に知りました。

このStackExchangeの質問回答した際に。

無料のオンライン版を数回使用しましたが、回答で述べたように、PDFからテキストやその他の情報を取得する方法を長年たくさん探してきた中で、これほど良いものを見たことがありません。

参照(マニュアル名、発行日、セクション、段落)がRAGで使用される情報の一部であると考える人もいるかもしれないため、この点についてさらに情報を追加したいと思います。私はそのように考えておらず、必要な詳細の一部を提供していませんでした。メタデータを使用することは想定していましたが、私にとってデータメタデータは非常に異なる意味と使い方を持っています。

これについてChatGPTに尋ねたところ、私が想定していた方向性と似ていますが、Elasticsearchのようなもう少し具体的な情報を含む回答がありました。

プロンプト

PDFマニュアルを使用してRAG(Retrieval Augmented Generation)をどのように利用し、マニュアルからタイトル、発行日、ページ番号、段落番号を参照として取得できますか?

完了

PDFマニュアルを使用して、タイトル、発行日、ページ番号、段落番号などの特定の情報を抽出するためにRetrieval Augmented Generation(RAG)を使用するには、いくつかのステップが必要です。Facebook AIによって開発されたRAGは、検索(関連ドキュメントまたはデータの取得)と言語生成の力を組み合わせて、モデルが外部知識を参照および組み込むことを可能にします。PDFマニュアルでRAGを使用するための一般的なアプローチを以下に示します。

  1. PDFマニュアルをテキスト形式に変換する:

    • まず、PDFマニュアルを処理可能なテキスト形式に変換する必要があります。Adobe Acrobat、pdftotext(Xpdfプロジェクトの一部)、またはPyPDF2やPDFMinerなどのPythonライブラリなどのツールを使用できます。
  2. テキストの前処理:

    • テキストを取得したら、前処理が必要になる場合があります。これには、不要なフォーマットの削除、特殊文字の処理、および識別可能なマーカーを使用してテキストをセクション、ページ、段落に分割することが含まれます。
  3. マニュアルのインデックス作成:

    • RAGが効果的に機能するためには、マニュアルの内容をインデックス化する必要があります。これは、各情報(段落やセクションなど)が対応するメタデータ(ページ番号、段落番号など)とともに保存されるデータベースまたは構造化形式を作成することを意味します。Elasticsearchまたは同様の検索エンジンをこの目的で使用できます。
  4. RAGの統合:

    • マニュアルがインデックス化されたら、RAGを統合できます。RAGは通常、検索のためのトランスフォーマーベースの言語モデル(BERTやRoBERTaなど)と生成のためのシーケンスツーシーケンスモデル(BARTやT5など)を組み合わせます。インデックス化されたマニュアルをクエリするようにRAGを設定する必要があります。これには、検索エンジンで動作するように検索コンポーネントをカスタマイズすることが含まれる場合があります。
  5. システムへのクエリ:

    • RAGシステムにクエリを実行すると、検索コンポーネントが最初にクエリに基づいてマニュアルの最も関連性の高いセクションを見つけます。この情報は次に生成コンポーネントに渡され、応答が形成されます。
  6. 参照情報の抽出:

    • タイトル、発行日、ページ番号、段落番号を取得するには、これらの詳細が取得されたセグメントに含まれているか、またはシステムがインデックス化されたデータに参照してこのメタデータを取得できることを確認する必要があります。これには、システムに追加のロジックが必要になる場合があります。
  7. 参照のための後処理:

    • 応答が生成された後、タイトル、発行日、ページ番号、段落番号が正確に含まれていることを確認して、参照を正しくフォーマットするために後処理ステップが必要になる場合があります。
  8. ファインチューニングと評価:

    • 特定の要件やマニュアルの複雑さに応じて、同様の種類のドキュメントまたはクエリでRAGモデルをファインチューニングする必要がある場合があります。システムのパフォーマンスを評価し、必要に応じてアプローチを調整します。
  9. ユーザーインターフェイスとの統合:

    • 最後に、このシステムがエンドユーザーを対象としている場合は、ユーザーがクエリを入力し、参照情報を含む応答を受け取ることができる使いやすいインターフェイスに統合します。

このアプローチの効果は、インデックス化されたデータの品質、検索モデルの機能、および生成モデルが特定のユースケースに対してどの程度トレーニングまたはファインチューニングされているかに大きく依存することを忘れないでください。


注:ChatGPTを使用して情報を生成しますが、情報が間違っていると思われる場合はChatGPTからの情報を投稿しません。つまり、ChatGPTは役立ちますが、提供された情報が正しいかどうかを知る必要があります。ここでChatGPTが説明していることを正確に実装したわけではありませんが、これには十分な経験があり、これまたはその派生を使用します。

「いいね!」 2

各プラグインのテストフォーラムを設定しました。Discourse AI および Discourse Chatbot

Discourse Chatbot プラグインには、OpenAI の embeddings API を使用する embeddings の作成 というステップがあります。Discourse AI プラグインにはこのステップがないようです (OpenAI ダッシュボードに embeddings のアクティビティが表示されませんでした) が、フォーラムの投稿を見つけます。セマンティック検索のために embeddings を生成しない場合、Discourse AI プラグインはどのようにフォーラムを検索しますか?通常のテキスト検索を使用しますか?独自の embeddings を計算しますか?

「いいね!」 1