精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何使用 Knowledge Graph 和 LLM 構建問答系統

發布于 2025-11-18 07:37
瀏覽
0收藏

如何使用 Knowledge Graph 和 LLM 構建問答系統-AI.x社區基于模擬 FAQ 文檔構建的 knowledge graph

今天我帶來一個基于 knowledge graph(用第一部分介紹的方法構建)和 LLM(這里用的是 Gemma3–4b-it-qat,與之前相同)的簡易 Question Answer (QA) System。我選擇使用 Gemma3–4b,是因為它體量足夠小,可以在普通筆記本上運行,同時又非常擅長遵循指令。

在這篇博客中,我們會用一個關于假想智能手機的 FAQ 文本作為樣例,利用上一篇文章中的代碼(同一倉庫)為其生成 knowledge graph,然后搭建一個系統來回答與該產品相關的問題,就像這樣:

如何使用 Knowledge Graph 和 LLM 構建問答系統-AI.x社區

                                                   一些問答示例

在本文中,我們將學習:

  1. 什么是 QA System
  2. 了解我們的思路
  3. 查看代碼
  4. 討論局限與改進方向

什么是 QA System

引用 Google 的定義:

A question answering (QA) system is a software application that takes a user's question in natural language and provides a direct, relevant answer by processing the question's intent and retrieving information from a knowledge source or generating a new response.

在本文中,我們的 “knowledge source” 是我用 Gemma3 生成的一段模擬 FAQ 文本,你可以在這篇博客的 Github 倉庫 中找到。我們可以運行倉庫的 main.py 來構建 KG 并將其保存到輸出目錄:

python main.py --inputpath ./input/sample-faq.txt --outlabel faq

該命令會將 networkx graph 保存為文件 “nx_graph.pkl”,稍后在構建 QA system 時會加載它。

我們的思路

核心思路是:從用戶問題中抽取 entities/keywords,找到與它們相關的所有 nodes 與 edges,然后將這些信息與問題一起提供給 LLM,讓其基于 KG 中的信息進行回答。我們把方案正式化如下。

給定一個問題 q,以及基于任意語料構建的 knowledge graph (G):

  1. 使用 LLM 從 q 中抽取 named entities(entity_keywords)和 relations/predicates(relation_keywords)。
  2. 從 entity_keywords 中枚舉所有可能的成對組合。這使我們之后可以用 source 和 target 參數查詢圖,因為我們無法預先假設某個 entity 是 source 還是 target。
  3. 對于第 2 步得到的每一對 (u, v),在 G 中查找 u 與 v 之間的所有路徑。這樣可以找出兩個實體之間的所有 relations/paths/knowledge。引入這一步是個 game-changer。
  4. 對于找到的每條路徑(source 與 target node),提取它們之間的 relation。例如 (box, include, charger)。
  5. 將形成的 “triple” 加入列表 relations。
  6. 對 relation_keywords 做類似處理。對于每個 relation r,找到所有由 r 連接的 edges,形成 triples 并加入同一列表 relations。
  7. 最后一步,將這些 triples 與問題 q 一起(封裝在一個 prompt 中)傳給 LLM,讓其基于給定事實(triples)與查詢生成答案。

代碼實現

首先,用 main.py 構建 knowledge graph:

python main.py --inputpath ./input/sample-faq.txt --outlabel faq

然后,從上一步生成的 pickle 文件中加載 graph:

import pickle

G = pickle.load(open(graph_file, "rb"))

我們需要定義一個函數,能夠接收文本輸入與 system level prompt,并從 LLM 獲取響應。下面這個可復用函數實現了該功能:

def get_llm_response(text, system_prompt):
    response = ollama.chat(model=model, messages=[
        {"role": "system", "content": system_prompt},
        {"role": "user", "content": text}
        ])
    resp_content = response['message']['content']
    return resp_content

接下來需要從給定 query 中抽取 entities 和 relations(對應上文的第 1 步)。我構造了一個基礎的 system prompt,如下所示:

system_prompt_key_words = """You are a helpful assistant, expert of English language who can extracts keyword from the given question in root form (e.g. ran becomes run) and lowercase.
The returned keywords should be critical to answer the question.
Categorize the keywords into entity and relation keywords.
keywords must be in root form and lowercase.
The response should be in following format, no additional text:
{"entity": [list of entity keywords], "relation": [list of relation keywords]}"""

