昇腾社区首页
中文
注册

软件架构

RAG SDK软件架构如图1所示,架构图中的关键模块介绍如下。

图1 软件架构图

  • RAG Python API:Python API提供模块化功能接口,方便用户灵活调用各类RAG服务。
  • 知识管理:提供RAG场景的知识库管理,支持用户创建多个知识库,每个知识库可上传文档、表格、图片等文件,检索时可选择作为大模型的外挂知识库。支持文档、表格、图片的加载与解析,文档切分,以及高效的向量检索技术,显著提升检索效果和召回率。为后续的向量化和检索提供数据支持。
  • 索引:通常包括语料收集、语料解析、语料切割和索引构建(向量化),以便之后进行向量检索。生成的索引基于知识管理模块的内容,并且依赖向量化的结果来完成检索的高效匹配。
  • 向量化:提供调用向量化模型的能力,包括embedding类和reranker类。支持本地部署和服务化部署两种形态,服务化框架采用text-embeddings-inference。提供嵌入模型、重排模型的加载和第三方服务对接,支持对接大语言模型、图像生成模型服务。向量化结果是检索的基础,确保查询与知识库内容的匹配。
  • 检索:向量检索加速利用昇腾NPU异构检索加速框架,针对高维空间中的海量数据,提供高性能的检索。当接收到用户查询后,调用大模型将查询文本进行查询转换,并生成查询向量;依据查询向量进行搜索和重排,然后把搜索结果返回给大模型进行进一步处理。检索依赖向量化的结果,通过向量对比进行高效匹配。
  • 缓存:对接开源gptcache,支持完全一致缓存(memory cache)和语义相似缓存(similarity cache),加速RAG应用。通过缓存已查询的结果,减少重复计算,提升检索速度。
  • Agentic RAG:支持快速搭建RAG工作流,多轮对话提供上下文理解、误解修正、流畅对话体验等。同时基于检索场景提供查询改写能力,进一步提高检索召回率。结合检索结果和查询改写技术,确保多轮对话的流畅性和检索效果。
  • 应用加速算子层:提供昇腾亲和模型优化加速,实现更高的吞吐和更短的响应时间。优化向量化、检索等核心模块的运行效率,确保整体系统快速响应。