# 《Llamaindex大模型RAG开发实践》笔记

### Workflow

1. import data(llamaHub)
2. create doc from source data
3. create textNode from docs
4. create index from textNode

#### import data

* xxReader
* cloud service

#### Data to Doc

* simple one
* by sentence
* by token
* for code(AST)

NodeParser

* by sentence
* use LangChain module
* markdown
* json
* ...

#### metadata setting 质>量

* 手动
* 自动提取器
  * Summary Extractor
  * Title one
  * Keyword one
  * Pydantic lib
  * marvin

#### 数据隐私与脱敏 HuggingFace LLM

#### import pipeline 4 cache

#### Build Index

#### Custom Setting

Settings

* LLM
* Embedding
* Index Parser

#### About package chain

* metadata(摘要，关键词等等)
* index（摘要，关键词，树，知识图谱）
* retriever（向量检索器，摘要检索器等）

以上，属于llamaindex封装好的简单rag构建链路。 同时，llamaindex也提供更加定制化，精细化的构建方式

### 检索器原理

遍历索引并选取相关节点以构建所需上下文

* default: VectorIndexRetriever
* xxRetriever
* xxSelector
* 密集检索和稀疏检索以及混合检索
* small-to-big 检索
* and so on （是本书，也是本目录）

### 后处理

节点的筛选，优化

过滤，转换，重排序

by

* xxPostprocessor

or 基于大模型的后处理器

* xxRerank eg：LongLLMLinguaPostprocessor 2310.05736v2

评估重排的有效性：

* 基准数据集
* 用户反馈收集
* AB测试 。。。

### 响应合成

### 输出解析

结构化输出

* LangchainOutputParser
* Pydantic

### Chain so far

节点 索引 检索器 后处理器 响应合成器 输出解析器 查询引擎

### 查询引擎

QueryEngine

* 19个（大目录）

SubQuestionQueryEngine 多步骤推理的复杂查询

### 聊天引擎 4 对话历史记录

ChatEngine 多轮对话

结合上下文的问题压缩模式

### LLMCompiler智能体

规划 分派 执行

### llamaindex ：AgentRunner & AgentWorker

### C9 - C11

llamaindex高度定制化特性 RAG核心：LLM & Embddding Modol

本地运行

* llama.cpp
* Ollama
* LM Studio

OpenRouter 模型路由

llama packs

追踪评估

* Phoenix（span，trace）
* RAGAS

部署

streamlit社区云

基于对话代理的界面会简化用户的交互体验

### 展望

当模型能够处理相当长的上下文，我们还是否需要RAG？

永远不要停止学校的步伐，因为追求知识是一条永无止境的道路
