# AI_OaSystem **Repository Path**: super_coding/OaSystem ## Basic Information - **Project Name**: AI_OaSystem - **Description**: 技术栈:Python + DRF + MySQL + Redis + Vue + Element + Pinia + Langchain + MCP 基于 Django 5 + Vue 3 的前后端分离办公系统,集成 DeepSeek LLM 智能助手: 提供工作日志 、日程管理、考勤管理、通知公告、权限管理、集成 DeepSeek API + MCP 工具调 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-10 - **Last Updated**: 2025-12-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI_Demo1 - 智能 OA 系统 基于 **Django 5** + **Vue 3** 的前后端分离办公系统,集成 **DeepSeek LLM** 智能助手 --- ## 🎯 核心功能 - 🤖 **LLM 智能助手** - DeepSeek API + MCP 数据库查询(禁止信息编造) - 📝 **工作日志** - 日报/周报/月报管理 - 📅 **日程管理** - 待办事项、优先级、状态管理 - 👥 **考勤管理** - 请假申请、审批流程 - 📢 **通知公告** - 发布与查看系统通知 - 🔐 **权限管理** - 基于角色的访问控制(员工/领导/董事) --- ## 🛠️ 技术栈 **后端:** Python 3.11 + Django 5 + Django REST Framework + MySQL + Redis **前端:** Vue 3 + Element Plus + Pinia + Vite --- ## 📁 目录结构 ``` AI_Demo1/ ├── aibackend/ │ ├── apps/ │ │ ├── ai_auth/ # 用户认证 (AIUser, AIDepartment) │ │ ├── absent/ # 考勤管理 │ │ ├── inform/ # 通知公告 │ │ ├── worklog/ # 工作日志 │ │ ├── schedule/ # 日程管理 │ │ └── llm_chat/ # LLM 助手 + MCP 服务 │ ├── AI_Demo1/ # 项目配置 │ └── manage.py │ ├── aifront/ │ ├── src/ │ │ ├── api/ # HTTP 客户端 │ │ ├── views/ # 页面组件 │ │ ├── router/ # 路由配置 │ │ └── stores/ # Pinia 状态 │ └── package.json │ └── PROJECT_OVERVIEW.md ``` --- ## 🚀 快速开始 ### 环境要求 - Python 3.11 - Node.js 16+ - MySQL 8.0+ - Redis 6.0+ ### 后端启动 ```bash cd aibackend pip install -r requirements.txt python manage.py migrate python manage.py runserver ``` 后端服务:http://127.0.0.1:8000 ### 前端启动 ```bash cd aifront npm install npm run dev ``` 前端服务:http://localhost:8888 --- ## 📚 主要功能模块 ### 1. LLM 智能助手 集成 DeepSeek API + MCP 工具调用 **支持的查询:** - "我的工作日志" → 查询个人日志 - "今天的待办事项" → 查询今日日程 - "研发部有哪些员工" → 查询部门员工 - "技术部的联系方式" → 查询员工邮箱 - "最新通知" → 查询系统通知 **关键特性:** - ✅ 前置数据库查询(禁止编造) - ✅ 多轮上下文理解 - ✅ 系统提示词约束 ### 2. 工作日志 ```python WorkLog(title, content, summary, plan, log_date, log_type) ``` - 撰写日报/周报/月报 - 查看个人日志 - 查看下属日志(领导权限) - 日志统计 ### 3. 日程管理 ```python Schedule(title, description, priority, status, start_time, end_time) ``` - 创建待办事项 - 优先级设置(高/中/低) - 状态管理(待办/已完成/已取消) - 标记完成功能 ### 4. 用户认证 ```python AIUser(username, realname, email, department, permission) AIDepartment(name, intro, leader, manager) ``` - JWT 登录认证 - 基于角色的权限控制 - 部门组织架构管理 ### **5.架构说明** ``` ┌─────────────────────────────────────────────────────────┐ │ 用户提问(LLM 助手) │ └──────────────────────┬──────────────────────────────────┘ │ ↓ ┌─────────────────────────────────────────────────────────┐ │ DeepSeek LLM 分析用户意图 │ │ 判断是否需要调用 MCP 工具 │ └──────────────────────┬──────────────────────────────────┘ │ ┌─────────────┼──────────────┐ ↓ ↓ ↓ ┌────────┐ ┌──────────┐ ┌──────────┐ │ RAG │ │ MCP │ │ LLM │ │知识库 │ │ 工具调用 │ │ 直接回答 │ └────────┘ └──────────┘ └──────────┘ │ │ │ └─────────────┼──────────────┘ ↓ ┌─────────────────────────┐ │ MCP 服务执行 │ │ - 员工信息查询 │ │ - 考勤数据查询 │ │ - 通知发送 │ └──────────┬──────────────┘ ↓ ┌──────────────────────────┐ │ 返回结果给 AI │ │ AI 整合并回复用户 │ └──────────────────────────┘ ``` --- ## 🔧 配置说明 ### 环境变量 (.env) ```env DEEPSEEK_API_KEY=sk-your-api-key ``` ### Django 配置 (settings.py) ```python # 数据库 DATABASES = { "default": { "ENGINE": "django.db.backends.mysql", "NAME": "aidemo1", "USER": "root", "PASSWORD": "123456", "HOST": "localhost", } } # 自定义用户模型 AUTH_USER_MODEL = "ai_auth.AIUser" # 关闭尾部斜杠(重要) APPEND_SLASH = False # Redis 缓存 CACHES = { "default": { "BACKEND": "django.core.cache.backends.redis.RedisCache", "LOCATION": "redis://127.0.0.1:6379/0", } } ``` ### 前端配置 (.env.development) ```env VITE_BASE_URL=http://127.0.0.1:8000 ``` --- ## 📊 数据模型关系 ``` AIUser (用户) ├── department → AIDepartment ├── worklogs ← WorkLog ├── schedules ← Schedule └── absents ← Absent AIDepartment (部门) ├── leader → AIUser ├── manager → AIUser └── members ← AIUser WorkLog (日志) ├── author → AIUser └── log_type (1=日报, 2=周报, 3=月报) Schedule (日程) ├── user → AIUser ├── priority (1=低, 2=中, 3=高) └── status (1=待办, 2=已完成, 3=已取消) Absent (请假) ├── requester → AIUser └── status (1=待审, 2=已批, 3=已拒) ``` --- ## 🔌 API 端点 ``` 认证 POST /auth/login POST /auth/register GET /auth/userinfo 工作日志 GET /worklog/logs?who=my|sub POST /worklog/logs PUT /worklog/logs/{id} DELETE /worklog/logs/{id} 日程 GET /schedule/schedules?status=pending|completed POST /schedule/schedules POST /schedule/schedules/{id}/complete LLM 助手 GET /llm/sessions POST /llm/sessions POST /llm/sessions/{id}/message ``` --- ## 🎓 关键技术 ### MCP 查询流程 ``` 用户问题 ↓ 提取上下文(最近两轮对话) ↓ query_mcp_data(user_question, context_messages) ├─ 合并上下文 ├─ 匹配查询类型 ├─ 查询数据库 └─ 返回结构化数据 ↓ system_prompt += "系统查询结果:\n{mcp_context}" ↓ 调用 DeepSeek API(基于真实数据生成) ``` ### 系统提示词约束 ``` 你是一个专业的OA系统AI助手。 **重要规则:** 1. 只能使用系统查询结果中的真实数据 2. 严禁编造任何员工信息 3. 无数据时明确告诉用户"暂无相关数据" 4. 不要猜测或假设任何信息 ``` --- ## 📞 关键特性总结 - ✅ Django 5 + Python 3.11 - 最新稳定版本 - ✅ DeepSeek LLM - 智能对话助手 - ✅ MCP 数据查询 - 禁止信息编造 - ✅ 多轮上下文 - 连续追问支持 - ✅ JWT 认证 - 安全认证机制 - ✅ RESTful API - 标准接口设计 - ✅ 权限控制 - 角色级别管理 - ✅ 响应式设计 - Element Plus UI --- 交流 ---- ![头像](./images/PROJECT_OVERVIEW/头像.jpg)