当前位置: 首页 > wzjs >正文

网站留言板块怎么做百度一下你就知道搜索引擎

网站留言板块怎么做,百度一下你就知道搜索引擎,邵阳网站建设设计,新疆住房建设部官方网站本文将基于langchain 框架,用LLM(大语言模型)查询图数据库NEO4J。 使用 qwen2.5 做实验,用 llama3.1 查不出内容。 文章目录 安装 NEO4J准备图数据查询图数据总结代码 安装 NEO4J 参见:在windows系统中安装图数据库NEO4J 。 准备图数据 我…

本文将基于langchain 框架,用LLM(大语言模型)查询图数据库NEO4J

使用 qwen2.5 做实验,用 llama3.1 查不出内容。

文章目录

    • 安装 `NEO4J`
    • 准备图数据
    • 查询图数据
    • 总结
    • 代码


安装 NEO4J

参见:在windows系统中安装图数据库NEO4J 。

准备图数据

我们先准备图数据,为后面的实验做准备。

  • 安装NEO4J的插件Awesome Procedures On Cypher (APOC)

APOC(Awesome Procedures on Cypher)是Neo4j图数据库的一个插件,它提供了一组强大的过程和函数,扩展了Cypher查询语言的功能。 APOC可以帮助你进行更高级的数据处理和操作,例如导入和导出数据、动态创建节点和关系、执行事务操作等。

  • 下载插件

您可以到 github 下载,也可以到 csdn 下载。

下载完毕后,将rar拷贝到 NEO4Jplugins 目录下,重启 NEO4J 即可。

  • 准备数据

我们准备了少量电影数据,可以直接下载 movies_small 。

  • 导入数据

装好了APOC插件后,就可以导入准备好的数据了。

我把 movies_small.csv 放在了 NEO4Jimport 文件夹下,才可以正常导入。

下面定义一个方法导入数据:

def create_graph():"""导入数据,创建图形数据库"""# 把movies_small.csv拷贝到neo4j的import文件夹内db_file_path = 'file:///movies_small.csv'movies_query = """LOAD CSV WITH HEADERS FROM '%s'AS rowMERGE (m:Movie {id:row.movieId})SET m.released = date(row.released),m.title = row.title,m.imdbRating = toFloat(row.imdbRating)FOREACH (director in split(row.director, '|') | MERGE (p:Person {name:trim(director)})MERGE (p)-[:DIRECTED]->(m))FOREACH (actor in split(row.actors, '|') | MERGE (p:Person {name:trim(actor)})MERGE (p)-[:ACTED_IN]->(m))FOREACH (genre in split(row.genres, '|') | MERGE (g:Genre {name:trim(genre)})MERGE (m)-[:IN_GENRE]->(g))""" % (db_file_path)graph.query(movies_query)graph.refresh_schema()print(graph.schema) 

执行完毕上述方法后,我们可以使用 NEO4J 的管理工具查看 刚才导入数据了。

查询图数据

  • GraphCypherQAChain

我们用最简单的方式:使用GraphCypherQAChain查询图数据库:

enhanced_graph = Neo4jGraph(enhanced_schema=True)
print(enhanced_graph.schema)from langchain_ollama import ChatOllama
llm = ChatOllama(model="qwen2.5",temperature=0, verbose=True)   #llama3.1查不出内容;EntropyYue/chatglm3生成的查询有问题报错# GraphQACypherChain
from langchain_neo4j import GraphCypherQAChainchain = GraphCypherQAChain.from_llm(graph=enhanced_graph, llm=llm, verbose=True, allow_dangerous_requests=True
)

从上面的代码来看,用GraphCypherQAChain查询NEO4J很简单,复杂的工作都由GraphCypherQAChain干了。

后面我们会用langgraph来实现类似功能。,这可以让我们对GraphCypherQAChain的实现思路有更加清晰的了解。

  • 定义询问方法
def ask(question:str):"""询问图数据库内容"""response = chain.invoke({"query": question})print(f'response:\n{response}')
  • 见证效果

我们问一个图数据库里面有答案的问题吧:

What was the cast of the Casino?

在执行的过程中,可以看到 LLM 推理出了 Cypher 查询语句:

> Entering new GraphCypherQAChain chain...
Generated Cypher:
MATCH (m:Movie {title: 'Casino'})<-[:ACTED_IN]-(a:Person) RETURN a.name
Full Context:
[{'a.name': 'James Woods'}, {'a.name': 'Joe Pesci'}, {'a.name': 'Robert De Niro'}, {'a.name': 'Sharon Stone'}]

最终给出的结果是:

{'query': 'What was the cast of the Casino?', 'result': 'The cast of Casino included James Woods, Joe Pesci, Robert De Niro, and Sharon Stone.'}

不错!

总结

通过上述演练,我们发现用 langchainGraphQACypherChain 对图数据库 NEO4J 进行简单的查询还是比较容易实现的。


代码

本文涉及的所有代码以及相关资源都已经共享,参见:

  • github
  • gitee

为便于找到代码,程序文件名称最前面的编号与本系列文章的文档编号相同。

🪐感谢您观看,祝好运🪐

http://www.dtcms.com/wzjs/394732.html

相关文章:

  • 网站建设最重要的因素哪里有网站推广优化
  • 网站建设 学习什么软文案例大全300字
  • 成都p2p网站建设windows7系统优化工具
  • 深圳网站设计招聘粤语seo是什么意思
  • 专教做蛋糕的网站百度下载安装最新版
  • 一个专门做恐怖片的网站2022适合小学生的简短新闻
  • 网站鼠标的各种效果怎么做的营销型网站建设优化建站
  • 穆棱市城乡建设局网站漳州网络推广
  • 重庆梁平网站建设报价网站seo是什么意思
  • 导航网站 php一个新手如何推销产品
  • 海口做网站供应商百度指数怎么算
  • 网站目录遍历网站搭建
  • 县政府网站党风廉政建设工作汇报成人就业技术培训机构
  • 做网站专题需要什么软件网站互联网推广
  • 外贸网站如何换域名全国疫情最新消息今天实时
  • amazon ec2 wordpress新的seo网站优化排名 排名
  • 招聘网站设计师要求长沙seo关键词排名
  • seo网站诊断方案学电脑培训班
  • 中企动力网站建设网站优化+山东
  • 网站域名已经解析但没有被百度等搜索引擎收录怎么办网上营销培训课程
  • 个人阿里云账号可以做网站备案qq代刷网站推广
  • 2008 iis 添加网站百度公司的发展历程
  • 安做省民改厅网站百度指数移动版app
  • 做网站时候如果添加微信代码网站应该如何推广
  • 网站开发技术招聘电子商务是干什么的
  • 搭建钓鱼网站教程网店运营具体做什么
  • 河北沧州建设官方网站南昌seo服务
  • 做百度外链哪些网站权重高点市场营销在线课程
  • 沛县建设局网站手机搜索引擎
  • 使用网站效果图青岛seo软件