嘗試將 GraphRAG 應用於《蔚藍檔案》的 MomoTalk 中

Project: Strawberry Milk

我一直想製作一個 MomoTalk,當向遊戲劇情提問時,它能夠將人物與事件串聯起來進行回答。之前我曾用 AutoRAG 搜尋過《鳴潮》的劇情,但在充分收集散落在多個場景中的關係方面,還是覺得有些不足。這次我將範圍改為《蔚藍檔案》的主線劇情和 MomoTalk,並應用了 GraphRAG。

像是詢問白子職責這類的基本設定問題、需要將多個角色經歷過的事件串聯起來的問題,以及容易將粉絲迷因與作品中事實混淆的問題,它也能夠回答嗎?

  • 白子在阿比多斯擔任什麼職責?
  • 為什麼優香的體重是 100 公斤?

在實驗中,暴露出同一個人物被分開成多個節點、且重複追問後依據也沒有增加的問題。之後我們還加入了不透過搜尋、直接將相同問題發送給 Gemini 的對照組。雖然在尋找如優香體重紀錄竄改這類原文中的事件時存在差異,但僅憑這三個案例,還不能斷言 GraphRAG 總是更好。以下我們將透過回答與記錄,一起來看看我們製作了什麼、以及在哪裡遇到了瓶頸。

GraphRAG

Microsoft GraphRAG 會從文件中萃取人物、組織、事件等要素與關係,並將其建構成知識圖譜與社群摘要以用於搜尋。其核心在於將原文區塊與圖譜資訊作為回答的上下文提供。

GraphRAG 的社群結構

Microsoft:GraphRAG 的視覺化範例。顏色代表社群,大群組與小群組則顯示不同層級的結構。

遊戲劇情中,同一個人物會出現在多個章節中,關係也會隨之改變。因此我們期待,除了尋找語意相似的段落外,若能利用人物與事件之間的連結,將更容易收集到相關的場景。不過,向量搜尋的結果也會隨著區塊組成、查詢分解和重新排序而有所不同。本文並未進行與一般向量 RAG 的效能比較。

資料與索引成本

我們將劇情整理如下:

md
標題:RABBIT 4,隱匿行蹤。
台詞:
美優:啊……老師…….
美優:早、早安。我一直在等您。
老師:……還好嗎? / 總覺得你好像被路人撞得很慘呢。
...
美優:和老師在一起的時候,稍微覺得安心了一點……

為了快速確認運作情況,我們隨機挑選了約整體 10% 的資料進行索引。隨機挑選並不能保證均勻涵蓋所有人物或事件。因此,當回答不足時,必須區分出不僅是搜尋失敗,還包括所需的原文從一開始就不在索引中的可能性。

索引使用了 gemma-4-31b-it,嵌入則使用了 gemini-embedding-2。以下是當時記錄的索引 Token 數量,這與後面測量的每個問題的回應 Token 是分開的。

過程 輸入 輸出 總計
要素與關係萃取 2.3M 0.3M 2.6M
要素說明摘要 1.3M 0.1M 1.4M
社群報告生成 5.0M 0.7M 5.7M
總計 8.6M 1.1M 9.7M

發生問題!同一個人變成了不同的節點

最顯眼的是 SenseiTeacher 被建立成了獨立的節點。在當時確認的原始資料中,明明沒有 Teacher 這個寫法,卻還是出現在了圖譜中。

我們懷疑原因是每個區塊的名稱萃取與翻譯過程。如果在獨立處理區塊的同時沒有強制規定輸出的名稱,同一個人有時會被保留為原文寫法,有時則會以翻譯後的名稱輸出。不過,由於我們並未回溯這次執行的所有萃取提示詞與回應,因此並未確認個別節點被產生的確切路徑。

被分開為 Plana 與 Prana 的普拉娜節點

普拉娜也被分成了 PlanaPrana。對人類來說這是同一個角色,但在圖譜中,關係卻被分散到了不同的名字上。如果搜尋只從其中一側的節點開始,就會錯過連接到另一側的資訊。

很難假設光是選擇更強的模型就能解決這個問題。因為理解這是同一個人,與在所有區塊中輸出相同的識別符號是兩碼事。我們將針對每個人物設定基準 ID 與別名字典,並將萃取出的節點連接到該 ID 的過程,作為下一個改進的目標。

來試試 DRIFT 吧

DRIFT (Dynamic Reasoning and Inference with Flexible Traversal)

HIGH5LANDER

