本文详细讲解了大模型与知识图谱结合的问答系统构建流程,包括意图解析、SQL查询生成、Neo4j执行、结果汇总及回复。通过prompt指导大模型识别用户意图和实体,根据意图生成相应Cypher查询语句,执行查询并返回结果。文章分享了实现中的技术细节和问题解决方案,为开发者提供了完整的大模型应用实战指南。


1 完整工作流

2 图谱

3 意图解析

3.1 配置code

意图解析需要把用户输入的问答解析成可以识别的关系和实体,是通过prompt告诉大模型该如何进行解析。下面是简单的处理,应该把实体和意图分开写,或者从知识库查询,下面是这次demo的prompt

请根据用户的问题判断意图类别,并提取实体名称。
可选的意图类别包括:
heritage_characteristic, heritage_cause, heritage_appraisal, heritage_material,
heritage_tool, heritage_category, heritage_organization, heritage_complementary,
heritage_create_way, heritage_prevent, heritage_popularity, heritage_lasttime,
heritage_easyget, heritage_desc, heritage_avoid_material, heritage_recommend_material,
heritage_recommend_tool, material_heritage, tool_heritage, category_heritage

问题:{{#context#}}
回答格式如下(仅返回 JSON 格式):
{
  "intent": "xxx",
  "entity": "yyy"
}

3.2 创建创建llm节点

上下文:sys.query,问题选择:上下文

4 sql匹配

4.1 配置code

这一步主要是使用解析好的意图,进行sql的拼装,主要是把一些常用的sql写出来,然后替换关键字,这一步也可以给llm处理,就是需要消耗toekn

import json

def main(inputs: str) -> dict:
    # 将输入的字符串解析为字典
    try:
        inputs_dict = json.loads(inputs)
    except json.JSONDecodeError as e:
        return {"error": f"Invalid JSON input: {str(e)}"}

    queries = {
        'heritage_characteristic': "MATCH (m:Heritage)-[r:has_characteristic]->(n:Characteristic) WHERE m.name = '{entity}' RETURN m.name, r.name, n.name",
        'heritage_cause': "MATCH (m:Heritage) WHERE m.name = '{entity}' RETURN m.name, m.cause",
        'heritage_appraisal': "MATCH (m:Heritage)-[r:undergoes_appraisal]->(n:Appraisal) WHERE m.name = '{entity}' RETURN m.name, r.name, n.name",
        'heritage_material': "MATCH (m:Heritage)-[r:uses_material]->(n:Material) WHERE m.name = '{entity}' RETURN m.name, r.name, n.name",
        'heritage_tool': "MATCH (m:Heritage)-[r:uses_tool]->(n:Tool) WHERE m.name = '{entity}' RETURN m.name, r.name, n.name",
        'heritage_category': "MATCH (m:Heritage)-[r:belongs_to_category]->(n:Category) WHERE m.name = '{entity}' RETURN m.name, r.name, n.name",
        'heritage_organization': "MATCH (m:Heritage)-[r:supported_by]->(n:Organization) WHERE m.name = '{entity}' RETURN m.name, r.name, n.name",
        'heritage_complementary': "MATCH (m:Heritage)-[r:complementary_to]->(n:Heritage) WHERE m.name = '{entity}' RETURN m.name, r.name, n.name",
        'heritage_create_way': "MATCH (m:Heritage) WHERE m.name = '{entity}' RETURN m.name, m.create_way",
        'heritage_prevent': "MATCH (m:Heritage) WHERE m.name = '{entity}' RETURN m.name, m.prevent",
        'heritage_popularity': "MATCH (m:Heritage) WHERE m.name = '{entity}' RETURN m.name, m.popularity",
        'heritage_lasttime': "MATCH (m:Heritage) WHERE m.name = '{entity}' RETURN m.name, m.create_lasttime",
        'heritage_easyget': "MATCH (m:Heritage) WHERE m.name = '{entity}' RETURN m.name, m.easy_get",
        'heritage_desc': "MATCH (m:Heritage) WHERE m.name = '{entity}' RETURN m.name, m.desc",
        'heritage_avoid_material': "MATCH (m:Heritage)-[r:avoids_material]->(n:Material) WHERE m.name = '{entity}' RETURN m.name, r.name, n.name",
        'heritage_recommend_material': "MATCH (m:Heritage)-[r:recommends_material]->(n:Material) WHERE m.name = '{entity}' RETURN m.name, r.name, n.name",
        'heritage_recommend_tool': "MATCH (m:Heritage)-[r:recommends_tool]->(n:Tool) WHERE m.name = '{entity}' RETURN m.name, r.name, n.name",
        'material_heritage': "MATCH (m:Heritage)-[r:uses_material]->(n:Material) WHERE n.name = '{entity}' RETURN m.name, r.name, n.name",
        'tool_heritage': "MATCH (m:Heritage)-[r:uses_tool]->(n:Tool) WHERE n.name = '{entity}' RETURN m.name, r.name, n.name",
        'category_heritage': "MATCH (m:Heritage)-[r:belongs_to_category]->(n:Category) WHERE n.name = '{entity}' RETURN m.name, r.name, n.name"
    }

    intent = inputs_dict.get('intent')
    entity = inputs_dict.get('entity')

    if intent not in queries:
        return {"result": "Unknown intent"}
        # 注意在输出变量中声明result
    test=queries[intent]
    cypher_query = queries[intent].format(entity=entity)
    return {'result': cypher_query}

4.2 创建代码节点

注意点:

  • python必须是main方法
  • 返回必须是 return {‘result’: cypher_query} 字符串的格式

5 neo4j查询

5.1 配置code

{
  "statements": [
    {
      "statement":"{上一步的返回值}"
    }
  ]
}

5.2 创建http节点

注意点:

  • 我这里是docker所以是internal 的host,非docker安装的改成自己ip或者域名
  • Authorization 取值是,用户名:密码 base64
root@986b8bcc8ca6:/# echo -n 'neo4j:pwd.' | base64
  • 请求为post,body选择raw,选择json会被编码中文识别不了

6 答案汇总

6.1 配置code

prompt

6.2 创建llm节点

上下文选择上一步的,返回结果,对结果进行分析

7 回复

7.1 创建回复节点

直接输出上一步结果

8 效果

9 遇到的问题

9.1 代码节点

  • 需要在main方法里面写,ai生成的大多数这里都写不对

9.2 http请求编码问题

  • 使用raw的post传递参数,避免编码识别错误

如何学习AI大模型 ?

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓

CSDN粉丝独家福利

这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】

读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈

(👆👆👆安全链接,放心点击)

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

👉1.大模型入门学习思维导图👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
在这里插入图片描述

👉2.AGI大模型配套视频👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。
在这里插入图片描述

在这里插入图片描述

👉3.大模型实际应用报告合集👈

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)

在这里插入图片描述

👉4.大模型实战项目&项目源码👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战项目来学习。(全套教程文末领取哈)
在这里插入图片描述

👉5.大模型经典学习电子书👈

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)
在这里插入图片描述

👉6.大模型面试题&答案👈

截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)
在这里插入图片描述

为什么分享这些资料?

只要你是真心想学AI大模型,我这份资料就可以无偿分享给你学习,我国在这方面的相关人才比较紧缺,大模型行业确实也需要更多的有志之士加入进来,我也真心希望帮助大家学好这门技术,如果日后有什么学习上的问题,欢迎找我交流,有技术上面的问题,我是很愿意去帮助大家的!

这些资料真的有用吗?

这份资料由我和鲁为民博士共同整理,鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位,在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利,同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。

在这里插入图片描述
在这里插入图片描述

CSDN粉丝独家福利

这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】

读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈

(👆👆👆安全链接,放心点击)
Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