前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >RAG项目推荐:bRAG-langchain-构建自己的 RAG 应用程序所需了解的一切

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

作者头像
致Great
发布2025-01-07 08:47:28
发布2025-01-07 08:47:28
26100
代码可运行
举报
文章被收录于专栏:自然语言处理自然语言处理
运行总次数:0
代码可运行

检索增强生成 (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(推荐)

克隆仓库

代码语言:javascript
代码运行次数:0
运行
复制
git clone https://github.com/bRAGAI/bRAG-langchain.git 

cd bRAG-langchain

创建虚拟环境

代码语言:javascript
代码运行次数:0
运行
复制
python -m venv venv

source venv/bin/activate

安装依赖:确保安装 requirements.txt 中列出的所需包。

pip install -r requirements.txt

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

设置环境变量

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

代码语言:javascript
代码运行次数:0
运行
复制
#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"

笔记本顺序: 为了按结构化方式跟进项目:

  • [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
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-01-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 检索增强生成 (RAG) 项目
    • 项目结构
      • [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
    • 开始使用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档