節點分裂的問題固然是個問題,但在知識圖譜中尋找期望答案的方法本身也很重要。這時候所利用的就是 DRIFT 搜尋。DRIFT 是一種在圖譜節點中靈活穿梭並進行尋找的方式。它不是搜尋一次就結束,而是會自主創造出環環相扣的問題來尋找正確答案。

當收到初始問題時,它會大略瀏覽整個圖譜,為了尋找更多需要的資訊而建立後續問題。然後以該問題為基礎深入圖譜內部,重新探索關係網。這個過程會反覆進行,直到收集到足夠回答的上下文為止,最後將收集到的資訊整合在一起,產出最終答案。

那麼,讓我們來確認一下套用這種方式並提出問題時,會得出什麼樣的結果。

Q. 白子的職責

砂狼白子 · 直接呼叫
白子在阿比多斯擔任什麼職責?

Nexon Games 開發的遊戲《蔚藍檔案》中的角色砂狼白子在阿比多斯高中(正確來說是阿比多斯對策委員會)中所擔任的職責大致如下:


1. 官方職責:行動隊長與現場戰術負責人

  • 最前線突擊手(Pointman):當對策委員會發生實戰戰鬥時,擔任在最前線帶頭的行動隊長(突擊隊長)職責。
  • 現場指揮:如果說野乃美負責(部分)資金支援、綾音負責後方參謀/情報分析、星野作為部長擔任核心,那麼白子就是在現場親力親為執行作戰的實動部隊核心力量

2. 實質/劇情職責:激進解決方案的提出者與引爆劑

  • 提供異想天開且激進的想法(別名「搶銀行」):為了償還阿比多斯龐大的債務,毫不猶豫地提出並付諸實行像是「去搶銀行吧」這種荒唐、激進卻直觀的解決方案,扮演著引爆劑的角色。(實際上她也是主章第 1 章便利商店/銀行襲擊事件的主謀。)
  • 行動力擔當:當其他部員還在煩惱時,擁有第一個採取行動的壓倒性執行力。

3. 日常職責:主導偵察與體能訓練

  • 學校周邊偵察與搜索:利用其興趣公路車(自行車),在廣闊的阿比多斯沙漠地帶與廢墟中進行偵察並偵測異常徵兆。
  • 部員們的運動擔當:憑藉強韌的體力,兼任像是體育股長一樣的職責,強迫(?)對策委員會的部員們進行慢跑或體能訓練。

總結來說: 白子是阿比多斯對策委員會的「現場行動隊長」兼戰鬥核心,以及不斷引發並解決事件的「行動派王牌」

砂狼白子 · GraphRAG
白子在阿比多斯擔任什麼職責?

概述

白子(Shiroko)是阿比多斯高中的學生,也是解決學校危機並守護地區安全的的核心組織——**阿比多斯對策委員會(Abydos Foreclosure Task Force / Countermeasures Committee)**的核心部員。


詳細職責與活動

  1. 對策委員會與學生會核心部員

    • 隸屬與地位:白子是阿比多斯高中的學生,也是在阿比多斯內部活動的**對策委員會核心部員(Core Member)**。
    • 組織活動:與綾音(Ayane)、芹香(Serika)等同伴一同作為對策委員會及阿比多斯學生會成員隸屬於其中,參與處理學校的當前事務。
  2. 現場應對與治安/戰鬥戰力

    • 危機應對:當阿比多斯地區內發生槍聲與治安威脅時,與野乃美(Nonomi)、芹香、綾音等同伴部員以及老師(Sensei)一同立即出動至現場進行應對。
    • 守護同伴與執行作戰:當前輩星野(Hoshino)單獨行動或陷入危險時,展開作戰以保護並救出星野,執行守護阿比多斯安全實戰戰力的職責。

結論

白子在阿比多斯作為**「對策委員會的核心主導人力」**,負責站在第一線進行現場應對,與同伴學生們一起解決地區安全及阿比多斯高中的問題。


Reference Story Files

  • N/A (提供之知識圖譜路徑內未記載個別劇情檔案名稱)

Q. 優香 100kg

早瀨優香 · 直接呼叫
為什麼優香的體重是 100 公斤?

先說結論,優香的體重是 100 公斤這件事,**並非官方設定,而是衍生自粉絲社群的代表性「迷因(Meme)」**。

實際上下優香的身高是 156 公分,官方並沒有公佈她的體重,但從個人檔案來看是一位身材標準的高中生。這個迷因會產生並流行起來的原因如下:


1. 具魅力的下半身(大腿)設計

