mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-04-27 01:36:30 +02:00
74 lines
2.5 KiB
Markdown
74 lines
2.5 KiB
Markdown
|
|
# Kiến Trúc Tích Hợp
|
||
|
|
|
||
|
|
Tài liệu này phác thảo cách ba thành phần của SurfSense (Backend, Web, Extension) giao tiếp và chia sẻ dữ liệu.
|
||
|
|
|
||
|
|
## Sơ Đồ Hệ Thống
|
||
|
|
|
||
|
|
```mermaid
|
||
|
|
graph TD
|
||
|
|
User[User]
|
||
|
|
|
||
|
|
subgraph Client Layer
|
||
|
|
Web[Web Dashboard]
|
||
|
|
Ext[Browser Extension]
|
||
|
|
end
|
||
|
|
|
||
|
|
subgraph Service Layer
|
||
|
|
API[Backend API]
|
||
|
|
Worker[Celery Workers]
|
||
|
|
Redis[(Redis Queue)]
|
||
|
|
end
|
||
|
|
|
||
|
|
subgraph Data Layer
|
||
|
|
DB[(Postgres DB)]
|
||
|
|
Vector[(Vector Store)]
|
||
|
|
Sync[(ElectricSQL/Sync)]
|
||
|
|
end
|
||
|
|
|
||
|
|
subgraph External
|
||
|
|
LLM[LLM Providers]
|
||
|
|
Apps[External Apps]
|
||
|
|
end
|
||
|
|
|
||
|
|
User --> Web
|
||
|
|
User --> Ext
|
||
|
|
|
||
|
|
Web -- REST/Streaming --> API
|
||
|
|
Ext -- REST --> API
|
||
|
|
|
||
|
|
API -- Read/Write --> DB
|
||
|
|
API -- Vector Search --> Vector
|
||
|
|
API -- Jobs --> Redis
|
||
|
|
Redis -- Polls --> Worker
|
||
|
|
|
||
|
|
Worker -- Ingest --> Apps
|
||
|
|
Worker -- Inference --> LLM
|
||
|
|
API -- Inference --> LLM
|
||
|
|
|
||
|
|
Web -- Sync --> Sync
|
||
|
|
Sync -- Data --> DB
|
||
|
|
```
|
||
|
|
|
||
|
|
## Các Điểm Tích Hợp (Integration Points)
|
||
|
|
|
||
|
|
### 1. Web tới Backend
|
||
|
|
- **Giao thức**: HTTP/REST + Server-Sent Events (SSE) cho Streaming
|
||
|
|
- **Xác thực**: OAuth / Bearer Token
|
||
|
|
- **Trao đổi chính**:
|
||
|
|
- **Chat**: Web gửi prompts -> Backend stream tokens + tool updates.
|
||
|
|
- **Config**: Web gửi cài đặt connector -> Backend xác thực & lưu trữ.
|
||
|
|
- **Search**: Web yêu cầu tìm kiếm -> Backend chạy RAG pipeline -> Trả về kết quả.
|
||
|
|
|
||
|
|
### 2. Extension tới Backend
|
||
|
|
- **Giao thức**: HTTP/REST
|
||
|
|
- **Mục đích**: Data ingestion (Lịch sử, Ngữ cảnh)
|
||
|
|
- **Luồng (Flow)**: Extension thu thập hoạt động duyệt web -> Đóng gói dữ liệu (Batching) -> Đẩy (Push) tới các endpoint `/ingest` của Backend.
|
||
|
|
|
||
|
|
### 3. Đồng bộ Dữ liệu (ElectricSQL)
|
||
|
|
- **Thành phần**: Web <-> Database
|
||
|
|
- **Mục đích**: Đồng bộ trạng thái thời gian thực (Real-time state synchronization) cho các tính năng cộng tác (như trạng thái chat chia sẻ) hoặc giữ cho giao diện frontend (optimistic UI) đồng bộ mà không cần refetch thủ công.
|
||
|
|
|
||
|
|
### 4. Backend tới AI Connectors
|
||
|
|
- **Giao thức**: Các API khác nhau (Slack API, Notion API, v.v.)
|
||
|
|
- **Luồng (Flow)**: Celery Workers thực thi các tác vụ nền (background jobs) để crawl/tải dữ liệu từ ứng dụng được kết nối của người dùng -> Xử lý/Phân mảnh (Process/Chunk) -> Lưu vào Vector DB.
|