全部產品
Search
文件中心

AnalyticDB:使用GraphRAG服務

更新時間:Nov 20, 2025

傳統RAG(Retrieval Augmented Generation)因為上下文理解能力不足、文檔相似性偏差等缺陷,在處理複雜關係、多跳推理和知識關聯時存在局限性。GraphRAG在傳統RAG檢索路徑的基礎上,提供了基於知識圖譜的索引、檢索、產生能力,從而提升了對複雜資料的理解與產生的品質。

功能簡介

GraphRAG支援以下功能:

  • 索引:通過知識抽模數型,對文檔進行知識抽取,產生知識圖譜,儲存到圖分析引擎。

  • 檢索:通過知識抽模數型,對Query進行關鍵詞提取,在AnalyticDB for PostgreSQL圖分析引擎中遍曆子圖,搜尋關聯子圖。

  • 產生:將Query和關聯子圖上下文提交給大模型,並產生結果。

版本限制

核心版本為7.2.1.3及以上的AnalyticDB for PostgreSQL7.0版執行個體。

說明

您可以在控制台執行個體的基本資料頁查看核心小版本。如不滿足上述版本要求,需要您升級核心小版本

安裝外掛程式

核心版本為7.2.1.4及以上的AnalyticDB for PostgreSQL7.0版執行個體已自動安裝plpython3u、age和adbpg_graphrag外掛程式。您需要將ag_catalog添加到search_path,具體請參見下方安裝age外掛程式。

  1. 安裝plpython3u外掛程式(預設已安裝)。

    檢查外掛程式是否安裝成功:切換到指定資料庫的public模式下,執行如下命令。

    SELECT * FROM pg_extension WHERE extname = 'plpython3u';

    返回如下結果,表示plpython3u外掛程式已成功安裝。如未返回結果,表示指定資料庫的public模式下沒有安裝此外掛程式。

      oid  |  extname   | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition 
    -------+------------+----------+--------------+----------------+------------+-----------+--------------
     14674 | plpython3u |       10 |           11 | f              | 1.0        |           | 
    (1 row)
  2. 安裝age外掛程式

    1. 安裝age外掛程式後,需要在資料庫中將ag_catalog添加到search_path,以簡化查詢。以下是兩種配置方式:

      • 會話層級設定。

        SET search_path TO "$user", public, ag_catalog;
      • 資料庫層級永久設定。

        ALTER DATABASE <database_name> SET "$user", public, ag_catalog;
    2. (可選)使用初始帳號高許可權使用者RDS_SUPERUSER授權其他使用者使用圖外掛程式。

      GRANT USAGE ON SCHEMA ag_catalog TO <username>;
  3. 安裝adbpg_graphrag外掛程式,請聯絡支援人員協助安裝此外掛程式。

    adbpg_graphrag外掛程式依賴plpython3u、age外掛程式,安裝此外掛程式前請先確認依賴外掛程式完成安裝。

使用提示

  • 模型選擇。

    在模型選擇方面,阿里雲主要測試了qwen-max、qwen-plus-latest和qwen3-32b三款模型。

    • 在回答品質方面,測試效果依次為:qwen-max > qwen-plus-latest > qwen3-32b。如需高品質輸出,推薦使用qwen-max。

    • 在產生速度方面,測試效果依次為:qwen3-32b > qwen-plus-latest > qwen-max。如更關注響應速度,建議選擇qwen3-32b。

  • 關於涉及圖片的文檔匯入與處理。

    當前系統對包含圖片的文檔支援有限。如需匯入含圖文檔,建議使用多模態大模型(如qwen2.5-vl-72b-instruct)先將圖片解析為文本描述後再上傳。prompt指令參考如下。

    你是一個專業的圖片閱讀助手,負責為下面提供的圖片產生一個詳細的解讀與全面的總結。
    ---要求---
    1. 如果圖片中有模組區分,請分別抽取並儘可能多的提供每個模組詳細的細節資訊。
    2. 根據以上抽取的資訊,產生針對該模組的總結。
    3. 如果圖片中存在圖表,請根據圖表總結可用的細節資訊。
    4. 如果圖片中存在有效表徵圖,如國旗表徵圖,象形表徵圖,隱喻表徵圖,工具表徵圖和混合表徵圖等,也需要關注表徵圖來抽取細節資訊。
    5. 根據抽取的資訊,進行總結並提供有效全域資訊。
    ---備忘---
    確保使用第三人稱書寫,並包含模組名稱,以便我們擁有完整的上下文。
    *識別圖片中的主體語言*(佔據80%以上的語言),使用*圖片主體語言*作為輸出語言。

