智能知识问答系统(初级版本已完成)

智能知识问答系统

项目简介

智能知识问答系统是一个基于 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 配置

posted @ 2026-03-08 22:06  前端加油站  阅读(4)  评论(0)    收藏  举报