見出し画像

LlamaIndex の QAプロンプト と Refineプロンプト のカスタマイズ

「LlamaIndex」の「QAプロンプト」と「Refineプロンプト」のカスタマイズ手順をまとめました。

・LlamaIndex v0.8.14


1. QAプロンプトとRefineプロンプト

「LlamaIndex」では、質問応答でコンテキストウィンドウより多くのチャンクを使用する場合、各チャンクに対して、LLMを順番にクエリします。

初回のLLM呼び出しは、「QAプロンプト」でクエリとコンテキストで回答を得ます。2回目以降は、「Refineプロンプト」で前回の回答とクエリとコンテキストで回答を改善します。具体的には、新しいコンテキストが役に立つ時はそれを基に回答を改善し、役に立たない場合は、元の回答を保持します。

2. ドキュメントの準備

今回は、マンガペディアの「ぼっち・ざ・ろっく!」のあらすじのドキュメントを用意しました。

・bocchi.txt

3. クエリエンジンの使い方

はじめに、「QAプロンプト」「Refineプロンプト」をデフォルトのまま、「クエリエンジン」を使ってみます。「クエリエンジン」は、ドキュメントに対して1ターンの質問応答を行うパイプラインになります。

Colabでの「クエリエンジン」の使い方は、次のとおりです。

(1) パッケージのインストール。

# パッケージのインストール
!pip install llama-index

(2) 環境変数の準備。
以下のコードの <OpenAI_APIのトークン> にはOpenAI APIのトークンを指定します。(有料)

import openai

# 環境変数の設定
openai.api_key = "<OpenAI_APIのトークン>"

(3) ログレベルの設定。

import logging
import sys

# ログレベルの設定
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG, force=True)

(4) Colabにドキュメント「bocchi.txt」をアップロード。

(5) ドキュメントの読み込み。

from llama_index import SimpleDirectoryReader

# ドキュメントの読み込み
documents = SimpleDirectoryReader(
    input_files=["bocchi.txt"]
).load_data()

(6) サービスコンテキストの準備。
段落セパレータに「\n\n」、チャンクサイズに1024を指定しました。

from llama_index import ServiceContext
from llama_index.text_splitter import SentenceSplitter
from llama_index.node_parser import SimpleNodeParser

# ノードパーサーの準備
text_splitter = SentenceSplitter(
    chunk_size=1024,
    paragraph_separator="\n\n",
)
node_parser = SimpleNodeParser.from_defaults(text_splitter=text_splitter)

# サービスコンテキストの準備
service_context = ServiceContext.from_defaults(
    node_parser=node_parser,
)

SentenceSplitter」のパラメータは、次のとおりです。

・chunk_size : 各チャンクのトークン数 (default:1024)
・chunk_overlap : 分割時の各チャンクのトークンの重なり (default:20)
・separator : 単語の区切り文字 (default:" ")
・paragraph_separator : 段落間の区切り文字 (default:"\n\n\n")
・secondary_chunking_regex : 文の区切り文字の正規表現 (default:"[^,.;。]+[,.;。]?")
・chunking_tokenizer_fn : テキストを文章に分割する関数 (default:nltk.sent_tokenize)
・callback_manager : コールバックマネージャ
・tokenizer : トークナイザー

(7) インデックスの準備。

from llama_index import VectorStoreIndex

# インデックスの作成
index = VectorStoreIndex.from_documents(
    documents,
    service_context=service_context,
)

(8) クエリエンジンの準備。
similarity_top_k」に「5」を設定します。

# クエリエンジンの準備
query_engine = index.as_query_engine(
    similarity_top_k=5,
)

(9) 質問応答。
正解は「伊地知星歌さん」なので不正解です。

# 質問応答
response = query_engine.query("ライブハウス「STARRY」の店長の名前は?")
print(response)
吉田銀次郎


チャンクサイズが1024、gpt-3.5-turboの最大トークン数が4096なので、5チャンク (similarity_top_kで設定) を処理するには、「OpenAI API」で2回の通信が必要です。1回目の通信は「QAプロンプト」、2回目以降は「Refineプロンプト」を使います。

ログ出力されたプロンプトを確認すると、次のとおりです。

・QAプロンプト - system

