Skip to content

ShionWakanae/llamaIndexSample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

我的LlamaIndex的样例程序

Follow me on CSDN Follow Me on Bilibili

这是在干啥

我正在尝试通过开发基于LlamaIndex的程序,从0理解企业知识库和RAG的知识……

什么是LlamaIndex

Note

一个面向大语言模型(LLM)的数据接入与检索增强(RAG)框架,核心目标是让开发者能够方便地将本地文档、数据库、API、知识库等外部数据连接到大模型,实现“基于私有数据回答问题”的能力。

它最初以“LLM 与外部数据之间的桥梁”为定位,后来逐渐发展为一个完整的 RAG 开发框架。开发者可以使用 LlamaIndex 对文档进行读取、切分(chunking)、向量化(embedding)、索引构建、检索(retrieval)、重排序(rerank),并最终将检索结果交给大语言模型生成答案。

LlamaIndex 支持多种数据源,包括本地文件、PDF、Markdown、数据库、Notion、Slack 等,也支持接入不同的向量数据库和模型服务,例如 FAISS、Chroma、Qdrant、OpenAI、本地 llama.cpp 模型等。它同时提供了大量高级 RAG 能力,例如结构化 Chunking、混合检索(Hybrid Search)、查询路由、多索引组合、Agent 工具调用,以及基于文档结构的上下文增强。

相比“手工拼接 embedding + 向量库 + prompt”的传统做法,LlamaIndex 更强调模块化和可组合性。开发者可以快速搭建一个基础 RAG 系统,也可以逐步替换其中的检索器、索引结构、重排序模型和查询流程,实现更复杂的企业级知识检索系统。

在当前的 AI 应用开发中,LlamaIndex 常被用于企业知识库问答、文档搜索、客服机器人、代码知识检索、多文档分析,以及本地离线 RAG 系统等场景。

项目功能

建立知识库

  1. 对Markdown文件进行基于目录结构的分块(chunking)。
  2. 目录结构分块后依然较大的块,进行普通的固定大小分块。
  3. 目录结构分块后太小的块,通过后续块的大小以及是否属于同一标题,可进行合并。
  4. 对于分块增加元数据,对分块文本进行标题注入。
  5. 处理中文分词,修复回车换行。

查询检索

  1. 使用LLM语义和BM25关键词的混合检索。
  2. 对召回内容进行重排序。

安装

  1. 将仓库代码克隆到一个本地目录: git clone https://github.com/ShionWakanae/llamaIndexSample.git
  2. 进入这个目录建立虚拟环境:python -m venv venv
  3. 激活虚拟环境:.\venv\scripts\activate
  4. 安装依赖:pip install -r requirements.txt

使用

Important

为了专注于索引和召回(包括调试),暂时先不支持其它格式的文档。 在进行之前,请先把文档处理成为markdown格式.md。可以使用微软的 mark it down 或者 pymupdf4llm 等等……

  1. .env_sample拷贝成.env,并修改其中的API地址密钥,各种模型配置(本地或在线),配置样例如下:
LLM_API_BASE=https://api.openai.com/v1
LLM_API_KEY=sk-xxxxx
LLM_MODEL=gpt-4.1-mini

EMBEDDING_MODEL=BAAI/bge-m3
RERANKER_MODEL=BAAI/bge-reranker-v2-m3
  1. 索引MarkDown类型的文件:python .\src\sample\Sample_index_with_llamaCpp.py 你的MD文件目录

  2. 查询知识库中的内容:python .\src\sample\Sample_RAG_from_storage.py '你的问题'

演示

点击打开B站视频:

视频演示

授权

license

本项目采用MIT许可证开源。

About

A little sample usage of `Llama Index`: Indexing some .md file, then RAG。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages