精品欧美一区二区三区在线观看 _久久久久国色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精品成人| 欧美日韩一区不卡| 日韩精品手机在线观看| 亚洲精品久久久蜜桃动漫| 国产欧美日韩一级| 日韩视频免费看| 97香蕉碰碰人妻国产欧美| 日本h片久久| 亚洲国产日产av| 欧美在线一区二区三区四区| 99国产在线播放| 亚洲综合社区| 久久手机免费视频| 毛片网站免费观看| 午夜日韩影院| 欧美日韩一区二区不卡| 久久亚洲中文字幕无码| 免费**毛片在线| 久久午夜老司机| 动漫精品视频| 国产又粗又猛又爽又黄视频 | 国模一区二区| 亚洲一区视频在线观看视频| 亚洲图色在线| 日本中文字幕一区二区有码在线| 国产麻豆精品一区二区| 国产精品免费小视频| 中文字幕在线观看免费视频| 亚洲女同一区| 日韩在线资源网| 美女久久久久久久久久| 超碰在线亚洲| 日韩欧美一区中文| 日韩在线一区视频| 开心久久婷婷综合中文字幕| 色哟哟国产精品| 人妻av中文系列| 青青草视频在线免费直播| 成人欧美一区二区三区黑人麻豆 | 久久中文字幕av| 精品一区二区三区四区在线| 国模无码视频一区| 91成人入口| 欧美大胆人体bbbb| 污免费在线观看| 日韩在线电影| 欧美精品黑人性xxxx| 亚洲综合欧美在线| 成人午夜毛片| 欧美午夜在线一二页| 久久久久久久久久久免费视频| 国产夫妻在线播放| 欧美日韩亚洲91| 成年人观看网站| 蜜臀久久精品| 狠狠躁夜夜躁人人爽天天天天97| 日韩av中文字幕第一页| 亚洲色成人www永久在线观看| 国产精品欧美综合| 日韩电影免费在线观看网站| 国产精品欧美日韩一区二区| www.av88| 国产主播一区二区| 91视频在线免费观看| 精品人妻一区二区三区浪潮在线| 国产成人亚洲综合a∨婷婷图片 | 一级片视频网站| 蜜臀av一区二区三区| 国产欧美一区二区三区在线看| 伊人成人在线观看| 国产一区二区调教| 粉嫩av免费一区二区三区| 欧美 日韩 国产 成人 在线 | 男人的天堂av网| 欧美亚洲国产激情| 日韩中文字幕国产精品| 91日韩中文字幕| 黄色欧美成人| 欧美有码在线视频| 91午夜交换视频| 国产精品一区在线观看乱码| 国产伦精品一区二区三区视频黑人 | 亚洲精品福利在线| 波多野在线播放| 97在线精品| 中文字幕在线观看2018| 国产一级免费在线观看| 中文在线免费一区三区高中清不卡| 亚洲自拍三区| 波多一区二区| 91高清视频在线| 日本黄色一级网站| 午夜欧洲一区| 久久精品一区中文字幕| 日韩欧美亚洲视频| 美腿丝袜亚洲色图| 国产精品久久久久久免费观看| 黄色片视频在线观看| 亚洲色欲色欲www在线观看| 国产av人人夜夜澡人人爽麻豆| 欧美香蕉视频| 日韩欧美综合一区| 日本黄色小视频在线观看| 国产精品porn| 国产精品扒开腿做爽爽爽男男| 不卡视频在线播放| 欧美激情在线一区二区三区| 国产成a人亚洲精v品在线观看| 怡红院成人在线| 亚洲精品在线电影| 日日操免费视频| 国产精品社区| 99精品国产高清在线观看| 九色在线视频蝌蚪| 亚洲大尺度视频在线观看| 中文字幕第100页| 日韩激情毛片| 欧美黄色性视频| 国产精品久久无码一三区| 久久天堂av综合合色蜜桃网| 久久成人福利视频| 久久99精品久久久野外观看| 在线电影欧美日韩一区二区私密| 国产精品999在线观看| 国产电影一区二区三区| 国产福利片一区二区| 91精品韩国| 亚洲国产日韩精品在线| 久久免费公开视频| 国产一区二区精品久久91| 色一情一乱一伦一区二区三欧美| 欧美xxxhd| 亚洲国产成人91精品| 久久久国产精华液| 激情欧美一区二区三区在线观看| 五月天久久狠狠| 精品欧美一区二区三区在线观看| 亚洲精品视频在线播放| 国产情侣自拍av| 99精品久久99久久久久| 免费不卡av在线| 国产精品1luya在线播放| 久久久久久国产精品| 亚洲国产精品成人久久蜜臀| 亚洲日本一区二区| 亚洲欧美日韩一二三区| 婷婷久久一区| 95av在线视频| 9191在线播放| 精品国产精品网麻豆系列 | 国产一区二区精品福利地址| 欧美一级在线播放| 欧美孕妇性xxxⅹ精品hd| 一区二区在线看| 精品人妻无码中文字幕18禁| 欧美精品麻豆| 国产精品日韩高清| 国产黄大片在线观看| 亚洲国产毛片完整版| 韩国av免费观看| 久久一留热品黄| 人妻无码视频一区二区三区| 人人狠狠综合久久亚洲婷婷| 国产美女精彩久久| 中文国产字幕在线观看| 欧美精品一区二区久久婷婷| 日韩精品人妻中文字幕| 91在线国产观看| 欧美三级理论片| 亚洲蜜桃视频| 精品在线视频一区二区| 澳门成人av网| 色噜噜狠狠狠综合曰曰曰| 999久久久久| 亚洲一区二区三区视频在线| 国产白嫩美女无套久久| 久久久久国产一区二区| 最近看过的日韩成人| 一区二区三区亚洲变态调教大结局| 4438全国成人免费| 婷婷在线视频| 亚洲精品97久久| 波多野结衣毛片| 亚洲男人天堂av网| 粉嫩av懂色av蜜臀av分享| 日本在线不卡视频一二三区| 国风产精品一区二区| 亚洲男人都懂第一日本| 国产欧美中文字幕| 9765激情中文在线| 最新中文字幕亚洲| 天天干天天操av| 欧美日韩精品一区二区三区四区| 免费一级全黄少妇性色生活片| 久久久久久久久久电影| 亚洲精品国产久| 在线亚洲免费| 日本美女爱爱视频| 国产一区二区亚洲| 99视频在线播放| 成人在线视频免费| 97视频在线观看视频免费视频| p色视频免费在线观看| 精品国产麻豆免费人成网站| 中文字幕一区二区三区免费看 | 91丨九色丨蝌蚪丨老版| 男人的天堂最新网址| 国产日韩精品视频一区二区三区 | 制服丝袜第二页| 狠狠色丁香婷综合久久| 成年人视频在线免费| 国产精品分类| 在线观看福利一区| 蜜乳av综合| 国产免费一区| 亚洲国产aⅴ精品一区二区| 国产精品精品视频一区二区三区| 黄色软件视频在线观看| 欧美国产乱视频| 黄色免费在线看| 国产一区二区三区视频| 性感美女福利视频| 亚洲成av人片在线观看香蕉| 国产精品玖玖玖| 色成年激情久久综合| 香蕉视频一区二区| 一区二区三区在线观看欧美| 女人18毛片毛片毛片毛片区二| 久久精品免视看| 五月开心播播网| 99久久久久久| 一本加勒比波多野结衣| 成人永久看片免费视频天堂| 日本55丰满熟妇厨房伦| 国产一区二区三区在线观看精品 | 91女厕偷拍女厕偷拍高清| 亚洲av无码久久精品色欲| 久久国产精品99精品国产| 黑人粗进入欧美aaaaa| 免费中文字幕日韩欧美| 免费成人在线视频网站| 午夜在线播放视频欧美| 日本毛片在线免费观看| 国产日韩欧美一区二区三区在线观看| 男人添女荫道口喷水视频| 黄色成人在线网址| 国精产品一区一区三区视频| 亚洲经典三级| 亚洲自偷自拍熟女另类| 一本一本久久| 欧美 国产 日本| 久久久久久亚洲精品杨幂换脸| 日本在线视频www| 全国精品久久少妇| 欧美精品性生活| 久久国产精品99精品国产| 五月天婷婷影视| 国产乱码精品一区二区三区av| 天天爽夜夜爽视频| 国产成人免费视频一区| 丝袜熟女一区二区三区| 91碰在线视频| 极品尤物一区二区| 亚洲乱码精品一二三四区日韩在线| 国产精品白嫩白嫩大学美女| 亚洲国产欧美在线| 性无码专区无码| 欧美午夜精品理论片a级按摩| 在线播放亚洲精品| 欧美一区二区三区思思人| 免费观看国产视频| 精品在线小视频| 色欧美激情视频在线| 欧美激情精品久久久久久变态| 老牛影视精品| 国产精品影片在线观看| 视频精品一区| 欧美专区一二三| 91精品一区二区三区综合| 国产www免费| 日韩中文字幕亚洲一区二区va在线| 男生操女生视频在线观看 | 亚洲一区日韩| 国产免费中文字幕| 99久久伊人精品| 黄色国产在线播放| 亚洲国产精品久久久男人的天堂| 中文字幕精品三级久久久 | 麻豆精品国产传媒| 26uuu亚洲综合色欧美| 亚洲精品电影院| 性做久久久久久久久| 中文在线a天堂| 精品蜜桃在线看| 国产高清视频在线| 久久免费成人精品视频| 岛国一区二区| 国内精品久久国产| 无码一区二区三区视频| 青青视频在线播放| 国产超碰在线一区| 人妻无码一区二区三区免费| 亚洲第一成人在线| 国产又黄又粗又长| 亚洲色图25p| 黄色污污视频在线观看| 成人福利网站在线观看| 猛男gaygay欧美视频| 蜜臀av色欲a片无码精品一区| 久久国产欧美日韩精品| 黑人巨大精品欧美| 亚洲狠狠爱一区二区三区| 国产精品欧美亚洲| 在线观看日韩专区| 欧美人体一区二区三区| 国产一区二区三区四区hd| 欧美一区二区三区免费看| 邪恶网站在线观看| 久久久国产精品麻豆| 日本一区二区欧美| 日韩欧美一级特黄在线播放| 四虎久久免费| 国产成人精品在线观看| 婷婷综合电影| 黄色一级视频在线播放| 国产精品系列在线观看| 精品女人久久久| 欧美日韩一区不卡| 888av在线| 国产精品一区二区三区免费视频| 国产日产一区| 国产在线观看福利| www.激情成人| 日韩福利片在线观看| 精品福利二区三区| 蜜桃传媒在线观看免费进入| 92看片淫黄大片欧美看国产片| 亚洲国产精品久久久天堂 | 中文字幕在线观看视频免费| 日韩成人中文字幕在线观看| 不卡av免费观看| 精品国产一区二区三区四区vr| 欧美日本亚洲韩国国产| 日本女人性视频| 亚洲欧美电影院| 超碰人人人人人人| 欧美激情视频免费观看| 国产精品45p| 无罩大乳的熟妇正在播放| 97久久久精品综合88久久| 91video| 一区国产精品视频| 精品久久99| 永久免费看av| 国产不卡视频在线播放| 亚洲一区二区91| 日韩大陆欧美高清视频区| av综合电影网站| 五码日韩精品一区二区三区视频| 美国av一区二区| 搜索黄色一级片| 欧美成人高清电影在线| 国产在线看片免费视频在线观看| 精品久久久久久亚洲国产300| 欧美激情第四页| 自拍偷自拍亚洲精品播放| av无码精品一区二区三区宅噜噜| 九九热精品视频在线播放| 成功精品影院| 欧美视频免费播放| 国产精品乱人伦| 亚洲国产精品一| 欧美综合国产精品久久丁香| 波多野结衣在线观看一区二区三区| 一二三级黄色片| 亚洲二区在线视频| www.中文字幕久久久| 18成人在线| 午夜亚洲影视| 老熟妇高潮一区二区三区| 精品乱人伦小说| 欧美电影免费观看| av动漫免费观看| 99热在这里有精品免费| 中文字幕黄色av| 国模吧一区二区三区| 日本欧美国产| 亚洲精品乱码久久久久久蜜桃欧美| 欧美性xxxxx极品| 黄色小网站在线观看| 久久精品五月婷婷| 久草精品在线观看| 日本三级小视频| 久久久久www| 亚洲人成网77777色在线播放| 亚洲一区精品视频在线观看| 同产精品九九九| caoporn免费在线| 色噜噜狠狠一区二区三区|