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

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

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

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

代码如下,

import json

from langchain_openai import ChatOpenAI

file_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 += con
        except:
            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 PromptTemplate

llm = 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 PromptTemplate

prompt = 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.mfbz.cn/a/762660.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习】基于Transformer的迁移学习:理论与实践

引言 在机器学习领域&#xff0c;迁移学习已成为提升模型训练效率和性能的重要策略&#xff0c;特别是在标注数据稀缺的场景下。Transformer模型自2017年由Google提出以来&#xff0c;在自然语言处理&#xff08;NLP&#xff09;领域取得了突破性进展&#xff0c;并逐渐扩展到…

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

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

Django 一对多关系

1&#xff0c;创建 Django 应用 Test/app9 django-admin startapp app9 2&#xff0c;注册应用 Test/Test/settings.py 3&#xff0c;添加应用路由 Test/Test/urls.py from django.contrib import admin from django.urls import path, includeurlpatterns [path(admin/,…

idea修改静态资源,不重启idea直接生效方法

1、Run->Edit Configurations 2、按下图选中 3、点ok&#xff0c;之后修改静态资源后点非idea界面&#xff08;如状态栏&#xff09;&#xff0c;就会自动配置了。

GPT-4o文科成绩超一本线,理科为何表现不佳?

目录 01 评测榜单 02 实际效果 什么&#xff1f;许多大模型的文科成绩竟然超过了一本线&#xff0c;还是在竞争激烈的河南省&#xff1f; 没错&#xff0c;最近有一项大模型“高考大摸底”评测引起了广泛关注。 河南高考文科今年的一本线是521分&#xff0c;根据这项评测&…

7-1作业

1.实验目的&#xff1a;完成字符收发 led.h #ifndef __GPIO_H__ #define __GPIO_H__#include "stm32mp1xx_rcc.h" #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_uart.h"//RCC,GPIO,UART初始化 void init();//字符数据发送 void set_tt…

Chapter 8 Feedback

Chapter 8 Feedback 这一章我们介绍feedback 反馈运放的原理. 负反馈是模拟电路强有力的工具. 8.1 General Considerations 反馈系统如下图所示 Aolamp open-loop gain即开环增益. Aolxo/xi β \beta β 是 feedback factor, 注意方向. β x f x o \beta\frac{x_{f}}{x_{o…

六西格玛绿带培训的证书有什么用处?

近年来&#xff0c;六西格玛作为一套严谨而系统的质量管理方法&#xff0c;被广泛运用于各行各业。而六西格玛绿带培训证书&#xff0c;作为这一方法论中基础且重要的认证&#xff0c;对于个人和企业而言&#xff0c;都具有不可忽视的价值。本文将从多个角度深入探讨六西格玛绿…

HTML5+CSS3+JS小实例:图片九宫格

实例:图片九宫格 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1…

智慧渔港:海域感知与岸线监控实施方案(智慧渔港渔船综合管控平台)

文章目录 引言I 技术栈1.1 物理结构图1.2 功能逻辑结构图II 云台(大华)2.1 设备网络SDK运行在Mac平台2.2 WEB无插件开发包III 术语3.1 渔业引言 利用渔船现有的定位导航通讯设备等资源,实现岸线和近岸海域内违法船舶和可疑船舶预警、抓拍、跟踪和行为分析。 在渔船上安装风…

HCIA4.26-5.10

OSPF ——开放式最短路径优先协议 无类别链路状态IGP动态路由协议 距离矢量协议 运行距离矢量协议的路由器会周期性的泛洪自己的路由表&#xff0c;通过路由之间的交互&#xff0c;每台路由器都从相邻的路由器学习到路由条目&#xff0c;随后加载进自己的路由表中。对于网络…

解锁跨境电商新边界:Temu API接口深度解析引言

引言 在竞争激烈的跨境电商领域&#xff0c;高效、精准的数据获取成为商家制胜的关键。Temu&#xff08;拼多多跨境电商&#xff09;作为行业内的新秀&#xff0c;其API接口服务为商家提供了强大的数据交互能力&#xff0c;尤其是其获取商品详情的核心功能&#xff0c;更是为商…

MSPG3507——蓝牙接收数据显示在OLED,滴答定时器延时500MS

#include "ti_msp_dl_config.h" #include "OLED.h" #include "stdio.h"volatile unsigned int delay_times 0;//搭配滴答定时器实现的精确ms延时 void delay_ms(unsigned int ms) {delay_times ms;while( delay_times ! 0 ); } int a0; …

2025第13届常州国际工业装备博览会招商全面启动

常州智造 装备中国|2025第13届常州国际工业装备博览会招商全面启动 2025第13届常州国际工业装备博览会将于2025年4月11-13日在常州西太湖国际博览中心盛大举行&#xff01;目前&#xff0c;各项筹备工作正稳步推进。 60000平米的超大规模、800多家国内外工业装备制造名企将云集…

高级DBA带你解决MySql主从集群集群主库产生更多binlog引起数据无法正常写入引起生产事故紧急处理方法实战解决方法(全网唯一)

高级DBA带你解决MySql主备集群主库产生更多binlog引起数据无法正常写入引起生产事故紧急处理方法实战解决方法&#xff08;全网唯一&#xff09; 一、事故描述 早上刚来&#xff0c;监控报警&#xff0c;短信来了&#xff0c;业务主数据库宕机了&#xff0c;硬盘爆了&#xf…

501、二叉搜索树中的众数

给你一个含重复值的二叉搜索树&#xff08;BST&#xff09;的根节点 root &#xff0c;找出并返回 BST 中的所有 众数&#xff08;即&#xff0c;出现频率最高的元素&#xff09;。如果树中有不止一个众数&#xff0c;可以按 任意顺序 返回。 假定 BST 满足如下定义&#xff1…

【单片机毕业设计选题24039】-基于单片机的太阳能储能智能恒温外卖柜设计

系统功能: 以单片机为控制核心&#xff0c;综合运用传感器、物联网、太阳能等技术&#xff0c;设计一种基于单片机为控制核心的智能恒温外卖柜。它由恒温系统、无线模块、智能提醒系统、供电系统等组成&#xff0c;通过太阳能电池板独立供电&#xff0c;利用太阳能储能元件驱动…

Qt:8.QWidget属性介绍(focuspolicy属性-控件焦点、stylesheet属性-为控件设置样式)

目录 一、focuspolicy属性-控件焦点&#xff1a; 1.1focuspolicy属性介绍&#xff1a; 1.2设置焦点策略——setFocusPolicy()&#xff1a; 1.3获取控件的焦点策略——focusPolicy()&#xff1a; 二、stylesheet属性——为控件设置样式&#xff1a; 2.1 stylesheet属性介绍…

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

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

Jenkins教程-12-发送html邮件测试报告

上一小节我们学习了发送钉钉测试报告通知的方法&#xff0c;本小节我们讲解一下发送html邮件测试报告的方法。 1、自动化用例执行完后&#xff0c;使用pytest_terminal_summary钩子函数收集测试结果&#xff0c;存入本地status.txt文件中&#xff0c;供Jenkins调用 #conftest…