response = get_llm_response(query, system_prompt_key_words)
keyword_resp = json.loads(response)
entity_keywords = keyword_resp.get('entity', [])
relation_keywords = keyword_resp.get('relation', [])

假設 entity_keywords 為 [box, charger, phone],我們需要找出所有可能的 source-target 成對組合,以便對圖做全面查詢:

pairs = list(combinations(entities, 2))

對每個實體對,我們需要在圖中查找所有 nodes 與 edges:

paths = list(nx.all_simple_paths(G, source=u, target=target_nodes))

上述步驟(第 1–6 步,含以上代碼)都實現在下面這個函數中:

def search_kg2(G, query):
    response = get_llm_response(query, system_prompt_key_words)
    keyword_resp = json.loads(response)
    entity_keywords = keyword_resp.get('entity', [])
    relation_keywords = keyword_resp.get('relation', [])
    entities = [part.strip() for part in entity_keywords]
    pairs = list(combinations(entities, 2))
    relations = []
    for u, v in pairs:
        target_nodes = get_nodes(G, v)
        paths = list(nx.all_simple_paths(G, source=u, target=target_nodes))
        for path in paths:
            for i inrange(len(path)-1):
                for key in G[path[i]][path[i+1]]:
                    rel = G[path[i]][path[i+1]][key]['relation']
                    relations.append((path[i],rel, path[i+1]))

    for rel_keyword in relation_keywords:
        relations.extend([(u, rel, v) for u, v, rel in G.edges.data("relation") ifstr(rel) == rel_keyword])
    
    return relations

當我們從上述函數得到所有用 triples(entity->relation->entity)表示的 edges 后,就將這些 triples 嵌入到一個指令式 prompt 中傳給 LLM:

context = f"""
    You are given facts from a knowledge graph:

    {triples}

    Answer the user query based ONLY on these facts.
    Answer in full sentence.
    Query: {query}
    """
response = ollama.chat(model="gemma3:4b-it-qat",
             messages=[{"role": "user", "content": context}])
print(f'query: {query}\nAnswer:{response["message"]["content"]}')

它會返回如下這類答案:

如何使用 Knowledge Graph 和 LLM 構建問答系統-AI.x社區

如你所見,對于缺乏相關數據/事實的問題,LLM 會合理地拒絕作答。

本文所有代碼可在文件 

??https://github.com/nayash/knowledge-graph-demo/blob/master/qa-from-kg.ipynb??

中找到。

局限性

如上所示,我們幾乎沒費太多力氣就創建了一個基礎的 QA system,因為 LLM 負責了大量工作,比如文本預處理、抽取等。但它還不完美。在我的初步評估中,至少發現了幾個問題。

系統無法回答 “what is the warranty period?”,因為在圖里 warranty 是 relation 的 label,但它從問題中被抽取成了 named entity,導致系統找不到任何 edge。因此,我們用于構建 knowledge graph 的核心 system prompt 還需要優化。

還有一些問題需要稍微改寫后系統才能回答。但我發現這類問題最終都可以歸因于 KG 的構建方式或從 query 中抽取的 keyword。兩者都可以通過改進 prompts 來修復。比如,我使用的圖中有一條 edge 是:

phone → support_dual_sim → nano sim

這顯然并不理想。但這些都可以通過更謹慎地設計用于構建 KG 的 prompt 來修正。正如我在上一篇文章中提到的,我最初是用 chatGPT 生成的 prompt,并在此基礎上略作修改。在真實生產場景中,應當花更多時間打磨 prompt。對于企業級應用,還可以嘗試更大的 model,因為資源限制不再是問題。

總之,這種方法很有前景,并且可以與 RAG 結合來提升回答質量。或許在下一篇博客中,我會用更精細的 prompts 與 RAG 繼續改進這個系統。

本文轉載自??AI大模型觀察站??,作者:AI研究生

