---
# System prepended metadata

title: 友達課程：GraphRAG backed by Neo4j - 課程筆記

---

# 友達課程：GraphRAG backed by Neo4j - 課程筆記


## 前言
* 為什麼主題叫做 GraphRAG backed by Neo4j？
    * Graph Theory - 最根本的數學理論，研究由「節點」和「邊」所構成的結構
    * Graph algorithm - 解決特定問題的具體方法或步驟
    * KG - 數據模型，重點在於「語意（semantics）」
    * Graph database - 儲存和查詢圖結構數據的資料庫技術
    * Neo4j - 圖結構資料庫產品
    * GNN - 深度學習模型結構 - 圖結構？ - message passing - 來自 Belief propagation 演算法，其中節點透過邊傳遞資訊來進行推理，GNN借用了這個概念，讓神經網路的計算也能沿著圖結構流動。核心思想就是：圖上的計算 = 結構化的訊息交換
    * GraphRAG - 利用知識圖譜來增強LLM

## 工程師 & 技術者
### 「火力展示」
* Websocket, SSE - 還沒弄好
* Microk8s - 還沒弄好

### 「快速展示實作內容」
* 資料輸入
* Named entity recognition
* Structured data
* Un-structured data
* Local LLM hosting
* LangChain call LLM
* LangChain function call 

### 「工程師技術者結語」
* GraphRAG 不只有 GraphRAG

### 「技術 Review」
* GQL 有如 SQL 的標準了 - 24'
* Neo4j 和 SurrealDB 都是滿足 ACID，不像 MySQL、MS server
* 一定一定一定要看 XiuXiu 學長的這一篇！MUST！
* 以 graph structure representation 的 KG，總需要好的容器來承載 — graph database
* 靜態儲存 → 容易驗證
* 動態儲存 → 目前不可懂
* https://www.anthropic.com/research/tracing-thoughts-language-model
* https://www.neuronpedia.org/
* 所以，要雙腦思維

### 「腦部模型」
有趣的研究一：雙過程 - 創意來自「刻意控制」還是「自動聯想」？
* 「Dual-process contributions to creativity in jazz improvisations: An SPM-EEG study」
* Dual-process theory
* 發現一：高品質演奏與「左腦」有關
* 發現二：關鍵轉折！當「經驗」被納入考量
    * 排除了經驗因素後，高品質的演奏反而變成了右腦
    * 觀察到左腦活動其實是「經驗」的產物
* 發現三：專家與新手的大腦運作模式截然不同
* 資深專家：大腦活動更集中在後腦區域 - 這支持了他們依賴已經內化、自動化的演奏技巧
* 資淺新手：右腦活動明顯更強
* 右腦擅長：新奇、不熟悉
* 左腦擅長：常規、已掌握
* 我的觀念：趕快內化，因為騰出空間讓大腦呼吸

### 「靜態 - 動態」
* 靜態動態化
    * 具備「動態」能力的靜態模型 — 原型：Unified-environmental-adaptive dynamic framework 的 人資打卡系統
    * 常說：系統要告訴你我能做什麼？
* 動態靜態化
    * 具備「靜態」能力的動態模型
    * 常說：反過來系統要說我不能做什麼？
---
## 課程
### 「圖論 - 七橋問題延伸」
* Leonhard Euler 1707-1783
* 奇數點：只可以有2個才有解
* 偶數點：隨便選都可以走完
* 計算機科學
    * 作業系統資源分配圖
    * Compiler 語法樹
    * 電腦網絡 - topology structure
    * 分析結構，非暴力計算
    * 複雜問題有結構了
* KG
    * 能夠表達 → 核心模型
    * 知識推理
    * 關鍵字搜索 → 關係查詢

### 「Graph algorithm」
* BFS
* DFS
* Dijkstra’s algorithm
    * for finding the shortest paths between nodes in a weighted graph

### 「KG」
* What Is a Knowledge Graph? https://neo4j.com/blog/genai/what-is-knowledge-graph/
* 展開來想：這只是先定義，回想當時候 GPT3.5-instruct 出來，然後搞知識圖譜和知識提煉的人當場傻了，冷靜了下來後才知道我們的時代來了。 — 這就是雙腦思維

### 「Graph database」
* Graph database 不等於 graph algorithm
* Youtube - How are Graph Databases So Fast ?? (Neo4j) | Systems Design Interview 0 to 1 with Ex-Google SWE https://www.youtube.com/watch?v=Sdw_D-Gllac

### 「Neo4j」
* 4j 就是 for Java
* Dijkstra Single-Source Shortest Path https://neo4j.com/docs/graph-data-science/current/algorithms/dijkstra-single-source/

### 「Cypher」
* What is Cypher? https://neo4j.com/docs/getting-started/cypher/

### 「RAG」
* LeanRAG: Knowledge-Graph-Based Generation with Semantic Aggregation and Hierarchical Retrieval
* HiRAG - Retrieval-Augmented Generation with Hierarchical Knowledge
* 所以，從規劃層面，你應該就很清楚上面的東西應該怎麼去做開發和嘗試


---
## 實作
### 「Neo4j」
* Neo4j Aura
* On-premise
    * 直接啟動 JVM 也行
    * Docker image
    * Podman image
* Neo4j Desktop 2

---
## 核心
* AI 領域是心法快50年都不變，但技法一直在迭代的領域
* AI 落地開發者需集全角色語一身：數學家、工程師、導演、編劇、廠務
* AI 解決方案是醫-病關係：強大的醫療團隊就是三位一體

---
## 其他
* Youtube - An Introduction to Graph Neural Networks https://www.youtube.com/watch?v=aFnHYEv71U4