
ローカルLLM(Gemma3)にRAGを組み合わせた記事生成パイプラインを用いて、RAGあり・RAGなしの出力を比較するためのレポートです。
実装の説明や前回からの差分も記載します。
※出力した内容は必ずしも事実であるとは限りません。
今回の記事生成パイプラインは以下のステップで動作します。
生成した内容をChatGPTに評価させ、精度の違いを検証します。
ChatGPTへの指示は「下記の①と②の文章のファクトチェックをした上で回答精度の比較評価をしてださい」です。
モデル: gemma-3-1b-it-q4_0.gguf
wikipediaダンプ: jawiki-latest-pages-articles.xml.bz2 04-Mar-2026 01:54 4592085011
リポジトリ: https://github.com/YKZ-J/ja-wikipedia-rag
- 特にありません。
Wikipedia API 実装ドキュメント
目的
このプロジェクトでは、Wikipedia APIを使って日本語Wikipediaの内容を取得し、Vault向けMarkdownドキュメントを自動生成します。
実装の入口
CLIコマンド
kb create-wiki "キーワード" [tags...]MCPクライアントの
createWikiDocを呼び出します。MCPツール
ツール名:
create_doc_wiki受け取る入力:
title: Wikipedia検索キーワード
tags: 任意タグ配列ツールの処理:
createDocFromWikipedia({ keyword: title, tags })を実行してMarkdownファイルを生成し、作成先パスを返します。Wikipedia API 呼び出しフロー
1) タイトル検索
API:
GET https://ja.wikipedia.org/w/api.php主なクエリパラメータ:
action=query
list=search
srsearch=<keyword>
srlimit=1
format=json
utf8=1取得結果:
query.search[0].titleを採用該当なしの場合は例外を送出
Wikipediaで「<keyword>」に一致するページが見つかりませんでした2) ページ本文・関連リンク・URL取得
API:
GET https://ja.wikipedia.org/w/api.php主なクエリパラメータ:
action=query
prop=extracts|links|info
titles=<resolvedTitle>
explaintext=1(プレーンテキスト本文)
exsectionformat=plain
inprop=url(fullurl取得)
pllimit=20(関連リンク最大20件)
plnamespace=0(記事名前空間のみ)
formatversion=2
format=json取得結果:
query.pages[0]から以下を使用
title
extract
links
fullurl
titleまたはextractがない場合は例外を送出
Wikipediaページの詳細取得に失敗しました: <title>3) セクション見出し取得
API:
GET https://ja.wikipedia.org/w/api.php主なクエリパラメータ:
action=parse
page=<resolvedTitle>
prop=sections
format=json取得結果:
parse.sections[].lineを正規化し、先頭12件を採用HTTP共通処理
fetchWikiJson
fetch(url)で取得し、response.okを検証非2xx時は例外:
Wikipedia API error: HTTP <status>正常時はJSONを返却
取得データの整形ロジック
Summary生成
extractを文単位に分割120〜280文字を目安に要約テキストを組み立て
句点境界で切れるように調整
Detail生成
残り文を使って 1400〜2400文字を目安に本文を作成
足りない場合は再試行し、最終的に文境界カットで補完
取得済みセクション見出し(最大8件)を末尾に付与
関連リンク生成
linksからタイトルを最大12件採用
https://ja.wikipedia.org/wiki/<URLエンコード済みタイトル>形式に変換
linksが空ならfullurlを使って原文リンクを1件出力出力ファイル仕様
保存先
優先順:
KB_BLOG_SOURCE_PATH
VAULT_PATH既定値
vault/docs/notesslug
形式:
<4桁ランダム>-wikipedia-sourceFrontmatter
title,slug,tags,created,updated,summary,image,type,isDraft日付は
getTokyoDateString()を利用(Asia/Tokyo基準)本文セクション
# 概要
# 詳細
# 関連例外と失敗時挙動
代表的な失敗
検索結果が0件
ページ本文取得失敗
Wikipedia APIがHTTPエラーを返す
失敗時の伝播
createDocFromWikipediaで投げた例外はMCPツール呼び出し元へ伝播CLIではエラー表示して終了コード1で終了
関連コマンドとの関係
ask-wiki / compare-wiki
ask-wikiとcompare-wikiは主にローカルvectorDB+Python RAG経由の回答生成フローです。ただし
compare-wikiでは比較記事生成時に、参照元Wikipedia記事を source ドキュメント化するためcreateDocFromWikipediaを再利用します。主要実装ファイル
TypeScript
src/application/use-cases/create-wiki-doc.ts
src/interface/http/mcp-server.ts
src/interface/http/mcp-client.ts
src/interface/cli/main.ts
ファクトチェック結果
① の回答
正確性:①の回答は、多くの年の優勝者名や開催都市を具体的に列挙しており、実際のRed Bull BC One公式サイトや各年の大会記録と概ね一致しています。
誤り・不正確な箇所:
いくつかのB-boy名やクルー名は表記やスペルが混在しており、例えば「ビール (スイス)」や「Omar Jive Turkeys」は公式サイトでは異なる表記の場合があります。
2025年の情報は未発表のため「Issin Body Carnival / RBBC1AS」や「Riko ONE PIECE CREW」は推測または誤記の可能性があります。
B-girl部門については明確な優勝者名の情報が欠落しています。
② の回答
正確性:②の回答は、2003年以降ずっと「Chris Hadaway」と「Jason 'Jay' Williams」が交互に優勝していると記述しており、実際の歴代優勝者リストとは大きく異なります。
誤り:実際のRed Bull BC Oneの優勝者は国際的に多様で、Lilou、Menno、Hong 10、Victor、Shigekixなどが複数回優勝しており、②のリストは完全に誤情報です。
精度比較評価
①の精度:高い。ほぼ正確な年・都市・優勝者を反映している。情報源が公式リストや大会記録に近い内容で、2025年の未発表部分を除けば、実用上十分信頼できる。
②の精度:低い。現実の優勝者リストと大幅に異なる誤情報で、信頼性はほぼない。歴史的事実の再現性がなく、教育・参照用には不適。
結論:①は現実に基づく正確な情報を提供しており、②は完全に誤った内容であるため、①が圧倒的に優れた回答です。
質問
red bull bc oneの歴代優勝者を教えてください
回答
red bull bc oneの歴代優勝者は、以下の通りです。 2004年 ビール (スイス)* Omar Jive Turkeys 2005年 ベルリン (ドイツ)* Lilou Pockémon 2006年 サンパウロ (ブラジル)* Hong 10 Drifterz 2007年 ヨハネスブルク (南アフリカ)* Ronnie Full Force / Super Cr3w 2008年 パリ (フランス)* Wing Jinjo 2009年 ニューヨーク (アメリカ)* Lilou Pockémon 2010年 東京 (日本)* Neguin Tsunami All-Stars 2011年 モスクワ (ロシア)* Roxrite Renegades / Break Disciples / Squadron 2012年 リオデジャネイロ (ブラジル)* Mounir Vagabonds 2013年 ソウル (韓国)* Hong 10 Drifters / 7Commandoz 2014年 パリ (フランス)* Menno Hustle Kidz 2015年 ローマ (イタリア)* Victor MF Kids / Squadron 2016年 名古屋 (日本)* Issei Found nation 2017年 アムステルダム (オランダ)* Menno Hustle Kidz 2018年 チューリッヒ (スイス)* Lil Zoo Lhiba kingzoo / El Mouwahidin / Flying Steps 2019年 ムンバイ (インド)* Menno Hustle Kidz / Defdogs 2020年 ザルツブルク (オーストリア)* Shigekix K.A.K.B. 2021年 グダニスク (ポーランド)* Amir PDVL / Predatorz 2022年 ニューヨーク (アメリカ)* Victor Squadron / MF Kidz / Back Yard Funk / RBBC1AS 2023年 パリ (フランス)* Ami Good Foot Crew 2024年 リオデジャネイロ (ブラジル)* Menno Hustle Kidz 2025年 東京 (日本)* Issin Body Carnival / RBBC1AS * Riko ONE PIECE CREW (注:2025年大会の優勝者情報はまだ発表されていません。) また、B-girl部門の優勝者についても、上記に記載しています。
検索クエリ(実際に使用)
red bull bc oneの歴代優勝者を教えてくださいred実使用コンテキスト長: 4,978文字Wikipedia本文合計: 4,978文字参照記事数: 1num_ctx: 12000num_predict: 1400記事別本文文字数:【Red Bull BC One】: 4,978文字参照元 Wikipedia 一覧
- 【Red Bull BC One】
質問
red bull bc oneの歴代優勝者を教えてください
回答
Red Bull BC One 歴代優勝者 Red Bull BC Oneは、ブレイクダンスの競技会であり、その歴史の中で数々のスター選手が誕生しています。以下に、大会の歴史における主要な優勝者をリストアップします。 初期(2003-2006年)* 2003年: クリス・ハドソン (Chris Hadaway) * 2004年: クリス・ハドソン (Chris Hadaway) * 2005年: ジェイソン・ "ジェイ"・ウィリアムズ (Jason "Jay" Williams) * 2006年: クリス・ハドソン (Chris Hadaway) 競技会の進化と国際展開(2007-2012年)* 2007年: ジェイソン・ "ジェイ"・ウィリアムズ (Jason "Jay" Williams) * 2008年: クリス・ハドソン (Chris Hadaway) * 2009年: ジェイソン・ "ジェイ"・ウィリアムズ (Jason "Jay" Williams) * 2010年: クリス・ハドソン (Chris Hadaway) * 2011年: ジェイソン・ "ジェイ"・ウィリアムズ (Jason "Jay" Williams) * 2012年: クリス・ハドソン (Chris Hadaway) 競技会の再編と新たなスターの台頭(2013-現在)* 2013年: ジェイソン・ "ジェイ"・ウィリアムズ (Jason "Jay" Williams) * 2014年: クリス・ハドソン (Chris Hadaway) * 2015年: ジェイソン・ "ジェイ"・ウィリアムズ (Jason "Jay" Williams) * 2016年: クリス・ハドソン (Chris Hadaway) * 2017年: ジェイソン・ "ジェイ"・ウィリアムズ (Jason "Jay" Williams) * 2018年: クリス・ハドソン (Chris Hadaway) * 2019年: ジェイソン・ "ジェイ"・ウィリアムズ (Jason "Jay" Williams) * 2020年: クリス・ハドソン (Chris Hadaway) * 2021年: ジェイソン・ "ジェイ"・ウィリアムズ (Jason "Jay" Williams) * 2022年: クリス・ハドソン (Chris Hadaway) * 2023年: ジェイソン・ "ジェイ"・ウィリアムズ (Jason "Jay" Williams) 注記:* Red Bull BC Oneは、2023年をもってその形式を終了しましたが、上記は大会の歴史における優勝者です。 * クリス・ハドソンは、大会期間中に最も多く優勝しています。 * ジェイソン・ "ジェイ"・ウィリアムズも、複数回の優勝経験があります。 このリストは、Red Bull BC Oneの主要な優勝者の一部です。競技会は常に進化しており、多くの才能あるダンサーが活躍しています。
精度が高いのは①(RAGあり)の方です。 RAGによって情報ソースを参照できるため正確性と具体性が向上します。