You are an expert Q&A system that is trusted around the world.
Always answer the query using the provided context information, and not prior knowledge.
Some rules to follow:
1. Never directly reference the given context in your answer.
2. Avoid statements like 'Based on the context, ...' or 'The context information ...' or anything along those lines. 

・QAプロンプト - user

Context information is below.
---------------------
伊地知星歌(いじちせいか)
下北沢のライブハウス「STARRY(スターリー)」の店長を務める女性。誕生日を迎えて30歳になった。...

完熟マンゴー仮面(かんじゅくまんごーかめん)
後藤ひとりが引きこもるために使う段ボール箱。...

吉田銀次郎(よしだぎんじろう)
ライブハウス「FOLT」の店長を務める男性。...

    :
---------------------
Given the context information and not prior knowledge, answer the query.
Query: ライブハウス「STARRY」の店長の名前は?
Answer:

・Refineプロンプト - user

You are an expert Q&A system that stricly operates in two modeswhen refining existing answers:
1. **Rewrite** an original answer using the new context.
2. **Repeat** the original answer if the new context isn't useful.
Never reference the original answer or context directly in your answer.
When in doubt, just repeat the original answer.New Context: 文化祭ライブ
夏休みに入り、後藤ひとりは知り合いも増えていたが、自分から遊びに誘うことができずに夏休みも終わり、新学期を迎えていた。相も変わらずコミュ症なひとりは文化祭で盛り上がるクラスメイトをよそに、一人黄昏ていた。そんな中、みんなの前で結束バンドのライブをすればクラスで人気者になれるかもと考えたひとりは、喜多郁代の後押しもあり、ライブをすることを決める。文化祭ライブにひとりは大きな不安を抱くが、周囲の励ましと協力によって、ついに文化祭当日を迎える。しかし、ライブ中に機材トラブルが発生し、ひとりはとっさにボトルネック奏法のアドリブを行い、仲間たちはそのフォローに回る。その演奏をみんなから拍手喝采されるひとりだったが、コミュ症のひとりはその晴れ舞台に混乱し、観客席にダイブするという暴挙に出てしまう。ひとまずライブは成功を収めるものの、ひとりの奇行により、結束バンドの名はフリーライターの佐藤愛子の耳に入ることとなる。そして愛子が結束バンドを取材した際に、ひとりが「ギターヒーロー」であることがバレてしまう。愛子はひとりに強い関心を抱くが、結束バンドの演奏に対しては辛らつで、彼女たちを酷評する。そしてひとりたちは、愛子を見返すため、10代限定のロックフェス「未確認ライオット」に参加し、グランプリを目指すことを決める。
Query: ライブハウス「STARRY」の店長の名前は?
Original Answer: 吉田銀次郎
New Answer: 

これらプロンプトが日本語でないのも不正解の原因なので、日本語のプロンプトを設定します。

4. QAプロンプトとRefineプロンプトのカスタマイズ

ColabでのQAプロンプトとRefineプロンプトのカスタマイズ手順は、次のとおりです。

(1) 日本語版のQAプロンプトの定義。
LlamaIndexの英語版のQAプロンプトの直訳になります。

from llama_index.llms.base import ChatMessage, MessageRole
from llama_index.prompts.base import ChatPromptTemplate

# QAシステムプロンプト
TEXT_QA_SYSTEM_PROMPT = ChatMessage(
    content=(
        "あなたは世界中で信頼されているQAシステムです。\n"
        "事前知識ではなく、常に提供されたコンテキスト情報を使用してクエリに回答してください。\n"
        "従うべきいくつかのルール:\n"
        "1. 回答内で指定されたコンテキストを直接参照しないでください。\n"
        "2. 「コンテキストに基づいて、...」や「コンテキスト情報は...」、またはそれに類するような記述は避けてください。"
    ),
    role=MessageRole.SYSTEM,
)

# QAプロンプトテンプレートメッセージ
TEXT_QA_PROMPT_TMPL_MSGS = [
    TEXT_QA_SYSTEM_PROMPT,
    ChatMessage(
        content=(
            "コンテキスト情報は以下のとおりです。\n"
            "---------------------\n"
            "{context_str}\n"
            "---------------------\n"
            "事前知識ではなくコンテキスト情報を考慮して、クエリに答えます。\n"
            "Query: {query_str}\n"
            "Answer: "
        ),
        role=MessageRole.USER,
    ),
]

