网站备案 域名证书建立网站和推广

bicheng/2026/1/24 19:55:53/文章来源:
网站备案 域名证书,建立网站和推广,网页制作与网站建设答案,wordpress 音频播放器系列文章目录 玩转大语言模型——使用langchain和Ollama本地部署大语言模型 玩转大语言模型——ollama导入huggingface下载的模型 玩转大语言模型——langchain调用ollama视觉多模态语言模型 玩转大语言模型——使用GraphRAGOllama构建知识图谱 玩转大语言模型——完美解决Gra…系列文章目录 玩转大语言模型——使用langchain和Ollama本地部署大语言模型 玩转大语言模型——ollama导入huggingface下载的模型 玩转大语言模型——langchain调用ollama视觉多模态语言模型 玩转大语言模型——使用GraphRAGOllama构建知识图谱 玩转大语言模型——完美解决GraphRAG构建的知识图谱全为英文的问题 玩转大语言模型——配置图数据库Neo4j含apoc插件并导入GraphRAG生成的知识图谱 玩转大语言模型——本地部署带聊天界面deepseek R1的小白教程 文章目录 系列文章目录前言安装JDK安装Neo4j下载Neo4j配置环境变量安装apoc插件 导入知识图谱启动Neo4j使用Python导入知识图谱显示知识图谱 前言 在之前的文章中笔者解决了使用本地模型部署GraphRAG并生成知识图谱的过程并且解决了原本提示词只生成英文知识图谱的问题在本篇中笔者将配置Neo4j图数据库并导入GraphRAG生成的知识图谱数据。以往的内容参照玩转大语言模型——使用GraphRAGOllama构建知识图谱、玩转大语言模型——完美解决GraphRAG构建的知识图谱全为英文的问题。 安装JDK Neo4j使用Java开发的所以首先需要安装JDK。如果没有安装过JDK需要先到官网下载安装。 官网https://www.oracle.com/java/technologies/downloads/?er221886#java11-windows 选择合适的版本下载 跟随指引安装即可。 安装Neo4j 下载Neo4j Neo4j官网https://neo4j.com/deployment-center/ 下载好后是个压缩包将其解压到你的目标安装目录即可注意记一下解压后的地址需要配置环境变量笔者的地址是D:\neo4j-community-5.26.1配置时可以做参考 配置环境变量 打开编辑环境变量新建系统环境变量名为NEO4J_HOME值为D:\neo4j-community-5.26.1 修改Path变量在其值中增加 双击后点新建 %NEO4J_HOME%\bin安装apoc插件 导入知识图谱时会用到apoc插件的部分功能所以首先要安装apoc。 apoc版本地址https://github.com/neo4j/apoc/releases?page1 点击下载后放到路径neo4j路径/plugins下 找到路径neo4j路径/conf下的neo4j.conf在文件内容的末尾添加以下配置并保存。 dbms.security.procedures.unrestrictedapoc.* dbms.security.procedures.allowlistapoc.* server.jvm.additional-Dapoc.export.file.enabledtrue server.jvm.additional-Dapoc.import.file.enabledtrue dbms.security.allow_csv_import_from_file_urlstrue在neo4j路径/conf下新建一个apoc.conf文件 在文件中写入以下配置并保存。 apoc.export.file.enabledtrue apoc.import.file.use_neo4j_configfalse apoc.import.file.enabledtrue apoc.import.file.directoryD:/Neo4j/neo4j-community-5.13.0-windows/neo4j-community-5.13.0/import apoc.export.file.directoryD:/Neo4j/neo4j-community-5.13.0-windows/neo4j-community-5.13.0/export导入知识图谱 启动Neo4j 在命令行输入 neo4j console之后在浏览器搜索http://localhost:7474 进行用户创建。 初始用户名及密码都是neo4j之后会让重置密码。 如果想持续在后台运行数据库可以使用以下命令 neo4j start如果neo4j start 时报错可以执行以下命令安装service。 neo4j windows-service install 安装成功后重新使用命令neo4j start 即可但使用neo4j start 命令开启的服务在停止时需要调用neo4j stop停止运行 使用Python导入知识图谱 使用pip安装相关包 pip install --quiet pandas neo4j-rust-ext不确定是由于使用的模型的问题还是GraphRAG本身的问题实际导入的方式与官方提供的方式略有差距主要体现在某些字段的命名上。如果笔者已经足够熟悉Neo4j可以自行修改但如果只是想看一下知识图谱生成的效果可以参照笔者的方式修改。尽管在笔者看来他的构建方式导入的图数据库展示效果并不会实际上人工处理一下自己构建会更加准确。 导入包 import time import pandas as pd from neo4j import GraphDatabase设置数据库参数 GRAPHRAG_FOLDER ragtest/output NEO4J_URI neo4j://localhost # or neo4js://xxxx.databases.neo4j.io NEO4J_USERNAME neo4j NEO4J_PASSWORD your password NEO4J_DATABASE neo4j实例化Neo4j driver driver GraphDatabase.driver(NEO4J_URI, auth(NEO4J_USERNAME, NEO4J_PASSWORD))构建批量导入函数 def batched_import(statement, df, batch_size1000):Import a dataframe into Neo4j using a batched approach.Parameters: statement is the Cypher query to execute, df is the dataframe to import, and batch_size is the number of rows to import in each batch.total len(df)start_s time.time()for start in range(0, total, batch_size):batch df.iloc[start : min(start batch_size, total)]result driver.execute_query(UNWIND $rows AS value statement,rowsbatch.to_dict(records),database_NEO4J_DATABASE,)print(result.summary.counters)print(f{total} rows in {time.time() - start_s} s.)return total创建constraints, idempotent操作 statements [\ncreate constraint chunk_id if not exists for (c:__Chunk__) require c.id is unique,\ncreate constraint document_id if not exists for (d:__Document__) require d.id is unique,\ncreate constraint entity_id if not exists for (c:__Community__) require c.community is unique,\ncreate constraint entity_id if not exists for (e:__Entity__) require e.id is unique,\ncreate constraint entity_title if not exists for (e:__Entity__) require e.name is unique,\ncreate constraint entity_title if not exists for (e:__Covariate__) require e.title is unique,\ncreate constraint related_id if not exists for ()-[rel:RELATED]-() require rel.id is unique,\n, ]for statement in statements:if len((statement or ).strip()) 0:print(statement)driver.execute_query(statement)导入create_final_documents.parquet doc_df pd.read_parquet(f{GRAPHRAG_FOLDER}/create_final_documents.parquet, columns[id, title] )# Import documents statement MERGE (d:__Document__ {id:value.id}) SET d value {.title} batched_import(statement, doc_df)导入create_final_text_units.parquet text_df pd.read_parquet(f{GRAPHRAG_FOLDER}/create_final_text_units.parquet,columns[id, text, n_tokens, document_ids], )statement MERGE (c:__Chunk__ {id:value.id}) SET c value {.text, .n_tokens} WITH c, value UNWIND value.document_ids AS document MATCH (d:__Document__ {id:document}) MERGE (c)-[:PART_OF]-(d) batched_import(statement, text_df)导入create_final_entities.parquet entity_df pd.read_parquet(f{GRAPHRAG_FOLDER}/create_final_entities.parquet,columns[title,type,description,human_readable_id,id,# description_embedding,text_unit_ids,], ) entity_df.rename(columns{title: name}, inplaceTrue)entity_statement MERGE (e:__Entity__ {id:value.id}) SET e value {.human_readable_id, .description, name:replace(value.name,,)} WITH e, value CALL apoc.create.addLabels(e, case when coalesce(value.type,) then [] else [apoc.text.upperCamelCase(replace(value.type,,))] end) yield node UNWIND value.text_unit_ids AS text_unit MATCH (c:__Chunk__ {id:text_unit}) MERGE (c)-[:HAS_ENTITY]-(e) batched_import(entity_statement, entity_df)导入create_final_relationships.parquet rel_df pd.read_parquet(f{GRAPHRAG_FOLDER}/create_final_relationships.parquet,columns[source,target,id,# rank,weight,human_readable_id,description,text_unit_ids,], )rel_statement MATCH (source:__Entity__ {name:replace(value.source,,)})MATCH (target:__Entity__ {name:replace(value.target,,)})// not necessary to merge on id as there is only one relationship per pairMERGE (source)-[rel:RELATED {id: value.id}]-(target)SET rel value {.weight, .human_readable_id, .description, .text_unit_ids}RETURN count(*) as createdRels batched_import(rel_statement, rel_df)导入create_final_communities.parquet community_df pd.read_parquet(f{GRAPHRAG_FOLDER}/create_final_communities.parquet,columns[id, level, title, text_unit_ids, relationship_ids], )statement MERGE (c:__Community__ {community:value.id}) SET c value {.level, .title} /* UNWIND value.text_unit_ids as text_unit_id MATCH (t:__Chunk__ {id:text_unit_id}) MERGE (c)-[:HAS_CHUNK]-(t) WITH distinct c, value */ WITH * UNWIND value.relationship_ids as rel_id MATCH (start:__Entity__)-[:RELATED {id:rel_id}]-(end:__Entity__) MERGE (start)-[:IN_COMMUNITY]-(c) MERGE (end)-[:IN_COMMUNITY]-(c) RETURn count(distinct c) as createdCommunities batched_import(statement, community_df)导入create_final_community_reports.parque community_report_df pd.read_parquet(f{GRAPHRAG_FOLDER}/create_final_community_reports.parquet,columns[id,community,level,title,summary,findings,rank,rank_explanation,full_content,], )# Import communities community_statement MERGE (c:__Community__ {community:value.community}) SET c value {.level, .title, .rank, .rank_explanation, .full_content, .summary} WITH c, value UNWIND range(0, size(value.findings)-1) AS finding_idx WITH c, value, finding_idx, value.findings[finding_idx] as finding MERGE (c)-[:HAS_FINDING]-(f:Finding {id:finding_idx}) SET f findingbatched_import(community_statement, community_report_df)导入create_final_nodes.parquet nodes_df pd.read_parquet(f{GRAPHRAG_FOLDER}/create_final_nodes.parquet)nodes_statement MERGE (c:__Covariate__ {id:value.id}) SET c apoc.map.clean(value, [text_unit_id, document_ids, n_tokens], [NULL, ]) WITH c, value MATCH (ch:__Chunk__ {id: value.text_unit_id}) MERGE (ch)-[:HAS_COVARIATE]-(c)batched_import(nodes_statement, nodes_df)显示知识图谱 启动Neo4j后访问http://localhost:7474 可以看到效果还可以不过可能由于使用的是本地模型逻辑能力较差所以有些实体之间的关系并没有理清需要通过人工去做一下知识图谱的数据。不过从做数据的角度来看如果没有知识图谱的需求通过事件和实体查找的话应该可以找全相关的信息只能说当前的这种方式差强人意。

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

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

