回顾“易速鲜花”内部员工知识库问答系统的开发流程
整个“易速鲜花”内部员工知识库问答系统的开发流程是一个从数据载入、知识切片、Embedding、向量数据库存储、用户输入与检索到大模型生成回答的完整链条。每一步都紧密相连,共同构成了系统的核心功能。
-
知识切片与Embedding:
- 首先,我们从本地获取员工手册等知识文档,这些文档可能包括PDF、Word等格式的非结构化数据。
- 接着,我们使用LangChain框架提供的工具对这些文档进行切片处理,将它们分割成更小、更易于处理的文档块或文档片。
- 然后,我们利用Embedding技术将这些文档块转换为向量表示,这些向量能够捕捉到文档块中的关键信息和语义特征。
- 最后,我们将这些嵌入向量存储到向量数据库中,以便后续的高效检索。
-
向量数据库存储:
- 向量数据库是一种专门用于存储和检索向量数据的数据库。在这里,我们存储了所有经过Embedding处理的文档块向量。
- 向量数据库的高效检索能力使得我们能够快速找到与输入问题相似的文档块,从而为后续的大模型生成回答提供关键信息。
-
用户输入与检索:
- 当用户输入一个问题时,我们的系统首先会将其转换为向量表示(如果可能的话,也可以直接使用文本形式)。
- 然后,系统会在向量数据库中检索与输入问题相似的文档块向量。这通常是通过计算输入问题向量与数据库中存储的向量之间的相似度(如余弦相似度)来实现的。
- 检索到的相似文档块会被选作候选答案,用于后续的大模型生成回答。
-
大模型生成回答:
- 将用户输入的问题和从向量数据库中检索到的相似文档块一起传递给大模型(如LLM)。
- 大模型会根据输入的问题和候选答案生成一个自然、准确的回答。这个回答可能会直接引用文档块中的内容,也可能会基于文档块中的信息进行推理和扩展。
- 最终,系统会将生成的回答呈现给用户,完成整个问答流程。