今天看啥  ›  专栏  ›  无人之路

【学习LangChain】05. RAG进阶 - Embeddings & Loaders

无人之路  · 公众号  · AI 科技媒体  · 2024-08-31 09:09
    

主要观点总结

本文介绍了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 会将一 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览