相关文章

如何看网站的版本号上海知名进出口贸易公司

哈喽,大家好,我是雷工! 前些天在新疆哈密时,有天下午有点时间,看离住的宾馆不远就是哈密博物馆,便去逛了逛博物馆,由于接下来的一段时间没顾上记录,趁今天有些时间简单记录下那短暂的…

网站开发前端和后端怎么连接制作个网站需要多少钱

本文精心挑选了10道Python程序员面试题,覆盖了Python的多个核心领域,包括装饰器、lambda函数、列表推导式、生成器、全局解释器锁(GIL)、单例模式以及上下文管理器等。每道题都附有简洁的代码示例,帮助读者更好地理解和应用相关知识点无论是对…

江干区住房和城乡建设局网站中小学网站建设排行2017

时序预测 | Python实现ARIMA-LSTM自回归移动差分模型结合长短期记忆神经网络时间序列预测 目录 时序预测 | Python实现ARIMA-LSTM自回归移动差分模型结合长短期记忆神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 时序预测 | Python实现ARIMA-LSTM自…

电商网站运营建设的目标《企业宣传片制作》

大一开学到现在,我不禁思考一个问题:代码重要吗? 我的答案是,根本不重要,或者说,是次要的。我认为分析问题,和画图是写题的开始,方法的学习,和灵活运用是目的。代码从来…