操作步驟

初始化GraphRAG服務

文法

SELECT adbpg_graphrag.initialize(config json);

參數

adbpg_graphrag.initialize函數入參是一個JSON變數,用於配置GraphRAG服務資訊,配置參數說明如下。

參數

說明

llm_model

用於指定GraphRAG使用的大模型,預設為qwen-max-2025-01-25。

llm_api_key

調用大模型時需要使用的API Key

llm_url

大模型的API介面地址,預設使用阿里雲百鍊平台的API。

說明
  • 使用阿里雲百鍊的llm_url(例如https://dashscope-intl.aliyuncs.com/compatible-mode/v1),請開啟公網NAT,或配置私網訪問阿里雲百鍊模型

  • 使用同VPC下的PAI或者AnalyticDB for PostgreSQL的AI Node資源,則無需開通公網NAT。

embedding_model

用於指定GraphRAG使用的嵌入模型,預設為text-embedding-v3。

language

GraphRAG使用的預設語言,預設為英語。

  • 英語:English。

  • 簡體中文:Simplified Chinese。

entity_types

指定解析文檔產生知識圖譜時,需要抽取的實體點的類型。

relationship_types

指定解析文檔產生知識圖譜時,需要抽取的關係邊的類型。

first_node_content

在使用決策樹模式(tree)時,指定初始節點回複,預設為“您好,請問您有什麼問題?”。

end_node_content

在使用決策樹模式(tree)時,指定最終節點回複,預設為“請問還有什麼其他問題嗎?”。

global_distance_threshold

在使用決策樹模式(tree)時,指定在本地與全域結果中選擇全域搜尋結果閾值,預設為0.1,表示全域搜尋與客戶回複相似性與本地搜尋相比大於0.1 時,選擇全域搜尋結果。

樣本

SELECT adbpg_graphrag.initialize(
	$$
	{
		"llm_model" : "qwen-max-2025-01-25",
		"llm_api_key" : "sk-****************",
		"llm_url" : "https://dashscope.aliyuncs.com/compatible-mode/v1",
		"embedding_model" : "text-embedding-v3",
		"language" : "Simplified Chinese",
		"entity_types" : ["業務情境", "產品", "功能特點", "使用邏輯", "資料指標", "資料口徑"],
		"relationship_types": ["包含", "屬於", "使用", "依賴", "關聯", "解決"]
	}
	$$
);

上傳文檔

文法

SELECT adbpg_graphrag.upload(filename text, context text);

參數

adbpg_graphrag.upload函數用於上傳檔案內容。上傳檔案後,GraphRAG會做文本切分、向量產生、知識圖譜抽取等一系列工作。

  • filename:檔案名稱。

  • context:檔案內容。

樣本

SELECT adbpg_graphrag.upload('產品資訊.txt', '小蜜客服系統可以提供問題解答,請假申請,知識庫搜尋等功能。');

問題查詢

文法

SELECT adbpg_graphrag.query(query_str text);
SELECT adbpg_graphrag.query(query_str text, query_mode text);

參數

  • query_str:需要詢問的問題

  • query_mode:查詢模式。GraphRAG支援以下查詢模式。

    • mix(預設):使用向量匹配與知識圖譜來擷取相關知識,並提供給大模型參考。

    • bypass:不使用任何向量或知識圖譜查詢,直接詢問大模型。

    • naive:僅使用向量查詢擷取相關知識,並提供給大模型參考。

    • local:僅使用知識圖譜中的實體點擷取相關知識,並提供給大模型參考。

    • global:僅使用知識圖譜中的關係邊擷取相關知識,並提供給大模型參考。

    • hybrid:使用知識圖譜的實體點和關係邊擷取相關知識,並提供給大模型參考。

    • tree:決策樹模式,將知識儲存為問答樹後,使用該模式進行查詢與回答。

樣本

SELECT adbpg_graphrag.query('小蜜有什麼功能?', 'hybrid');