使用 ChatGLM3 实现知识图谱的抽取与智能问答

使用 ChatGLM3 实现知识图谱的抽取与智能问答

  • 1. 获取查询问题的最近似段落
  • 2. 对文本进行知识图谱的抽取
  • 3. 完成智能问答

1. 获取查询问题的最近似段落

代码如下,

import jsonfrom langchain_openai import ChatOpenAIfile_name = "./files/2022-03-31__中国工商银行股份有限公司__601398__工商银行__2021年__年度报告.txt"
with open(file_name, encoding="utf-8") as f:financial_report = f.read()
financial_report = financial_report.strip().split("\n")
context = ""
for line in financial_report:line = json.loads(line)if line["type"] == "text":try:con = line["inside"]context += conexcept:pass
document = context[:480]
print(document)

示例输出结果,

中国工商银行股份有限公司(股票代码:601398)2021年度报告公司简介中国工商银行成立于1984年1月1日。2005年10月28日,本行整体改制为股份有限公司。2006年10月27日,本行成功在上交所和香港联交所同日挂牌上市。经过持续努力和稳健发展,本行已经迈入世界领先大银行之列,拥有优质的客户基础、多元的业务结构、强劲的创新能力和市场竞争力。本行将服务作为立行之本,坚持以服务创造价值,向全球969.1万公司客户和7.04亿个人客户提供全面的金融产品和服务。本行自觉将社会责任融入发展战略和经营管理活动,在支持防疫抗疫、发展普惠金融、支持乡村振兴、发展绿色金融、支持公益事业等方面受到广泛赞誉。本行始终聚焦主业,坚持服务实体经济的本源,与实体经济共荣共存、共担风雨、共同成长;始终坚持风险为本,牢牢守住底线,不断提高控制和化解风险的能力;始终坚持对商业银行经营规律的把握与遵循,致力于打造“百年老店”;始终坚持稳中求进、创新求进,持续深化重点发展战略,积极发展金融科技,加快数字化转型;始终坚持专业专注,开拓专业化经营模式,锻造“大行工匠”。本行连续九

2. 对文本进行知识图谱的抽取

代码如下,

from langchain_community.graphs.index_creator import GraphIndexCreator
from langchain_core.prompts.prompt import PromptTemplatellm = ChatOpenAI(api_key="sk-123456", base_url="http://192.168.31.15:8000/v1", model="gpt-4", temperature=0)
index_creater = GraphIndexCreator(llm=llm)
KG_TRIPLE_DELIMITER = "<|>"prompt = PromptTemplate(input_variables=["text"],template=("你是一个网络智能,帮助人类追踪有关所有相关人物、事物、概念等的知识三元组,""并将它们与你存储在权重中的知识以及存储在知识图谱中的知识整合。""从文本中提取所有的知识三元组。""知识三元组是包含主语、谓语和宾语的子句。主语是被描述的实体,""谓语是被描述的主语的属性,而宾语是该属性的值。\n\n""示例\n""这是美国的一个州。它也是美国黄金产量第一的州。\n\n"f"输出:(内华达州, 是一个, 州){KG_TRIPLE_DELIMITER}(内华达州, 位于, 美国)"f"{KG_TRIPLE_DELIMITER}(内华达州, 第一产量的是, 黄金)\n""示例结束\n\n""示例\n""我要去商店。\n\n""输出:无\n""示例结束\n\n""示例\n""哦,原来如此。我知道笛卡尔喜欢驾驶古董摩托车和弹曼陀林。\n"f"输出:(笛卡尔, 喜欢驾驶, 古董摩托车){KG_TRIPLE_DELIMITER}(笛卡尔, 弹奏, 曼陀林)\n""示例结束\n\n""示例\n""{text}""输出:")
)graph = index_creater.from_text(text=document, prompt=prompt)
knowledge_graph = graph.get_triples()
print(knowledge_graph)

示例输出结果,

[('中国工商银行股份有限公司', '1984年1月1日', '成立于'), ('中国工商银行股份有限公司', '股份有限公司', '整体改制为'), ('中国工商银行股份有限公司', '2006年10月27日', '上市时间'), ('中国工商银行股份有限公司', '601398', '股票代码'), ('中国工商银行股份有限公司', '全球969.1万公司客户和7.04亿个人客户', '服务客户'), ('中国工商银行股份有限公司', '全面的金融产品和服务', '业务范围'), ('中国工商银行股份有限公司', '支持防疫抗疫、发展普惠金融、支持乡村振兴、发展绿色金融、支持公益事业', '社会责任'), ('中国工商银行股份有限公司', '聚焦主业、服务实体经济、风险为本、遵循经营规律、打造“百年老店”、稳中求进、创新求进、深化重点发展战略、发展金融科技、加快数字化转型、专业专注', '经营策略'), ('中国工商银行股份有限公司', '受到广泛赞誉', '经营业绩'), ('中国工商银行股份有限公司', '服务作为立行之本,坚持以服务创造价值', '经营理念'), ('中国工商银行股份有限公司', '开拓专业化经营模式,锻造“大行工匠”', '经营模式')]

