AIのシステムプロンプトに{username}をテンプレートパラメータとして追加

これが初めてのコントリビューションです。何か不手際があればお詫び申し上げます。ご寛容な対応と、より良い方法があればのご助言に心から感謝しています。

参考までにですが、私はPro顧客です。

AIエージェントとやり取りしているユーザーを確実に特定する堅牢な方法が必要でした。そこで思いついたのがこの方法です。検討していただき、ご助言をいただければ幸いです。

AIペルソナシステムプロンプトに {username} をテンプレートパラメータとして追加

PR #41446FEATURE: Add {username} template param to BotContext - Pull Request #41446%EF%BC%89%E3%82%92%E6%8F%90%E5%87%BA%E3%81%97%E3%80%81%60BotContext::TEMPLATE_PARAMS%60 - discourse/discourse - GitHub{username} を追加しました。

ユースケース:外部サービスとの橋渡し役として動作するペルソナは、LLMが投稿テキストから推測するのではなく、サーバー側で現在のユーザーのIDを解決する必要があります。現在、これをクリーンに実行する方法はありません。{participants} はプライベートメッセージでのみ値が設定され、トピックメタデータからLLMにユーザー名を解析させるのは脆弱で、インジェクションの危険性があります。

この変更は小さく(新しいメソッド1つ、許可リストに文字列1つ追加)、追加的なものです。既存のプロンプトは、すでにリテラルの {username} を含んでいない限り影響を受けません。

再度、ありがとうございます!

「いいね!」 6

ああ、CLAも完了しました。すべてカバーできたと思います。再度、ありがとうございます。

「いいね!」 2

軽くご連絡します。お手伝いできることがあれば、ぜひお知らせください。ありがとうございます :purple_heart:

「いいね!」 1

PRをありがとうございます!

今、マージしました。

「いいね!」 6

素晴らしい!本当にありがとうございます :purple_heart:

「いいね!」 3

@falcoともこの件について議論しましたが、これは非常に繊細な調整であることを警告しておきます。

特に、すでに「User」メッセージにユーザー名を含めています:

これはAI APIのログから確認できます。

システムプロンプトに名前を挿入する際のリスクは、チェーン内の複数ユーザー間の相互作用がある場合、システムプロンプトの頻繁な変更(thrashing)を引き起こし、キャッシュの有効期限切れを招く可能性があることです。これは望ましくなく、パフォーマンスの低下を招く可能性があります。

さて… 私たちのvLLMテンプレートで気づいたことが一つあります。それは名前を破棄していることです。これがCDCKホストモデルでこの機能が欠落している理由を説明しています。現在、これを修正するパッチを作成中です。

「いいね!」 3