AI个人学习
和实操指南

RAGLite:高效的检索增强生成(RAG)工具,支持多种数据库和语言模型。

综合介绍

RAGLite 是一个用于检索增强生成(RAG)的 Python 工具包,支持 PostgreSQL 或 SQLite 数据库。它提供了灵活的配置选项,允许用户选择不同的语言模型和重排序器。RAGLite 以其轻量级和高效的特性著称,适用于多种操作系统,并支持多种加速选项,如 Metal 和 CUDA。

RAGLite:高效的检索增强生成(RAG)工具,支持多种数据库和语言模型。-1


 

功能列表

  • 支持多种语言模型,包括本地 llama-cpp-python 模型
  • 支持 PostgreSQL 和 SQLite 作为关键词和向量检索数据库
  • 提供多种重排序器选项,包括多语言 FlashRank
  • 轻量级依赖,无需 PyTorch 或 LangChain
  • 支持 PDF 转 Markdown 转换
  • 多向量嵌入和上下文块标题
  • 提供可定制的 ChatGPT 类前端,支持 Web、Slack 和 Teams
  • 支持多种文件类型的文档插入和检索
  • 提供检索和生成性能评估工具

 

使用帮助

安装流程

  1. 安装 spaCy 的多语言句子模型:
    pip install https://github.com/explosion/spacy-models/releases/download/xx_sent_ud_sm-3.7.0/xx_sent_ud_sm-3.7.0-py3-none-any.whl
    
  2. 安装加速的 llama-cpp-python 预编译二进制文件(可选但推荐):
    LLAMA_CPP_PYTHON_VERSION=0.2.88 PYTHON_VERSION=310 ACCELERATOR=metal | cu121 | cu122 | cu123 | cu124 PLATFORM=macosx_11_0_arm64 | linux_x86_64 | win_amd64
    pip install "https://github.com/abetlen/llama-cpp-python/releases/download/v$LLAMA_CPP_PYTHON_VERSION-$ACCELERATOR/llama_cpp_python-$LLAMA_CPP_PYTHON_VERSION-cp$PYTHON_VERSION-cp$PYTHON_VERSION-$PLATFORM.whl"
    
  3. 安装 RAGLite:
    pip install raglite
    
  4. 安装可定制的 ChatGPT 类前端支持:
    pip install raglite[chainlit]
    
  5. 安装其他文件类型支持:
    pip install raglite[pandoc]
    
  6. 安装评估支持:
    pip install raglite[ragas]
    

使用指南

  1. 配置 RAGLite
    • 配置 PostgreSQL 或 SQLite 数据库和任意支持的语言模型:
      from raglite import RAGLiteConfig
      my_config = RAGLiteConfig(
      db_url="postgresql://my_username:my_password@my_host:5432/my_database",
      llm="gpt-4o-mini",
      embedder="text-embedding-3-large"
      )
      
  2. 插入文档
    • 插入 PDF 文档并进行转换和嵌入:
      from pathlib import Path
      from raglite import insert_document
      insert_document(Path("On the Measure of Intelligence.pdf"), config=my_config)
      
  3. 检索和生成
    • 使用向量检索、关键词检索或混合检索进行查询:
      from raglite import hybrid_search, keyword_search, vector_search
      prompt = "How is intelligence measured?"
      chunk_ids_hybrid, _ = hybrid_search(prompt, num_results=20, config=my_config)
      
  4. 重排序和回答问题
    • 对检索结果进行重排序并生成答案:
      from raglite import rerank_chunks, rag
      chunks_reranked = rerank_chunks(prompt, chunk_ids_hybrid, config=my_config)
      stream = rag(prompt, search=chunks_reranked, config=my_config)
      for update in stream:
      print(update, end="")
      
  5. 评估检索和生成
    • 使用 Ragas 进行检索和生成性能评估:
      from raglite import answer_evals, evaluate, insert_evals
      insert_evals(num_evals=100, config=my_config)
      answered_evals_df = answer_evals(num_evals=10, config=my_config)
      evaluation_df = evaluate(answered_evals_df, config=my_config)
      
  6. 部署 ChatGPT 类前端
    • 部署可定制的 ChatGPT 类前端:
      raglite chainlit --db_url sqlite:///raglite.sqlite --llm llama-cpp-python/bartowski/Llama-3.2-3B-Instruct-GGUF/*Q4_K_M.gguf@4096 --embedder llama-cpp-python/lm-kit/bge-m3-gguf/*F16.gguf
      
AI轻松学

普通人的AI入门指南

帮助你以低成本、零基础学会如何利用AI工具。AI就像办公软件一样,是每个人的必备技能。 掌握AI会让你在求职中占据优势,在未来的工作和学习中事半功倍。

查看详情>
未经允许不得转载:首席AI分享圈 » RAGLite:高效的检索增强生成(RAG)工具,支持多种数据库和语言模型。

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文