# 🎓 高校智能问答系统
**作者**: Hive-AI(蜂巢智造)
<div align="center">
<img src="https://img.shields.io/badge/Python-3.10+-blue.svg" alt="Python">
<img src="https://img.shields.io/badge/Node.js-18+-green.svg" alt="Node.js">
<img src="https://img.shields.io/badge/PostgreSQL-15+-blue.svg" alt="PostgreSQL">
<img src="https://img.shields.io/badge/AI-Google%20Gemini-orange.svg" alt="Google Gemini">
<img src="https://img.shields.io/badge/Vector-pgvector-purple.svg" alt="pgvector">
<img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License">
</div>
## 📋 项目概述
基于检索增强生成(RAG)架构的高校智能问答系统,旨在为高校提供智能化的文档问答服务。系统支持多种文档格式上传,通过向量化技术实现语义检索,结合Google Gemini Pro大语言模型生成准确的答案。
### 🎯 核心特性
- **🤖 智能问答**: 基于RAG架构,结合向量检索和大语言模型
- **📄 多格式支持**: 支持PDF、DOCX、XLSX、TXT等文档格式
- **🔍 语义检索**: 使用pgvector扩展实现高效的向量相似度搜索
- **💬 流式响应**: 支持答案的实时流式输出
- **🎨 现代UI**: 类ChatGPT的用户界面,简洁易用
- **🛡️ 安全可靠**: 完整的用户认证和权限管理
- **🚀 高性能**: 支持高并发访问和缓存优化
## 🏗️ 系统架构
### 技术栈
#### 后端 (FastAPI)
- **语言**: Python 3.10+
- **框架**: FastAPI
- **数据库**: PostgreSQL 15+ with pgvector
- **缓存**: Redis
- **依赖管理**: Poetry
- **AI模型**: Google Gemini Pro + text-embedding-004
#### 前端 (Next.js)
- **语言**: TypeScript
- **框架**: Next.js 14 (App Router)
- **样式**: Tailwind CSS
- **状态管理**: Zustand
- **数据获取**: React Query/SWR
- **包管理**: pnpm
#### 共享
- **类型定义**: `packages/shared-types`
- **Monorepo**: pnpm workspace
### 架构图
```mermaid
graph TB
subgraph "前端层"
A[Next.js 应用] --> B[登录页面]
A --> C[聊天界面]
A --> D[管理后台]
end
subgraph "后端层"
E[FastAPI 服务] --> F[认证模块]
E --> G[文档处理]
E --> H[问答引擎]
E --> I[管理API]
end
subgraph "数据层"
J[(PostgreSQL)] --> K[用户数据]
J --> L[文档数据]
J --> M[向量数据]
N[(Redis)] --> O[会话缓存]
N --> P[查询缓存]
end
subgraph "AI服务"
Q[Google Gemini Pro] --> R[文本生成]
S[text-embedding-004] --> T[向量化]
end
A --> E
E --> J
E --> N
H --> Q
G --> S
```
## 🚀 快速开始
### 环境要求
- **Python**: 3.10+
- **Node.js**: 18+
- **Docker**: 最新版本
- **pnpm**: 最新版本
- **Google AI API Key**: 需要申请
### 1. 克隆项目
```bash
git clone https://github.com/your-username/qa-system.git
cd qa-system
```
### 2. 环境配置
```bash
# 复制环境变量文件
cp services/.env.example services/.env
# 配置Google AI API密钥
# 编辑 services/.env 文件,设置 GOOGLE_API_KEY
```
### 3. 启动开发环境
#### Windows
```bash
cd services
start-dev.bat
```
#### Linux/Mac
```bash
cd services
docker-compose up -d
```
### 4. 安装依赖
```bash
# 安装所有依赖
pnpm install
# 后端依赖
cd apps/backend
poetry install
# 前端依赖
cd apps/frontend
pnpm install
```
### 5. 启动应用
```bash
# 启动后端 (终端1)
cd apps/backend
poetry run uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
# 启动前端 (终端2)
cd apps/frontend
pnpm dev
```
### 6. 访问应用
- **前端**: http://localhost:3000
- **后端API**: http://localhost:8000
- **API文档**: http://localhost:8000/docs
- **LangFlow**: http://localhost:7860
## 📖 使用指南
### 管理员操作
#### 登录系统
```
用户名: admin
密码: admin123
```
#### 文档管理
1. 访问后台管理页面
2. 上传支持的文档格式(PDF、DOCX、XLSX、TXT)
3. 系统自动解析并向量化文档内容
4. 查看文档处理状态和统计信息
#### 用户管理
1. 创建新用户账户
2. 设置用户权限
3. 管理用户状态
### 用户操作
#### 智能问答
1. 登录系统
2. 在聊天界面输入问题
3. 获得基于文档内容的准确答案
4. 查看对话历史
#### 高级功能
- **上下文对话**: 系统记住对话历史
- **多轮问答**: 支持追问和澄清
- **引用溯源**: 查看答案来源文档
## 🔧 开发指南
### 项目结构
```
高校智能问答系统/
├── apps/
│ ├── backend/ # FastAPI后端
│ │ ├── app/
│ │ │ ├── api/ # API路由
│ │ │ ├── core/ # 核心配置
│ │ │ ├── models/ # 数据模型
│ │ │ ├── services/ # 业务逻辑
│ │ │ └── utils/ # 工具函数
│ │ ├── tests/ # 测试文件
│ │ └── pyproject.toml # Poetry配置
│ │
│ └── frontend/ # Next.js前端
│ ├── src/
│ │ ├── app/ # App Router页面
│ │ ├── components/ # 组件
│ │ ├── hooks/ # 自定义Hooks
│ │ ├── lib/ # 工具库
│ │ └── types/ # 类型定义
│ └── package.json
│
├── packages/
│ └── shared-types/ # 共享类型定义
│
├── services/
│ ├── docker-compose.yml # 服务编排
│ ├── init-db.sql # 数据库初始化
│ └── README.md # 服务文档
│
├── scripts/ # 构建脚本
├── docs/ # 项目文档
├── render.yaml # Render部署配置
└── README.md # 项目说明
```
### 核心模块
#### 1. 文档处理模块
```python
# apps/backend/app/services/document_processor.py
class DocumentProcessor:
def parse_document(self, file_path: str) -> str
def chunk_text(self, text: str) -> List[str]
def vectorize_chunks(self, chunks: List[str]) -> List[Vector]
```
#### 2. 问答引擎模块
```python
# apps/backend/app/services/qa_engine.py
class QAEngine:
def process_question(self, question: str) -> str
def retrieve_context(self, question: str) -> List[str]
def generate_answer(self, question: str, context: str) -> str
```
#### 3. 向量检索模块
```python
# apps/backend/app/services/vector_search.py
class VectorSearch:
def similarity_search(self, query_vector: Vector, top_k: int) -> List[Document]
def hybrid_search(self, query: str, filters: Dict) -> List[Document]
```
### API接口
#### 认证接口
```python
POST /api/auth/login # 用户登录
POST /api/auth/logout # 用户登出
GET /api/auth/me # 获取当前用户信息
```
#### 文档管理接口
```python
POST /api/documents/upload # 上传文档
GET /api/documents # 获取文档列表
GET /api/documents/{id} # 获取文档详情
DELETE /api/documents/{id} # 删除文档
```
#### 问答接口
```python
POST /api/chat # 发送问题
GET /api/chat/history # 获取对话历史
POST /api/chat/feedback # 提交反馈
```
### 数据库设计
#### 用户表 (users)
```sql
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
email VARCHAR(100),
is_active BOOLEAN DEFAULT TRUE,
is_admin BOOLEAN DEFAULT
没有合适的资源?快使用搜索试试~ 我知道了~
高校智能问答系统 + langflow + pgvector + gemini

共129个文件
py:50个
tsx:17个
md:17个

1 下载量 166 浏览量
2025-07-18
10:51:07
上传
评论
收藏 304KB ZIP 举报
温馨提示
项目概述 基于检索增强生成(RAG)架构的高校智能问答系统,旨在为高校提供智能化的文档问答服务。系统支持多种文档格式上传,通过向量化技术实现语义检索,结合Google Gemini Pro大语言模型生成准确的答案。 核心特性 1.智能问答: 基于RAG架构,结合向量检索和大语言模型 2.多格式支持: 支持PDF、DOCX、XLSX、TXT等文档格式 3.语义检索: 使用pgvector扩展实现高效的向量相似度搜索 4.流式响应: 支持答案的实时流式输出 5.现代UI: 类ChatGPT的用户界面,简洁易用 6. 安全可靠: 完整的用户认证和权限管理 7.高性能: 支持高并发访问和缓存优化
资源推荐
资源详情
资源评论































收起资源包目录





































































































共 129 条
- 1
- 2
资源评论



海棠AI实验室

- 粉丝: 4850
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