使用 Qwen2-72B 的示例输出,

[('中国工商银行', '1984年1月1日', '成立于'), ('中国工商银行', '2005年10月28日', '改制为股份有限公司在'), ('中国工商银行', '2006年10月27日', '上市日期是'), ('中国工商银行', '上交所', '上市地点包括'), ('中国工商银行', '香港联交所', '上市地点包括'), ('中国工商银行', '969.1万', '拥有公司客户数量为'), ('中国工商银行', '7.04亿', '拥有个人客户数量为'), ('中国工商银行', '全面的金融产品和服务', '提供服务范围是'), ('中国工商银行', '支持防疫抗疫', '社会责任活动包括'), ('中国工商银行', '发展普惠金融', '社会责任活动包括'), ('中国工商银行', '支持乡村振兴', '社会责任活动包括'), ('中国工商银行', '发展绿色金融', '社会责任活动包括'), ('中国工商银行', '支持公益事业', '社会责任活动包括'), ('中国工商银行', '实体经济', '坚持服务对象是'), ('中国工商银行', '风险为本', '风险管理原则是'), ('中国工商银行', '金融科技', '发展战略重点是'), ('中国工商银行', '加快中', '数字化转型状态是'), ('中国工商银行', '专业化经营', '经营模式特点是'), ('中国工商银行', '“百年老店”', '打造目标是'), ('中国工商银行', '601398', '股票代码为')]

使用 Mixtral 8*7B 的示例输出,

[('中国工商银行股份有限公司', '1984年1月1日', '成立于'), ('中国工商银行股份有限公司', '969.1万个公司客户和7.04亿个人客户', '服务'), ('中国工商银行股份有限公司', '社会责任融入发展战略和经营管理活动', '自觉将'), ('中国工商银行股份有限公司', '防疫抗疫、发展普惠金融、支持乡村振兴、发展绿色金融、支持公益事业', '支持'), ('中国工商银行股份有限公司', '主业', '始终聚焦'), ('中国工商银行股份有限公司', '服务实体经济的本源', '坚持'), ('中国工商银行股份有限公司', '实体经济共荣共存、共担风雨、共同成长', '与'), ('中国工商银行股份有限公司', '风险为本', '始终坚持'), ('中国工商银行股份有限公司', '底线', '牢牢守住'), ('中国工商银行股份有限公司', '控制和化解风险的能力', '不断提高'), ('中国工商银行股份有限公司', '商业银行经营规律', '遵循'), ('中国工商银行股份有限公司', '打造“百年老店”', '致力于'), ('中国工商银行股份有限公司', '金融科技', '积极发展'), ('中国工商银行股份有限公司', '专业专注', '坚持'), ('中国工商银行股份有限公司', '专业化经营模式', '开拓'), ('中国工商银行股份有限公司', '“大行工匠”', '锻造')]

3. 完成智能问答

代码如下,

from langchain.prompts import PromptTemplateprompt = PromptTemplate(input_variables=["query", "document"],template="你是一名专业的财务工作人员,参考对应的文献材料:```{document}```,认真回答```{query}```这个问题,如果文献中找不到答案就回答不知道。",
)
query = "工商银行哪一年改制的"llm = ChatOpenAI(api_key="sk-123456", base_url="http://192.168.31.15:8000/v1", model="gpt-4", temperature=0)
chain = prompt | llm
result = chain.invoke({"query": query, "document": knowledge_graph})
print(result)

示例输出结果,

content='工商银行在1984年1月1日成立后,于股份有限公司整体改制为工商银行股份有限公司。具体的改制年份在提供的文献材料中并未直接给出,因此无法确定改制的确切年份。' response_metadata={'token_usage': {'completion_tokens': 47, 'prompt_tokens': 318, 'total_tokens': 365}, 'model_name': 'gpt-4', 'system_fingerprint': None, 'finish_reason': 'stop', 'logprobs': None} id='run-42ab1a2e-58c6-41ad-b8e4-6d153f643eab-0' usage_metadata={'input_tokens': 318, 'output_tokens': 47, 'total_tokens': 365}

使用 Qwen2-72B 的示例输出,

