Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

输入一个文档,生成对应的知识图谱 #138

Open
shuiwang66 opened this issue Jan 2, 2025 · 35 comments
Open

输入一个文档,生成对应的知识图谱 #138

shuiwang66 opened this issue Jan 2, 2025 · 35 comments

Comments

@shuiwang66
Copy link

这个解决了吗?

@heshengtao
Copy link
Owner

这个可以参考B站视频里的做法,输入信息就会自动转换进neo4j里,但要模型比较强大才用得出来,模型太弱,这种高级工具对模型能力要求较高

@shuiwang66
Copy link
Author

这个可以参考B站视频里的做法,输入信息就会自动转换进neo4j里,但要模型比较强大才用得出来,模型太弱,这种高级工具对模型能力要求较高

用谷歌和克劳德应该可以把

@heshengtao
Copy link
Owner

可以,尽量选大尺寸的

@shuiwang66
Copy link
Author

可以,尽量选大尺寸的

刚下好,我搞科研,刚看完你的视频,我用谷歌1.5那个应该可以把,还有就是,neo4j,我搜了搜断网才能打开,我换了三个网都这样。。。。难搞。

@shuiwang66
Copy link
Author

image
image
这是api问题吗?

@heshengtao
Copy link
Owner

你这个接口没有名字叫gpt 4 turbo的模型,一般有问题,你翻译一下就知道是什么问题了

@heshengtao
Copy link
Owner

可以,尽量选大尺寸的

刚下好,我搞科研,刚看完你的视频,我用谷歌1.5那个应该可以把,还有就是,neo4j,我搜了搜断网才能打开,我换了三个网都这样。。。。难搞。

neo4j或许是vpn的问题?我没遇到过,如果你没有开,或许开一个会好一点?

@shuiwang66
Copy link
Author

可以,尽量选大尺寸的

刚下好,我搞科研,刚看完你的视频,我用谷歌1.5那个应该可以把,还有就是,neo4j,我搜了搜断网才能打开,我换了三个网都这样。。。。难搞。

neo4j或许是vpn的问题?我没遇到过,如果你没有开,或许开一个会好一点?

image
不是,我开了没开都试了。

@heshengtao
Copy link
Owner

可以,尽量选大尺寸的

刚下好,我搞科研,刚看完你的视频,我用谷歌1.5那个应该可以把,还有就是,neo4j,我搜了搜断网才能打开,我换了三个网都这样。。。。难搞。

neo4j或许是vpn的问题?我没遇到过,如果你没有开,或许开一个会好一点?

image
不是,我开了没开都试了。

不要这个/token试试

@shuiwang66
Copy link
Author

可以,尽量选大尺寸的

刚下好,我搞科研,刚看完你的视频,我用谷歌1.5那个应该可以把,还有就是,neo4j,我搜了搜断网才能打开,我换了三个网都这样。。。。难搞。

neo4j或许是vpn的问题?我没遇到过,如果你没有开,或许开一个会好一点?

形象
不是,我开了没开都试了。

不要这个/token试试

image

@heshengtao
Copy link
Owner

不知道了,你得去看一下你这个中转api的文档了

@shuiwang66
Copy link
Author

image

@shuiwang66
Copy link
Author

你用的是本地模型吗?

@heshengtao
Copy link
Owner

不带工具能跑通吗

@shuiwang66
Copy link
Author

不带工具能跑通吗

可以的,我用cherry测了可以,然后我用另一个工作流可以的。

@shuiwang66
Copy link
Author

image
我一切换rgb就不行了,那个识图的可以

@heshengtao
Copy link
Owner

image

不是这个问题,我的openai api可以调动,中转api调不动我也没有办法,你可以看一下kg neo4j的代码,这个字段不为空

@shuiwang66
Copy link
Author

形象

不是这个问题,我的openai api可以调动,中转api调不动我也没有办法,你可以看一下kg neo4j的代码,这个字段不为空

好的,应该不是中转问题,因为那个识图的可以用。

@heshengtao
Copy link
Owner

我的视频里就调动了,如果是少传了参数,我视频里也不可能跑得通,我猜不出来是什么问题了

@shuiwang66
Copy link
Author

我的视频里就调动了,如果是少传了参数,我视频里也不可能跑得通,我猜不出来是什么问题了

是啊,这玄学了。

@shuiwang66
Copy link
Author

我的视频里就调动了,如果是少传了参数,我视频里也不可能跑得通,我猜不出来是什么问题了

我换了四个中转,都可以在识图那个流成功,并且识别图里内容,就是 这个不知道啥问题了。玄学啦

@heshengtao
Copy link
Owner

换一个简单的时间工具,看能不能跑通

@shuiwang66
Copy link
Author

换一个简单的时间工具,看能不能跑通

好的,我试试

@heshengtao
Copy link
Owner

OpenAI的对话完成API(如Chat Completions API)并没有特别指出需要确保properties.attributes对于类型为OBJECT的字段是非空的,因为这是特定于你之前提到的https://api.etak.cn/v1/chat/completions API的要求。

