基于 LangChain+RAG+LLM 构建知识库

360影视 日韩动漫 2025-03-13 12:09 8

摘要:本文主要讨论基于 LangChain、Milvus、Embeddings 模型和 Azure OpenAPI(LLM)来构建知识库系统。利用 Milvus 进行文档向量存储和管理。利用RAG技术,在多轮对话和多会话管理场景下,从知识库中检索信息,并结合 LLM

导读:本文主要讨论基于 LangChain、Milvus、Embeddings 模型和 Azure OpenAPI(LLM)来构建知识库系统。利用 Milvus 进行文档向量存储和管理。利用RAG技术,在多轮对话和多会话管理场景下,从知识库中检索信息,并结合 LLM 生成精确信息。

LangChain 是一个由大型语言模型 (LLM) 驱动的应用程序开发框架。使用 LangChain 的开源组件和第三方集成可以方便快捷地构建 AI 相关的应用程序。

Milvus 是一款高性能、高可扩展的向量数据库。在 RAG(检索增强生成)体系里,它负责储存由 Embeddings 模型从数据转换而来的向量,凭借高效的向量相似度计算,能够快速从海量数据中精准检索出与用户问题相关的文本片段。这些被检索出的文本,为大语言模型生成高质量、准确且贴合用户需求的回答提供了关键信息支撑,大幅提升模型回答的相关性和可靠性,避免模型 “编造” 答案。例如在企业知识问答场景,向量数据库能迅速从大量文档中找到匹配问题的内容,助力大语言模型给出有效的解答 。

Embeddings 模型是一种将各种类型的数据,如文本、图像、音频等,转换为低维向量空间表示的模型。

使用 Langchain 的 Document Loaders.来加载 Document,并使用RecursiveCharacterTextSplitter 将大型 Documents 拆分成较小的块(Splits)。使用 HuggingFace 开源的 Embeddings 模型将 Splits 转为向量并存储至 Milvus 向量数据库中。根据用户输入在向量数据库中检索获取相关的 Split。将包含问题和检索到的数据的 Prompt 输入到大语言模型(LLM)中,最终生成结果 。在完成上面的 RAG(检索增强生成)后,基于 FastAPI 构建服务。由 ConversationBufferMemory 来支持多轮对话,并通过 thread_id 来区分 session,并进行多 session 管理。

来源:SapphireCoder

相关推荐