content='中国工商银行是在2005年10月28日改制为股份有限公司的。' response_metadata={'token_usage': {'completion_tokens': 21, 'prompt_tokens': 358, 'total_tokens': 379}, 'model_name': 'gpt-4', 'system_fingerprint': 'fp_ollama', 'finish_reason': 'stop', 'logprobs': None} id='run-c935d178-41b7-42df-9d9b-f0c7c13da98b-0' usage_metadata={'input_tokens': 358, 'output_tokens': 21, 'total_tokens': 379}

使用 Mixtral 8*7B 的示例输出,

content=' 根据提供的材料,没有找到关于工商银行改制的具体信息,因此我无法确定工商银行哪一年改制的。' response_metadata={'token_usage': {'completion_tokens': 46, 'prompt_tokens': 608, 'total_tokens': 654}, 'model_name': 'gpt-4', 'system_fingerprint': 'fp_ollama', 'finish_reason': 'stop', 'logprobs': None} id='run-7a8b8921-8e5e-4c55-aae6-17efccc07641-0' usage_metadata={'input_tokens': 608, 'output_tokens': 46, 'total_tokens': 654}

完结!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/864328.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

promise.all()静态方法说明和使用

promise.all()静态方法创建的期约会在一组期约全部解决后&#xff0c;再解决&#xff1b;意思就是参数内的期约全部解决完后&#xff0c;再解决自己的resolve()期约&#xff1b; 如果所有的期约都是解决状态&#xff0c;那么把所有值返回进一个数组&#xff1b; 如果参数期约中…

【深度学习】调整加/减模型用于体育运动评估

摘要 一种基于因果关系的创新模型&#xff0c;名为调整加/减模型&#xff0c;用于精准量化个人在团队运动中的贡献。该模型基于明确的因果逻辑&#xff0c;将个体运动员的价值定义为&#xff1a;在假设情景下&#xff0c;用一名价值为零的球员替换该球员后&#xff0c;预期比赛…

《妃梦千年》第二十章:风雨欲来

第二十章&#xff1a;风雨欲来 战斗的胜利让林清婉和皇上的关系更加亲密&#xff0c;但宫中的阴谋却并未因此而停止。一天&#xff0c;林清婉正在寝宫中思考未来的对策&#xff0c;忽然接到一个紧急消息。小翠匆匆跑来&#xff0c;神色紧张&#xff1a;“娘娘&#xff0c;太后…

代码随想录算法训练营第十五天| 513.找树左下角的值 | 112. 路径总和 | 106.从中序与后序遍历序列构造二叉树

513.找树左下角的值 文档讲解&#xff1a;代码随想录 视频讲解&#xff1a;怎么找二叉树的左下角&#xff1f; 递归中又带回溯了&#xff0c;怎么办&#xff1f;| LeetCode&#xff1a;513.找二叉树左下角的值_哔哩哔哩_bilibili 1. 层序遍历可以做&#xff0c;不知道用递归咋做…

获取onnx模型输入输出结构信息的3种方式:ONNX、onnxruntime、netron

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

每日Attention学习7——Frequency-Perception Module

模块出处 [link] [code] [ACM MM 23] Frequency Perception Network for Camouflaged Object Detection 模块名称 Frequency-Perception Module (FPM) 模块作用 获取频域信息&#xff0c;更好识别伪装对象 模块结构 模块代码 import torch import torch.nn as nn import to…

【Python函数编程实战】:从基础到进阶,打造代码复用利器

文章目录 &#x1f68b;前言&#x1f680;一、认识函数&#x1f308;二、函数定义❤️三、函数调用⭐四、实参与形参&#x1f4a5;1. 形式参数&#x1f6b2;2. 实际参数&#x1f525;1. 位置参数☔2. 关键字参数&#x1f3ac;3. 默认参数&#x1f525;4. 可变数量参数(不定长参…

Nomad Web 1.0.12还能这样

大家好&#xff0c;才是真的好。 前几天讲代码和开发&#xff0c;忽略了大家的真实感受&#xff0c;那就是不爱开。我也记起来我们很久没有讲Notes/Domino产品的更新&#xff0c;因为除了补丁程序外&#xff0c;确实没多少更新。 不过就在前两天&#xff0c;有一项产品得到了…

【开源的字典项目】【macOS】:在macOS上能打开mdd and mdx 的github开源项目

【开源的字典项目】【macOS】 在macOS上能打开mdd and mdx 的github开源项目 Here are some GitHub repositories that provide code for opening and reading mdd and mdx files in macOS: 1. MdxEdit: Repository: https://github.com/mdx-editorDescription: A free and …

