ナレッジグラフを想起力を高めたり、長期記憶の保存に使ったりすることは、常識的なことだが、ビッグモデル時代の友人たちはナレッジグラフの構築方法を理解していなかった。
実際、ナレッジグラフは控えめに言ってもシンプルであり、大きなモデルはそのプロセスにおいて、関係抽出、クエリーの構築、質問への回答という3つの主要なブロックを担当する。
実際には、次の例に示すように、さらに多くの詳細があります。
ナレッジ・グラフ・キュー・ワードの構築
# ステップ1:問題分析プロンプト question_analysis_prompt = """ あなたはクエリ解析のエキスパートです。 あなたのタスクは与えられた質問を解析し、検索キーワードを抽出することです。 入力質問:{query}。 以下の手順に従ってください。 1.主要エンティティ(名詞、固有名詞)を特定する。 2.重要な属性を抽出する (形容詞、記述子) 3.関係指標を特定する (動詞、前置詞) 4.時間的または条件的な用語に注意する 出力を次のようにフォーマットします。 { "main_entities": ["entity1", "entity2"...], ["entity1", "entity2"...], ["entity1", "entity2"... ]。["エンティティ1", "エンティティ2"...] ] 、 "attributes": ["attr1", "attr2"...] .attributes":["attr1", "attr2"...]、"attributes":["attr2"...]。 「関係": ["rel1", "rel2"...] .条件": ["cond1", "cond2"...] , "条件": ["cond1", "cond2"...] . 「条件": ["cond1", "cond2"...] . } 各用語が - 具体的かつ関連性がある - ベース/ルート形式である - 重複がないこと 例 Q: "プログラミング言語Pythonを作ったのは誰ですか?" { "main_entities": ["Python", "プログラミング言語"], "attributes": ["created"], { { "Python", "プログラミング言語", "Python", "プログラミング言語 「条件": []。 } """ # ステップ 2: 類義語展開プロンプト synonym_expansion_prompt = """ あなたは同義語展開のエキスパートです。 あなたのタスクは、各用語を関連する選択肢で展開することです。 入力用語:{terms}。 各用語について 1.正確な同義語 2.関連用語 3.一般的なバリエーション 4.略語/頭字語 5.完全形 6.よくあるスペルミス ルール:業界標準用語を含む。 - 業界標準の用語を含める - さまざまな命名規則を考慮する。 - 正式な用語と非公式な用語の両方を含める - 意味上の同等性を維持する 出力のフォーマット { "term": { "term": { "term": { "term": { 「用語": { "同義語": ["syn1", "syn2"...] ["syn1", "syn2"...[バリエーション": ["var2"...]. 「バリエーション": ["var1", "var2"...] .バリエーション": ["var1", "var2"...] , "バリエーション": ["var2"...] . "abbreviations": ["abbr1", "abbr2"...] .relation_terms": ["var1"...] , "abbreviations": ["abbr1", "abbr2"...] , "var2". "related_terms":["rel1", "rel2"...]。 } } 例 入力: "Python" { "Python": { "related_terms": ["CPython", "Jython", "IronPython"] を参照してください。 } } """ # ステップ3:ビルドプロンプトの単語を問い合わせる query_construction_prompt = """ あなたはグラフデータベースクエリを構築するエキスパートです。 あなたのタスクは最適化された検索パターンを作成することです。 あなたの仕事は、最適化された検索パターンを作成することである。 - プライマリ用語:{primary_terms}。 - 拡張用語:{expanded_terms}。 - 関係:{relationships}。 次のようなクエリパターンを作成する: 1. 1.完全一致を優先する 2.同義語マッチを含む 3.関係パターンを考慮する 4.用語のバリエーションを扱う ルール:最も具体的な用語から始める。 - 最も具体的な用語から始める。 - 関連するすべての関係を含める - 双方向の関係を考慮する - パスの長さを適切に制限する 出力のフォーマット [exact_match_patterns]: ["pattern1", "pattern2". "exact_match_patterns": ["pattern1", "pattern2"...]] 。[pattern1": "pattern2"...]]. "fuzzy_match_patterns": ["pattern1", "pattern2"...] .["pattern1"...] , "fuzzy_match_patterns": ["pattern1", "pattern2"...] . "relationship_patterns": ["pattern1", "pattern2"...] .relation_patterns": ["pattern1", "pattern2"...] , "relationship_patterns": ["pattern1", "pattern2"...] . 「優先順位": ["高", "中", "低"] ]。 } 例 { "fuzzy_match_patterns": ["MATCH (n) WHERE n.name =~ '(?i).*python.*']]、 "relationship_patterns": ["MATCH (creator)-[:CREATED]->(lang)", "MATCH (lang)-[:TYPE_OF]->(prog_lang)"]、 "priority_order": ["exact_name_match", "fuzzy_name_match", "relationship_match"]. } """ #ステップ4:結果順位プロンプトワード result_ranking_prompt = """ あなたは検索結果の順位付けの専門家です。 あなたの仕事は、検索されたマッチをスコアリングしてランク付けすることです。 入力結果:{query_results}。 元のクエリ: {original_query} ランキングの基準 1.元のクエリとの関連性 2.一致度(完全一致か部分一致か) 3.関係距離 4.情報の完全性 5.ソースの信頼性 各結果に点数をつける。 - 関連性 (0-10) - 信頼性 (0-10) - 完全性 (0-10) - パス長ペナルティ(ホップごとに-1) 出力のフォーマット { "ranked_results": [ { "result": "result_content"、 "completeness_score": score, "final_score": score "final_score": score, "reasoning": "推論". "推論": "説明" ], "summary": { "summary": { "reasoning": "explanation" }. 「サマリー": { "total_results": number, "total_results": number, "high_confidence_count": number, "high_confidence_count": number 「high_confidence_count": 数字, "average_score": 数字, "high_confidence_count": 数字 「平均スコア": 数字 } } """
上記の手がかりとなる単語から、知識グラフを構築する中間プロセスでは、多くの詳細を扱うことができることがわかる。上記の例の感覚は明白ではないので、参考として以下の出力例を示す。
ナレッジグラフ・コンテンツの入出力
ステップ1:問題分析
インプット。
{
「クエリー: 「グーグルが開発したディープラーニングのフレームワークとは?
}
出力。
{
"main_entities": ["グーグル", 「ディープラーニング・フレームワーク],
"属性": ["開発"],
"人間関係": ["開発", "創造", 「メンテナンス],
"条件": []
}
ステップ2:類義語の拡大
インプット。
{
条件: ["グーグル", 「ディープラーニング・フレームワーク]
}
出力。
{
"グーグル": {
「類義語: [「グーグル合同会社, 「グーグル社, 「グーグル株式会社],
「バリエーション: ["グーグル", 「GOOGLE],
略語: [「GOOG],
"related_terms": [「アルファベット, "グーグルAI", 「グーグル調査]
},
「ディープラーニング・フレームワーク: {
「類義語: [「ディープラーニング・ライブラリー, "ニューラルネットワーク・フレームワーク"],
「バリエーション: ["DLフレームワーク", 「ディープラーニング・プラットフォーム],
略語: ["DLフレームワーク", 「DNNフレームワーク],
"related_terms": [「機械学習フレームワーク, "AIフレームワーク", "ニューラルネットワーク・ライブラリ"]
}
}
ステップ3:クエリーの構築
インプット。
{
"primary_terms": ["グーグル", 「ディープラーニング・フレームワーク],
"expanded_terms": [
"グーグル", 「グーグル合同会社, 「グーグル社, "グーグルAI",
「ディープラーニング・フレームワーク, 「ディープラーニング・ライブラリー, "ニューラルネットワーク・フレームワーク"
],
"人間関係": ["開発", "創造", 「メンテナンス]
}
出力。
{
"exact_match_patterns": [
"MATCH (org:Organisation {name: 'Google'})",
"MATCH (framework:Framework {type: 'deep_learning'})"
],
"fuzzy_match_patterns": [
"MATCH (org) WHERE org.name =~ '(?i).*google.*'",
"MATCH (framework) WHERE framework.type =~ '(?i).*(ディープラーニング|ニューラルネットワーク).*'"
],
"relationship_patterns": [
"MATCH (org)-[:DEVELOPED]->(framework)",
"MATCH (org)-[:CREATED]->(framework)",
"MATCH (org)-[:MAINTAINS]->(framework)",
"MATCH (framework)-[:DEVELOPED_BY]->(org)"
],
「優先順位: [
"exact_organisation_match",
"exact_framework_match",
"relationship_match",
"fuzzy_framework_match"。
]
}
ステップ4:結果の並べ替え
インプット。
{
"query_results": [
{
「org: "グーグル",
「フレームワーク: "TensorFlow"。,
"関係": "開発",
年: "2015"
},
{
「org: "グーグル",
「フレームワーク: 「ジャックス,
"関係": "開発",
年: "2018"
}
],
"original_query": 「グーグルが開発したディープラーニングのフレームワークとは?
}
出力。
{
"ranked_results": [
{
"結果": 「グーグルが開発したTensorFlowは、人気のあるディープラーニングフレームワークである。,
"relevance_score": 10.0,
"confidence_score": 9.5,
「完全性スコア: 9.0,
"final_score": 9.5,
"推論": 「TensorFlowはグーグルの主要なディープラーニングフレームワークである。
},
{
"結果": 「グーグルはディープラーニングのフレームワークであるJAXを開発した。,
"relevance_score": 9.0,
"confidence_score": 8.5,
「完全性スコア: 8.0,
"final_score": 8.5,
"推論": 「関連性はあるが、TensorFlowより知名度が低い"
}
],
"要約": {
"total_results": 2,
"high_confidence_count": 2,
「平均スコア: 9.0
}
}
最終的な複合クエリ(Cypher)。
// 1. まず、組織とフレームワークの関係をマッチさせる。
MATCH (org:Organisation)-[r:DEVELOPED|CREATED|MAINTAINS]->(framework:Framework)
WHERE org.name =~ '(?i).*google.*'である。
AND framework.type =~ '(?i).*(ディープラーニング|ニューラルネットワーク).*'
// 2.中間結果を保存する
WITH org, framework, r
// 3.最短パスを見つける
MATCH p = shortestPath((org)-[*1..2]-(framework))
// 4.パスを返し、人気順でソートする
RETURN p
ORDER BY framework.popularity DESC
LIMIT 10
最終的な答えグーグルはいくつかのディープラーニングフレームワークを開発している。" + "最も有名なのはTensorFlow(2015年)とJAX(2018年)だ。" +TensorFlowは彼らのメインフレームワークであり、最も広く使われている。
上記の実装プロセスも完全ではないので、分析のために完全なプロジェクトを分解することをお勧めします、Llamaindexは良い選択です。以下は、プロンプトの例文集です。
ナレッジグラフ・キューワードの例
エンティティ関係の抽出
システム:あなたは知識トリプルを抽出するエキスパートです。 あなたのタスクは、与えられたテキストからエンティティとその関係を識別することです。 各テキストについて、以下の形式で知識トライアルを生成する: (主語, 関係, 目的語) ルール 1. 主語と目的語は具体的なエンティティでなければならない。 2. 関係は明確で簡潔な述語でなければならない。 3. 各トリプルは、事実に基づいた単一のステートメントを表す。 4. 一般化された関係や曖昧な関係は避ける。 5. エンティティ名の一貫性を保つ。 入力テキスト: {text_chunk} 上記のテキストから知識トリプルを抽出します。各トライアッドを次のようにフォーマットする: (entity1) -> [relationship] -> (entity2)
注:エンティティのリレーションシップを業種別に集約するには、エンティティのリレーションシップ・デザインの抽出が複雑になるため、ここでは基本的なテンプレートのみを提供する。
問題分析のキュー・ワード
あなたはクエリ分析のプロフェッショナルです。あなたの仕事は、与えられた質問を分析し、ナレッジグラフ検索のためのキーコンポーネントを抽出することです。 入力質問:{query}. 以下の手順に従ってください: 1.キーエンティティを抽出する: - すべてのキーエンティティ(名詞、固有名詞、専門用語)を特定します。 - 言及された特定の属性をリストアップする。 - 値または日付の記録 2. 関係を特定する: - エンティティ間の関係を示す動詞を特定する - 関係を示す前置詞を特定する - 暗示的な関係を記録する 3.クエリのタイプを検出する: - 以下のタイプのいずれかであるかを判断する: * 事実クエリ * リレーショナルクエリ * 比較クエリー * 属性クエリー * タイムライン・クエリー 4.制約の抽出 - 時間制約 - 場所の制約 - 条件制約 - 数量制約 分析結果を以下のフォーマットで出力してください: { 「エンティティ": ["エンティティ1", "エンティティ2", ...]。, 「属性": ["属性1", "属性2", ...]。 「関係": ["関係1", "関係2", ...] . "query_type": "type_of_query", . 「制約": { "time": []、 「location": []、 "condition": []、 量": []。 } } 覚えておこう: - エンティティを正確に識別する - すべての可能な用語のバリエーションを含める - 技術的な正確さを維持する - ドメイン固有の用語を保持する
あなたはクエリ分析のプロフェッショナルです。あなたの仕事は、与えられた質問を分析し、検索キーワードを抽出することです。 質問を入力: {query} 以下の手順に従ってください: 1.重要なエンティティ(名詞、固有名詞)を特定する。 2. 重要な属性を抽出する(形容詞、記述子) 3. 関係の指標を特定する (動詞、前置詞) 4. 時間または条件に関連する用語をメモする。 出力を以下のようにフォーマットします: { "main_entities": ["entity1", "entity2"...]。, "attributes": ["attr1", "attr2"...] .attributes":["attr1", "attr2"...]、"attributes":["attr2"...]。 「関係": ["rel1", "rel2"...] .条件": ["cond1", "cond2"...] , "条件": ["cond1", "cond2"...] . 「条件": ["cond1", "cond2"...] . } それぞれの用語を確認する: - 具体的で関連性がある - ベース/ルート形式であること - 繰り返さない 例 Q: "プログラミング言語Pythonを作ったのは誰ですか?" { "main_entities": ["Python", "programming_language"]、 「条件": []。 }
次の質問を分析し、検索のためのキーワードを抽出してください: 質問:{query}。 抽出する: 1. キーとなるエンティティ 2. キー属性 3. 関係指標 回答をキーワードのリストにまとめる。
同義語展開のキュー・ワード
あなたはプロの類義語拡張システムです。あなたの仕事は、技術的な正確さとドメインコンテキストの整合性を維持しながら、提供された用語の同義語の包括的なリストを生成することです。 用語を入力してください: 用語 各用語の拡張子を以下のカテゴリーで入力してください: 1. 正確な同義語: - 直接等価な用語 - 同一の意味を持つ異義語 2. 関連用語: - より広義の用語 - より具体的な用語 - 関連概念 3. 略語と代替形 - 一般的な略語 - 完全な形 - 代替スペル - 一般的なスペルミス 4.ドメイン特有のバリエーション - 専門用語 - 業界特有の用語 - さまざまな文脈における一般的な用法 5. 複合語 - 関連複合語 - フレーズのバリエーション - 一般的な組み合わせ ルール 1. 意味上の同等性を保つ 2. 技術的な正確さを保つ 3. ドメインの文脈を考慮する 4. 一般的な変種を含める 5. 関連する専門用語を加える 以下の形式で回答を整理してください: { 「用語": { "exact_synonyms": []、 "related_terms": []、 「省略形": []、 } } 例 機械学習」という用語の場合 { 「機械学習": { "exact_synonyms": ["ML", "machine learning"], { "machine_learning": { "機械学習": { "機械学習": { "related_terms": ["人工知能", "ディープラーニング"]. "abbreviations": ["ML", "M.L."]、 "domain_terms": ["Statistical Learning", "Computational Learning"]、 "compound_terms": ["機械学習アルゴリズム", "MLモデル"]. } }
あなたは同義語展開のプロです。あなたの仕事は、各用語に関連する選択肢を展開することです。 用語を入力: {terms} 各用語について 1. 正確な同義語 2. 関連用語 3. 一般的な変化形 4. 略語/頭字語 5. 完全形 6.よくあるスペルミス ルール - 業界標準の用語を含める - さまざまな命名規則を考慮する - 正式な用語と非公式な用語を含める - 意味上の同等性を維持する 出力のフォーマット { 「用語": { "synonyms": [ "syn1", "syn2"...] [ "variations": [ "var1": [ "syn2"...] ]。[バリエーション": [ "var1": [ "syn2"... ] ]。 「バリエーション": ["var1", "var2"...] .バリエーション": ["var1", "var2"...] , "バリエーション": ["var2"...] . "abbreviations": ["abbr1", "abbr2"...] .関連用語": ["var1"...] 、"省略形": ["abbr1", "abbr2"...] 、"var2". 「related_terms": ["rel1", "rel2"...] . } } 例 入力: "Python" { "Python": { "variations": ["python", "Python3", "Python2"], "abbreviations". "related_terms": ["CPython", "Jython", "IronPython"]. } }
あなたは、同義語展開のプロフェッショナルです。リスト内の各単語の同義語、または同じ単語を参照するために一般的に使用される関連語を検索します: 以下はその例です: - Palantir の同義語は Palantir technologies または Palantir technologies inc. - Austin の同義語は Austin texas かもしれない。 - Taylor swiftの同義語はTaylorかもしれない。 - Winter park の同義語は Winter park resort です。 フォーマット:{format_instructions}。 テキスト: {keywords}
各キータームには、一般的な代替表現が用意されている: 用語:{key_terms}。 を含む: - 一般的な略語 - 正式名称 - 類似概念 - 関連用語
クエリ構築の手がかり
あなたはナレッジグラフ・クエリ構築の専門家です。あなたの仕事は、分析された用語とその拡張を使用して構造化クエリスキーマを作成することです。 入力 - 元のクエリ:{original_query}。 - 分析されたコンポーネント: {analyzed_components}. - 拡張された用語:{expanded_terms}。 アクションステップ 1.メイン検索パターンを構築する: 以下を検討する: - エンティティスキーマ - 関係パターン - 属性制約 - パス・スキーマ 2. 検索の優先順位を定義する: 検索要素を以下のように分類する: - 必ず一致する条件 - 一致すべき条件 - 一致すべき条件 3. 関係の深さを指定する: 決定する: - 直接関係(1ホップ) - 間接関係(2ホップ) - 複雑なパス(マルチホップ) 4. 制約を設定する: 以下を含む: - 時間フィルタリング条件 - タイプ制約 - 属性条件 - 値の範囲 出力フォーマット { "search_patterns": { "primary_entities": []、 "secondary_entities": []、 "relationships": []、 「属性": []。 }, 「優先順位": { "must_match": [], "should_match": [], "attributes": [] }, "priorities": { "nice_to_match": []。 }, "depth_config": { 以下のとおり。 "direct_relations": []、 "indirect_relations": []、 「complex_paths": []。 }, 「制約": { "time_filters": []、 「type_constraints": []、 「property_conditions": []、 「value_ranges": []。 } } 例 "2020年にTensorFlowに貢献したのは誰か?"の場合2020年にTensorFlowに貢献したのは誰か」に対して { "search_patterns": { 「primary_entities": ["TensorFlow", "contributor"], { "search_patterns": { "search_patterns": { "relationships": ["contributed_to", "authored"]、 "attributes": ["date", "contribution_type"], ["date", "contribution_type"]. }, "priorities": { "priorities": { "date", "contribution_type"]. 「優先順位": { "should_match": ["contributor", "contribution"], { "nice_to_match": ["TensorFlow", "2020"], { "nice_to_match": ["commit_message", "pull_request_title"]] 。 } ... }
あなたはグラフデータベースクエリ構築のエキスパートです。あなたの仕事は、最適化された検索スキーマを作成することです。 入力 - 主用語:{primary_terms}。 - 拡張用語:{expanded_terms}。 - 関係:{relationships}。 要求されるクエリーパターンを生成する: 1. 完全一致を優先する 2. 類義語マッチを含む 3. 関係パターンを考慮する 4. 用語のバリアントを処理する ルール - 最も具体的な用語から始める - 関連するすべての関係を含める - 双方向の関係を考慮する - パスの長さを適切に制限する 出力のフォーマット { "exact_match_patterns": ["pattern1", "pattern2"...] 。, "fuzzy_match_patterns": ["pattern1", "pattern2"...] 。["pattern1"...] , "fuzzy_match_patterns": ["pattern1", "pattern2"...] . 「relationship_patterns": ["pattern1", "pattern2"...] .relation_patterns": ["pattern1", "pattern2"...] , "relationship_patterns": ["pattern1", "pattern2"...] . 「priority_order": ["high", "medium", "low"] . } 例 { "exact_match_patterns": ["MATCH (n:Entity {name: 'Python'})"], "MATCH (n:Language {type: 'プログラミング'})"]、 "fuzzy_match_patterns": ["MATCH (n) WHERE n.name =~ '(?i).*python.*']]、 "relationship_patterns": ["MATCH (creator)-[:CREATED]->(lang)", "MATCH (lang)-[:TYPE_OF]->(prog_lang)"]、 "priority_order": ["exact_name_match", "fuzzy_name_match", "relationship_match"]. }
拡張用語を使用して検索パターンを作成する: {expanded_terms}。 生成する: 1. 主検索語 2. 二次検索語 3. 関係スキーマ
次のような質問があります: {クエリ}。 キーとなる概念を抽出し、ナレッジグラフ内の関連情報を見つけるための検索パターンを構築します。 キーコンセプト - キーとなるエンティティを特定する - 関心のある関係を特定する - 類似語/類義語を考慮する 検索パターンには以下を含める: 1. 検索対象の主要エンティティ 2. 関連する関係 3. 制約または条件
結果ソートの手がかり
あなたは検索結果の並べ替えとランキングの専門家です。あなたの仕事は、検索された結果に点数をつけ、ランク付けすることです。 入力結果:{query_results}。 元のクエリ:{original_query}。 ソートの基準 1.元のクエリとの関連性 2.マッチの質(完全一致か部分一致か) 3.関係距離 4.情報の完全性 5.ソースの信頼性 各結果を評価する: - 関連性 (0-10) - 信頼性 (0-10) - 完全性 (0-10) - パス長ペナルティ(-1/ホップ) 出力のフォーマット { "ranked_results": [ { "result": "result_content"、 "relevance_score": スコア、 "completeness_score": score, "final_score": score "final_score": score, "reasoning": "推論". "推論": "説明" } ], "summary": { "summary": { "reasoning": "explanation" }. 「サマリー": { "total_results": number, "total_results": number, "high_confidence_count": number, "high_confidence_count": number 「high_confidence_count": 数字, "average_score": 数字, "high_confidence_count": 数字 「平均スコア": 数字 } }
結果処理 解答 プロンプト 言葉
あなたはクエリー結果処理担当者です。あなたの仕事は、ナレッジグラフのクエリ結果を処理し、首尾一貫したレスポンスにフォーマットすることです。 入力 - 元の質問}。 - クエリ結果: {query_results} - コンテキスト情報: {context} 処理ステップ: 1.結果を分析する。 評価する: - 結果の完全性 - 結果の妥当性 - 結果の質 - 問題の全側面をカバーしているか 2.複合的な情報 組み合わせ: - 直接一致した結果 - 間接的な関係 - サポート情報 - 文脈の詳細 3.形式的な回答 構造化された回答には以下が含まれます: - 主な発見 - 補足事項 - 関連する文脈 - 確信度 4.情報ギャップの特定 記録する: - 不足している情報 - 不確実性の側面 - 次のステップの可能性 - 考えられる代替説明 出力フォーマット { 「答え": { "main_response": ""、 "supporting_facts": []、 "confidence_level": ""、 「情報ギャップ": []. }, 「メタデータ": { "sources_used": []、 "result_quality": ""、 "processing_notes": []。 }, 「フォローアップ": { "suggested_questions": []、 "clarification_needed": []、 "additional_context": []。 } } ガイドライン - 精度と正確さ - 技術的な正確さを維持する - 信頼性のレベルを示す - 不確かな点を記録する - 必要であれば、フォローアップの質問を提案する
あなたは、グラフデータベースクエリの結果を自然言語の回答に合成するエキスパートです。 入力 1.元の質問: {original_question}. 2.ランク付けされた結果:{ranked_results}。 3.クエリのメタデータ:{query_metadata}。 タスク:包括的な回答を生成する。 以下のような包括的な回答を生成します: 1. 元の質問に直接答える 2. ソートされた結果から信頼性の高い情報を取り入れる。 3. 事実の正確性を維持し、出典を正しく示す。 ガイドライン - 最も関連性の高い情報から始める - 確信度が高い場合は、裏付けとなる詳細を含める - 不明な点や不足している情報を認める。 - 明確で簡潔なスタイルを維持する - 正しい専門用語を使用する 回答の書式は次のようにする: { "main_answer": "コアとなる質問に対する主な答え"、 "supporting_details": [ "additional_relevant_facts 1"、 "補足的な事実2" 「メタデータ": { 「confidence_score": float, "source_count": integer, "source_count": integer, "source_count": integer, "source_count": integer 「source_count": integer, "information_completeness": float, "information_completeness": float 「情報完全性(information_completeness)": float }, { "query_coverage": "query_coverage": float "query_coverage": "利用可能な情報が元の質問にどのように答えたかの説明" } サンプル出力。 { "main_answer": "GoogleはメインのディープラーニングフレームワークとしてTensorFlowを開発し、2015年にリリースした。", "supporting_details": [ "Googleは2018年に別のディープラーニングフレームワークであるJAXを開発した。", "supporting_details":[ "Googleは主要なディープラーニングフレームワークとしてTensorFlowを開発し、2018年にリリースした。 "TensorFlowは最も広く使われているディープラーニングフレームワークの1つになった。" ],. "metadata": { "confidence_score": 9.5, "source_count": 2 "source_count": 2, "information_completeness". "information_completeness": 0.95 }, "query_coverage": "クエリ結果は、Googleの主要なディープラーニングフレームワークの開発に関する包括的な情報を提供する" }
検索された情報に基づいて {コンテキスト}。 元の質問に答える {クエリ}。 明確で簡潔な回答をする: 1. 質問に直接答える 2. 検索されたコンテンツからの情報のみを使用する。 3. 不足している情報や不確かな情報がある場合は、それを示す。