《昇思25天学习打卡营第25天|MindNLP ChatGLM-6B StreamChat》

在这里插入图片描述

MindNLP ChatGLM-6B StreamChat

本案例基于MindNLP和ChatGLM-6B实现一个聊天应用。

1 环境配置

%%capture captured_output
# 实验环境已经预装了mindspore==2.2.14,如需更换mindspore版本,可更改下面mindspore的版本号
!pip uninstall mindspore -y
!pip install -i https://pypi.mirrors.ustc.edu.cn/simple mindspore==2.2.14
# 该案例在 mindnlp 0.3.1 版本完成适配,如果发现案例跑不通,可以指定mindnlp版本,执行`!pip install mindnlp==0.3.1`
!pip install mindnlp
!pip install mdtex2html

配置网络线路

!export HF_ENDPOINT=https://hf-mirror.com

2 代码开发

下载权重大约需要10分钟

from mindnlp.transformers import AutoModelForSeq2SeqLM, AutoTokenizer
import gradio as gr
import mdtex2html

model = AutoModelForSeq2SeqLM.from_pretrained('ZhipuAI/ChatGLM-6B', mirror="modelscope").half()
model.set_train(False)
tokenizer = AutoTokenizer.from_pretrained('ZhipuAI/ChatGLM-6B', mirror="modelscope")



Building prefix dict from the default dictionary ...
Loading model from cache /tmp/jieba.cache
Loading model cost 1.029 seconds.
Prefix dict has been built successfully.
Loading checkpoint shards:   0%|          | 0/8 [00:00<?, ?it/s]
  0%|          | 0.00/441 [00:00<?, ?B/s]
  0%|          | 0.00/2.58M [00:00<?, ?B/s]

可以修改下列参数和prompt体验模型

prompt = '你好'
history = []
response, _ = model.chat(tokenizer, prompt, history=history, max_length=20)
response



'你好👋!我是人工智能助手 ChatGLM-6B'
<think>嗯,用户想绘制一个包含管理员、系统配置、保安、考勤、绩效、任务、地点、设备这些实体的ER图。首先,我需要理清每个实体的属性和它们之间的关系。管理员和系统配置之间应该是一对多的关系,因为一个管理员可能管理多个配置。保安可能和考勤、绩效、任务有关联。考勤和绩效可能需要记录保安的工作情况,所以可能是保安与考勤、绩效之间的一对多关系。任务可能涉及多个保安和多个地点,所以任务和保安之间是多对多,任务和地点也是一样。设备可能属于某个地点,所以地点和设备是一对多。系统配置由管理员管理,这个关系需要明确。然后,是否需要考虑绩效如何与任务或考勤关联?比如绩效可能基于考勤记录和任务完成情况。另外,设备可能有维护任务,是否需要和设备关联?可能保安负责某些设备,或者设备属于地点。需要确认用户的具体业务逻辑,但根据现有信息,先按照常见情况设计。使用工具的话,Navicat可以生成ER图,但需要先创建表结构,设置外键。可能需要检查是否有遗漏的关系,比如任务和设备是否有联系,或者绩效是否与其他实体有关联。引用中提到多对多关系需要用中间表处理,比如保安任务和任务地点之间的中间表。导出ER图时要注意去掉中文注释,确保SQL正确性。最后,用户可能需要步骤指导,比如创建实体、确定关系、使用工具绘制、验证导出等。需要参考引用中的ER图绘制方法和注意事项。</think>### 如何绘制包含多实体的关系型ER图? #### 步骤1:**明确实体及其属性** 根据需求定义以下实体及核心属性: 1. **管理员**:管理员ID(主键)、姓名、权限等级 2. **系统配置**:配置ID(主键)、参数名称、参数值 3. **保安**:保安ID(主键)、姓名、所属部门 4. **考勤**:考勤ID(主键)、打卡时间、考勤状态 5. **绩效**:绩效ID(主键)、评分日期、综合评分 6. **任务**:任务ID(主键)、任务名称、执行状态 7. **地点**:地点ID(主键)、位置名称、区域编号 8. **设备**:设备ID(主键)、设备类型、维护记录 #### 步骤2:**定义实体间关系** 1. **管理员 ↔ 系统配置** - 1:n(一个管理员管理多个系统配置) - 外键:系统配置表中添加`管理员ID`字段 2. **保安 ↔ 考勤/绩效** - 保安与考勤:1:n(一个保安有多次考勤记录) - 保安与绩效:1:n(一个保安对应多条绩效评分) - 外键:考勤表和绩效表中添加`保安ID`字段 3. **保安 ↔ 任务** - n:m(多个保安执行多个任务) - 需创建中间表`保安任务`,包含`保安ID`和`任务ID` 4. **任务 ↔ 地点** - n:m(任务可能涉及多个地点) - 需创建中间表`任务地点`,包含`任务ID`和`地点ID` 5. **地点 ↔ 设备** - 1:n(一个地点包含多个设备) - 外键:设备表中添加`地点ID` #### 步骤3:**使用工具绘制ER图** 推荐使用Navicat或MySQL Workbench: 1. **创建表结构**:根据上述实体和关系设计数据库表 2. **添加外键约束**:通过工具设置关联关系(如管理员ID关联系统配置) 3. **生成ER图**:Navicat中右键数据库选择“逆向数据库到模型”[^3] 4. **调整布局**:手动优化实体位置,明确多对多关系(如任务与地点) #### 步骤4:**验证与导出** 1. **检查关系**:确保外键正确映射,删除冗余字段 2. **导出ER图**:保存为PNG或PDF格式,注意去掉表名中文注释[^4] 3. **生成SQL脚本**:用于后续部署到测试服务器 --- ### ER图示例(逻辑结构) ```plaintext 管理员 (1) ———— 管理 ———— (n) 系统配置 保安 (1) ———— 关联 ———— (n) 考勤 保安 (1) ———— 关联 ———— (n) 绩效 保安 (n) ———— 保安任务 ———— (m) 任务 任务 (n) ———— 任务地点 ———— (m) 地点 地点 (1) ———— 包含 ———— (n) 设备 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值