# チャットQAプロンプト
CHAT_TEXT_QA_PROMPT = ChatPromptTemplate(message_templates=TEXT_QA_PROMPT_TMPL_MSGS)

(2) 日本語版のRefineプロンプトの定義。
LlamaIndexの英語版のRefineプロンプトの直訳になります。

# チャットRefineプロンプトテンプレートメッセージ
CHAT_REFINE_PROMPT_TMPL_MSGS = [
    ChatMessage(
        content=(
            "あなたは、既存の回答を改良する際に2つのモードで厳密に動作するQAシステムのエキスパートです。\n"
            "1. 新しいコンテキストを使用して元の回答を**書き直す**。\n"
            "2. 新しいコンテキストが役に立たない場合は、元の回答を**繰り返す**。\n"
            "回答内で元の回答やコンテキストを直接参照しないでください。\n"
            "疑問がある場合は、元の答えを繰り返してください。"
            "New Context: {context_msg}\n"
            "Query: {query_str}\n"
            "Original Answer: {existing_answer}\n"
            "New Answer: "
        ),
        role=MessageRole.USER,
    )
]

# チャットRefineプロンプト
CHAT_REFINE_PROMPT = ChatPromptTemplate(message_templates=CHAT_REFINE_PROMPT_TMPL_MSGS)

(3) クエリエンジンの準備。
「text_qa_template」にQAプロンプト、「refine_template」にRefineプロンプトを設定します。

# クエリエンジンの準備
query_engine = index.as_query_engine(
    similarity_top_k=5,
    text_qa_template=CHAT_TEXT_QA_PROMPT,
    refine_template=CHAT_REFINE_PROMPT,
)

index.as_query_engine()の主なパラメータは、次のとおりです。

・similarity_top_k : インデックスから取得するチャンク数 (default:2)
・text_qa_template : QAテンプレート
・refine_template : Refineテンプレート
・streaming : ストリーミング (default:False)
・response_mode : レスポンスモード (refine / compact / tree_summarize)

response_mode の設定値は、次の3つです。コンテキストウィンドウよりチャンクが多い場合の処理に影響します。

・refine : 各チャンクに対して、LLMを順番にクエリします。最初のLLM呼び出しで、質問応答を行った後 (QAプロンプト) 、次のLLM呼び出しで、前回の回答を新しいチャンクを送信して、必要に応じ回答をリファインします (Refineプロンプト)。
・compact (default) : 「Refine」と同じですが、各LLM呼び出し中に可能な限り多くのチャンクを詰め込みます。
・tree_summarize : 各チャンクに対して回答を生成し、単一のルートノードに到達するまで、上方向に階層的に回答を生成します。「Refine」とは異なり、並列化できます。

(4) 質問応答。
正解は「伊地知星歌さん」なので正解です。

# 質問応答
response = query_engine.query("ライブハウス「STARRY」の店長の名前は?")
print(response)
ライブハウス「STARRY」の店長の名前は伊地知星歌です。


ログ出力されたプロンプトを確認すると、次のとおりです。

・QAプロンプト - system

あなたは世界中で信頼されているQAシステムです。
事前知識ではなく、常に提供されたコンテキスト情報を使用してクエリに回答してください。
従うべきいくつかのルール:
1. 回答内で指定されたコンテキストを直接参照しないでください。
2. 「コンテキストに基づいて、...」や「コンテキスト情報は...」、またはそれに類するような記述は避けてください。 

・QAプロンプト - user

コンテキスト情報は以下のとおりです。
---------------------
伊地知星歌(いじちせいか)
下北沢のライブハウス「STARRY(スターリー)」の店長を務める女性。...

完熟マンゴー仮面(かんじゅくまんごーかめん)
後藤ひとりが引きこもるために使う段ボール箱。...

吉田銀次郎(よしだぎんじろう)
ライブハウス「FOLT」の店長を務める男性。...
    :
---------------------
事前知識ではなくコンテキスト情報を考慮して、クエリに答えます。
Query: ライブハウス「STARRY」の店長の名前は?
Answer:  

・Refineプロンプト - user

