主要观点总结
本文介绍了RAG(Retrieval Augmented Generation)的概念和其在不同领域的应用,包括在医疗、客户服务、教育、法律援助、翻译服务等领域的应用。同时,文章还探讨了RAG如何与大型语言模型(LLM)结合,通过从外部源检索相关信息来增强LLM的性能,并解释了RAG如何工作,包括检索相关文档或信息并生成响应的过程。此外,文章还介绍了如何使用不同的文档加载器来加载PDF、CSV、网页、JSON、Markdown、Office等不同类型的文档,并展示了如何自定义加载器以处理特定需求。最后,文章演示了如何使用RAG进行多文档问答,包括加载、切分、embedding、存储向量、检索相关文档、生成回答等步骤。
关键观点总结
关键观点1: RAG的定义和应用
RAG是一种用于增强大型语言模型性能的技术,通过从外部源检索相关信息并将其融入生成的内容中,以提高准确性和可信度。
关键观点2: RAG与LLM的结合
RAG与大型语言模型结合,动态获取最相关和最新的信息,使生成的内容更加精确和可靠。
关键观点3: RAG的工作方式
RAG首先根据给定的查询或上下文检索相关文档或信息,然后使用这些信息生成响应,确保生成的内容连贯且富有最新数据。
关键观点4: 文档加载器
LangChain提供了多种文档加载器,用于加载不同格式的文档,如PDF、CSV、网页、JSON、Markdown、Office等。
关键观点5: 自定义加载器
可以自定义加载器以处理特定需求,如提取PDF文档中的特定信息或修改文档的元数据。
关键观点6: 多文档RAG问答
通过加载、切分、embedding、存储向量、检索相关文档等步骤,使用RAG进行多文档问答,生成基于提供上下文的回答。
文章预览
RAG:深入探索 Embeddings 首先我们来看看embeddings。Embeddings(嵌入)是将一段文字变换到向量空间的方式,从而可以将语义上相近的文本映射到距离相近的向量上。除了上面提到的 OpenAIEmbedding ,LangChain还集成了非常多其他第三方提供的embedding模型,包括Cohere、Hugging Face等等,完整支持列表可以参考链接🔗 LangChain的Embeding类提供两个不同的方法:embed_documents和embed_query;前者可以工作在多个文档上,后者工作在单个文档上。下面以OpenAI为例: from langchain_openai import OpenAIEmbeddings embeddings_model = OpenAIEmbeddings(model= "text-embedding-3-small" ) text = 'I love programming.' emd_query = embeddings_model.embed_query(text) emd_docs = embeddings_model.embed_documents([text]) len(emd_query), len(emd_docs), len(emd_docs[ 0 ]), type(emd_query), type(emd_query[ 0 ]) (1536, 1, 1536, list, float) 可见, OpenAIEmbeddings 会将一
………………………………