OpenAI的API通常要求请求中的对象遵循其定义的结构和参数,例如提供正确的模型名称、消息格式等。如果你正在使用OpenAI的API,你应该参考OpenAI官方文档来确保你的请求符合它们的规定。

每个API都有自己的规范和要求,因此当你从一个API切换到另一个时,你需要根据新API的文档调整你的请求。如果你打算使用OpenAI的服务,建议仔细阅读并遵循其提供的指南和示例,以构建有效的请求。

如果你有关于如何正确构造请求给OpenAI的具体问题,或者遇到了与OpenAI API相关的错误信息,请提供更详细的信息或具体的错误代码,我可以帮助你进一步分析和解决问题。

刚问的ai,他说openai接口没这个要求

@shuiwang66
Copy link
Author

泰蒙·特伯·希恩代斯以"如想完成API"为要旨properties.attributes 对于类型为OBJECT的字段是非空的,因为这是特定于你之前提到的https://api.etak.cn/v1/chat/completions API的要求。

OpenAI的API通常要求请求中的对象遵循其定义的结构和参数,例如提供正确的模型名称、消息格式等。如果你正在使用OpenAI的API,你应该参考OpenAI官方文档来确保你的请求符合它们的规定。

每个API都有自己的规范和要求,因此当你从一个API切换到另一个时,你需要根据新API的文档调整你的请求。如果你打算使用OpenAI的服务,建议仔细阅读并遵循其提供的指南和示例,以构建有效的请求。

如果你有关于如何正确构造请求给OpenAI的具体问题,或者遇到了与OpenAI API相关的错误信息,请提供更详细的信息或具体的错误代码,我可以帮助你进一步分析和解决问题。

刚问的ai,他说openai接口没这个要求

image
现在好像可以了,但是没有添加到neo4j里

@shuiwang66
Copy link
Author

泰蒙·特伯·希恩代斯以"如想完成API"为要旨properties.attributes 对于类型为OBJECT的字段是非空的,因为这是特定于你之前提到的https://api.etak.cn/v1/chat/completions API的要求。

OpenAI的API通常要求请求中的对象遵循其定义的结构和参数,例如提供正确的模型名称、消息格式等。如果你正在使用OpenAI的API,你应该参考OpenAI官方文档来确保你的请求符合它们的规定。

每个API都有自己的规范和要求,因此当你从一个API切换到另一个时,你需要根据新API的文档调整你的请求。如果你打算使用OpenAI的服务,建议仔细阅读并遵循其提供的指南和示例,以构建有效的请求。

如果你有关于如何正确构造请求给OpenAI的具体问题,或者遇到了与OpenAI API相关的错误信息,请提供更详细的信息或具体的错误代码,我可以帮助你进一步分析和解决问题。

刚问的ai,他说openai接口没这个要求

嘿嘿,他教我一遍,哈哈,没有自动添加进

@heshengtao
Copy link
Owner

说明这个模型不怎么听话,那个对应的面具加上了吗,换成更大的试试,然后记得关掉记忆,温度调低,他会稳定一点

@shuiwang66
Copy link
Author

说明这个模型不怎么听话,那个对应的面具加上了吗,换成更大的试试,然后记得关掉记忆,温度调低,他会稳定一点

image
这个面具吗?加上了,
image

@heshengtao
Copy link
Owner

慢慢探索吧,我不是搞KG这块的,我也不是很清楚很多问题,你可以多尝试一下,要很大的模型才能理解怎么和一个KG交互,我当时跑通了之后,我就没有再管过这一块了,这个视频都是我好几个月前的时候录的了,我也没有改过任何相关代码,或许是你的neo4J没有连上,所以LLM执行不了,只好教你了

@heshengtao
Copy link
Owner

有新的进展了跟我说一下吧,我也去忙别的了,你在这里一直说,我的邮箱一直在弹窗哈哈哈哈,我也无能为力,说实话

@shuiwang66
Copy link
Author

有新的进展了跟我说一下吧,我也去忙别的了,你在这里一直说,我的邮箱一直在弹窗哈哈哈哈,我也无能为力,说实话

好的,换了克劳德3.5 10.22,成这样了,但是neo4j还是没有,
image
image

@shuiwang66
Copy link
Author

有新的进展了跟我说一下吧,我也去忙别的了,你在这里一直说,我的邮箱一直在弹窗哈哈哈哈,我也无能为力,说实话

image

@heshengtao
Copy link
Owner

neo4j不能直接打开,是因为桌面版封了国内了,只能断网打开再联网

然后你这个调用不了,很可能是你没有启动你的数据库,我刚才试了一下这个工作流

image

还是可以用的啊,反正刚才试过可以跑通,再问我也没招了,我猜是你的数据库没有启动,你跟着我的视频一步步来吧,跳步骤了我也猜不出来你跳了哪一步啊

@shuiwang66
Copy link
Author

neo4j不能直接打开,是因为桌面版封了国内了,只能断网打开再联网

然后你这个调用不了,很可能是你没有启动你的数据库,我刚才试了一下这个工作流

image

还是可以用的啊,反正刚才试过可以跑通,再问我也没招了,我猜是你的数据库没有启动,你跟着我的视频一步步来吧,跳步骤了我也猜不出来你跳了哪一步啊