あなたは、既存の回答を改良する際に2つのモードで厳密に動作するQAシステムのエキスパートです。
1. 新しいコンテキストを使用して元の回答を**書き直す**。
2. 新しいコンテキストが役に立たない場合は、元の回答を**繰り返す**。
回答内で元の回答やコンテキストを直接参照しないでください。
疑問がある場合は、元の答えを繰り返してください。New Context: 伊地知虹夏(いじちにじか)
下北沢高校に通う女子。...

文化祭ライブ
夏休みに入り、後藤ひとりは知り合いも増えていたが、自分から遊びに誘うことができずに夏休みも終わり、新学期を迎えていた。...
Query: ライブハウス「STARRY」の店長の名前は?
Original Answer: ライブハウス「STARRY」の店長の名前は伊地知星歌です。
New Answer:  

【おまけ】 ストリーミング

index.as_query_engine()streaming=Trueを指定し、response.print_response_stream() でストリーミングを出力します。

# クエリエンジンの作成
query_engine = index.as_query_engine(
    similarity_top_k=5,
    text_qa_template=CHAT_TEXT_QA_PROMPT,
    refine_template=CHAT_REFINE_PROMPT,
    streaming=True,  # ストリーミングの有効化
)
# 質問応答
response = query_engine.query("ライブハウス「STARRY」の店長の名前は?")
response.print_response_stream()  # ストリーミングの出力

【おまけ】 Unicodeエスケープされた文字列の変換

string.encode().decode("unicode-escape") で変換できます。

