複数のLLMsに同時にプロンプトを投げるChrome拡張
なぜ作ったのか
どれが一番優秀なのか分からなくなってきた
2つのAIに同じプロンプトを投げて、返答を見比べたりしている
どれも微妙な差だし、個体差だけでなくランダム要素もあるため、よく分からない
Twitterには様々な言説があるが、自分の肌感と異なるものもある
全部課金して使っているのだから、いっそ全部に投げてみてはどうだろう?と思いたった
そんなツールは世の中にゴマンとありそうだが、サクッと書けそうなので、自分で書いてみることにした
https://gyazo.com/730d146e19badbced9a06c1532f7a9fc
個人的面白ポイントteramotodaiki.icon
たった3つの文字列フィールドだけで、各社のAIに対応できている
コードで言うと、ここ
code:js
const LLMs = [
{
url: https://chat.openai.com,
textarea: textarea#prompt-textarea,
submit: button[data-testid="send-button"],
},
{
url: https://gemini.google.com/,
textarea: div.ql-editor.textarea,
submit: button.send-button,
},
{
url: https://claude.ai/chats,
textarea: div.ProseMirror,
submit: [data-value="new chat"] button,
},
{
url: https://www.perplexity.ai/,
textarea: textarea[autofocus],
submit: button:has(svg[data-icon="arrow-right"]), // ユーティリティクラスばかりで絞りづらかった…
},
];
ロバストとはお世辞にも言えないが、出来る限りの工夫は凝らしたつもり
シリアライズ可能なのがポイント
別のAIサービスをオプションで追加出来ると良さそう
社内チャットボットとか、開発中のツールとか、何にでも対応できる
ハマりポイント
無言で失敗する
はじめCSPのエラーを疑ったが、違った
原因は、ページのロードが完了する前だったから
最初にChatGPTだけ実装したのだが、なぜか3.5になってしまった
https://gyazo.com/1c0e0d06396c73c11204ae77523e00da
どうやら自動制御されるのを防ぐ仕組みらしい
試しに3000ms待ってからボタンを押したところ、4になった
二分探索で閾値を調べたところ、500msだとまだfleakyで、700msだと安定して4になるようだった