> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dropcv.work/llms.txt
> Use this file to discover all available pages before exploring further.

# 什么是 RAG

> 了解 AI 怎么"查资料"再回答你——RAG 就是 AI 的搜索引擎。

你可能好奇：AI 怎么知道你的人才库里有谁？它怎么查到具体数据再回答你？答案就是 RAG。

## RAG 是什么

**RAG = Retrieval Augmented Generation（检索增强生成）**

一句话：**AI 先查资料，再回答你。**

打个比方：

* 没有 RAG 的 AI = 一个闭卷考试的学生，只能靠记忆回答
* 有 RAG 的 AI = 一个开卷考试的学生，可以翻书查资料再回答

对于猎头场景：

* 没有 RAG：AI 只能给你泛泛的建议，不知道你的人才库里具体有谁
* 有 RAG：AI 先去你的人才库里搜，找到具体的候选人，再给你分析

## RAG 的工作流程

```mermaid theme={null}
flowchart TB
    A[你问：有做过 To B SaaS 的产品经理吗] --> B[AI 分析你的问题]
    B --> C[去人才库搜索]
    C --> D[找到 8 位匹配的候选人]
    D --> E[AI 阅读候选人资料]
    E --> F[AI 整理成回答]
    F --> G[你看到：找到了 8 位...]
    
    style A fill:#10b981,color:#fff
    style G fill:#3b82f6,color:#fff
```

RAG 的核心步骤：

| 步骤       | 做什么          | 例子                    |
| -------- | ------------ | --------------------- |
| **理解问题** | AI 分析你想找什么   | "做过 To B SaaS 的产品经理"  |
| **检索数据** | 去数据库里搜索      | 在人才库中搜索匹配的候选人         |
| **阅读资料** | AI 阅读搜索到的内容  | 读取每个候选人的简历和档案         |
| **生成回答** | AI 整理成自然语言回复 | "找到了 8 位，以下是前 5 位..." |

## RAG 和普通 AI 的区别

|      | 普通 AI         | 有 RAG 的 AI                         |
| ---- | ------------- | ---------------------------------- |
| 知识来源 | 训练数据（截止到某个日期） | 你的实时数据                             |
| 回答依据 | 通用知识          | 你人才库里的具体数据                         |
| 准确性  | 可能瞎编          | 基于真实数据                             |
| 个性化  | 千人一面          | 为你量身定制                             |
| 举例   | "产品经理一般需要..." | "你的人才库里有 8 位做过 To B SaaS 的产品经理..." |

## RAG 在 DropCV 中的应用

DropCV 的 AI 能力都基于 RAG：

### 语义搜索

你说："找 3 年以上 React 经验，有大厂背景的前端工程师"

RAG 流程：

1. 理解你要的是"React 技能 + 大厂经验 + 前端岗位"
2. 在人才库中搜索匹配的候选人
3. 按匹配度排序
4. 返回最相关的 5 位

### JD 匹配

你粘贴一份 JD：

RAG 流程：

1. 解析 JD 中的关键要求
2. 在人才库中搜索符合要求的候选人
3. 对每个候选人计算匹配度
4. 输出匹配报告

### 候选人分析

你问："帮我分析一下张三的简历"

RAG 流程：

1. 在人才库中找到张三的档案
2. 阅读他的完整简历、备注、历史记录
3. 结合你的问题进行分析
4. 输出分析报告

## 为什么 RAG 比直接问 AI 好

<AccordionGroup>
  <Accordion title="直接问 AI：有做过 To B SaaS 的产品经理吗？">
    AI 会给你一个泛泛的回答："To B SaaS 产品经理通常需要具备 SaaS 产品规划、客户需求分析、产品迭代等能力..."

    这是通用知识，对你没用。
  </Accordion>

  <Accordion title="用 RAG 问同样的问题">
    AI 会先去你的人才库里搜，然后回答："你的人才库里有 8 位做过 To B SaaS 的产品经理。其中 3 位在杭州，2 位在上海，2 位在北京，1 位在深圳。以下是匹配度最高的 3 位：1. 张三 - 某 SaaS 公司 高级产品经理..."

    这是基于你的数据的回答，直接可用。
  </Accordion>
</AccordionGroup>

## 你需要了解 RAG 的技术细节吗

不需要。作为用户，你只需要知道：

1. **RAG 让 AI 能查到你的数据**，而不是瞎编
2. **你的人才库越丰富，RAG 的效果越好**
3. **你的搜索描述越具体，RAG 找到的结果越准确**

技术实现由 DropCV 负责，你只管用就行。

## 实际对话演示

<AccordionGroup>
  <Accordion title="场景：语义搜索">
    ```
    你：找 3 年以上 React 经验，有大厂背景的前端工程师

    RAG 流程：
    [1] 理解意图：React 技能 + 大厂经验 + 前端岗位 + 3 年以上
    [2] 搜索人才库：语义匹配，不只是关键词匹配
    [3] 返回结果：按匹配度排序

    AI：找到了 5 位符合条件的候选人：

    1. 王思远 - 8 年经验，某大厂前端负责人（匹配度 95）
       技能：React、TypeScript、微前端
    2. 李明华 - 6 年经验，全栈工程师（匹配度 82）
       技能：React、Node.js、GraphQL
    3. 张子涵 - 5 年经验，React 专家（匹配度 78）
       技能：React Native、Next.js
    ```
  </Accordion>

  <Accordion title="场景：JD 匹配">
    ```
    你：[粘贴 JD] 高级后端工程师，5 年以上 Go 经验...

    RAG 流程：
    [1] 解析 JD：Go 语言 + 5 年 + 微服务 + 高并发
    [2] 搜索人才库：找匹配的候选人
    [3] 逐一分析：计算匹配度
    [4] 生成报告：符合点、差距、建议

    AI：匹配完成！以下是结果：

    🟢 高度匹配（3 位）
    1. 王思远 - 8 年 Go 经验，某大厂后端负责人
       符合：Go 微服务、高并发系统、K8s
       差距：未提及 gRPC 经验
       建议：面试时确认 RPC 相关经验

    🟡 部分匹配（2 位）
    2. 李明华 - 6 年 Java 经验，近期转 Go
       符合：微服务架构、团队管理
       差距：Go 经验仅 1 年
    ```
  </Accordion>

  <Accordion title="场景：候选人分析">
    ```
    你：帮我分析一下王思远的简历

    RAG 流程：
    [1] 在人才库中找到王思远的档案
    [2] 阅读完整简历、备注、历史记录
    [3] 结合问题进行分析

    AI：根据王思远的档案，分析如下：

    【核心优势】
    - 8 年 Go 语言经验，从 Go 1.8 开始使用
    - 主导过日均千万级请求的微服务架构
    - 有完整的 K8s 集群管理经验
    - 带过 6 人技术团队

    【潜在风险】
    - 简历中未提及 gRPC 经验
    - 最近一次跳槽是在 8 个月前

    【面试建议】
    - 重点问分布式系统设计能力
    - 了解团队管理风格
    - 确认对新机会的稳定性预期
    ```
  </Accordion>
</AccordionGroup>

## 下一步

<CardGroup cols={2}>
  <Card title="什么是 Workflow" icon="workflow" href="/ai-basics/what-is-workflow">
    了解 AI 工作流自动化。
  </Card>

  <Card title="什么是 Agent" icon="bot" href="/ai-basics/what-is-agent">
    了解能自主完成任务的 AI。
  </Card>
</CardGroup>
