Overview of WeKnora System Components
mainWeKnora is composed of several core and optional components that work together to provide RAG (Retrieval-Augmented Generation), Agent, and Auto-Wiki capabilities.
Core Components
| Component | Tech Stack | Default Port | Responsibility |
|---|---|---|---|
| app (Backend) | Go / Gin | 8080 | REST API, Retrieval/QA, Agent engine, Asynchronous tasks (Asynq) |
| frontend | Vue 3 + Nginx | 80 | Web console; Nginx proxies /api to the app |
| docreader | Python / gRPC | 50051 | Document parsing, OCR, web scraping, image extraction |
| postgres | ParadeDB (PostgreSQL 17) | 5432 | Primary database + default hybrid retrieval engine (via RETRIEVE_DRIVER=postgres) |
| redis | Redis 7 | 6379 | Stream management (SSE recovery) and Asynq task queues |
| sandbox | Python 3.11 + Node 20 | — | One-time sandbox container for executing Agent Skills scripts |
Optional/Extensible Components
WeKnora supports various pluggable backends via the RETRIEVE_DRIVER and STORAGE_TYPE environment variables:
- Vector Databases: Qdrant, Milvus, Weaviate, Doris, Elasticsearch, or Tencent VectorDB.
- Knowledge Graph: Neo4j (for GraphRAG).
- Object Storage: MinIO (S3 compatible), COS, S3, OSS, OBS, or TOS (configured via
STORAGE_TYPE). - Search: SearXNG (self-hosted web search).
- Observability: Langfuse stack (Langfuse 3 + ClickHouse + MinIO).
- MCP Server:
mcp-server(Python) to expose WeKnora APIs as a Model Context Protocol server. - Hybrid Parsing:
odl-hybrid(Docling) for OpenDataLoader PDF hybrid parsing.