零成本、高效率:免费可视化工具的魅力所在

在如今这个数据驱动的时代&#xff0c;免费可视化工具越来越受到人们的欢迎。这些工具不仅降低了数据分析的门槛&#xff0c;还为用户提供了强大的功能和极高的灵活性&#xff0c;使得各行各业的人们都能够轻松地利用数据做出明智的决策。首先&#xff0c;免费可视化工具的零成…

【Qt】认识Qt界面Hello world小程序

一.认识Qt界面 1.左边栏 在编辑模式下&#xff0c;左边竖排的两个窗⼝叫做 "边栏" 。 ① 是项⽬⽂件管理窗⼝ ② 是打开⽂件列表窗⼝。 边栏⾥的窗⼝数⽬可以增加&#xff0c;边栏⼦窗⼝标题栏有⼀排⼩按钮&#xff0c;最右边的是关闭按钮&#xff0c;倒数第⼆个是 …

嵌入式学习——硬件(IIC、ADC)——day56

1. IIC 1.1 定义&#xff08;同步串行半双工通信总线&#xff09; IIC&#xff08;Inter-Integrated Circuit&#xff09;又称I2C&#xff0c;是是IICBus简称&#xff0c;所以中文应该叫集成电路总线。是飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备…

猫头虎 Gemma和Gemini模型的区别是什么?

猫头虎 &#x1f42f; Gemma和Gemini模型的区别是什么&#xff1f; 摘要&#x1f4d8; 在这篇文章中&#xff0c;我们将深入探讨Gemma和Gemini这两个由Google开发的AI模型。我们会对比它们的参数规模、计算资源需求和集成难度&#xff0c;帮助大家了解这两者之间的主要区别。…

【解锁未来:深入了解机器学习的核心技术与实际应用】

解锁未来&#xff1a;深入了解机器学习的核心技术与实际应用 &#x1f48e;1.引言&#x1f48e;1.1 什么是机器学习&#xff1f; &#x1f48e;2 机器学习的分类&#x1f48e;3 常用的机器学习算法&#x1f48e;3.1 线性回归&#xff08;Linear Regression&#xff09;&#x1…

Redis集群-主从复制、哨兵

●主从复制&#xff1a;主从复制是高可用Redis的基础&#xff0c;哨兵和集群都是在主从复制基础上实现高可用的。 主从复制主要实现了数据的多机备份&#xff0c;以及对于读操作的负载均衡和简单的故障恢复。缺陷&#xff1a;故障 恢复无法自动化&#xff1b;写操作无法负载均…

幻兽帕鲁服务器如何安装模组安装

由于模组多数为Window版本的&#xff0c;所以本教程以服务端为Window的作为演示&#xff08;Linux服务端的也是一样的操作&#xff09;百度莱卡云开服 如果你你是Linux版本的&#xff0c;请点击跳转切换服务端教程 接下来是本地安装模组包的方法&#xff08;服务器自带&#xf…

【热门开源项目】阿里开源巨擘:Qwen-2 72B深度解析与推荐

在人工智能的浪潮中&#xff0c;开源模型如同璀璨的星辰&#xff0c;指引着开发者们探索未知的领域。而今天&#xff0c;我们将聚焦在阿里云推出的开源模型Qwen-2 72B上&#xff0c;从其项目介绍、技术特点、代码解析等多个角度&#xff0c;深入解析并推荐这一卓越的开源项目。…

妙笔 WonderPen 专业版会员值得购买吗?

在信息爆炸的时代&#xff0c;写作已经是一项重要技能。无论是学生、职场人士还是自由职业者&#xff0c;都经常需要写点东西。 一个好的工具能让写作成为享受&#xff0c;今天就为大家推荐专业写作工具&#xff1a;妙笔。为长文写作设计&#xff0c;且有云服务功能&#xff0…

自闭症儿童能不能用药

在星贝育园自闭症儿童康复学校&#xff0c;我们一直秉持着谨慎且保守的态度对待自闭症儿童的用药问题。我们坚定地认为&#xff0c;在大多数情况下&#xff0c;药物并非自闭症儿童康复的首选。 自闭症是一种神经发育障碍&#xff0c;其核心症状包括社交沟通障碍、重复刻…

为什么网络爬虫广泛使用HTTP代理?

一、引言 网络爬虫作为自动抓取互联网信息的重要工具&#xff0c;在现代社会中发挥着不可或缺的作用。然而随着网络环境的日益复杂&#xff0c;网站反爬虫技术的不断进步&#xff0c;网络爬虫在获取数据的过程中面临着越来越多的挑战。为了应对这些挑战&#xff0c;HTTP 代理成…