# dslChatBot **Repository Path**: wileywu/dsl-chat-bot ## Basic Information - **Project Name**: dslChatBot - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-11-05 - **Last Updated**: 2023-11-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DSLChatBot 基于领域特定语言DSL的客服聊天机器人 ## 介绍 - DSL是专门针对某一特定问题而定义的一系列文本代码,包含了特定的状态转换逻辑及输出逻辑。 - 本项目通过自定义的DSL脚本,创建了可以提供简单客服咨询服务的智能聊天机器人服务。 - 本项目可以支持多种不同的DSL协议内容脚本,客户可以选择不同的服务场景来获得不同的智能客服服务。 - 本项目分为服务端server和客户端client。 ## 服务端 - 服务端使用python语言编写,基于uvicorn+fastapi提供HTTP REST服务。 - 服务器启动后,自动读取配置文件,解析指定的DSL脚本并创建相应的解释执行器,每个不同的用户登录后会在自己的会话中分配一个单独的基于某个脚本的解释执行器,为用户在整个会话过程中提供有状态的服务。 - 每个用户的解释执行器中不仅包含特定的状态变迁及输出逻辑,还能保持一份用户自己的会话变量表,不同的用户会有不同的值输出。 - DSL解析器使用pyparsing进行统一的语法解析。 ## 客户端 - 客户端作为用户UI交互界面,基于JS+Vue2+axios同服务端进行交互。 - 客户端提供多个智能机器人场景,每个场景都可以进行登录获得服务。 - 用户登录成功后将会进入相应的聊天界面,智能机器人在欢迎词之后,会根据DSL脚本进行输出,用户回复相应关键词或话语进行咨询,机器人将给出相应的答复。 - 机器人还有超时设置,若超过脚本设定的时间未有回复,机器人将自动断开处理。 ## 安装及运行 服务端和客户端可以同时部署和安装在同一个机器上。 服务器运行在 http://localhost:8000 客户端的devServer运行在 http://localhost:8081 ### 服务端安装及运行 ##### 1. 环境要求 Python 3.10以上 安装好Python环境后,可以基于requirements.txt安装依赖包 ``` pip install -r requirements.txt ``` ##### 2. 基于VSCODE的调试及运行 - 首先VsCode安装Python的相关插件(在插件市场安装) - 将本项目做完VsCode的目录打开 - 将根目录下的launch.json和settings.json文件拷贝到.vscode目录中(若没有则根目录下手工新建) - 在运行与调试中,选择Python: dsl-application点击运行。 - 服务器启动运行。 ### 客户端安装及运行 ##### 1. 环境要求 Node版本:14.19.3以后 ##### 2. 编译 打开vscode终端。 ``` $ cd client $ npm install # 安装依赖,会等几分钟 $ npm run serve ``` 打开浏览器访问:http://localhost:8081/