# ai学习 **Repository Path**: flyerking/ai-learning ## Basic Information - **Project Name**: ai学习 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-18 - **Last Updated**: 2026-10-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RAG Q&A System (Single-Server Deployment) A ready-to-use Retrieval-Augmented Generation Q&A service: upload text documents → automatic parsing, chunking and vectorization → pick any external LLM from the UI → streaming answers with source citations. - Web UI: - Default password: `rag@2025` (change `ACCESS_PASSWORD` in `.env`) - API docs: ## Stack | Layer | Choice | | --- | --- | | Frontend | Vue 3 + Vite + Element Plus + Pinia (static build served by Nginx) | | Backend | Python 3.11 + FastAPI + Uvicorn (SSE streaming) | | Vector DB | Qdrant (single container, low memory) | | Object storage | MinIO (S3 compatible, stores uploaded originals) | | Metadata | MySQL 8 (`xuefei` database, tables prefixed `rag_`) | | Embeddings | local ONNX `bge-small-zh-v1.5` (512-dim, int8, 24MB) or any OpenAI-compatible endpoint | | Retrieval | dense (Qdrant) + BM25 (jieba) fused with RRF | | LLM | any OpenAI-compatible API: DeepSeek / OpenAI / DashScope(Qwen) / Moonshot / Zhipu / SiliconFlow / Ollama / self-hosted | | Proxy | Nginx (static + `/api` reverse proxy, buffering off for SSE) | ## Quick start ```bash # on the server cd /opt/rag-service sudo bash deploy/install.sh ``` Then open the UI, go to **系统设置 → 大模型配置**, choose a provider (e.g. DeepSeek), paste your API Key, click **测试连接** and **保存**. Upload documents in **知识库管理**, then ask questions in **智能问答**. Supported upload formats: `txt, md, csv, json, log, html, pdf, docx, xlsx`. See [README.md](README.md) (Chinese) for the full guide, [docs/DEPLOY.md](docs/DEPLOY.md) for operations and troubleshooting, and [docs/API.md](docs/API.md) for the HTTP contract.