Skip to content

系统概览

TrustRAG 采用模块化的三层架构,支持桌面和服务器两种部署模式。

整体架构

text
┌─────────────────────────────────────────┐
│          Flutter Client (UI)            │
│   Windows / macOS / Linux / Web / iOS   │
└──────────────────┬──────────────────────┘
                   │ HTTP REST API
┌──────────────────▼──────────────────────┐
│           Rust Backend (Axum)           │
│  ┌──────────┐ ┌──────────┐ ┌────────┐  │
│  │ Chat API │ │ Doc API  │ │ Search │  │
│  └────┬─────┘ └────┬─────┘ └───┬────┘  │
│       │             │           │       │
│  ┌────▼─────────────▼───────────▼────┐  │
│  │       Database Abstraction        │  │
│  │  ┌─────────┐  ┌───────────────┐   │  │
│  │  │ SQLite  │  │  PostgreSQL   │   │  │
│  │  │ + FTS5  │  │  + pgvector   │   │  │
│  │  └─────────┘  └───────────────┘   │  │
│  └───────────────────────────────────┘  │
└─────────────────────────────────────────┘

核心模块

API 层

  • Chat API — 对话管理、消息收发、流式生成
  • Document API — 文档上传、解析、索引
  • Search API — 全文搜索和向量搜索
  • Citation API — 引用追踪和审核

服务层

  • RAG Service — 检索增强生成管线
  • Citation Service — 引用提取和映射
  • Review Service — 文档审核工作流

数据层

  • 数据库抽象层 — 统一接口,隐藏底层差异
  • SQLite + FTS5 — 桌面模式,全文搜索
  • PostgreSQL + pgvector — 服务器模式,向量检索

设计原则

  • 编译时特性切换 — 通过 Cargo features 在编译时选择数据库后端
  • 零依赖桌面部署 — 桌面模式不依赖外部服务
  • API 兼容 — 两种模式对外暴露相同的 REST API

Released under the Apache 2.0 License.