好的,谢谢啦,我数据库启动了,我怀疑是我系统问题,我换个win10试试把。

@shuiwang66
Copy link
Author

neo4j不能直接打开,是因为桌面版封了国内了,只能断网打开再联网

然后你这个调用不了,很可能是你没有启动你的数据库,我刚才试了一下这个工作流

image

还是可以用的啊,反正刚才试过可以跑通,再问我也没招了,我猜是你的数据库没有启动,你跟着我的视频一步步来吧,跳步骤了我也猜不出来你跳了哪一步啊

你描述的现象是:你通过某种方式向系统添加了 "关羽是刘备的二弟" 这条信息,系统显示添加成功,但实际上这条信息并没有被正确地写入 Neo4j 图数据库中。

这很可能是因为工作流中负责将信息写入Neo4j的环节出现了问题。 结合你提供的graphRAG_neo4j.json文件,我们需要重点关注 KG_neo_toolkit_developer 节点和 LLM 节点,特别是LLM节点如何使用KG_neo_toolkit_developer提供的工具将信息写入Neo4j。

以下是一些可能的故障原因和排查步骤:

1. LLM 节点是否正确使用了 Neo4j 工具?

  • 工具是否启用: 检查 LLM 节点 (ID: 23) 的 widgets_values 中,索引为 6 的值 (对应 tools 输入下的 "enable" 选项) 是否确实为 "enable"。如果为 "disable",LLM 将不会使用 Neo4j 工具。
  • 工具调用逻辑: 即使启用了工具,LLM 还需要根据你的输入和预设的提示 (Persona) 正确地生成用于操作 Neo4j 的 Cypher 语句。这部分逻辑比较复杂,需要确认 LLM 是否正确理解了你的添加意图,并将其转化成了正确的 Cypher 语句。
    • 查看 LLM 的输出: 你可以尝试修改工作流,将 LLM 节点的 tool 输出连接到一个显示节点,看看 LLM 实际生成的工具调用代码(可能是 Cypher 语句)。这可以帮助你判断 LLM 是否正确地使用了 Neo4j 工具。
    • Persona 的影响: load_persona 节点 (ID: 24) 提供的 "知识图谱neo4j版本" 预设提示对 LLM 的行为有很大影响。你需要确保这个 Persona 能够引导 LLM 正确地理解你的添加操作,并生成相应的 Cypher 语句。可能需要修改这个 Persona 以便更好地支持添加操作。
  • 查看日志或调试信息: 检查 LLM 或 KG_neo_toolkit_developer 节点是否有相关的日志或调试信息输出,这些信息可能会帮助你找到问题所在。

2. KG_neo_toolkit_developer 节点配置是否正确?

  • 连接信息: 确认 KG_neo_toolkit_developer 节点 (ID: 22) 的 widgets_values 中,Neo4j 的连接地址 (bolt://localhost:7687)、用户名 (neo4j) 和密码 (12345678) 是否正确。任何一个错误都会导致连接失败。
  • 权限问题: 确保你使用的 Neo4j 用户 (neo4j) 具有写入数据的权限。你可以在 Neo4j 的管理界面中检查用户的权限设置。

3. Neo4j 数据库本身的问题:

  • 数据库状态: 确认 Neo4j 数据库正在运行,并且可以正常访问。
  • 磁盘空间: 检查 Neo4j 数据库所在的服务器是否有足够的磁盘空间。
  • 数据库日志: 查看 Neo4j 数据库的日志文件,看看是否有任何错误或异常信息。

4. 代码或工具的 Bug:

  • 工具本身的 Bug: KG_neo_toolkit_developer 节点可能是某个特定工具或库的封装,该工具或库本身可能存在 Bug,导致无法正确写入数据。
  • 版本兼容性: 确认你使用的所有工具和库的版本是相互兼容的。

建议的排查步骤:

  1. 首先检查 LLM 节点是否启用了 Neo4j 工具 (widgets_values[6] 是否为 "enable")。
  2. 修改工作流,将 LLM 节点的 tool 输出连接到一个显示节点,查看 LLM 生成的工具调用代码 (可能是 Cypher 语句)。 观察生成的 Cypher 语句是否正确地反映了你的添加操作:"关羽是刘备的二弟"。
  3. 检查 KG_neo_toolkit_developer 节点的配置信息,确保连接信息和权限设置正确。
  4. 查看 Neo4j 数据库的状态和日志,排除数据库本身的问题。

如果以上步骤都无法解决问题,你可能需要:

  • 更详细地描述你是如何 "添加" 这条信息的。 你是通过修改 LLM 节点的 user_prompt_input 来添加的吗?还是通过其他方式?
  • 提供更多关于你使用的工具和环境的信息。 例如,你使用的是哪个版本的 KG_neo_toolkit_developer 节点?你使用的是哪个版本的 LLM?
  • 尝试简化问题。 例如,你可以尝试添加一个更简单的关系,看看是否能够成功写入 Neo4j。

希望这些信息能帮助你找到问题所在!记住,调试这类问题需要耐心和细致的排查,一步步缩小问题范围,最终找到解决方案。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants