# 构建向量搜索应用程序入门

## 概述

AI 现在是一个前沿方向，很多开发者希望学习这方面的知识。但是在学习过程中，存在很多阻碍，导致他们无法正常的完成学习，例如：

- 缺少 AI 相关的基础知识；
- 相关底层应用过于复杂；
- 没有 AI 应用的手把手教学文档。

因此，我们创建了这个实验，在本实验中，您将学习到：

- 如何使用 TiDB Serverless 作为 AI 应用的数据存储，加速你的 AI 开发过程。
- 什么是 Embedding，它能做什么？
- 有了 Embedding 向量之后，我们能用它来做什么？
- 在有大量数据之后，如何使用 RAG / GraphRAG 进行数据检索。
- 如何使用 DSPy 将文字抽取成为图，并将图存入 TiDB Serverless，随后使用图检索，增强 RAG 能力。

### 任务

- 文字相似度检索

  - 使用 OpenAI 的 Embedding 模型，调用其 API，完成文字的 Embedding
  - 存储 Embedding 向量及原始文字到 TiDB Serverless
  - 使用 TiDB 的 SQL 语言，进行向量相似度检索，并取回与用户问题最相关的文字数据

- 图片搜索

  - 使用 CLIP 预训练模型，对图片进行特征提取，得到 Embedding
  - 存储 Embedding 向量及原始图片 ID 到 TiDB Serverless
  - 使用 TiDB 的 SQL 语言，进行向量相似度检索，并取回与给定图片在特征上最相似的图片

- GraphRAG 检索

  - 对事先构建在 TiDB Serverless 上的图进行检索
  - 使用图取回与用户问题最相关的文字数据

- 从构建到读取，手把手完成一个 GraphRAG

  - 使用 DSPy 将文字提取出图的 Entities 和 Relationships
  - 对 Entities 进行 Embedding 向量化
  - 存储 Entities 和 Relationships 到 TiDB Serverless
  - 查询 TiDB Serverless 内的图来提升 RAG 的性能

### 实验时长

- 完成本实验大约需要 1.5 小时。

> [!TIP]
> 实验室环境部署完成后，点击底部栏上的 **前进** 进入 **模块 1**。

## 模块 1：文字相似度检索



## 模块 2：图片搜索

## 模块 3：GraphRAG 检索

## 模块 4：从构建到读取，手把手完成一个 GraphRAG

## 结论
