# software_final **Repository Path**: zcxsythenew/software_final ## Basic Information - **Project Name**: software_final - **Description**: 软件开发技术基础课程终考作业仓库 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-30 - **Last Updated**: 2026-06-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Travel Assistant System - 旅行智能助手系统 基于 Django + React + PostgreSQL 的智能旅行助手系统,支持航班查询、酒店预订、天气查询、美食推荐、景点推荐等功能。 ## 技术栈 ### 后端 - **框架**: Django 5.0 + Django REST Framework - **数据库**: SQLite (开发) / PostgreSQL 15 (生产) - **AI 集成**: DeepSeek API (规则匹配 fallback) - **插件系统**: 6个功能插件 (航班、酒店、天气、美食、景点、预订) ### 前端 - **框架**: React 18 + TypeScript - **路由**: React Router DOM - **HTTP 客户端**: Axios - **样式**: 自定义 CSS (渐变紫色主题) ## 项目结构 ``` travel-assistant/ ├── travel_assistant/ # Django 项目配置 │ ├── settings.py # 配置文件 │ ├── urls.py # 主 URL 路由 │ └── wsgi.py ├── chat/ # 聊天模块 │ ├── models.py # Conversation, Message, Session 模型 │ ├── views.py # Chat API 视图 │ ├── services.py # DeepSeekService, IntentClassifier, EntityExtractor │ ├── prompts.py # LLM Prompt 模板 │ └── urls.py ├── orders/ # 订单模块 │ ├── models.py # Order 模型 │ ├── views.py # Orders API 视图 │ ├── services.py # OrderService │ └── urls.py ├── knowledge/ # 知识库模块 │ ├── models.py # KnowledgeDocument 模型 │ ├── views.py # Knowledge API 视图 │ ├── services.py # RAG 搜索服务 │ ├── documents/ # 政策文档 │ └── urls.py ├── plugins/ # 插件系统 │ ├── base.py # BasePlugin 抽象类 │ ├── registry.py # PluginRegistry 单例 │ ├── flight/ # 航班查询插件 │ ├── hotel/ # 酒店预订插件 │ ├── weather/ # 天气查询插件 │ ├── food/ # 美食推荐插件 │ ├── attraction/ # 景点推荐插件 │ └── booking/ # 预订插件 ├── utils/ # 工具模块 │ ├── error_codes.py # 错误码定义 │ └── exceptions.py # 自定义异常 ├── mock_data/ # Mock 数据 │ └── load_mock_data.py # 数据加载脚本 ├── frontend/ # React 前端 │ ├── src/ │ │ ├── api/ # API 调用层 │ │ ├── components/ # UI 组件 │ │ ├── pages/ # 页面组件 │ │ ├── App.tsx # 主应用组件 │ │ └── App.css # 全局样式 │ └── package.json ├── manage.py # Django 管理脚本 ├── requirements.txt # Python 依赖 └── .env # 环境变量配置 ``` ## 快速开始 ### 环境要求 - Python 3.11+ - Node.js 18+ - npm 9+ ### 安装后端 ```bash # 创建虚拟环境 python3 -m venv venv source venv/bin/activate # 安装依赖 pip install -r requirements.txt # 运行数据库迁移 python manage.py migrate # 加载 Mock 数据 python mock_data/load_mock_data.py # 启动开发服务器 python manage.py runserver 9001 ``` ### 安装前端 ```bash cd frontend # 安装依赖 npm install # 启动开发服务器 PORT=3001 npm start ``` ### 访问应用 - 前端: http://localhost:3001 - 后端 API: http://localhost:9001/api - Django Admin: http://localhost:9001/admin ## API 端点 ### Chat API - `POST /api/chat/send/` - 发送消息 - `GET /api/chat/session//` - 获取会话状态 - `GET /api/chat/conversation//` - 获取对话历史 ### Orders API - `POST /api/orders/create/` - 创建订单 - `GET /api/orders/list/?user_id=` - 获取订单列表 - `GET /api/orders//` - 获取订单详情 - `GET /api/orders/statistics/?user_id=` - 获取订单统计 ### Knowledge API - `POST /api/knowledge/search/` - 搜索知识库 - `GET /api/knowledge/documents/` - 获取文档列表 - `POST /api/knowledge/load/` - 加载文档 ## 功能特性 ### 1. 智能对话 - 意图识别 (7种意图类型) - 实体提取 (多轮对话累积) - 会话状态管理 (30分钟过期) - 规则匹配 fallback (无需 API key) ### 2. 插件系统 - 航班查询 (10条模拟数据) - 酒店预订 (5家酒店) - 天气查询 (5个城市) - 美食推荐 (3个城市) - 景点推荐 (3个城市) - 订单预订 (集成订单系统) ### 3. 知识库 Q&A - RAG (检索增强生成) - 全文搜索 - 政策文档管理 - 儿童票、行李、退改签政策 ### 4. 订单管理 - 订单创建 - 订单查询 - 订单统计 - 复合索引优化 ## 配置说明 ### 环境变量 (.env) ```env # 数据库配置 USE_POSTGRES=false DB_NAME=travel_assistant DB_USER=postgres DB_PASSWORD= DB_HOST=localhost DB_PORT=5432 # DeepSeek API (可选) DEEPSEEK_API_KEY=your_api_key_here # Django SECRET_KEY=your_secret_key_here DEBUG=True ``` ### 切换到 PostgreSQL 1. 设置 `USE_POSTGRES=true` 2. 配置正确的数据库凭据 3. 重新运行迁移 ## 开发说明 ### 添加新插件 1. 在 `plugins/` 下创建新目录 2. 继承 `BasePlugin` 实现插件逻辑 3. 在 `plugins/registry.py` 中注册插件 4. 在 `chat/prompts.py` 中添加 intent 关键词 ### 扩展意图类型 1. 在 `chat/services.py` 的 `IntentClassifier.INTENTS` 中添加 2. 在 `chat/prompts.py` 更新 prompt 模板 3. 在 `chat/views.py` 添加处理逻辑 ## 测试 ```bash # 后端测试 pytest # 前端测试 cd frontend npm test ``` ## 部署 ### 后端部署 ```bash # 收集静态文件 python manage.py collectstatic # 使用 Gunicorn gunicorn travel_assistant.wsgi:application ``` ### 前端部署 ```bash cd frontend npm run build # 部署 build/ 目录到 Nginx 或 CDN ``` ## License MIT --- **开发完成时间**: 2026-05-30 **版本**: 1.0.0