欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > RAG项目推荐:bRAG-langchain-构建自己的 RAG 应用程序所需了解的一切

RAG项目推荐:bRAG-langchain-构建自己的 RAG 应用程序所需了解的一切

2025/1/8 12:26:58 来源:https://blog.csdn.net/yanqianglifei/article/details/144974782  浏览:    关键词:RAG项目推荐:bRAG-langchain-构建自己的 RAG 应用程序所需了解的一切

检索增强生成 (RAG) 项目

项目链接:https://github.com/bRAGAI/bRAG-langchain/tree/main

bRAGAI 的官方平台即将上线。加入等待列表,成为早期使用者之一!

本仓库包含了对检索增强生成 (RAG) 在各种应用中的全面探索。
每个笔记本都提供了从入门级到高级实现的详细实践指南,包括多查询和自定义 RAG 构建。

项目结构

如果你想直接开始,请查看文件 full_basic_rag.ipynb -> 这个文件将为你提供一个完全可定制的 RAG 聊天机器人的样板代码。

确保在虚拟环境中运行你的文件(查看 开始使用 部分)。

以下笔记本可以在 tutorial_notebooks/ 目录下找到。

[1]_rag_setup_overview.ipynb

这个入门笔记本提供了 RAG 架构及其基础设置的概述。
笔记本内容包括:

  • 环境设置:配置环境、安装必要的库和 API 设置。
  • 初始数据加载:基本的文档加载器和数据预处理方法。
  • 嵌入生成:使用各种模型生成嵌入,包括 OpenAI 的嵌入。
  • 向量存储:设置向量存储(ChromaDB/Pinecone)以实现高效的相似性搜索。
  • 基本 RAG 管道:创建一个简单的检索和生成管道作为基线。

[2]_rag_with_multi_query.ipynb

在基础之上,这个笔记本介绍了 RAG 管道中的多查询技术,探索内容包括:

  • 多查询设置:配置多个查询以多样化检索。
  • 高级嵌入技术:使用多个嵌入模型来优化检索。
  • 多查询管道:实现多查询处理以提高响应生成的相关性。
  • 比较与分析:与单查询管道进行比较并分析性能改进。

[3]_rag_routing_and_query_construction.ipynb

这个笔记本深入探讨了自定义 RAG 管道。
内容包括:

  • 逻辑路由:实现基于函数的路由,根据编程语言将用户查询分类到适当的数据源。
  • 语义路由:使用嵌入和余弦相似性将问题引导到数学或物理提示,优化响应准确性。
  • 元数据过滤器的查询结构:定义结构化搜索模式以处理 YouTube 教程元数据,实现高级过滤(例如,按观看次数、发布日期)。
  • 结构化搜索提示:利用 LLM 提示生成数据库查询,根据用户输入检索相关内容。
  • 与向量存储的集成:将结构化查询与向量存储连接,以实现高效的数据检索。

[4]_rag_indexing_and_advanced_retrieval.ipynb

继续之前的自定义内容,这个笔记本探讨了:

  • 文档分块前言:指向外部资源以了解文档分块技术。
  • 多表示索引:设置多向量索引结构以处理具有不同嵌入和表示的文档。
  • 摘要的内存存储:使用 InMemoryByteStore 存储文档摘要以及父文档,实现高效检索。
  • 多向量检索器设置:集成多个向量表示以根据用户查询检索相关文档。
  • RAPTOR 实现:探索 RAPTOR,一种高级索引和检索模型,链接到深入资源。
  • ColBERT 集成:演示基于 ColBERT 的令牌级向量索引和检索,捕捉细粒度的上下文含义。
  • ColBERT 的维基百科示例:使用 ColBERT 检索模型检索有关宫崎骏的信息进行演示。

[5]_rag_retrieval_and_reranking.ipynb

这个最后的笔记本将 RAG 系统组件结合在一起,重点关注可扩展性和优化:

  • 文档加载和拆分:加载并分块文档以进行索引,准备将其存储到向量存储中。
  • 使用 RAG-Fusion 的多查询生成:使用基于提示的方法从单个输入问题生成多个搜索查询。
  • 互惠排名融合 (RRF):实现 RRF 以重新排序多个检索列表,合并结果以提高相关性。
  • 检索器和 RAG 链设置:构建检索链以回答查询,使用融合排名和 RAG 链提取上下文相关信息。
  • Cohere 重新排序:演示使用 Cohere 模型进行重新排序,以进行额外的上下文压缩和优化。
  • CRAG 和 Self-RAG 检索:探索 CRAG 和 Self-RAG 等高级检索方法,并链接到示例。
  • 长上下文影响的探索:链接到解释长上下文检索对 RAG 模型影响的资源。

开始使用

前提条件:Python 3.11.7(推荐)

  1. 克隆仓库

    git clone https://github.com/bRAGAI/bRAG-langchain.git cd bRAG-langchain
    
  2. 创建虚拟环境

    python -m venv venvsource venv/bin/activate
    
  3. 安装依赖:确保安装 requirements.txt 中列出的所需包。

    pip install -r requirements.txt

  4. 运行笔记本
    [1]_rag_setup_overview.ipynb 开始,熟悉设置过程。按顺序继续其他笔记本,以构建和实验更高级的 RAG 概念。

  5. 设置环境变量

    • 复制根目录中的 .env.example 文件并将其命名为 .env,并包含以下键(替换为你的实际键):

      #LLM 模型
      OPENAI_API_KEY="your-api-key"#LangSmith
      LANGCHAIN_TRACING_V2=true
      LANGCHAIN_ENDPOINT="https://api.smith.langchain.com"
      LANGCHAIN_API_KEY="your-api-key"
      LANGCHAIN_PROJECT="your-project-name"#Pinecone 向量数据库
      PINECONE_INDEX_NAME="your-project-index"
      PINECONE_API_HOST="your-host-url"
      PINECONE_API_KEY="your-api-key"
      
  6. 笔记本顺序
    为了按结构化方式跟进项目:

    • [1]_rag_setup_overview.ipynb 开始

    • 继续 [2]_rag_with_multi_query.ipynb

    • 然后阅读 [3]_rag_routing_and_query_construction.ipynb

    • 继续 [4]_rag_indexing_and_advanced_retrieval.ipynb

    • 最后完成 [5]_rag_retrieval_and_reranking.ipynb

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com