DevYangJC/Argus
🌱 Argus 是一个基于 RAG 架构的开源知识库平台,后端采用 Java 21 + Spring Boot + MyBatis-Plus + PostgreSQL/pgvector,前端采用 Vue 3 + TypeScript + Element Plus,AI 层基于 Spring AI Alibaba(通义千问)+ ReactAgent 图引擎,以 MinIO + Elasticsearch 为存储与检索引擎。
Argus – Enterprise‑grade RAG Knowledge‑Base Platform
What it is – Argus is a self‑hosted, end‑to‑end system that lets companies ingest private documents, turn them into searchable embeddings and keyword indexes, and then answer user questions with a large language model (LLM) that is forced to cite real source material. It combines a RAG (Retrieval‑Augmented Generation) pipeline with an AI‑Agent that can switch between pure chat and knowledge‑base search, all wrapped in a Spring Boot + Vue web UI.
Core capabilities
| Feature | How it works |
|---|---|
| Document ingestion | Multi‑format (PDF, DOCX, MD, TXT) → async ETL pipeline (parse → clean → slice → embed) → stored in PostgreSQL + pgvector (HNSW) and Elasticsearch (IK + BM25). |
| Hybrid retrieval | Parallel vector search (cosine distance) and keyword search; results are merged with Reciprocal Rank Fusion (RRF) and enriched by neighbour‑window expansion. |
| Evidence evaluation | Four‑level scoring (NONE → WEAK → PARTIAL → SUFFICIENT). If evidence is insufficient the system refuses to answer. |
| Citation & traceability | Every answer includes the source document, chunk ID and relevance score. |
| AI Agent | Built on Spring AI Alibaba ReactAgent. The agent decides whether to call the retrieval tool, supports two modes (CHAT / KB_SEARCH), compresses conversation history in three tiers, and streams responses via SSE. |
| Enterprise security | Role‑based access (Admin / Owner / Manager / Member), JWT access + refresh tokens, BCrypt password hashing, group‑level data isolation, AOP audit logs. |
| Collaboration | Groups with invitation codes, approval workflow, fine‑grained permissions for document and knowledge‑base operations. |
Architecture snapshot
Frontend (Vue 3 + Element Plus) → API Gateway (JWT filter) →
├─ Auth / User / Group services
├─ Document service (MinIO storage) → Ingestion pipeline →
│ ├─ PostgreSQL + pgvector (vector index)
│ └─ Elasticsearch (keyword index)
├─ QA service (LLM query planning, hybrid RRF retrieval, evidence eval)
└─ Assistant service (ReactAgent, short‑term memory, SSE)
LLM & embeddings are provided by Alibaba DashScope (Chat + text‑embedding‑v3).
Tech stack (as listed in the repo)
- Backend: Java 21, Spring Boot 3.5, MyBatis‑Plus, PostgreSQL 16 + pgvector, Elasticsearch 8.x (IK analyzer), MinIO (S3‑compatible), Spring AI Alibaba (Chat & Agent), JJWT, BCrypt, Apache PDFBox / POI.
- Frontend: Vue 3 (Composition API), TypeScript, Vite, Pinia, Element Plus, Axios.
- Infrastructure: Docker‑run Elasticsearch, MinIO; PostgreSQL with
vectorextension.
Who might use it?
- Enterprises that need a private, searchable knowledge base (e.g., internal manuals, compliance documents) while avoiding LLM hallucinations.
- Product teams building AI‑augmented support portals that must cite source material.
- Developers looking for a reference implementation of a full RAG stack with hybrid retrieval, evidence scoring, and an agent‑driven chat interface.
Quick start (summary)
- Run middleware – PostgreSQL + pgvector, Elasticsearch + IK plugin, MinIO (Docker commands provided in the README).
- Configure – Edit
backend/src/main/resources/application‑local.ymlwith DB credentials, MinIO endpoint, and your DashScope API key. - Start backend –
./mvnw spring-boot:run(default port 10001, API docs at/doc.html). - Start frontend –
npm install && npm run dev(default port 5173). - Log in with the auto‑created admin (
admin / admin123) and begin uploading documents, creating groups, and asking questions.
License
MIT – free for commercial and non‑commercial use.
All information above is taken directly from the repository’s README; no additional features have been inferred.
Related
- Project
- Project
- Project
- Project
- Project