润滑油 东莞网站建设河南省住房城乡和建设厅网站

本案例介绍了如何通过485modbus转profinet网关连接威纶通与三菱变频器进行modbus通讯。485modbus转profinet网关提供了可靠的连接方式,使用户能够轻松地将不同类型的设备连接到同一网络中。通过使用这种网关,用户可以有效地管理和监控设备,从…

网站新闻页设计wordpress v4

目录 一、前言 二、函数介绍 1.DayOfWeek 枚举定义 2.GetTimeUntilNextTarget 3.GetSpecificWeekdayTime 三、完整代码 四、总结 一、前言 当我们编写代码时,我们经常会遇到需要处理日期和时间的情况。为了更方便地处理这些需求,我们可以创建一个…

四川手机网站建设费用技能培训学校

ORM flask 通过Model操作数据库,不管你的数据库是MySQL还是Sqlite,flask自动帮你生成相应数据库类型的sql语句,所以不需要关注sql语句和类型,对数据的操作flask帮我们自动完成,只需要会写Model就可以了 flask使用对象关…

搜狗网站收录如何做logo标志

YOLOv8 是 YOLO (You Only Look Once) 系列目标检测算法的最新版本,以其高速度和高精度而著称。在电力行业中,绝缘子是电力传输线路上的重要组件之一,它们用于支撑导线并保持电气绝缘。由于长期暴露在户外环境中,绝缘子容易出现损…

