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 vector extension.

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)

  1. Run middleware – PostgreSQL + pgvector, Elasticsearch + IK plugin, MinIO (Docker commands provided in the README).
  2. Configure – Edit backend/src/main/resources/application‑local.yml with DB credentials, MinIO endpoint, and your DashScope API key.
  3. Start backend./mvnw spring-boot:run (default port 10001, API docs at /doc.html).
  4. Start frontendnpm install && npm run dev (default port 5173).
  5. 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