找回密码
 立即注册
首页 业界区 业界 Spring with AI (5): 搜索扩展——向量数据库与RAG(下) ...

Spring with AI (5): 搜索扩展——向量数据库与RAG(下)

焦和玉 3 小时前
本文代码:
https://github.com/JunTeamCom/ai-demo/tree/release-5.0
https://github.com/JunTeamCom/ai-demo-tools/tree/release-5.0/data-loader
本章讲解查询向量数据库、RAG应用。
Spring with AI系列,只关注上层AI的应用程序(基于JAVA搭建),不关注底层的LLM原理、搭建等技术。
RAG能通过实时搜索数据库的方式,扩展已经训练固化的大模型的知识能力。
RAG(Retrieval-Augmented Generation)检索增强生成
retrieval /rɪˈtriːvl/ n.检索
augmented /ɔ:g'mentɪd/ adj.增强的
generation /ˌdʒenəˈreɪʃn/ n.生成
通过检索、增强大模型生成的内容。
在前文中,我们通过文本模板,补充了“规则”,进而增强了大模型生成的内容。
然而这只是简单的“文本匹配+配置文件”的方式,面对复杂问题和庞大的知识库,完全不具备现实意义。
RAG整体的流程和组成部分如下:
flowchart LR    subgraph VectorDB[向量数据库模块]        VectorStore[(向量数据库)]:::db    end    subgraph DocumentLoader[文档加载模块]        OriginalDocs[① 原始文档] --> Splitter[文档分割器]:::process        Splitter --> DocChunks[② 文档分块]        DocChunks --> CalcEmb[③ 计算向量嵌入]:::process        CalcEmb -->|存入| VectorStore    end    subgraph RAGApp[支持RAG的应用]        Question[问题] --> App[④ 应用]:::app        App -->|搜索相似文档| VectorStore        VectorStore -->|返回相似文档| App        App --> Prompt[⑤ 组装提示词]        Prompt --> LLM[大语言模型]        LLM --> Answer[答案]        Answer --> App        App --> Output[输出答案]    end    classDef process fill:#a5d6a7,stroke:#388e3c,stroke-width:2px    classDef app fill:#ffab91,stroke:#e64a19,stroke-width:2px    classDef db fill:#bbdefb,stroke:#1976d2,stroke-width:2px    classDef llm fill:#ffcc80,stroke:#f57c00,stroke-width:2px本Demo的具体场景化,上图变为:
具体场景的流程如下:
flowchart LR    subgraph VectorDB[向量数据库模块]        VectorStore[(
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册