カスタムプロンプト
Read Frog がモデルに送る 2 つのテキスト、それを編集する場所、そしてプレースホルダーを消すと何が壊れるか。
LLM プロバイダーでページ翻訳を動かすと、段落は毎回 2 つのテキストの組として送られます。モデルにどういう翻訳者になってほしいかを伝える システムプロンプト と、段落そのものを運ぶ プロンプト です。どちらも Read Frog が用意していて、どちらも自分のものに差し替えられます。
これは LLM プロバイダーにだけ関係する話です。Google Translate、Microsoft Translator、DeepL はプロンプトをまったく受け取らないため、このページの内容はそこには届きません。
2 つの入力欄
| 入力欄 | 役割 |
|---|---|
| システムプロンプト | 常に効いている指示。役割、出力のルール、コンテキストとして渡されるページのメタ情報。 |
| プロンプト | リクエストごとのメッセージ。組み込みプロンプトではどれも 3 行だけで、役目はテキストを運ぶことです。 |
デフォルトのプロンプト欄の中身は、これだけで、ほかには何もありません。
Translate to {{targetLanguage}}:
{{input}}{{...}} の部分が変数です。Read Frog は送信の直前にこれを置き換えるので、{{targetLanguage}} は Simplified Mandarin Chinese になり、{{input}} はその段落になります。変数の一覧と、それぞれの実際の値の例はプロンプト変数ページにまとめてあります。
組み込みプロンプト
ページ翻訳には 2 つ、動画字幕には 1 つ付属しています。
| プロンプト | 対象 | 内容 |
|---|---|---|
| デフォルト | ページ、字幕 | バランス重視で、結果が安定します。短いルールが 4 つ、それにページのタイトルと要約がコンテキストとして付きます。 |
| 精訳リライト | ページのみ | 翻訳を書き直しとして扱い、文をターゲット言語として自然な文章に組み直します。分量が多いため、段落あたりのトークン消費も増えます。 |
どちらも読み取り専用です。組み込みプロンプトをその場で編集することはできません。コピーを作り、そのコピーが自分のものになります。
エディターの場所
ページの場合は ページ翻訳 → カスタムページプロンプト → プロンプトを管理。動画の場合は 動画字幕 → カスタム字幕プロンプト → プロンプトを管理 です。
1 行が 1 つのプロンプトです。組み込みの行は目のアイコンで開き、自分で作った行は鉛筆のアイコンで開きます。

どれかを開くと、2 つの入力欄、システムプロンプトの下に小さなタグとして並ぶ使用可能な変数、そして — 組み込みの場合は — 保存ボタンの代わりに コピーしてカスタマイズ が表示されます。

2 つの一覧は互いに独立していて、使える変数も違います。ページプロンプトには {{webContent}} と {{webSummary}} があり、字幕プロンプトにはその代わりに {{videoSummary}} があります。片方のテキストをもう片方にコピーすると、決して値が入らない変数が残ります。
コピーしてカスタマイズ
コピーしてカスタマイズ をクリックします。デフォルト のコピー
という名前の編集できるコピーが作られ、その時点からページ翻訳がそれを使い始めます。
どちらの欄でも編集できます。それぞれの下には変数ボタンが並んでいて、押すとカーソル位置にその変数が挿入されるため、波かっこを自分で打つ必要はありません。
元に戻すには、一覧から組み込みプロンプトをもう一度選びます。切り替えても、自分のコピーが削除されることはありません。
プレースホルダーを消してしまうと
警告も出ませんし、保存が拒否されることもありません。2 つの欄は書いたままの形で送られるため、変数がないことは値がないことを意味します。
いちばん重要なのは {{input}} です。プロンプト欄からこれを削除すると、モデルは何も渡されないまま翻訳を頼まれます。
Translate to Simplified Mandarin Chinese:返ってくるのは、LLM がその一文に対して返す何かです — 謝罪、聞き返し、脈絡のない一文 — そして Read Frog はそれを段落の訳文として描画します。しかも同じプロンプトがすべての段落に使われるので、ページ上のどの段落もそうなります。
プロンプト欄には input 変数を残し、targetLanguage は 2
つの欄のどちらかに残してください。メタ情報の変数は任意ですが、この 2 つは違います。
同じ種類の間違いがもう 2 つあり、どちらも何も知らせてくれません。
{{input}}をプロンプトではなく システムプロンプト に書いてしまう。置換自体はされます — Read Frog は両方の欄で変数を埋めます — が、バッチモードではシステムプロンプトがどのリクエストでも同一なので、指示の側が「常駐のコンテキスト」として扱っている場所に段落が現れることになります。- 存在しない変数を書いてしまう。
{{sourceLanguage}}や{{url}}などです。知らない名前はそのまま残るため、モデルは{{sourceLanguage}}という文字そのものを受け取ります。
プロンプトを編集すると翻訳キャッシュが無効になる
最終的に出来上がったプロンプト — 変数を置換し、追加のルールブロックを付け、用語集の用語を添えたあとのもの — は、Read Frog が訳文を保存するときのキーの一部です。どちらかの欄を 1 文字変えれば、古い文面で翻訳してキャッシュしてあった段落はすべて取り出せなくなり、次にそのページを訪れたときにもう一度費用がかかります。
たいていはそれが望みどおりです。プロンプトを変えたのに何も訳し直されなければ、効果がなかったように見えてしまいます。編集後の 1 ページ目が少し遅くなることだけ見込んでおいてください。そして、10 回の小さな修正に分けるよりも、一度でおおむね狙いどおりに仕上げるほうが得です。そのキーが何で構成されているかはリクエストの組み立て方で詳しく説明しています。
ページを読みながらプロンプトを切り替える
拡張機能のポップアップには、プロバイダーの隣にプロンプトの選択欄があり、組み込みプロンプトと自分で書いたプロンプトがすべて並びます。ここで切り替えると、それ以降ページ翻訳が使うプロンプトが変わります。設定ページにあるのと同じ項目が、記事を読んでいる途中でも手の届く場所に置かれているだけです。
プロンプトを共有する
エクスポート は、チェックを入れたプロンプトを .json ファイルに書き出します。中身は name、systemPrompt、prompt が並んだだけのもので、内部 id は取り除かれるため、読み込んだプロンプトが既存のものとぶつかることはありません。インポート はそのファイルを読み戻します。組み込みプロンプトはエクスポートできないので、先にコピーを作ってください。
一覧の上にある コミュニティからプロンプトを取得・共有 のリンクは、みんなが自分のプロンプトを投稿している GitHub のディスカッションに移動します。