已于2025-11-18 09:41:14修改
收藏
回復
舉報
回復
相關推薦
91国语精品自产拍| 日韩欧美一区二区三区免费观看 | 熟女性饥渴一区二区三区| 青青草免费在线视频| 老牛影视一区二区三区| 久久精品99久久久久久久久| 无码人妻一区二区三区精品视频| 成人教育av| 亚洲欧美乱综合| 欧美xxxx黑人又粗又长密月| 91亚洲国产成人久久精品麻豆| 亚洲性人人天天夜夜摸| 在线性视频日韩欧美| 日本久久久久久久久久| 成人国产精品| 天天色图综合网| 深夜福利成人| 无码国产精品一区二区色情男同| 翔田千里一区二区| 免费不卡在线观看av| 蜜桃精品一区二区| 1313精品午夜理伦电影| 欧美三级电影精品| 日韩少妇内射免费播放18禁裸乳| 欧美性猛交xxx乱大交3蜜桃| 99精品视频一区| 91美女片黄在线观看游戏| 国产91国语对白在线| 真实国产乱子伦精品一区二区三区| 亚洲男人天堂2019| 日韩少妇一区二区| 国产午夜久久av| 欧美亚洲国产一区二区三区va| 日本阿v视频在线观看| 黄视频网站在线看| 国产精品视频第一区| 欧美精品123| 色婷婷综合视频| 国产成人自拍高清视频在线免费播放 | 日韩网站在线播放| 国产精品久久久网站| 日韩一级片在线播放| 国产成人在线综合| 精品久久毛片| 欧美日韩国产欧美日美国产精品| aⅴ在线免费观看| 色呦呦在线资源| 国产精品三级在线观看| 日韩欧美一区二区在线观看| 欧美日韩伦理片| 91美女片黄在线观看91美女| 国产专区一区二区| 日韩在线一区二区三区四区| 国产成人激情av| 99高清视频有精品视频| 国产黄a三级三级看三级| 国产精一区二区三区| 亚洲一区美女视频在线观看免费| 国产精品乱码久久久| 极品少妇xxxx偷拍精品少妇| 91在线观看免费观看| 国产免费黄色录像| 国产精品99久| 国产精品国产精品| 少妇一级淫片免费看| 99久久精品国产网站| 久久99精品久久久久久久青青日本| 熟妇人妻系列aⅴ无码专区友真希| 成人18视频在线播放| 九九九九九九精品| 黄色片在线免费观看| 欧美极品少妇xxxxⅹ高跟鞋| 午夜啪啪免费视频| 蜜臀av在线| 精品美女久久久久久免费| 欧美日韩成人免费视频| 性欧美1819sex性高清| 欧美吻胸吃奶大尺度电影| 手机av在线免费| 免费观看性欧美大片无片| 亚洲精品在线观看网站| 爱爱的免费视频| 久久精品国产大片免费观看| 久热国产精品视频| 日本黄色片视频| 日韩成人av影视| 91精品国产91久久久久青草| 天天av天天翘| 国产精品美女一区二区三区| 99久热在线精品视频| 在线观看网站免费入口在线观看国内| 色一情一伦一子一伦一区| 91色国产在线| xxxx日韩| 色婷婷综合成人| 一级aaa毛片| 麻豆精品久久久| 国产一区二区高清视频| 77777影视视频在线观看| 一区二区三区欧美在线观看| 黄色国产精品视频| 欧美日韩黄网站| 亚洲日韩中文字幕在线播放| 免费在线观看国产精品| 天堂av在线一区| 99在线观看视频| seseavlu视频在线| 亚洲不卡av一区二区三区| 色播五月激情五月| 天堂俺去俺来也www久久婷婷| 最近2019中文字幕大全第二页 | 一本久久精品一区二区| 国产又粗又长又爽又黄的视频| 午夜a一级毛片亚洲欧洲| 免费不卡欧美自拍视频| 中国老头性行为xxxx| www.视频一区| 韩国无码av片在线观看网站| 91综合国产| 精品视频久久久| 久久久久久久久久久久久久免费看| 日韩高清国产一区在线| 久久爱av电影| 里番在线播放| 欧美精品 日韩| 女人黄色一级片| 一区二区日韩免费看| 99在线热播| 国产91在线视频蝌蚪| 欧美日韩一区不卡| 男人舔女人下部高潮全视频| 一本一道久久综合狠狠老精东影业| 成人黄色大片在线免费观看| 春暖花开成人亚洲区| 黑人巨大精品欧美一区免费视频| 动漫美女无遮挡免费| 欧美激情91| 亚洲japanese制服美女| 欧美13一16娇小xxxx| 欧美日韩中文字幕一区二区| 久久av无码精品人妻系列试探| 日韩天堂av| 国产自产精品| 天堂网在线最新版www中文网| 欧美精品一区二区三区四区| 久久久91视频| 成人性生交大片免费看中文 | 久久电影国产免费久久电影| 日韩精品久久一区二区三区| 性高爱久久久久久久久| 亚洲欧美一区二区激情| 中文字幕在线天堂| 国产亚洲精品精华液| 国产精品视频黄色| 久久亚洲成人| 91免费精品国偷自产在线| 国产在线观看a视频| 91精品福利在线一区二区三区| 91传媒免费观看| 精品一区二区三区视频在线观看 | 成年人黄视频在线观看| 日韩一区二区在线观看视频播放| 翔田千里88av中文字幕| 国产福利一区在线| 僵尸世界大战2 在线播放| 精品久久ai电影| 日本午夜在线亚洲.国产| 国产色a在线| 777亚洲妇女| 免费视频网站www| heyzo一本久久综合| 男人舔女人下面高潮视频| 日韩久久久久| 高清一区二区三区视频| 是的av在线| 色婷婷**av毛片一区| a在线观看免费| 五月开心婷婷久久| 免费看91的网站| 国产乱一区二区| 欧美极品欧美精品欧美| 欧美色图激情小说| 99在线免费观看视频| 手机看片久久| 欧美成人精品三级在线观看| 天堂网2014av| 欧美日韩卡一卡二| 日本五十熟hd丰满| 欧美激情一区二区三区在线| 色哟哟免费视频| 老牛影视一区二区三区| 青青草原网站在线观看| 日韩有码中文字幕在线| 成人亚洲激情网| 午夜激情电影在线播放| 久久偷看各类女兵18女厕嘘嘘| 亚洲精品一区二区三区区别| 91久久一区二区| 久久久精品国产sm调教网站| 亚洲国产经典视频| 人妻av一区二区| 精久久久久久久久久久| 无码aⅴ精品一区二区三区浪潮| 99tv成人| 欧美成人在线免费观看| 亚洲乱码一区| 国产一区二区在线播放| 一区一区三区| 久久久久久成人精品| 午夜免费视频在线国产| 精品视频在线播放免| 亚洲国产精品一| 欧美日韩情趣电影| 欧美精品一二三四区| 一区二区免费看| a一级免费视频| 久久久久久电影| 国产a级黄色片| 国产精品88av| 中文字幕免费高清在线| 久久久777| 欧美 日韩 国产在线观看| 欧美在线播放| 免费观看中文字幕| 日韩欧美电影| 偷拍视频一区二区| 亚洲第一福利社区| 精品国产乱码久久久久久108| 国产一区二区三区亚洲综合| 国产精品国内视频| 亚洲精品动漫| 51色欧美片视频在线观看| 爱看av在线入口| 欧美日韩第一视频| www免费在线观看| 久久久av电影| 成人午夜在线影视| 久久精品国产欧美激情| 嫩草香蕉在线91一二三区| 日韩在线中文视频| 二区三区在线观看| 久久精品美女视频网站| 成码无人av片在线观看网站| 久久久国产精品免费| 毛片在线看网站| 色婷婷综合久久久久中文字幕1| 香蕉视频网站在线观看| 日韩在线激情视频| 黄色在线视频网站| 色综合久久精品亚洲国产| 日本在线观看高清完整版| 欧美久久精品午夜青青大伊人| 麻豆最新免费在线视频| 欧美尺度大的性做爰视频| 制服丝袜中文字幕在线| 欧美激情中文网| av中文字幕在线观看第一页| 91爱视频在线| 欧美成人黑人| 国产精品一二三视频| 亚洲免费一区| 国产精品久久波多野结衣| 欧美一性一交| 欧洲在线视频一区| 国产精品久久久久久久久妇女| 好吊色这里只有精品| 国产一区清纯| 逼特逼视频在线| 看片的网站亚洲| 99精品视频免费版的特色功能| 成人午夜电影久久影院| www.色多多| 《视频一区视频二区| 久久婷婷一区二区| 色婷婷精品大在线视频| 97caocao| 亚洲精品久久久久久久久久久| 精品乱码一区二区三四区视频| 日韩中文字幕网站| 密臀av在线| 日本亚洲欧美三级| 亚洲日日夜夜| 久久99久久99精品蜜柚传媒| 精品国产一区二区三区小蝌蚪| 国产精品av免费| 一本久久综合| 欧美国产在线一区| 99国产精品久久久久久久久久久| 夫妇露脸对白88av| 午夜免费久久看| 中文字幕永久在线视频| 精品福利一区二区三区| 成人欧美亚洲| 隔壁老王国产在线精品| 日本一区免费网站| 国产精品久久久久久久久久久久午夜片| 久久99青青| 亚洲理论电影在线观看| 日本网站在线观看一区二区三区| 能看毛片的网站| 日本一二三不卡| 日产电影一区二区三区| 欧美裸体一区二区三区| 日本高清中文字幕二区在线| 欧美成人免费大片| 国产私拍福利精品视频二区| 成人91视频| 91久久高清国语自产拍| 男人舔女人下面高潮视频| 成人sese在线| 欧美做爰爽爽爽爽爽爽| 欧美在线免费播放| 无码国精品一区二区免费蜜桃| 久久久91精品国产| 91成人抖音| 欧美福利一区二区三区| 尤物精品在线| ass极品水嫩小美女ass| 国产精品青草久久| 免费黄色小视频在线观看| 亚洲国产高清福利视频| 黄页网站在线观看免费| 91久久久久久| 999精品在线| 五月天中文字幕在线| 欧美国产日韩亚洲一区| 性色av免费观看| 日韩黄色av网站| av今日在线| 国产亚洲精品久久飘花| 黄色亚洲在线| 成人一区二区三区仙踪林| 亚洲美女精品一区| 国产乱色精品成人免费视频| 日韩中文字幕免费视频| 亚洲成人va| 亚洲精品永久www嫩草| 日本欧美一区二区三区| 摸摸摸bbb毛毛毛片| 在线观看av一区二区| wwwxxx在线观看| 国产精品草莓在线免费观看 | 无码人妻av一区二区三区波多野| 亚洲精品v天堂中文字幕| av最新在线| 精品伦精品一区二区三区视频| 99热这里只有成人精品国产| 久久久久久久久免费看无码| 色综合天天综合网天天狠天天| 可以直接在线观看的av| 国产91色在线| 日韩成人三级| 麻豆精品国产传媒| 亚洲午夜在线电影| 日韩美女一级视频| 国产成人精品久久二区二区91| 欧美日韩国产传媒| 亚洲精品久久久久久宅男| 亚洲欧美日韩中文字幕一区二区三区| a级片免费观看| 高清欧美性猛交xxxx黑人猛交| 性人久久久久| 在线观看国产中文字幕| 亚洲欧美精品午睡沙发| 超碰免费在线97| 欧美一级在线播放| 手机在线电影一区| 亚洲区 欧美区| 精品久久久中文| 午夜老司机在线观看| 98国产高清一区| 午夜在线一区| 欧美美女性生活视频| 日韩欧美一级二级三级| 蜜桃视频在线网站| 欧洲精品亚洲精品| 国产真实乱子伦精品视频| www.天天色| 日韩中文字幕在线精品| 97久久亚洲| 三级a在线观看| 亚洲国产精品天堂| аⅴ资源新版在线天堂| 99久久伊人精品影院| 久久亚洲不卡| www.色小姐com| 日韩激情av在线播放| 日韩专区视频| 草草久久久无码国产专区| 国产精品美女久久久久久| 韩国av免费在线观看| 国产精品日韩在线播放| 在线观看一区视频| 99成人在线观看| 日韩精品免费看| 麻豆精品久久| 黄色三级视频片| 午夜精品福利久久久| 麻豆免费在线观看| 欧美一区1区三区3区公司|