| 概要 | Discourse 用オリジナル AI チャットボット | |
| リポジトリリンク | GitHub - merefield/discourse-chatbot: An AI bot with RAG capability for Topics, Chat & Customer Support in Discourse, currently powered by OpenAI · GitHub | |
| インストールガイド | Discourse へのプラグインインストール方法 | |
| スポンサーシップ | このプラグインが適切なメンテナンスを受け、将来もあなたのサイトで機能し続けるよう、あなたやあなたの組織の資源とニーズに合ったレベルで 私のオープンソース作業のスポンサー になることを検討してください。 |
このプラグインをお楽しみいただけていますか? GitHub で
を付けてください! ![]()
これは独立して貢献されたプラグインであるため、サポート、バグ報告、UX、機能リクエストは本トピックで行ってください。なお、このプラグインは Discourse.org のホスティングでは利用できません。セルフホスティングの場合、またはサードパーティのホスティングの場合(プロバイダーに確認してください)にインストール可能です。
これは何ですか?
- Discourse 用オリジナル AI チャットボット!
- カスタマーサポートのインフォメーションタスクにこのボットを使用できます(このガイド Building a technical support chatbot を参照)
- 任意のトピックまたはチャットチャンネルでボットと会話できます。1対1でも、他のユーザーとでも!スレッドに対応しています。
- フォーラムに合わせてボットのキャラクターをカスタマイズできます!
- ウィリアム・シェイクスピアやウィンストン・チャーチルのように話させたい?できます!
- 「RAG モード」のボットは以下のことができます:
- フォーラムを検索して回答を見つけるため、ボットはあなたのフォーラムの主題について専門知識を持つことができます。
- 特定の著者グループやトピックタグを優先するように検索結果を再ランク付けします
- 現在のトピックまたはチャンネルの情報のみを知っているわけではありません。
- 未完了のユーザーフィールドについてユーザーにプライベートで質問します。
- AI 画像のレンダリングと編集
- Wikipedia の検索
- 現在のニュースの検索*
- Google の検索*
- リモートサイトのクロール*
- 株式の現在の終値データを返します。*
- 「複雑な」数学演算を正確に行います(作り話や「幻覚」の回答はありません!)
- これらの「ツール」はプラグインで拡張できます。以下を参照。
- フォーラムを検索して回答を見つけるため、ボットはあなたのフォーラムの主題について専門知識を持つことができます。
- ビジョンサポート - ボットはあなたの画像を見て、それに関する質問に答えることができます!
- 特定のカテゴリの新しいトピックに自動的に返信します
- 最先端の Open AI API と、業界をリードする大規模言語モデル(LLM)の優れた機能を使用します。
- ボットへのアクセスを管理するための特別なクォータシステムを含んでいます:より信頼性の高い、または有料メンバーはボットへのアクセス権をより多く持つことができます!
- クエリまたはトークン単位で使用量を計測します。
- Azure およびプロキシサーバー接続にも対応しています。
- サードパーティのプロキシプロセスを使用して、Gemini などの代替 LLM をサポートするように呼び出しを変換します。例:こちら
*外部(関連のない)API サービスへの登録が必要です。リンクは設定にあります。
RAG モードは非常に賢く、あなたのフォーラムに投稿された事実を知っています:
基本的なボットモードは時折間違いを犯すことがありますが、大規模言語モデルへの呼び出し回数が少ないため、運用コストが安くなります:
(ごめんね、中国!
**ボットの「ビジョン」- 何が見えるか(潜在的に共有される可能性)とプライバシー 
このボットはあなたのフォーラムの公共スペースで使用できます。特に有用にするために、RAG モードがあります(ボット信頼度レベルごとに1つの設定)。これはデフォルトでは設定されていません。
このモードでは、デフォルトとして、以下の設定に基づいて、信頼度レベル1のユーザーが閲覧できるすべてのコンテンツにボットがアクセスできます:
したがって、公開トピックで対話する場合、カテゴリ権限を通じて信頼度レベル0または1でコンテンツを制限している場合、ボットが情報を「漏洩」する可能性があります。このレベルが選ばれたのは、経験上、ほとんどのサイトが低信頼度レベルで機密コンテンツを制限していないからです。ただし、あなたの特定のニーズによります。
このモードでは、少なくとも1人の信頼度レベル1のユーザーがいて、自動化されたグループ以外の追加のグループメンバーシップがないことを確認してください。(ボットはその後、TL1レベルのユーザーが知っているすべてのことを知り、それを共有できることになります)。自動化されたグループ以外の追加のグループメンバーシップがない信頼度レベル0のユーザーがいる場合、chatbot embeddings benchmark user trust level を下げることもできます。
あるいは:
chatbot embeddings strategyをcategoryに切り替え、chatbot embeddings categoriesにボットが知っておくべきカテゴリを入力します。(プライベートカテゴリを追加すると、ボットはそれらを知ることになり、ボットが公共の場で言うことは、権限の低いユーザーに漏洩する可能性があるため、追加する内容には注意してください)。- 通常モードのみでボットを使用します(ただし、ボットは投稿を見なくなります)
- モデレーションで緩和します
さらに、ボットが「見える」ものはすべて Open AI と共有されることに注意してください。
この設定が妥協点であることをお分かりいただけるでしょう。ボットを有用にするためには、あなたのサイトのコンテンツについて知識を持っている必要があります。現在、ボットがメンバー限定コンテンツを選択的に読み取り、それをメンバーのみに共有することはできません。一部の管理者はこれを制限的だと感じるかもしれませんが、ボットが公共の場で話せる間、これを簡単に解決する方法はありません。特別なニーズがある場合は、この分野での作業をスポンサーしていただくためにご連絡ください。セマンティック検索によるボットの権限管理は非自明な問題です。システムは現在、速度に最適化されています。なお、プライベートメッセージはボットによって読み取られません。
FYI
- マルチサイトインストールでは動作しない場合があります(明示的にテストされていません)が、サポートを改善するための PR は歓迎します

- 高度なモデルでは、需要が高いため、Open AI API の応答が遅くなる場合があります。ただし、チャットボットは GPT 3.5 もサポートしており、これは高速で応答が良く、十分に能力を持っています。
- 拡張可能で、他のクラウドボットをサポートする予定ですが(そのためプラグインの一般的な名前)、現在「のみ」Open AI の大規模言語モデル(LLM)との相互作用をサポートしています。GPT-4 など。追加のボットタイプを追加したい場合、またはサポートしていただく場合はご連絡ください。PR は歓迎します。ただし、すでにプロキシサーバーを使用してコード変更なしで他のサービスにアクセスできます!
- 現在のセット以上の他のコンテンツの検索をサポートするように拡張可能です。
設定
前提条件
app.yml の通常の変更 の他に、以下の点に注意する必要があります:
チャットボットまたは AI トピック要約 でビルドするには、pgvector postgres 拡張のバージョン 0.5.1 以上が必要です。
ほとんどの人はすでにこのバージョン以上を持っています。ただし、まれに古いバージョンがインストールされている場合があります。これにより、以下のようなエラーでビルドが妨げられます:PG::UndefinedObject: ERROR: access method "hnsw" does not exist
まず、コンテナが実行中であることを確認します:
./launcher restart app
次に、コンテナに入ります
./launcher enter app
次に、データベースに入り、pgvector のバージョンを更新します:
:/var/www/discourse# su postgres -c 'psql discourse'
\dx
ALTER EXTENSION vector UPDATE;
\dx
exit
これで exit でコンテナから抜け出します
これで再ビルドできるはずです。
エンベディングの作成
チャットボットがあなたのサイトのコンテンツについて知っているようにするには、この設定を ON にします:
chatbot_embeddings_enabled
RAG タイプのボットを使用し、現在のトピックだけでなく、あなたのフォーラムのコンテンツについて知るようにする場合にのみ必要です。
最初は、範囲内のすべての投稿のエンベディングを作成する必要があります。これで、ボットはフォーラムの情報を検索できます。この設定が有効になると、バックグラウンドでこれが行われ、何もする必要はありません。
このシードジョブは、非常に大きなサイトでは数日かかる場合があります。
エンベディングの範囲
これはいくつかの設定によって決定されます:
chatbot_embeddings_strategyは “benchmark_user” または “category” のいずれかですchatbot_embeddings_benchmark_user_trust_levelは前者に関連する信頼度レベルを設定しますchatbot_embeddings_categoriesはcategory戦略が設定されている場合、ボットが指定されたカテゴリ内のすべての投稿を考慮できるようにします。
これらの設定を変更すると、時間の経過とともにエンベディングの人口が変化します。
人口の増加を速める方法
コンテナに入ります:
./launcher enter app
そして、以下の rake コマンドを実行します:
rake chatbot:refresh_embeddings[1]
これは現在、不明な理由で2回実行されます(ごめんなさい!PR を歓迎します)が、[1] は2回目に実行する際に欠けているエンベディングのみを追加する(つまり、最初の実行後すぐに何もない)ことを保証するため、ある意味では無意味です。
OpenAI によってレート制限がかかるというまれな場合(ありえない!)、これを実行してエンベディングを完了できます:
rake chatbot:refresh_embeddings[1,1]
これは欠けているものを埋めます(エラーから何も失われません)が、Open AI への各呼び出しの間に1秒の遅延を設けて、より慎重に進みます。
ボットとの相互作用と比較して、エンベディングの作成はコストがかかりませんが、いずれにせよ Open AI ダッシュボードでの使用量に注意してください。
なお、エンベディングは投稿に対してのみ作成され、信頼度レベル1のユーザーがアクセスできる投稿のみが対象です。これは妥当な妥協点 seemed like a reasonable compromise. 信頼度レベル2以上のみにアクセス可能なコンテンツの投稿に対してエンベディングを作成しません。
エンベディング人口を監視するための有用な Data Explorer クエリ
@37Rb が書きます:「これは私が Data Explorer プラグインを使用してエンベディングを監視・検証するために使用している SQL クエリです。他の人にも役立つかもしれません。"
SELECT e.id, e.post_id AS post, p.topic_id AS topic, p.post_number,
p.topic_id, e.created_at, e.updated_at, p.deleted_at AS post_deleted
FROM chatbot_post_embeddings e LEFT JOIN posts p ON e.post_id = p.id
文字数が多すぎるエンベディングを取得しようとした場合のエラー。
以下のようなエラーが発生する場合があります:
OpenAI HTTP Error (spotted in ruby-openai 6.3.1): {"error"=>{"message"=>"This model's maximum context length is 8192 tokens, however you requested 8528 tokens (8528 in your prompt; 0 for the completion). Please reduce your prompt; or completion length.", "type"=>"invalid_request_error", "param"=>nil, "code"=>nil}}
これは以下のように解決します…
エラーメッセージによると、エンベディングモデルには次の制限があります:
8192 tokens
however you requested 8528
この設定の現在の値を約4倍の差分だけ下げる必要があります:
chatbot_open_ai_embeddings_char_limit:
そして、それが機能するか確認します(トークンは おおよそ 4文字です)。
したがって、この例では、4 x (8528 - 8192) = 1344
したがって、chatbot_open_ai_embeddings_char_limit の現在の値を安全のために1500下げます。ただし、デフォルト値は英語の投稿に対して多くのテストに基づいて設定されていますが、他の言語では下げる必要がある場合があります。
これにより、より多くのテキストが切り捨てられ、トークンが要求され、エンベディングが成功するはずです。成功しない場合は、差分を確認し、さらに減らす必要があります。最終的には、もう見なくても低くなります。
エンベディングモデルの切り替え方法
設定を変更するだけでよく、バックグラウンドジョブが徐々に処理してくれます。
本当にプロセスを速めたい場合は、以下を実行します:
- 設定
chatbot_open_ai_embeddings_modelを新しい希望のモデルに変更します - まず、現在のすべてのエンベディングを削除するのが最善です:
- コンテナに入ります
./launcher enter app - rails コンソールに入ります
rails c ::DiscourseChatbot::PostEmbedding.delete_allを実行しますexit(コンテナ内のルートに戻ります)
- コンテナに入ります
rake chatbot:refresh_embeddings[1]を実行します- Open AI 側の理由で途中で失敗した場合、100% になるまで再度実行します
- 新しいモデルはより正確であることが知られているため、
chatbot_forum_search_function_similarity_thresholdを下げない限り、結果が得られないかもしれません :)。私はデフォルト値を0.8から0.6に下げましたが、結果は人によって異なります。
ボットタイプ
プラグイン設定の全体を読み取る時間を取ってください。chatbot bot type 設定は重要で、各チャットボット「信頼度レベル」に1つあります:
RAG モードは優れていますが、API への呼び出しが増え、コストが増加する可能性があります。ただし、最終的に「幻覚」を出力する傾向が減少するため、GPT-4 から GPT-3.5 に下げることができ、出力の有用性と信頼性が大幅に増加しても、最終的にコストが少なくなる可能性があります。GPT 3.5 は、応答時間に基づいてエージェントタイプにも適しています。潜在的なウィンウィン!実験してください!
チャットでチャットボットを動作させるには、チャットを有効にする必要があります。
ボットに応答させる方法
基本的なルール
- プラグイン設定で許可されている場合、ボットはトピックまたはチャットチャンネルで単一のユーザーによって呼び出されると、より多くの人が参加するまで、すべての投稿またはメッセージに返信します。
- ボットを @メンションすると、常に呼び出されます
カテゴリごとの特殊な自動応答
- カテゴリごとに、チャットボットが新しいトピックごとに返信するように設定でき、カテゴリ設定で設定したカテゴリ固有のプロンプトによって制御される特殊な指示を与えることができます。
以下のように始めるべきです:
“こんにちはと言って、自己紹介してください。私の最初の投稿に関連するフォーラムのローカル検索を使用して、フォーラムの5つの投稿を共有してください。リンクを含めてください”
つまり、ユーザーが助けを求めているかのように一人称で書く必要があります。これはシステムプロンプトではありません。ボットがどのように行動すべきかを説明するものではありません(それはシステムプロンプトであり、まだ送信されます)。これは、特定の助けを求めるユーザー(ただし隠れて)です。基本的に、ボットを言及せずにユーザーの投稿のように書きます。
ボットの応答速度
これは主に設定 chatbot_reply_job_time_delay によって制御され、あなたが裁量を持っています。
この設定を持つ意図は:
- Open AI のレート制限に達するのを防ぐ
- ボットをスパムしてあなたにお金をかけさせたいユーザーからあなたのサイトを守る
- Discourse がホットリンクされた画像をアップロードするのに十分な時間を与え、ボットがそれらを見ることができるようにする
現在デフォルトは ‘2’ 秒で、ゼロに減らすことができます
、ただし、上記のリスクに注意してください。ボットのビジョン(使用している場合)は、この設定に特に敏感です。ボットがあなたの画像を見ない場合、この値を増やしてみてください。
これをゼロに設定すると、ボットは「エージェント」モードでもはるかに「スナップ」します。
明らかに、これは少し人工的で、実際の人間はそれほど速くタイプしません… ただし、あなたの好みと財布の大きさに合わせて設定してください。
なお、Open AI の API の応答速度を直接制御することはできません - 一般的なルールは、設定するモデルが高度であれば、この応答は通常遅くなります。現在一般的に言えるのは、「ミニ」モデルはより速いということです。
AI によるユーザーフィールドの収集(実験的)
ユーザーに現在空白のオプションのユーザーフィールドがある場合、この設定を有効にすると、ボットがユーザーに情報を尋begins to ask the user for the information. 未完了のユーザーフィールドを完了するまで進行し、その後、通常の動作に戻ります。

