DiscourseAIでのプロンプトカスタマイズのサポート

私のリクエストはただ一つ、そしてそれは常に同じです。このためのプロンプトがあるので、コードの空白に隠さないでください。必要なのは、「常にフィンランド語を使用する」というフレーズを一つ追加することだけです。それだけです。そうすれば、すべてがグローバルに利用できるようになります。

しかし、今は私の時間の無駄、アクティブユーザーの時間の無駄、そしてそのようなサービスを必要とする人々を含む、私が得るすべての匿名ユーザーの時間の無駄です。

これは素晴らしい仕事です。しかし、その一つの欠けている機能のために…いいえ。フィンランドのフォーラムで英語を使ってこれを生成したり、要約したりする意味は全くありません。なぜなら、ユーザーに提供したいからです。もし彼らがそれを使うことができれば、誰もがそれを使うことができるからです。

「いいね!」 6

主要な言語の問題が解決される前に、そうならないことを願っています :thinking:

DiscourseAI では、プラグインのさまざまな部分で使用されるすべてのプロンプトをユーザーがすばやく変更できるように、プロンプトのカスタマイズ計画があります。これは今年中に対応できると考えています。

それまでの間、このようなリクエストはこのトピックに集約できます。

「いいね!」 8

これは大変な状況だ!プロンプトをカスタマイズ可能にすることは、非常に難しい問題だ。

具体的に考えてみよう。例えば:

    CompletionPrompt.seed do |cp|
      cp.id = -306
      cp.name = "explain"
      cp.prompt_type = CompletionPrompt.prompt_types[:text]
      cp.messages = { insts: <<~TEXT }
        あなたは、特定の文脈で生徒に用語を説明するチューターです。
        私が提供するすべての情報は、<input>タグの中にあります。これには、説明したい用語が<term>タグの中に、使用された文脈が<context>タグの中に、使用されたトピックのタイトルが<topic>タグの中に、そしてオプションで、会話の前の投稿が<replyTo>タグの中に含まれます。
        これらのすべての情報を使用して、用語の意味を簡潔に説明する段落を記述してください。応答はMarkdown形式でフォーマットしてください。説明のみを返し、それ以外は何も返さないでください。
      TEXT
    end

これをどのように解決し、カスタマイズ可能にできるか?

  1. 翻訳システムを使用し、指示を server.en.yml に移動する
  2. 「Completion Prompt」をAi Personaモデルに置き換える
  3. 「Completion Prompt」モデルのエディタを提供する
  4. プロンプトエンジニアリングで解決する

1. 翻訳システムを使用し、指示を server.en.yml に移動する

長所

  • 複数の言語をサポートして自動的にリリースできる
  • システムは既に存在しており、新しいものを構築する必要はない
  • 管理UIでのローカライズオーバーライドを通じて非常にカスタマイズ可能