在優香的官方插圖中,特別是 **EX 技能過場動畫(敲著計算機坐下的動作)**中,大腿被描繪得相當粗壯且健康(肉肉的)。看到這一幕的粉絲們開始開玩笑調侃優香的下半身身材,說「質量都集中在下半身了」。

2. 社群的強行迷因與「100kg」這個數字的黏著度

在韓國 DC Inside 的《蔚藍檔案》看板等玩家社群中,大家分析著優香的 EX 技能過場動畫與行為,並上傳了像是「優香坐下時會產生衝擊波」、「其實比起無人機或護盾,優香還要更重」這類開玩笑的文章。此時,因為「100kg」這個象徵性的數字唸起來非常順口、容易讓人記住,因而作為迷因而固定下來。

3. 被調侃時的反應(傲嬌角色特質)

優香作為千年科學學園的首席會計,是一個非常嚴謹且理性的角色,但同時也處於對老師(玩家)有好感的「正宮」女主角位置。 當粉絲們調侃她「100kg」時,優香慌張或生氣的反應(傲嬌)非常可愛,因此玩家們更是毫無惡意地(?)把她當成沙包一樣調侃。

4. 官方(開發商)對迷因的接受

隨著這個迷因廣為流傳,《蔚藍檔案》的開發團隊(Nexon Games)與官方媒體也積極地接受了它。

  • 官方四格漫畫與活動劇情:經常出現優香對體重計、減肥或體重相關話題表現出極度敏感反應的描寫。
  • 官方直播:在夏萊商店的商品或直播中,也會隱約加入讓人聯想到「優香與 100kg」的搞笑元素。

總結

優香真正的體重很有可能是 **40 公斤後半~50 公斤前半**的正常女高中生體重。**「100kg 優香」是粗壯的大腿設計 + 粉絲們充滿愛意的調侃 + 官方對迷因的接受,三者結合而成的《蔚藍檔案》最高人氣迷因**之一。

早瀨優香 · GraphRAG
為什麼優香的體重是 100 公斤?

優香的體重被記錄為 100 公斤的原因,並不是實際的身體尺寸,而是駭客社團貝里塔斯(Veritas)的部員**麻貴(Maki)**所進行的資料竄改惡作劇


優香體重紀錄的原因與經過

  1. 初期背景與動機(惡作劇的契機)

    • 對擔任研討會會計的優香之干涉感到不滿的麻貴,決定以優香為目標進行惡作劇。
  2. 展開過程(駭入學生紀錄伺服器與資料竄改)

    • 麻貴主導了存取儲存有體檢結果的學生紀錄伺服器的駭客作戰。
    • 透過伺服器內的資料竄改(Data Manipulation),非法修改了優香體檢的體重紀錄。
  3. 最終結果

    • 優香的體重數值是麻貴故意竄改成 **100kg** 的被修改資料。

Reference Story Files

  • story_복면_라이더.txt
  • story_제17화.txt
  • story_제26화.txt
  • story_게으른_경찰의_순찰.txt
  • story_당신의_소원은.txt
  • story_도망치는_하늘은_지칠_줄_모르고.txt
  • story_달려라_아야네.txt

實戰應用

早瀨優香
為什麼優香的體重是 100 公斤?
[GraphRAG Reasoning Trace]
已探索優香體重被記錄為 100kg 的原因。確認是由於貝里塔스의「麻貴」對優香的干涉感到不滿,因而駭入並竄改了學生紀錄與體檢伺服器的資料。
早瀨優香一聽到那個數字,整個人便僵住了。臉蛋瞬間紅得像紅蘿蔔一樣,隨即緊緊皺起眉頭瞪著你。她將拿在手上的平板用力拍在桌上的聲音在辦公室裡迴盪著。
優香 早瀨優香
你、你說什麼?! 你剛剛說了什麼?!
她似乎氣得說不出話來,大口喘著氣傾瀉出反駁。
優香 早瀨優香
100 公斤什麼的,你覺得這在物理上或生物上說得通嗎?! 雖然比起去年體重是稍微增加了一些,但還是在正常體重的範圍內好嗎!那個數字明明是貝里塔斯那群傢伙惡意散播的明顯假消息,竟然還有人相信那個,真是讓人無言以對!

這次實驗留下的收穫

在優香的問題中,我們確認了搜尋有助於將原文的具體事件納入回答中的案例。相對地,白子的問題則沒有引用原文,在反覆判斷依據不足之後,仍然生成了斷然的回答。僅僅建立圖譜這件事,並無法確保回答的可靠性。即便如此,希望這次的嘗試能成為邁向改進的出發點。

直接查看圖譜


本專案並非 NEXON Co., Ltd. 的官方專案。