智能知识问答系统(初级版本已完成)
智能知识问答系统
项目简介
智能知识问答系统是一个基于 RAG(检索增强生成)技术的智能问答系统前端应用。用户可以创建多个智能体,为每个智能体上传专属知识库文件,通过向量检索和大语言模型结合,提供精准的知识问答服务。
核心特性
- 🤖 多智能体架构 - 支持创建、管理多个独立的智能体,每个智能体拥有专属知识库
- 📚 RAG 检索增强 - 基于 ChromaDB 向量数据库,实现高效的语义检索
- 🎯 双模式切换 - 可选择特定智能体问答或使用千问通用模型
- 🧠 智能问题分析 - 使用千问模型对用户问题进行语义理解和意图识别
- 🔍 增强搜索能力 - 三步式检索:问题分析 → 向量检索 → 答案生成
- 📄 多格式支持 - 支持 TXT、PDF 等多种文档格式的知识库构建
- ⚡ 高性能 API - 基于 FastAPI 构建的异步 RESTful API
- 💾 双数据库架构 - SQLite 存储智能体元数据,ChromaDB 存储向量数据
功能详解
1. 智能体管理
- 创建智能体:点击"新建"按钮,填写名称、描述,上传知识库文件
- 编辑智能体:点击智能体卡片的"编辑"选项,修改信息或更新文件
- 删除智能体:点击"删除"选项,确认后删除智能体及其知识库
2. 对话功能
- 选择智能体:点击左侧智能体列表选择对话对象
- 千问模式:点击"千问"按钮切换到通用模型
- 发送消息:输入问题后点击"发送"或按 Enter 键
- 清空对话:点击"清空对话"按钮重置对话历史
3. 知识库文件
- 支持格式:TXT、HTML、CSS、JavaScript、JSON、XML
- 文件大小限制:单个文件不超过 10MB
- 文件数量:每个智能体最多上传 10 个文件
4. Markdown 渲染
对话内容支持完整的 Markdown 语法:
- 标题、列表、引用
- 代码块(带语法高亮)
- 表格、链接、图片
- 粗体、斜体等文本格式
后续要优化的功能
1. 创建/编辑智能体:
- 文件上传功能优化,将文件存储到文件服务器
2. 丰富智能体:
- 增加智能体中的工作流、MCP协议、可选模型等功能
3. 增加对话历史管理模块:
- 增加对话历史的前端页面展示和存储
4. 前端大模型选择问答:
- 用户可选择想要对话的大模型,与之对话
代码编写方式
部分使用分为编程(Vibe Coding)
基于 RAG 技术的智能知识问答系统后端服务
技术架构
- Web 框架: FastAPI 0.115+ - 高性能异步 Web 框架
- 向量数据库: ChromaDB 0.6+ - 开源向量数据库
- 关系数据库: SQLite 3 - 轻量级关系型数据库
- LLM 集成:
- 阿里云千问 (Qwen3.5-plus) - 对话生成
- Text-Embedding-v4 - 文本向量化
- 文档处理:
- LangChain - 文档切分和处理
- pdfplumber - PDF 文档解析
系统架构
┌─────────────┐
│ 前端应用 │ (Vue3 + Element Plus)
└──────┬──────┘
│ HTTP/REST API
┌──────▼──────────────────────────────┐
│ FastAPI 服务层 │
│ ┌────────────┐ ┌──────────────┐ │
│ │ 智能体管理 │ │ RAG 问答 │ │
│ │ API │ │ API │ │
│ └────────────┘ └──────────────┘ │
└──────┬──────────────────┬───────────┘
│ │
┌──────▼──────┐ ┌─────▼──────────┐
│ SQLite │ │ ChromaDB │
│ (元数据) │ │ (向量数据) │
└─────────────┘ └────────────────┘
│ │
└────────┬─────────┘
│
┌───────▼────────┐
│ 阿里云千问 API │
│ (LLM 服务) │
└────────────────┘
❗️❗️❗️当前项目后端服务需要重新调整,目前仅基于Naive RAG 做的问答,后续会引入LangChain等。同时调整目录结构,具体可看
智能知识问答系统(前端)
技术栈
- Vue3.5 + TypeScript + Vite
UI 组件库
-
Element plus- 基于 Vue 3 的组件库
-
@element-plus/icons-vue - Element Plus 图标库
功能库
- Vue Router 4.6 - 官方路由管理器
- Axios 1.13 - HTTP 客户端
- Marked 17.0 - Markdown 解析器
- Highlight.js 11.11 - 代码语法高亮
项目结构
knowledage-agent/
├── src/
│ ├── api/ # API 接口定义
│ │ └── index.ts # 智能体相关接口
│ ├── router/ # 路由配置
│ │ └── index.ts # 路由定义
│ ├── utils/ # 工具函数
│ │ └── request.ts # Axios 封装
│ ├── views/ # 页面组件
│ │ ├── Home.vue # 主页 - 对话界面
│ │ └── CreateAgent.vue # 智能体创建/编辑页
│ ├── App.vue # 根组件
│ ├── main.ts # 应用入口
│ └── style.css # 全局样式
├── .env # 环境变量配置
├── index.html # HTML 模板
├── package.json # 项目依赖
├── tsconfig.json # TypeScript 配置
└── vite.config.ts # Vite 配置
本文来自博客园,作者:前端加油站,转载请注明原文链接:https://www.cnblogs.com/bllx/p/19687437

浙公网安备 33010602011771号