message = [{"role": "user", "content": "\\u3042\\u306a\\u305f\\u306f\\u3001\\u65e2\\u5b58\\u306e\\u56de\\u7b54\\u3092\\u6539\\u826f\\u3059\\u308b\\u969b\\u306b2\\u3064\\u306e\\u30e2\\u30fc\\u30c9\\u3067\\u53b3\\u5bc6\\u306b\\u52d5\\u4f5c\\u3059\\u308bQA\\u30b7\\u30b9\\u30c6\\u30e0\\u306e\\u30a8\\u30ad\\u30b9\\u30d1\\u30fc\\u30c8\\u3067\\u3059\\u3002\\n1. **Rewrite** \\u65b0\\u3057\\u3044\\u30b3\\u30f3\\u30c6\\u30ad\\u30b9\\u30c8\\u3092\\u4f7f\\u7528\\u3057\\u305f\\u5143\\u306e\\u56de\\u7b54\\u3002\\n2. **Repeat** \\u65b0\\u3057\\u3044\\u30b3\\u30f3\\u30c6\\u30ad\\u30b9\\u30c8\\u304c\\u5f79\\u306b\\u7acb\\u305f\\u306a\\u3044\\u5834\\u5408\\u306f\\u3001\\u5143\\u306e\\u56de\\u7b54\\u3002\\n\\u56de\\u7b54\\u5185\\u3067\\u5143\\u306e\\u56de\\u7b54\\u3084\\u30b3\\u30f3\\u30c6\\u30ad\\u30b9\\u30c8\\u3092\\u76f4\\u63a5\\u53c2\\u7167\\u3057\\u306a\\u3044\\u3067\\u304f\\u3060\\u3055\\u3044\\u3002\\n\\u7591\\u554f\\u304c\\u3042\\u308b\\u5834\\u5408\\u306f\\u3001\\u5143\\u306e\\u7b54\\u3048\\u3092\\u7e70\\u308a\\u8fd4\\u3057\\u3066\\u304f\\u3060\\u3055\\u3044\\u3002New Context: \\u4f0a\\u5730\\u77e5\\u8679\\u590f(\\u3044\\u3058\\u3061\\u306b\\u3058\\u304b)\\n\\u4e0b\\u5317\\u6ca2\\u9ad8\\u6821\\u306b\\u901a\\u3046\\u5973\\u5b50\\u3002\\u5f8c\\u85e4\\u3072\\u3068\\u308a\\u3088\\u308a1\\u5b66\\u5e74\\u4e0a\\u3002\\u30e9\\u30a4\\u30c8\\u30a4\\u30a8\\u30ed\\u30fc\\u8272\\u306e\\u9aea\\u3092\\u30b5\\u30a4\\u30c9\\u30c6\\u30fc\\u30eb\\u306b\\u30bb\\u30c3\\u30c8\\u3057\\u3001\\u6d3e\\u624b\\u76ee\\u306e\\u30d5\\u30a1\\u30c3\\u30b7\\u30e7\\u30f3\\u3092\\u597d\\u3093\\u3067\\u7740\\u3066\\u3044\\u308b\\u3002\\u5e7c\\u3044\\u9803\\u306b\\u6bcd\\u89aa\\u3068\\u6b7b\\u5225\\u3057\\u3066\\u304a\\u308a\\u3001\\u7236\\u89aa\\u3082\\u591a\\u5fd9\\u306a\\u305f\\u3081\\u3055\\u3073\\u3057\\u3044\\u65e5\\u3005\\u3092\\u9001\\u3063\\u3066\\u3044\\u305f\\u3002\\u59c9\\u306e\\u4f0a\\u5730\\u77e5\\u661f\\u6b4c\\u306e\\u5f71\\u97ff\\u3067\\u3001\\u30d0\\u30f3\\u30c9\\u6d3b\\u52d5\\u306b\\u3042\\u3053\\u304c\\u308c\\u308b\\u3088\\u3046\\u306b\\u306a\\u308a\\u3001\\u300c\\u7d50\\u675f\\u30d0\\u30f3\\u30c9\\u300d\\u3092\\u7d50\\u6210\\u3059\\u308b\\u3002\\u30d0\\u30f3\\u30c9\\u3067\\u306f\\u30c9\\u30e9\\u30e0\\u3092\\u62c5\\u5f53\\u3057\\u3066\\u3044\\u308b\\u3002\\u59c9\\u304c\\u30d0\\u30f3\\u30c9\\u3092\\u3084\\u3081\\u3066\\u30e9\\u30a4\\u30d6\\u30cf\\u30a6\\u30b9\\u3092\\u59cb\\u3081\\u305f\\u306e\\u3082\\u3001\\u81ea\\u5206\\u306e\\u5fdc\\u63f4\\u3092\\u3059\\u308b\\u305f\\u3081\\u3067\\u3042\\u308b\\u3053\\u3068\\u306b\\u8584\\u3005\\u6c17\\u3065\\u3044\\u3066\\u304a\\u308a\\u3001\\u30d0\\u30f3\\u30c9\\u3067\\u5927\\u6210\\u529f\\u3092\\u53ce\\u3081\\u3066\\u59c9\\u306e\\u30e9\\u30a4\\u30d6\\u30cf\\u30a6\\u30b9\\u3092\\u6709\\u540d\\u306b\\u3059\\u308b\\u306e\\u3092\\u5922\\u898b\\u3066\\u3044\\u308b\\u3002\\u660e\\u308b\\u304f\\u9762\\u5012\\u898b\\u306e\\u3088\\u3044\\u6027\\u683c\\u3092\\u3057\\u3066\\u304a\\u308a\\u3001\\u521d\\u5bfe\\u9762\\u306e\\u4eba\\u3068\\u3082\\u4ef2\\u3088\\u304f\\u306a\\u308c\\u308b\\u4eba\\u5f53\\u308a\\u306e\\u3088\\u3055\\u3092\\u6301\\u3064\\u3002\\u307e\\u305f\\u3001\\u751f\\u6d3b\\u80fd\\u529b\\u304c\\u7686\\u7121\\u306a\\u5c71\\u7530\\u30ea\\u30e7\\u30a6\\u306e\\u9762\\u5012\\u3092\\u898b\\u305f\\u308a\\u3001\\u30b3\\u30df\\u30e5\\u969c\\u306e\\u5f8c\\u85e4\\u3072\\u3068\\u308a\\u306b\\u3082\\u6839\\u6c17\\u5f37\\u304f\\u4ed8\\u304d\\u5408\\u3063\\u305f\\u308a\\u3057\\u3066\\u3044\\u308b\\u3002\\u30ae\\u30bf\\u30fc\\u30d2\\u30fc\\u30ed\\u30fc\\u306e\\u5927\\u30d5\\u30a1\\u30f3\\u3067\\u3001\\u5f53\\u521d\\u306f\\u3072\\u3068\\u308a\\u304c\\u30ae\\u30bf\\u30fc\\u30d2\\u30fc\\u30ed\\u30fc\\u3067\\u3042\\u308b\\u3053\\u3068\\u306b\\u6c17\\u3065\\u304b\\u306a\\u304b\\u3063\\u305f\\u304c\\u30018\\u6708\\u306e\\u30e9\\u30a4\\u30d6\\u3067\\u3072\\u3068\\u308a\\u306e\\u6f14\\u594f\\u3059\\u308b\\u59ff\\u3092\\u898b\\u3066\\u3001\\u305d\\u306e\\u6b63\\u4f53\\u306b\\u6c17\\u3065\\u304f\\u3002\\u306e\\u3061\\u306b\\u4f50\\u85e4\\u611b\\u5b50\\u306b\\u3072\\u3068\\u308a\\u306e\\u6b63\\u4f53\\u3092\\u66b4\\u9732\\u3055\\u308c\\u308b\\u307e\\u3067\\u306f\\u3001\\u3072\\u3068\\u308a\\u306e\\u6b63\\u4f53\\u3092\\u77e5\\u308b\\u552f\\u4e00\\u306e\\u30e1\\u30f3\\u30d0\\u30fc\\u3060\\u3063\\u305f\\u3002\\u30e9\\u30a4\\u30d6\\u3067\\u306f\\u7dca\\u5f35\\u304b\\u3089\\u30e9\\u30a4\\u30d6\\u5f8c\\u306b\\u6bce\\u56de\\u5012\\u308c\\u308b\\u3072\\u3068\\u308a\\u306e\\u904b\\u642c\\u5f79\\u3082\\u62c5\\u5f53\\u3057\\u3066\\u3044\\u308b\\u305f\\u3081\\u3001\\u77e5\\u3089\\u305a\\u9593\\u306b\\u4f53\\u529b\\u3068\\u7b4b\\u8089\\u304c\\u4ed8\\u3044\\u3066\\u304d\\u3066\\u304a\\u308a\\u3001\\u6700\\u8fd1\\u306f\\u624b\\u6163\\u308c\\u305f\\u624b\\u4ed8\\u304d\\u3067\\u30c8\\u30e9\\u30f3\\u30af\\u306b\\u3072\\u3068\\u308a\\u3092\\u8a70\\u3081\\u3066\\u904b\\u3093\\u3067\\u3044\\u308b\\u304c\\u3001\\u5468\\u56f2\\u304b\\u3089\\u306f\\u6b7b\\u4f53\\u3092\\u904b\\u3093\\u3067\\u3044\\u308b\\u3088\\u3046\\u306b\\u898b\\u3048\\u308b\\u305f\\u3081\\u6016\\u304c\\u3089\\u308c\\u3066\\u3044\\u308b\\u3002\\u307e\\u305f\\u3001\\u307b\\u304b\\u306e\\u30e1\\u30f3\\u30d0\\u30fc\\u306b\\u6bd4\\u3079\\u3066\\u81ea\\u5206\\u304c\\u300c\\u5730\\u5473\\u300d\\u306a\\u3053\\u3068\\u306b\\u30b3\\u30f3\\u30d7\\u30ec\\u30c3\\u30af\\u30b9\\u3092\\u62b1\\u304d\\u3001\\u3072\\u305d\\u304b\\u306b\\u7b4b\\u8089\\u30ad\\u30e3\\u30e9\\u3067\\u76ee\\u7acb\\u3068\\u3046\\u3068\\u8003\\u3048\\u3066\\u3044\\u308b\\u3002\\n\\n\\u6587\\u5316\\u796d\\u30e9\\u30a4\\u30d6\\n\\u590f\\u4f11\\u307f\\u306b\\u5165\\u308a\\u3001\\u5f8c\\u85e4\\u3072\\u3068\\u308a\\u306f\\u77e5\\u308a\\u5408\\u3044\\u3082\\u5897\\u3048\\u3066\\u3044\\u305f\\u304c\\u3001\\u81ea\\u5206\\u304b\\u3089\\u904a\\u3073\\u306b\\u8a98\\u3046\\u3053\\u3068\\u304c\\u3067\\u304d\\u305a\\u306b\\u590f\\u4f11\\u307f\\u3082\\u7d42\\u308f\\u308a\\u3001\\u65b0\\u5b66\\u671f\\u3092\\u8fce\\u3048\\u3066\\u3044\\u305f\\u3002\\u76f8\\u3082\\u5909\\u308f\\u3089\\u305a\\u30b3\\u30df\\u30e5\\u75c7\\u306a\\u3072\\u3068\\u308a\\u306f\\u6587\\u5316\\u796d\\u3067\\u76db\\u308a\\u4e0a\\u304c\\u308b\\u30af\\u30e9\\u30b9\\u30e1\\u30a4\\u30c8\\u3092\\u3088\\u305d\\u306b\\u3001\\u4e00\\u4eba\\u9ec4\\u660f\\u3066\\u3044\\u305f\\u3002\\u305d\\u3093\\u306a\\u4e2d\\u3001\\u307f\\u3093\\u306a\\u306e\\u524d\\u3067\\u7d50\\u675f\\u30d0\\u30f3\\u30c9\\u306e\\u30e9\\u30a4\\u30d6\\u3092\\u3059\\u308c\\u3070\\u30af\\u30e9\\u30b9\\u3067\\u4eba\\u6c17\\u8005\\u306b\\u306a\\u308c\\u308b\\u304b\\u3082\\u3068\\u8003\\u3048\\u305f\\u3072\\u3068\\u308a\\u306f\\u3001\\u559c\\u591a\\u90c1\\u4ee3\\u306e\\u5f8c\\u62bc\\u3057\\u3082\\u3042\\u308a\\u3001\\u30e9\\u30a4\\u30d6\\u3092\\u3059\\u308b\\u3053\\u3068\\u3092\\u6c7a\\u3081\\u308b\\u3002\\u6587\\u5316\\u796d\\u30e9\\u30a4\\u30d6\\u306b\\u3072\\u3068\\u308a\\u306f\\u5927\\u304d\\u306a\\u4e0d\\u5b89\\u3092\\u62b1\\u304f\\u304c\\u3001\\u5468\\u56f2\\u306e\\u52b1\\u307e\\u3057\\u3068\\u5354\\u529b\\u306b\\u3088\\u3063\\u3066\\u3001\\u3064\\u3044\\u306b\\u6587\\u5316\\u796d\\u5f53\\u65e5\\u3092\\u8fce\\u3048\\u308b\\u3002\\u3057\\u304b\\u3057\\u3001\\u30e9\\u30a4\\u30d6\\u4e2d\\u306b\\u6a5f\\u6750\\u30c8\\u30e9\\u30d6\\u30eb\\u304c\\u767a\\u751f\\u3057\\u3001\\u3072\\u3068\\u308a\\u306f\\u3068\\u3063\\u3055\\u306b\\u30dc\\u30c8\\u30eb\\u30cd\\u30c3\\u30af\\u594f\\u6cd5\\u306e\\u30a2\\u30c9\\u30ea\\u30d6\\u3092\\u884c\\u3044\\u3001\\u4ef2\\u9593\\u305f\\u3061\\u306f\\u305d\\u306e\\u30d5\\u30a9\\u30ed\\u30fc\\u306b\\u56de\\u308b\\u3002\\u305d\\u306e\\u6f14\\u594f\\u3092\\u307f\\u3093\\u306a\\u304b\\u3089\\u62cd\\u624b\\u559d\\u91c7\\u3055\\u308c\\u308b\\u3072\\u3068\\u308a\\u3060\\u3063\\u305f\\u304c\\u3001\\u30b3\\u30df\\u30e5\\u75c7\\u306e\\u3072\\u3068\\u308a\\u306f\\u305d\\u306e\\u6674\\u308c\\u821e\\u53f0\\u306b\\u6df7\\u4e71\\u3057\\u3001\\u89b3\\u5ba2\\u5e2d\\u306b\\u30c0\\u30a4\\u30d6\\u3059\\u308b\\u3068\\u3044\\u3046\\u66b4\\u6319\\u306b\\u51fa\\u3066\\u3057\\u307e\\u3046\\u3002\\u3072\\u3068\\u307e\\u305a\\u30e9\\u30a4\\u30d6\\u306f\\u6210\\u529f\\u3092\\u53ce\\u3081\\u308b\\u3082\\u306e\\u306e\\u3001\\u3072\\u3068\\u308a\\u306e\\u5947\\u884c\\u306b\\u3088\\u308a\\u3001\\u7d50\\u675f\\u30d0\\u30f3\\u30c9\\u306e\\u540d\\u306f\\u30d5\\u30ea\\u30fc\\u30e9\\u30a4\\u30bf\\u30fc\\u306e\\u4f50\\u85e4\\u611b\\u5b50\\u306e\\u8033\\u306b\\u5165\\u308b\\u3053\\u3068\\u3068\\u306a\\u308b\\u3002\\u305d\\u3057\\u3066\\u611b\\u5b50\\u304c\\u7d50\\u675f\\u30d0\\u30f3\\u30c9\\u3092\\u53d6\\u6750\\u3057\\u305f\\u969b\\u306b\\u3001\\u3072\\u3068\\u308a\\u304c\\u300c\\u30ae\\u30bf\\u30fc\\u30d2\\u30fc\\u30ed\\u30fc\\u300d\\u3067\\u3042\\u308b\\u3053\\u3068\\u304c\\u30d0\\u30ec\\u3066\\u3057\\u307e\\u3046\\u3002\\u611b\\u5b50\\u306f\\u3072\\u3068\\u308a\\u306b\\u5f37\\u3044\\u95a2\\u5fc3\\u3092\\u62b1\\u304f\\u304c\\u3001\\u7d50\\u675f\\u30d0\\u30f3\\u30c9\\u306e\\u6f14\\u594f\\u306b\\u5bfe\\u3057\\u3066\\u306f\\u8f9b\\u3089\\u3064\\u3067\\u3001\\u5f7c\\u5973\\u305f\\u3061\\u3092\\u9177\\u8a55\\u3059\\u308b\\u3002\\u305d\\u3057\\u3066\\u3072\\u3068\\u308a\\u305f\\u3061\\u306f\\u3001\\u611b\\u5b50\\u3092\\u898b\\u8fd4\\u3059\\u305f\\u3081\\u300110\\u4ee3\\u9650\\u5b9a\\u306e\\u30ed\\u30c3\\u30af\\u30d5\\u30a7\\u30b9\\u300c\\u672a\\u78ba\\u8a8d\\u30e9\\u30a4\\u30aa\\u30c3\\u30c8\\u300d\\u306b\\u53c2\\u52a0\\u3057\\u3001\\u30b0\\u30e9\\u30f3\\u30d7\\u30ea\\u3092\\u76ee\\u6307\\u3059\\u3053\\u3068\\u3092\\u6c7a\\u3081\\u308b\\u3002\\nQuery: \\u30e9\\u30a4\\u30d6\\u30cf\\u30a6\\u30b9\\u300cSTARRY\\u300d\\u306e\\u5e97\\u9577\\u306e\\u540d\\u524d\\u306f\\uff1f\\nOriginal Answer: \\u30e9\\u30a4\\u30d6\\u30cf\\u30a6\\u30b9\\u300cSTARRY\\u300d\\u306e\\u5e97\\u9577\\u306e\\u540d\\u524d\\u306f\\u4f0a\\u5730\\u77e5\\u661f\\u6b4c\\u3067\\u3059\\u3002\\nNew Answer: "}]
print(message[0]["role"], ":\n", message[0]["content"].encode().decode("unicode-escape"), "\n")
user :
 あなたは、既存の回答を改良する際に2つのモードで厳密に動作するQAシステムのエキスパートです。
1. 新しいコンテキストを使用して元の回答を**書き直す**。
2. 新しいコンテキストが役に立たない場合は、元の回答を**繰り返す**。
回答内で元の回答やコンテキストを直接参照しないでください。
疑問がある場合は、元の答えを繰り返してください。New Context: 伊地知虹夏(いじちにじか)
下北沢高校に通う女子。...

文化祭ライブ
夏休みに入り、後藤ひとりは知り合いも増えていたが、自分から遊びに誘うことができずに夏休みも終わり、新学期を迎えていた。...
Query: ライブハウス「STARRY」の店長の名前は?
Original Answer: ライブハウス「STARRY」の店長の名前は伊地知星歌です。
New Answer:



この記事が気に入ったらサポートをしてみませんか?