AI大模型应用实战:构建基于知识图谱的知识问答系统

一、知识图谱概述

知识图谱(Knowledge Graph)是一种结构化的语义知识库,它以图形的方式组织和整合信息,使得数据之间的关系变得直观和易于理解。知识图谱的概念融合了计算机科学、数据科学、人工智能等多个领域的技术,旨在通过关联分析揭示数据背后的深层次关系。

1.1、概念

知识图谱由节点(实体)和边(关系)组成。节点代表实体,如人、地点、物品等;边代表实体之间的关系,如“属于”、“创造”、“位于”等。每个节点和边都可以带有属性,提供更详细的信息。

知识图谱的构建通常包括以下几个步骤:

数据抽取:从各种数据源中提取信息,如文本、数据库、网页等。
实体识别:识别出数据中的关键实体。 关系抽取:确定实体之间的关系。
实体链接:将识别出的实体与已知的知识库中的实体进行链接。
知识融合:整合来自不同源的知识,解决冲突和歧义。
存储与查询:将构建好的知识图谱存储在图数据库中,并提供查询接口。

1.2、历史

知识图谱的概念并非一开始就存在,它是随着信息技术和人工智能领域的发展逐渐形成的。以下是几个关键的历史节点:

1980年代:专家系统的发展,可以看作是知识图谱的早期形式。
1990年代:语义网(Semantic Web)概念的提出,旨在通过机器可理解的方式编码信息
2006年:DBpedia项目启动,将维基百科的结构化信息转换为机器可读格式。
2012年:谷歌推出知识图谱,用于增强搜索引擎的功能,提供更丰富的搜索结果。

1.3、作用

知识图谱在多个领域都有着广泛的应用,以下是其主要作用:

搜索引擎优化:通过知识图谱,搜索引擎能够提供更加精确和相关的搜索结果。
推荐系统:知识图谱可以用于个性化推荐,通过分析用户与物品之间的关系,提供更准确的推荐。
语义分析:在自然语言处理中,知识图谱有助于理解词语之间的关系,提高语义分析的准确性。
智能问答:知识图谱可以用于构建智能问答系统,快速准确地回答用户的问题。
决策支持:在商业分析和决策过程中,知识图谱能够帮助发现数据之间的深层次关系,支持更明智的决策。
医疗健康:知识图谱在医疗领域可用于药物研发、疾病诊断等,通过关联分析提高医疗质量

1.4、演示效果

在这里插入图片描述

二、图数据库

图数据库(Graph Database)是一种用于存储和管理图形结构数据的数据库。与传统的基于表格的数据库不同,图数据库专门为处理复杂的关系和网状结构的数据而设计。在图数据库中,数据结构的核心是节点(Node)、关系(Relationship)和属性(Property)

2.1、Neo4j

Neo4j是目前最常使用的图数据库管理系统。它是一个高性能的NoSQL数据库,具有以下特点:

原生图存储:Neo4j使用原生图存储,这意味着它直接在磁盘上存储节点和关系,而不是将图数据转换为其他模型。
Cypher查询语言:Neo4j使用Cypher作为查询语言,这是一种声明式查询语言,专门为图数据库设计,易于学习和使用。
高度可扩展:Neo4j支持大规模的数据集,并且可以通过集群部署来提高性能和可用性。
丰富的生态系统:Neo4j有一个活跃的社区和丰富的生态系统,提供了大量的工具和库来支持图数据库的开发和应用。
由于其强大的功能和易用性,Neo4j在众多行业和领域得到了广泛的应用,成为图数据库领域的佼佼者。

2.2、neo4j使用

输入以下代码启动neo4j

neo4j console

在这里插入图片描述

2.3、创建节点

create (郭靖:人物 {name:‘郭靖’,identity:‘武林高手’})
在这里插入图片描述
create表示新建
小括号内是节点信息,节点的标签label是人物,郭靖是其别名
花括号内是该节点的属性,共有name、identity两个属性

2.4、创建关系

match (黄蓉:`人物`{name:'黄蓉'}),(郭靖:`人物`{name:'郭靖'}) create (黄蓉) -[r:husband{name:'丈夫'}]->(郭靖)

match是匹配
(黄蓉:人物{name:‘黄蓉’})是第一个节点,(郭靖:人物{name:‘郭靖’})是第二个节点
husband是关系的标签,花括号内是该关系的属性,有name属性

2.5、删除所有节点和关系

MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r

在这里插入图片描述

2.6、效果展示

在这里插入图片描述

三、知识问答项目构建

3.1、前端构建

在这里插入图片描述

3.2、大模型进行问题分类和命名实体识别

from zhipuai import ZhipuAI
import json
client = ZhipuAI(api_key="your_api_key")
def wenda(question):
    messages = [
        {
            "role":"system",
            "content":"""我会给你一个句子,请你帮我分类成0-6,0表示询问某人的信息,1表示询问某人毕业于那所学校,2表示询问某人创作的作品,3表示询问某人的出生日期,4表示询问某人与某人的关系,5表示询问某人的配偶是谁,6表示询问作品是谁创作的。
            请按照我给你的提供的json模板,当问题类型属于0,1,2,3,5时,nr字段填入名字,不要work字段.当问题类型为6时,work字段填入作品名称,不要nr字段。
            {
                "类型":0-6,
                "nr":名字,
                "work":作品名称
            }
            当类型为4时,使用以下模板:
            {
                "类型":4,
                "nr":['名字1','名字2'],
            }
            只需要返回一个json对象,不要重复问题
            """
        },
        {
        "role": "user",
        "content": f"{question}"
        }
    ]
    response = client.chat.completions.create(
        model="glm-4-flash",
        messages=messages,
    )
    return json.loads(response.choices[0].message.content)

3.3、python操作neo4j数据库

安装项目相应的依赖包

pip install -r requirements.txt

连接数据库

from py2neo import Graph

# 替换下面的 uri, user 和 password 为你的 Neo4j 数据库的连接信息
uri = "bolt://localhost:7687"  # Neo4j Bolt 连接地址
user = "neo4j"  # Neo4j 用户名
password = "your_password"  # Neo4j 密码

graph = Graph(uri, auth=(user, password))

增加数据

# 创建节点
tx = graph.begin()
a = Node("Person", name="Alice")
b = Node("Person", name="Bob")
tx.create(a)
tx.create(b)
tx.commit()

# 创建关系
ab = Relationship(a, "KNOWS", b)
tx = graph.begin()
tx.create(ab)
tx.commit()

查找

alice = graph.nodes.match("Person", name="Alice").first()
print(alice)
relationship = graph.relationships.match(nodes=[alice, b], r_type="KNOWS").first()
print(relationship)

3.4、后端构建

本项目采用Flask框架实现,使用了例如render_template进行页面渲染,return返回前端所需要的信息等。

四、附件项目使用

0.启动neo4j数据库

neo4j console

1.向neo4j数据库添加数据

python ./handler/handler_person_data.py

2.添加自己的api_key

Description

3.启动项目

python app.py

如何零基础入门 / 学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

那么我作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,希望可以帮助到更多学习大模型的人!至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

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

👉 福利来袭CSDN大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

全套AGI大模型学习大纲+路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

read-normal-img

640套AI大模型报告合集

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

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

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

👉学会后的收获:👈
基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉 福利来袭CSDN大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

img

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

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值