短所

  • 多くのLLMは「英語以外」ではうまく機能せず、翻訳するとパフォーマンスが大幅に低下する可能性がある
  • 人々がtagsを翻訳すると、完全に壊れてしまう(例:<title>

2. AI Personaに統合する

長所

  • UIのほとんどは既に存在している
  • AIヘルパーに要素を追加/削除する簡単な方法

短所

  • 翻訳をサポートしてリリースすることはできない
  • 機能で使用するペルソナをフラグ付けするためのUIを構築する必要がある(これは投稿の図解用か?コンポーザーヘルパー用か?ボットタイトルの生成用か?)これらのいくつかは1対1であり、いくつかは1対多である
  • 一部のペルソナはボットの会話には適さない。これらは<replyTo>タグ、<item>タグ、<input>タグを必要とする。

3. Completion PromptsにUIを提供する

長所

  • ペルソナとの明確な分離、混乱の軽減
  • ユーザーに新しい完了プロンプトを追加できるのは良いことだ…翻訳の下に何かを追加したい場合、問題ない
  • 編集が簡単

短所

  • 「ドリフト」の扱いは複雑だ。ユーザーがプロンプトをオーバーライドし、元のプロンプトを修正して<something_new>タグを追加した場合、ユーザーはどうやって知るのだろうか?

4. プロンプトエンジニアリングで解決する

もしこの魔法を成し遂げることができれば、もう少しカスタム指示を追加することで、例えば「重要:すべての応答はフィンランド語で行うこと」といったことが可能になるかもしれないが、これを一貫して機能させるのは難しいだろう。

長所

  • 魔法のように、ただ機能する

短所

  • 実際には、一貫して機能する可能性は非常に低い。適切な言語でカスタム指示を持つ方が、モデルをより適切に接地できる。

個人的には、(3)に傾いている。特に、カスタムプロンプトを追加する機能があり、明確に分離されているためだ。しかし、(2)が抜け道として機能することは完全に理解できる。もしかしたらそれを成し遂げることができ、多くのコードを統合できるかもしれない。これは非常に良いことだ。勝者を決定するために、まずこのアイデアを試して実験する必要がある。

「いいね!」 6

そうではないかもしれませんが、OpenAIは機能します。

私たち(エンドユーザー管理者)は、このような状況でプロンプト全体をエンジニアリングする必要はありません。プロンプトで特定の言語を使用するように要求を追加するだけで済みます。コーディングについては何も知りませんが、一般的に言えば、テキスト文字列をテキストに追加することは非常に簡単ですよね?そして、あなたはここでテキストだけを送っているのですか?

そして、プロンプト自体は当然ながら英語でなければなりません。

「いいね!」 2

これは一般的なプロンプトのカスタマイズではなく、言語の問題に特化していますが、言語のドロップダウンがあれば、AIにプロンプト(タグを除く)を翻訳させ、そのプロンプトを保存/送信することはできますか?

フィンランド語へのプロンプト翻訳 AI

:person_curly_hair: <> タグを除いて、これをフィンランド語に翻訳してください:

あなたは、特定の文脈で生徒に用語を説明するチューターです。<input> タグの中に、説明に必要なすべての情報を提供します。これには、<term> タグの中にある説明したい用語、<context> タグの中にある使用された文脈、<topic> タグの中にある使用されたトピックのタイトル、そしてオプションで、<replyTo> タグの中にある会話の前の投稿が含まれます。これらのすべての情報を使用して、用語の意味の簡単な説明を含む段落を書いてください。Markdownを使用して応答をフォーマットしてください。説明のみを返し、それ以外は何も返さないでください。

:robot: Sinä olet ohjaaja, joka selittää termin oppilaalle tietyssä kontekstissa. Minä tarjoan sinulle kaiken tarvittavan tiedon <input> tageissa, joka sisältää termin, jonka haluat minun selittävän <term> tageissa, kontekstin, jossa sitä käytettiin <context> tageissa, aiheen otsikon, jossa sitä käytettiin <topic> tageissa, ja valinnaisesti, edellisen viestin keskustelussa <replyTo> tageissa. Käyttäen kaikkea tätä tietoa, kirjoita kappale lyhyellä selityksellä siitä, mitä termi tarkoittaa. Muotoile vastaus käyttäen Markdownia. Vastaa vain selityksellä eikä millään muulla.

技術的な詳細はプロンプトの別の部分にすることができますか?そうすれば、次のようなプロンプトになります。

この動作を適用してください(管理者は編集または追加できます):

  • あなたは、特定の文脈で生徒に用語を説明するチューターです。
  • 用語の意味の簡単な説明を、段落で書いてください。
  • 説明のみを返し、それ以外は何も返さないでください。
  • たくさんの絵文字を使用してください

これらの技術的な詳細(編集不可、ドリフトを回避するために更新します):

  • 説明したい用語は <term> タグの中にあります
  • 使用された文脈は <context> タグの中にあります
  • 使用されたトピックのタイトルは <topic> タグの中にあります
  • 会話の前の投稿は <replyTo> タグの中にあります(オプション)
  • Markdownを使用して応答をフォーマットしてください
「いいね!」 1

それは非常に悪い考えです。プロンプトが毎回2回翻訳され、変更されてしまいます。「[好きな言語]で答えて」というフレーズがあれば十分です。(「〜を使って」というのも、言い方の問題だけで、英語である必要があります。まあ、それはOpenAIでは真実ですが、他の言語については私には未知の領域です)。問題は、その言語をどうするかを決めることであり、フォーラムがデフォルトで使用している言語と同じものを提案したいと思います。

「いいね!」 1

一時的な解決策があります。

GitHubからdiscourse-aiをフォークし、コンテンツをフランス語で話すように変更します。

次のようにします。

次に、app.ymlファイルを変更し、discourse-aiプラグインのアドレスを自分のリポジトリに変更します。

最後に、公式リポジトリから自分のリポジトリを手動で同期します。

申し訳ありませんが、しないでください。このプルリクエストはNetlifyプロキシにリクエストを送信します。今日、簡単な修正をいくつか試してみます。

「いいね!」 2

ここに概念実証と動作例があります。

GPT-4 はほとんどの言語でかなりうまく機能し、GPT 3.5 はまあまあですが、Gemini Pro が何を言っているのかはわかりません。ランダムな場所でオフになっています。

Claude 2 も妥当な結果を生成します。

「いいね!」 3

プルーフリーダー

テストした結果、GPT-4-Turboとポルトガル語でプルーフリーダーを使用したところ、まったく変化がありませんでした。モデルは私のテキストを元の言語のままにしておくのに十分賢かったのだと思います。

AI画像キャプション

画像キャプションに拡張しましたが、そこでは非常にうまく機能しています。

「いいね!」 5

ありがとう!少なくともキャプションは希望の言語で作成されるようになりました(品質はOpenAIによるものなので期待していますが、私にとってはそうです)。

要約…まだわかりません。しばらく作成できていないからです。しかし、それは全く別の話です。

「いいね!」 2