🌴

【LangChain】GitHubリポジトリ内のプロンプトをみる

2024/02/12に公開

LangChainのGitHubを見ていたら、いくつかChatGPTなどでも利用できそうなプロンプトを見かけたので、まとめのメモです。
https://github.com/langchain-ai/langchain/tree/master

1. LLMの要約チェック

「事実確認」や「テキストに対して事実をもとに修正を行う」などのプロンプトがありました。
全体的に下記のプロンプトに加えて、外部データとして事実データを参照した方が精度が上がりそうなイメージがしました。

1-1. テキスト全てが正しいかどうか判定

複数のテキストの内容が全て正しいかどうか、を判定するプロンプトです。一つでも誤った内容があればfalseが出力されます。

プロンプト
  • 入力項目: 「検証したい事実のテキスト(リスト)」
Below are some assertions that have been fact checked and are labeled as true or false.

If all of the assertions are true, return "True". If any of the assertions are false, return "False".

Here are some examples:
===

Checked Assertions: """
- The sky is red: False
- Water is made of lava: False
- The sun is a star: True
"""
Result: False

===

Checked Assertions: """
- The sky is blue: True
- Water is wet: True
- The sun is a star: True
"""
Result: True

===

Checked Assertions: """
- The sky is blue - True
- Water is made of lava- False
- The sun is a star - True
"""
Result: False

===

Checked Assertions:"""
{checked_assertions}
"""
Result:

(日本語訳)

以下は真実か偽かがチェックされたいくつかの主張です。

もし全ての主張が真実であれば、「True」を返します。いずれかの主張が偽であれば、「False」を返します。

以下に例を示します:
===

検証された主張: """
- 空は赤い: False
- 水は溶岩でできている: False
- 太陽は星である: True
"""
結果: False

===

検証された主張: """
- 空は青い: True
- 水は濡れている: True
- 太陽は星である: True
"""
結果: True

===

検証された主張: """
- 空は青い: True
- 水は溶岩でできている: False
- 太陽は星である: True
"""
結果: False

===

検証された主張:"""
{検証したい主張のリスト}
"""
結果:

1-2. テキストの事実検証(ファクトチェック)

テキストの事実確認を行うために使うプロンプト。精度を上げるためには、これに加えて外部データの参照が大事かも。

プロンプト
  • 入力項目: 「検証したい事実のテキスト(リスト)」
You are an expert fact checker. You have been hired by a major news organization to fact check a very important story.

Here is a bullet point list of facts:
"""
{assertions}
"""

For each fact, determine whether it is true or false about the subject. If you are unable to determine whether the fact is true or false, output "Undetermined".
If the fact is false, explain why.

(日本語訳)

あなたは事実検証の専門家です。あなたは主要なニュース組織から、非常に重要なストーリーの事実を検証するために雇われました。

ここに事実の箇条書きリストがあります:
"""
{assertions}
"""

各事実について、その主題に関して真実か偽りかを判断します。事実が真実か偽りかを判断できない場合は、「Undetermined」(不明)と出力します。事実が偽である場合は、なぜそう判断したかを説明します。

1-3. テキストからの事実抽出

テキストから事実一覧を取得するプロンプトです。

プロンプト
  • 入力項目: 「事実を抽出したいテキスト」
Given some text, extract a list of facts from the text.

Format your output as a bulleted list.

Text:
"""
{summary}
"""

Facts:

(日本語訳)

与えられたテキストから、事実のリストを抽出してください。

出力は箇条書きの形式で整理してください。

テキスト:
"""
{summary}
"""

事実:

1-4. テキストの真実性の修正

参照させたい事実テキストを渡して、それをもとにテキストを修正するプロンプトです。

プロンプト
  • 入力項目: 「ファクトチェック済みの主張」と「オリジナルの要約」
Below are some assertions that have been fact checked and are labeled as true or false. If the answer is false, a suggestion is given for a correction.

Checked Assertions:
"""
{checked_assertions}
"""

Original Summary:
"""
{summary}
"""

Using these checked assertions, rewrite the original summary to be completely true.

The output should have the same structure and formatting as the original summary.

Summary:

(日本語訳)

以下に、事実チェックされ「真実」または「偽」とラベル付けされたいくつかの主張があります。答えが偽である場合は、訂正のための提案があります。

チェックされた主張:
"""
{checked_assertions}
"""

オリジナルの要約:
"""
{summary}
"""

これらのチェックされた主張を使用して、オリジナルの要約を完全に真実の内容に書き換えてください。

出力は、オリジナルの要約と同じ構造およびフォーマットを持つべきです。

要約:

2. 要約

2-1. テキストの要約

テキストを要約するシンプルなプロンプトです。長文テキストを分割して処理(MapReduce)のために使えます。

プロンプト
  • 入力項目: 「要約したいテキスト」
Write a concise summary of the following:

"{text}"

CONCISE SUMMARY:

(日本語訳)

以下の要約を簡潔に書きなさい:

"{text}"

簡潔な要約:

2-2. 既存の要約テキストの改善

既存の要約テキストを新しいコンテキストをもとに改善する、またはそのまま保持するプロンプトです。長文テキストを分割して処理(Refine)のために使えます。

プロンプト
  • 入力項目: 「既存の要約」と「新しいコンテキスト」
Your job is to produce a final summary.
We have provided an existing summary up to a certain point: {existing_answer}
We have the opportunity to refine the existing summary (only if needed) with some more context below.
------------
{text}
------------
Given the new context, refine the original summary.
If the context isn't useful, return the original summary.

(日本語訳)

あなたの仕事は最終的な要約を作成することです。
我々はあるポイントまでの既存の要約を提供しました: {existing_answer}
以下に新しいコンテキストをいくつか提供し、既存の要約を(必要な場合のみ)洗練する機会があります。
------------
{text}
------------
新しいコンテキストを踏まえて、元の要約を洗練してください。
もしコンテキストが役に立たない場合は、元の要約を返してください。

(見つけ次第更新予定)

プロンプト
  • 入力項目:

Discussion