软件标题:智能对联生成系统
b 系统概述
- 使用项目:智能对联生成系统
- 软件用途:通过网页端可以获取到根据已有上联只能生成的下联。
- 开发历史:本项目未曾有前置版本。但在服务器搭建,Tensorflow 使用上已有经验。
- 投资方:开发小组自费
- 需方:西安电子科技大学计算机科学与技术学院软件工程课程
- 用户:网页使用者
- 开发方:开发小组,成员:张笑天,王重阳,王艺静,张震宇
- 支持机构:西安电子科技大学计算机科学与技术学院软件工程
- 当前运行现场:虚拟机 VMWare 中 Ubuntu 19.10,Windows 10 平台 Anaconda
- 计划运行现场:阿里云 Ubuntu 18.04
c 文档概述
本文档为项目 智能对联生成系统 的软件设计说明,用于描述对计算机软件配置项 CSCI 的设计,它描述了 CSCI 级设计决策、CSCI 体系结构设计(概要设计)和实现该软件所需的详细设计。
保密性:该文档可以公开于网络,但应注意项目以及该文档本身均遵循 GPLv3 协议开源。
http://www.gnu.org/licenses/quick-guide-gplv3.html
d 基线
无
2 引用文件
GPLv3 协议:http://www.gnu.org/licenses/quick-guide-gplv3.html
3 软件综述
a 软件应用
用户可以在网页上方便地输入自自定义的上联得到下联,起到丰富精神生活作用。
b 软件清单
支持 HTML5 的浏览器,例如 Google Chrome。
c 软件环境
可以访问互联网。
d 软件组织和操作概述
i 软件逻辑部件
自上而下为软件的标题,软件的输入提示,软件的输入文本框,软件的互动按钮和软件的使用提示。
在交互之后,得到的是
自上而下分别为软件的使用结果(或者错误提示),软件的使用提示,输入文本框,软件的互动按钮。
交互之后得到同上界面。
ii 用户期望的性能特性
可接受输入:根据提示为七个以下汉字。
输出类型:对应数量的汉字或者输入错误提示。
响应时间:10s 左右,同时也与服务器负载、用户网络状况有关系。
处理时间:10s 左右,取决于服务器 CPU 性能。
限制:使用用户过多,nginx 会触发保护机制,返回错误 504
预期的错误率:在高负载下 nginx 报错 504,但是不会造成服务器崩溃。
预期的可靠性:同上。
iii 组长负责服务器的购买与维护。
iv 监督措施:服务器的安全口令与提供商阿里云的安全措施。
e 意外事故以及运行的备用状态和方式。
在高负载下 nginx 报错 504
f 保密性与私密性
本文档根据 GPLv3 开源,保密性由开源协议保护。
安全性与私密性由 Nginx 反向代理和 Django 以及服务器提供商即阿里云的安全措施保护。
g 帮助和问题报告
在输入错误时给予用户正确输入提示。用户可以通过点击源代码按钮联系作者。
4 访问软件
a 软件的首次用户
i 熟悉设备
熟悉浏览器即可
ii 访问控制
任何连接互联网用户均可访问,用户自己访问内容由 HTTPS 加密协议保证,在服务器保密由服务器安全措施保证。
iii 安装和设置
同浏览器的安装与设置。
b 启动过程
在浏览器中输入网址:https://enigmazhang.tech/couplet/main/
iv 停止和挂起工作
关闭浏览器标签页即可。
5 软件使用指南
a 能力
用户根据提示在输入框中输入上联,通过提交按钮或者快捷键提交上联到服务器,等待页面跳转之后得到下联或者对于用户操作的提示;随后用户可以继续在输入框中输入上联。
b 约定
详见软件设计文档。
c 处理过程
用户根据提示在输入框中输入上联,通过提交按钮或者快捷键提交上联到服务器,等待页面跳转之后得到下联或者对于用户操作的提示;随后用户可以继续在输入框中输入上联。
d 相关处理位于浏览器端和服务器端
浏览器根据前端脚本和文件进行渲染并且与服务器交互;服务器根据前端信息得到上联向前端发送下联。
f 错误、故障和紧急情况时的恢复
当服务器负载过大时,由 nginx 报错 504,防止服务器崩溃。
如果服务器意外崩溃,必须由开发者手动重启服务。
g 消息
Nginx504 错误:提示用户当前负载过大超时,请稍后再尝试。
用户输入格式错误:提示用户“请输入七个及以下汉字”
6 注解
- NLP:自然语言处理
- 云服务器(ECS): 一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务
- CPU:中央处理器,计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元
- GPU:图形处理器,一种专门在个人电脑、工作站、游戏机和一些移动设备上做图像和图形相关运算工作的微处理器。
- :一系列基于 Intel 8086 且向后兼容的中央处理器指令集架构
- Linux:一套免费使用和自由传播的类 UNIX 操作系统。
- Ubuntu:一个以桌面应用为主的 Linux 操作系统。
- Windows:美国微软公司研发的一套操作系统
- Python:一种跨平台的计算机程序设计语言
- VMware Workstation:一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统
- Anaconda:开源的 Python 包管理器
- Tensorflow:TensorFlow 是一个基于数据流编程的符号数学系统
- PyTorch:是一个开源的 Python 机器学习库
- GPL:GNU General Public License,GNU 通用公共许可证
- IDE:集成开发环境,Integrated Development Environment 是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具
- PyCharm:一种 Python 集成开发工具
- IDLE:Integrated Development and Learning Environment,集成开发和学习环境,是 Python 的集成开发环境
- Visual Studio:美国微软公司的开发工具包系列产品
- Visual Studio Code:跨平台源代码编辑器
- VIM:功能强大、高度可定制的文本编辑器
- Google Chrome:是一款由 Google 公司开发的网页浏览器
- Firefox:是一个自由及开放源代码的网页浏览器
- Microsoft Edge:是一款由 Microsoft 公司开发的网页浏览器
- Git:一个开源的分布式版本控制系统
- GitHub:一个面向开源及私有软件项目的托管平台
- Nginx:一个高性能的 HTTP 和反向代理 Web 服务器
- uWsgi:一个 Web 服务器与 Web 应用通信的规范实现
- Django:一个开放源代码的 Web 应用框架
- Flask:一个使用 Python 编写的轻量级 Web 应用框架
- HTML5:超文本标记语言 5,构建 Web 内容的一种语言描述方式
- CSS:层叠样式表,Cascading Style Sheets 是一种用来表现 HTML 或 XML 等文件样式的计算机语言
- JavaScript:是一种具有函数优先的轻量级,解释型或即时编译型的编程语言
- Tensor2Tensor:一套基于 TensorFlow 的深度学习系统
完整代码:https://download.csdn.net/download/qq_38735017/87382432