一、项目背景
本项目(对话生成系统)将实现人机对话,系统可以根据客户输入的问题或对话进行情感与内容判别,然后生成回答。客户将对系统生成的回复(就情感和内容方面)进行评分。整个系统的设计可以从管理员和客户两种用户类型出发。
本文将基于该项目对它的落地实现进行软件系统分析和设计,并最终形成软件系统概念原型。
二、项目设计方案
1、软件架构
本项目将采用MVC框架,其中M指的是业务模型,V是指视图,C则是控制器,我们使用MVC框架的目的是将业务模型和视图的实现代码进行分离,从而使同一个程序可以使用不同的表现形式。
2、接口API
def system_view(syetem):
#接口说明:系统界面初始化
def system_login(user_id, password):
#接口说明:系统登录
def system_signin(user_name, user_id, password):
#接口说明:用户注册
def text_input(text1):
#接口说明:文本输入
def generate(text2):
#接口说明:对话生成
def evaluate(score):
#接口说明:对话评估
def data_collect(text_data):
#接口说明:数据收集
3、软件概念原型
3.1分解视图
分解是构建软件架构模型的关键步骤,分解视图也是描述软件架构模型的关键视图,一般分解视图呈现为较为明晰的分解结构特点。分解视图用软件模块勾划出系统结构,往往会通过不同抽象层级的软件模块形成层次化的结构。
客户分解视图:
管理员分解视图:
整个系统的分解视图:
3.2依赖视图
依赖视图展现了软件模块之间的依赖关系。比如一个软件模块A调用了另一个软件模块B,那么我们说软件模块A直接依赖软件模块B。如果一个软件模块依赖另一个软件模块产生的数据,那么这两个软件模块也具有一定的依赖关系。
依赖视图在项目计划中有比较典型的应用。比如它能帮助我们找到没有依赖关系的软件模块或子系统,以便独立开发和测试,同时进一步根据依赖关系确定开发和测试软件模块的先后次序。依赖视图在项目的变更和维护中也很有价值,比如它能有效帮助我们理清一个软件模块的变更对其他软件模块带来影响范围。
本项目包含的软件模块:
1.系统登陆注册模块;
2.系统界面模块;
3.文本输入与对话生成模块;
4.评分模块;
5.后台管理模块;
本项目各软件模块的依赖关系:
关系分析:
系统登陆注册模块、文本输入与对话生成模块、评分模块需调用系统界面模块;
文本输入与对话生成模块、系统登陆注册模块需要调用后台管理模块;
3.3执行视图
执行视图展示了系统运行时的时序结构特点,比如流程图、时序图等。执行视图中的每一个执行实体,一般称为组件,都是不同于其他组件的执行实体。如果有相同或相似的执行实体那么就把他们合并成一个。执行实体可以最终分解到软件的基本元素和软件的基本结构,因而与软件代码具有比较直接的映射关系。
在设计与实现过程中,我们一般将执行视图转换为伪代码之后,再进一步转换为实现代码。
管理员:
客户:
3.4部署视图
部署视图是将执行实体和计算机资源建立映射关系。这里的执行实体的粒度要与所部署的计算机资源相匹配,比如以进程作为执行实体,那么对应的计算机资源就是主机,这时应该描述进程对应主机所组成的网络拓扑结构,这样可以清晰地呈现进程间的网络通信和部署环境的网络结构特点。
3.5工作分配视图
工作分配视图将系统分解成可独立完成的工作任务,以便分配给各项目团队和成员。工作分配视图有利于跟踪不同项目团队和成员的工作任务的进度,也有利于在项目团队和成员之间合理地分配和调整项目资源,甚至在项目计划阶段,工作分配视图对于进度规划、项目评估和经费预算都能起到有益的作用。
4、数据库设计
用户
| 字段 | 字段描述 | 类型 |
|---|---|---|
| User_name | 用户名 | string |
| account | 账户 | string |
| password | 密码 | string |
| uclass | 用户类别 | int |
管理员
| 字段 | 字段描述 | 类型 |
|---|---|---|
| uclass | 用户类别 | int |
客户
| 字段 | 字段描述 | 类型 |
|---|---|---|
| phone | 手机 | int |
| 邮箱 | string | |
| uclass | 用户类别 | int |
| message | 个人信息 | void |
文件
| 字段 | 字段描述 | 类型 |
|---|---|---|
| Filename | 文件名 | string |
| File_format | 文件格式 | string |
模型
| 字段 | 字段描述 | 类型 |
|---|---|---|
| Model_version | 模型版本 | string |
6、软件系统运行环境和技术选项说明
运行环境:
Windows10
使用语言:
python3.7
使用框架:
pytorch
数据库:
MySQL
7、系统概念原型的核心工作机制
该项目的系统概念原型的核心工作机制:客户登录系统,若未注册则先注册,客户在文本框中输入对话,系统将读取对话的文本信息并输入到后台的模型文件中,模型做对话生成,生成回复。系统将模型生成的回复反馈给客户,客户根据回复的满意度进行评分。最后系统根据评分进行对话数据收集。管理员则在后台管理中进行用户信息管理、模型维护、数据收集等。