网站开发技术方案编写vue适合什么样的网站开发

当问到多线程时候如何解决线程安全的问题时候,大部分人都知道加锁。提到锁最先接触到的就是Synchronized关键字。 当我们想要保证一个共享资源在同一时间只会被一个线程访问到时,我们可以在代码中使用synchronized关键字对类或者对象加锁 synchronized…

做电商网站前期做什么工作网站设计 手写

文章目录 技术交流群1、360 NLP 算法岗2、腾讯 NLP 算法岗3、百度 NLP 算法岗用通俗易懂方式讲解系列 节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂同学、参加社招和校招面试的同学,针对大模型技术趋势、大模型落地项…

大连公司注册网站淮南网站优化

目录 3 地面滤波及单木分割 3.1 地面滤波(Ground Filtering) 3.2 单木分割(Single-Tree Segmentation)

公司建设网站时的注意事项wordpress自定义用户字段

leetcode原题链接&#xff1a;跳跃游戏 II 题目描述 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j &…

app网站建设宣传方案提高工作效率英语

您的 Android 设备密码有助于保护您的数据并防止您的个人信息被滥用。但是&#xff0c;如果您被锁定在Android设备之外怎么办&#xff1f;我们知道忘记您的 Android 手机密码是多么令人沮丧&#xff0c;因为它会导致您的设备和数据无法访问。在本技术指南中&#xff0c;我们将向…

汕头网站建设seo外包凡客诚品售后服务

上一篇文章讲了下用工具转换相关的格式&#xff1a;https://blog.csdn.net/weixin_42019349/article/details/134654695 今天来分享一个python库实现上述功能&#xff0c;实现文件转换自由 ^_^ 主角就是pypandoc库 # 安装方式 pip install pypandoc# pypandoc主要有三个函数…

网站前端开发得会什么软件电商平台的设计

作用域 & 上下文 作用域链 - 儿子能用爸爸的东西&#xff0c;调皮的儿子&#xff08;var&#xff09;可以去领居家&#xff08;块级&#xff09;拿东西 面试题&#xff1a; let a globalconsole.log(a)function course() {let b zhaowaconsole.log(b)// 2.6 函数提升 &…

淄博企业建网站在线查询企业

数组删除元素 1.利用新的数组 将原数组arr的元素&#xff0c;复制到新数组newArr中&#xff0c;复制过程中将要删除的元素&#xff0c;选择不复制 public class Test01{public static void main(String [] args){String [] arr {"zhangsan","lisi","…

网站建设主要工作流程在线logo制作生成免费

Pygame是一个流行的Python库&#xff0c;用于开发2D游戏。尽管它主要用于桌面游戏&#xff0c;但通过一些额外的工具和技巧&#xff0c;你也可以使用Pygame来打造多平台游戏&#xff0c;比如支持Windows、Linux、macOS、Android和iOS等平台。 下面是一个简单的Pygame游戏示例&…

怎么在网上卖东西给外国人网站优化需要什么

文章《ArcGIS栅格影像(NDVI)归一化处理的两种方法精解》详细介绍了ArcGIS中进行NDVI影像归一化处理的两种方法,但是无法批量进行,本文就放大招用Python实现批量NDVI归一化处理,大大提高了工作效率,还不赶快Get了? 完整Python代码: import arcpy from arcpy import env…

百度指数网站wordpress菜单显示图片

当涉及到编写自动化测试时&#xff0c;测试框架和工具的选择对于测试用例的设计和执行非常重要。在Python 中&#xff0c;pytest是一种广泛使用的测试框架&#xff0c;它提供了丰富的功能和灵活的扩展性。其中一个很有用的功 能是fixture方法&#xff0c;它允许我们初始化测试环…

兰陵住房建设局网站模板做网站上传

​​题目来源&#xff1a; leetcode题目&#xff0c;网址&#xff1a;2194. Excel 表中某个范围内的单元格 - 力扣&#xff08;LeetCode&#xff09; 解题思路&#xff1a; 双层循环遍历所有可能性即可。 解题代码&#xff1a; class Solution {public List<String> c…