(応答の遅さにごめんなさい - これは開発環境で録画されました)
なお、この機能は以下のもののみをサポートします:
- テキスト
- ドロップダウン
- 確認
マルチセレクトはまだサポートされていません。
フィールドは オプション でなければなりません
ユーザーフィールドの順序が優先度を決定します。
Ollama & llama3 サポート
Ollama による(完全に素晴らしい!)llama3 のサポートが現在出荷されています:
これは、ボットが dev でローカルに実行される場合、または ollama サーバーでクラウドで実行される場合、および Basic モードの場合です:
- モデルが
llama3であることを確認します:
- カスタム URL を
http://localhost:11434に設定する必要があります:

十分な大きさのサーバーがある場合、クラウドで ollama を提供できます。
DeepSeek Hype 
チャットボットで参加してください ![]()
少なくとも Basic モードでボットを使用して、V3 と R1 にアクセスできます
私は以下を使用しました:
(アフィリエイトではありません)
彼らのモデルをホストしています。
以下のように設定します:
Basic ボットモードを設定し、あなたのキーを置き換えてください。
ただし、DeepSeek AI のウェブサイトへのアクセス権がある場合、直接 DeepSeek AI を使用できるかもしれません ![]()
ベース URL は “https://api.deepseek.com” です。
OpenAI
現在のボットを使用するには、https://platform.openai.com/ から トークン を取得する必要があります。デフォルトの言語モデルが設定されています(最も高度なものの1つ)が、より安価な代替案を試すことができます。リストはこちら
設定には自動化された部分があります。Discourse に追加すると、プラグインは現在、以下の属性を持つ AI ボットユーザーを設定します
- 名前: ‘Chatbot’
- ユーザーID: -4
- 自己紹介: “こんにちは、私は実際の人間ではありません。あなたと物事を議論できるボットです。私を真剣に取りすぎないでください。時々、私は物事について正しいこともあります!”
- グループ名: “ai_bot_group”
- グループフルネーム: “AI Bots”
名前、アバター、自己紹介は自由に編集できます(admin → customize → text のロケール文字列を参照)が、メンションしやすくしてください。
無料ではないため、クォータシステムがあり、これを設定する必要があります
最初、誰もボットにアクセスできません。スタッフでも同様です。
Open AI API の呼び出しは、初期の無料割り当てが期限切れになると無料ではありません!したがって、これを制御し、コストを抑え、乱用を防ぐためにクォータシステムを実装しました。これらの小さな相互作用ではコストは狂気的ではありませんが、人気が出ると積み重なる可能性があります。OpenAI の価格については 価格ページ で詳しく読むことができます。
ボットと相互作用するには、3つの信頼グループセット(低、中、高信頼グループセット)のいずれかに追加されたグループに属している必要があります。各信頼グループセットごとに、1週間あたりの許可された相互作用の数を対応する設定で変更できます。
グループも埋める必要があります。この設定は完全にあなた次第です。最初は空白なので、最初、誰もボットにアクセスできません:
この例では、staff に高信頼アクセスを与え、trust_level_0 に低信頼を与えています。3つの追加設定で対応するクォータを取得します。
なお、ユーザーは、メンバーである最高信頼グループに基づいてクォータを取得します。
「プロンプトエンジニアリング」
ボットが受け取るものや、ボットがどのように応答するかに影響を与えるいくつかのロケールテキスト「設定」があります。
最も重要で、変更を検討すべきものはボットの system プロンプトです。これは、ボットと話すごとに送信されます。
基本的なボットの場合、以下のようなシステムプロンプトを試すことができます:
’あなたは極端なフォーミュラ1ファンで、モータースポーツとその高オクタンレベルの興奮について何でも好きです’ デフォルトの代わりに。
(rag ボットの場合、「You are a helpful assistant.」の後のすべてを保持する必要があります。そうしないと、エージェントの動作が壊れる可能性があります。問題が発生した場合はリセットしてください。また、実験してください!)
あなたのフォーラムの主題に最も適切なものを試してください。創造的になりましょう!
なお、現在、各ボットタイプに2つのシステムプロンプトがあります。1つ .open は「公共」でボットと話しているときに使用されます。もう1つ .private は、パーソナルメッセージまたはダイレクトメッセージチャットでボットと話しているときに適用されます。これにより、サポートボットなどのプライベート動作をカスタマイズできます。
これらのロケール文字列を変更すると、ボットの動作が非常に異なるものになりますが、オンザフライで修正することはできません。システムプロンプトのみを変更することをお勧めします。他のものはエージェントの動作や、誰が何と言ったかに関する情報を提供するという重要な役割を果たします。
なお、トピックでは、最初の投稿とトピックタイトルが、投稿のウィンドウ(ルックバック設定によって決定)に加えて送信され、ボットにより多くのコンテキストを与えます。
これらの文字列は Admin → Customize → Text の下で chatbot.prompt. で編集できます。最も重要なのは、chatbot.prompt.system. にあるシステムプロンプトです。
投稿とチャットメッセージの両方をサポート!
ボットはチャットメッセージとトピック投稿、およびプライベートメッセージ(設定されている場合)をサポートします。
ボットに応答させるために、それに返信するか、@メンションすることができます。ボットが応答のコンテキストを取得するためにどれくらい後ろを見るかを設定できます。値が大きいほど、各呼び出しのコストが高くなります。
ボットにすぐに接続するフローティングクイックチャットボタンがあります。そのスタイルは少し実験的です(モバイルのベースフォーラムのいくつかの z-index 値を変更)し、いくつかのページで競合する可能性があります。これは設定で無効にできます。1対1のチャットまたはパーソナルメッセージにボットをロードするかどうかを選択できます。
現在、お好みのアイコン(デフォルト
)を選択できます。または、設定が空白のままの場合、ボットユーザーのアバターを選択します! ![]()
アバター:
または アイコン:そして、展開時に表示されるテキストもカスタマイズできることを覚えてください:

… Admin → Customize → Text を使用して
(ただし、望む色とサイズを収めるために CSS を少しカスタマイズする必要があるかもしれません)。
デバッグヘルプ
- 設定
chatbot include inner thoughts in private messagesが ON であることを確認します - 設定
chatbot enable verbose rails loggingが ON であることを確認します - サーバーに ssh します
cd /var/discourse/shared/standalone/log/rails- 並行して PM でボットに何か質問します
- コンソールに戻ります
- 以下のようなメッセージを探します:
- 一般的なチャット =
tail -n 2000 production.log | grep {\"model\":\" - ビジョン呼び出し =
tail -n 2000 production.log | grep {\"type\":\"image_url\"
- 一般的なチャット =
- PM で「inner thoughts」を確認します
プラグインでチャットボットのツールセットを拡張
チャットボットプラグインは、チャットボットリポジトリのフォークをメンテナンスする必要がないように、別のプラグインで他の関数を追加する機能を持っています。
例の関数プラグインはこちら:
ただし、もちろん、任意のプラグインにこれを追加できます…
この機能はこの PR で追加されました
チャットボットの拡張でヘルプが必要な場合は、私を雇って手伝ってもらうことができます。
プラグインのアンインストール - 重要!
最近のプラグインの簡素化の努力により、プラグインをアンインストールするために必要なステップは、クローンステートメントを削除することのみです。
プラグインにご興味を持っていただきありがとうございます!
免責事項: ボットが応答するものについて私は 責任を負いません。プラグインはベータ段階であるとみなし、問題が発生する可能性があります。フィードバックによって改善されます。ただし、必ずしもボットの応答ではありません
LLM の長所と短所、およびそれらが何ができるか、できないか、およびその制限を理解してください。それらは説得力のあるテキストを作成するのが非常に得意ですが、事実誤認をすることがよくあります。
重要なプライバシーノート: あなたのフォーラムに書くものはすべて、ボットが最後の数件の投稿をスキャンして応答を促されると、Open AI に転送される可能性があります(明らかに、これは現在のトピックまたはチャットチャンネルに限定されます)。それらが事前にトレーニングされたモデルに組み込まれることはほぼ肯定不会ですが、データは分析とログで使用されます。この事実をあなたのフォーラムの TOS とプライバシーステートメントに必ず追加してください。関連リンク: https://openai.com/policies/terms-of-use, https://openai.com/policies/privacy-policy, https://platform.openai.com/docs/data-usage-policies
著作権: Open AI は著作権について次のように声明を出しました: https://help.openai.com/en/articles/5008634-will-openai-claim-copyright-over-what-outputs-i-generate-with-the-api
TODO/ロードマップアイテム
- フロントエンドとバックエンドのテストを追加

- 「ボット入力」インジケーターと「応答ストリーミング」を追加 (@Aizada_M, @MarcP)

- ボットを忘れた?ボットが @メンションを追加する編集に応答するようにする (@frold )
- バッジを追加?@botname をメンションしました (@frold )
- カテゴリとピン留め投稿プロンプトを含める設定を追加? (@Ed_S)
- 各メッセージ履歴プロンプトにバイオを追加? (@Ed_S , @codergautam)。 これ本当に動くのか。証拠を集めよう。
- Discourse Frotz をこのより良いコードベースで更新?
ベクトル検索のために.pgembeddingの代わりにpgvectorを使用するように移動
セマンティック検索を追加して、ボットがあなたのフォーラムの投稿を読み、「専門家」になるようにする

幻覚を減らし、信頼性の高い事実情報を活用するためのエージェント動作を追加
疑わしいユーザー名を @メンションに変換するための追加ロジックを追加 (@frold )
GPT-4 サポートを追加(Open AI が私にアクセス権を認めてくれたら!
)
カスタムモデル名サポートを追加.
API にテキストを渡す前に投稿から引用符を削除するオプションを追加
Open AI がエラー状態を返したときのエラー透明性とハンドリングを改善
タイムアウトした API リクエストのリトライ機能を追加
ChatGPT のサポートを追加
Discourse コア標準にプラグインをリンティング
CI ワークフローを追加
ボットの応答の性質に影響を与える設定を追加(例:どれくらい奇妙か).
トピックタイトルと最初の投稿をプロンプトに含める
生データから cooked データに切り替える設定を追加して、潜在的にウェブトレーニングデータをよりよく活用する(@MarcP による提案)。 注意:コストが高くなり、入力トークンがカウントされ、cooked ははるかに大きいため、返されるものが制限される可能性があります。このアイデアは放棄したようです
クレジット:
- @MarcP による熱心なサポートと詳細なテストフィードバックに感謝します。
- Open AI 用の新興標準 Ruby API に貢献した方々、これはこれを活用しています
- フローティングボタンのデザインは主に Discourse の GitHub - discourse/material-design-stock-theme · GitHub から借りています(したがって、現在互換性がありません、どーん!)
- フィクスチャコードは @vinothkannans の ここ の作業に基づいています
- @P16 が何年も前にチャットボットを手伝うために私を雇わなかったら、これは存在しなかったかもしれません
*まだ OpenAI のチャット GPT エンジンを使用していますが、現在、ローカル関数と API 呼び出しからのデータを活用して幻覚を制限できます。














