# 专业知识图谱聊天助手
需要构建一个基于langgraph框架以及deepseek模型构建一个专业知识图谱聊天助手，需要根据用户问题进行针对行回答，目前我区分了三个方向的回答：
针对用户的问题，进行判断，避免回答不相关的内容。以下是三个方向：
- 闲聊。
- 知识图谱总体介绍问题。
- 知识图谱的具体问题。

所以这里需要存在两个分类节点，第一个分类节点用于判断用户问题是闲聊类型的问题还是专业问题，第二个分类节点用于在专业知识图谱的具体问题中进一步细分问题类型，以便提供更精准的回答。第二个分类节点的区分规则可以依据回答是否需要具体的知识图谱数据支持来进行判断。因为知识图谱总体介绍不需要检索图谱中具体的图谱叙事链，而专业知识图谱的具体问题则需要检索图谱中具体的图谱叙事链来进行回答。

对应的这里也需要有对应的三个回答节点，分别对应闲聊、知识图谱总体介绍以及专业知识图谱的具体问题回答。每个回答节点都需要根据用户的问题进行相应的处理和生成回答。

整体流程大概就是：用户问题进来，首先做专业度判断，如果是闲聊问题，则直接进入闲聊回答节点进行处理；如果是专业问题，则进入第二个分类节点，进一步判断是否需要知识图谱数据支持。如果不需要，则进入知识图谱总体介绍回答节点进行处理；如果需要，则进入专业知识图谱的具体问题回答节点进行处理。

现在说明一下其中流程的一些具体细节：

（1）专业问题拆分。当判断用户问题需要使用到知识图谱具体叙事链信息（即经过第二个分类节点判断为知识图谱的具体问题）后，需要对用户问题进行拆分，以便更好地匹配知识图谱中的相关信息。拆分的方式可以是基于关键词的提取，也可以是基于语义的分析，确保能够准确识别出问题中的核心概念和关系。主要从以下几个方面进行拆分：
- 属性1：从用户问题中提取出关键的实体、属性和关系词，以便在知识图谱中进行匹配。
- 属性2：通过自然语言处理技术，分析用户问题的语义结构，识别出问题的意图和核心概念，从而更好地理解用户的需求。

这一步主要是为了后续更好的在知识图谱中进行检索和匹配，确保能够提供准确和相关的回答。


