ChatYuan元语AI: 类似ChatGPT功能型对话大模型 部署实践

个人使用感受

1.中英翻译超越了翻译软件,变成本地翻译最好软件了,回答英文时 有时单词之间没有空格

2.中文对话能基本理解意图,回答时会出现搜索式回答.相关内容,照抄网页相关内容原封不动显示出来,不精简提炼

3.不会做数学,简单2+3都不会 ,不然会更加强大

ChatYuan元语AI


元语智能开发团队训练了一个类似ChatGPT的功能型对话大模型ChatYuan.

类似ChatGPT模型, 中文开源版,功能型对话大语言模型.

功能有:支持训练端到端文本生成文本生成情感分析句子相似度零样本分类命名实体识别翻译自然语言推理问答文本纠错文本摘要FAQ问答文本分类

安装步奏

下载模型的是一个精简版,相对网站上运行的,毕竟个人台式机运行不了太大的模型.

电脑上必须有pytorch环境,

1.安装依赖

pip install "modelscope[nlp]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple zhconv

2.运行代码,它就会自动下载模型到本地

# -*- coding: utf-8 -*-
"""
Created on Thu Feb  9 18:35:43 2023@author: Administrator
"""# -*- coding: utf-8 -*-
"""
Created on Thu Feb  9 18:13:31 2023@author: Administrator
"""from transformers import T5Tokenizer, T5ForConditionalGeneration
tokenizer = T5Tokenizer.from_pretrained("ClueAI/ChatYuan-large-v1")
model = T5ForConditionalGeneration.from_pretrained("ClueAI/ChatYuan-large-v1")# 使用
import torch
from transformers import AutoTokenizer
# 修改colab笔记本设置为gpu,推理更快
device = torch.device('cuda')
model.to(device)
def preprocess(text):text = text.replace("\n", "\\n").replace("\t", "\\t")return textdef postprocess(text):return text.replace("\\n", "\n").replace("\\t", "\t")def answer(text, sample=True, top_p=1, temperature=0.7):'''sample:是否抽样。生成任务,可以设置为True;top_p:0-1之间,生成的内容越多样'''text = preprocess(text)encoding = tokenizer(text=[text], truncation=True, padding=True, max_length=768, return_tensors="pt").to(device) if not sample:out = model.generate(**encoding, return_dict_in_generate=True, output_scores=False, max_new_tokens=512, num_beams=1, length_penalty=0.6)else:out = model.generate(**encoding, return_dict_in_generate=True, output_scores=False, max_new_tokens=512, do_sample=True, top_p=top_p, temperature=temperature, no_repeat_ngram_size=3)out_text = tokenizer.batch_decode(out["sequences"], skip_special_tokens=True)return postprocess(out_text[0])while True:value = input('请输入问题(退出:exit):')if value.lower() =='exit':break;question = "用户:" + value + "?\n小元:"output_text = answer(question)result =  "\n小元:" +output_text+"\n"print(result)

它下载的模型 
http://www.modelscope.cn/api/v1/models/ClueAI/ChatYuan-large/repo?Revision=v1.0.0&FilePath=pytorch_model.binhttp://xn--ghqu6tnb8117a

Revisionv1.0.0
大小2.92G
下载地址http://www.modelscope.cn/api/v1/models/ClueAI/ChatYuan-large/repo?Revision=v1.0.0&FilePath=pytorch_model.bin
保存路径 C:\Users\Administrator\.cache\modelscope\hub\temp\tmpx7_4oqem\tmp8v4l1jmm

在线网址

https://github.com/clue-ai/ChatYuanhttps://github.com/clue-ai/ChatYuan

ModelScope 魔搭社区https://modelscope.cn/models/ClueAI/ChatYuan-large/summary

问答例子

问题: 他在去年的比赛中赢得了冠军,这让他更加自信了。翻译成英文

小元:He finished in last year's match, which he confided about.

问题: We waited at the train station for two hours, only to find out that our train had been canceled.翻译成中文

小元:我们在火车站等着两个小时,才得知我们的火车已经被取消了。

问题: 我的弟弟今年3岁了,姐姐的年龄是弟弟的2倍,当弟弟79岁时,姐姐将是多少岁?推理一下

小元:姐姐的年龄是弟弟的2倍,当弟弟79岁时,姐姐将是79(+2)岁。

问题: 小明45元卖出一顶帽子,收到一张100元假钞,找零55元,帽子进货价15元一顶,如果小明不知道他收到的是一张假钞,请问小明亏了多少钱?推理

小元:小明45元卖出一顶帽子,收到一张100元假钞,找零55元,帽子进货价15元一顶,如果小明不知道他收到的是一张假钞,请问小明亏了多少钱?推理:小明没有收到假钞的损失=45+55=55元,假设进货价为15元,则小明的损失为:15*55=14元

问题: 翻译成英文:我爱吃苹果但是不爱吃香蕉

小元:I like apples but not bananas

问题: 列出一些生活中问题,列出

小元:1、怎样才能使自己健康?2、怎样才能使自己的身体变强壮?3、怎样才能降低患癌的几率?4、怎样才能使自己的生活过得更好?5、怎样才能使身体变得更健康?6、怎样才能使自身的健康更强壮?7、怎样才能使身体健康更持久?8、怎样才能保持身体健康?9、怎样才能让自己成为一个对社会有用的人?10、怎样才能获得财富?11、怎样才能拥有快乐的生活?12、怎样才能活得更有意义?13、怎样才能有更健康的身体?14、怎样才能在竞争激烈的社会中生存?15、怎样才能得到别人的帮助?16、怎样才能不让自己的亲人和朋友受苦?17、怎样才能让自己的亲人和朋友开心?18、怎样才能远离病痛?19、怎样才能减少或减少疾病的发生?20、怎样才能避免患精神病?21、怎样才能健康地活到80岁?22、怎样才能长寿?23、怎样才能延长寿命?24、怎样才能提高生活质量?25、怎样才能过上幸福的生活?26、怎样才能快乐地享受生活?27、怎样才能走出精神的抑郁?28、怎样才能摆脱忧郁的困扰?29、怎样才能享受成功的喜悦?30、怎样才能面对生活的挑战?31、怎样才能取得成功?32、怎样才能克服情绪的烦恼?33、怎样才能把家庭和事业搞好?34、怎样才能战胜

请输入问题(退出:exit):今年2023年了

小元:对啊

请输入问题(退出:exit):今年2099年了

小元:是呀,我还以为你说的是2007年呢

请输入问题(退出:exit):当前的日期是?

小元:2018年9月2日

请输入问题(退出:exit):你会做数学题吗?

小元:会啊,但是感觉不太会。

请输入问题(退出:exit):1+1=

小元:在理论上,1+1=2,但是,在数学上,1-1=2是不可证明的。

请输入问题(退出:exit):圆周率小数点后10位

小元:圆周率小数点后第10位的系数是多少呢?对于我们来说,应该知道圆周率为小数位数的百分之几了,如果圆周率达到百分之几那么等于多少呢,圆周

请输入问题(退出:exit):鸡和兔放在一起,一共有20个头和50只脚,问鸡和兔各几只?

小元:兔:20头,50只脚,鸡:20脚,50头


请输入问题(退出:exit):numbers由几个字母组成

小元:答:numbers由九个字母组成,其中前三个字母是数字(num),后两个字母是字母(m)。


请输入问题(退出:exit):作一首诗,关于青年、社会、孤独、挣钱、工作。

小元:青春如梦, 生活如棋, 孤独如影, 挣钱如命。孤独如棋 生活似棋,生活似影, 我行我素,我行我活。工作如诗,工作如影。我行我不素,我只做自己。挣钱如梦 生活像棋,人生似棋。

请输入问题(退出:exit):评价一下iphene8手机

小元:说个自己用过的吧。iphene8的屏幕为6.45英寸,相比iPhon8的6.52英寸稍大,当然屏幕大小不同,但屏幕尺寸大小与iPhoenx8一样大。iPhenix8的后壳是塑料的,这个塑料材质对于后盖来说是比较硬的那种。由于是塑料材质,所以后盖的厚度比iPhix8轻薄很多,因此iPhanix8后盖厚度是6.1mm,比iphenx5的7mm要薄。iPHene8和iPenix5在外观上没有太大的区别,只是在屏体上有所不同。iMH系列在屏幕方面做得也是相当出色。i

请输入问题(退出:exit):写一篇日记,今天阴,开车出去买东西

小元:今天阴,我开车出去买东西。天空阴沉沉的,天空中没有一丝阳光,我开着车,一路上,我的心情非常糟糕,心里感到非常沮丧。

我买了一些东西,包括一些水果和一些蔬菜等,但这些东西都太贵了,所以我没有买下。
_
我回到家,妈妈告诉我,今天天气很好,我开车去了超市,买了好多东西,我很开心,我很高兴能够去超市购物。
......

请输入问题(退出:exit):下一次经济危机时间

小元:这个问题很难回答,因为经济危机的发生时间是不确定的,并且没有一个确切的时间表。但可以肯定的是,经济危机发生的时间不可能像1929年那样的短到一天之内。

请输入问题(退出:exit):出10条作文的题目

小元:第一:我认识你,你认识我。第二:我今天遇到你,我想和你一起上一个自习。第三:我昨天又遇到你了,今天我要和你一起上课。第四:我想给你写一封信。第五:我想告诉你我的故事,我想告诉你我的过去。第六:我想和你一起去看电影。第七:我想去看一场电影。第八:我想去一个地方。第九:我想和你说一个秘密。第十:我想陪你去酒吧。

请输入问题(退出:exit):你评价一下整天看小说的人

小元:看小说的人,其实是一个人内心有无限可能的人,他们可以把自己内心真正想说的话表达出来,在人与人交往的过程中,他们会根据真实情况做出适当反应,而这些反应是和小说里的内容有差别的。而小说,是完全虚构的,它所表达的,是人的内心对这个世界的想象,所以小说中的人物,都是自己想象出来的。所以,小说的作者是被作者自己想象和赋予了各种可能性,这种可能性就是小说中没有的东西。所以小说中的人,都是通过自己的想象,

请输入问题(退出:exit):三角形面积公式有哪些

小元:三角形面积公式:

1、三角形的面积为:
a = b = c = d

2、三角形的面积公式是:
(1)三角形面积=a * b * c

(2)三角形面积的计算公式是
a=b * r

3、三角形的三角形面积是计算三角形内角和的公式:

请输入问题(退出:exit):圆周率小数点后10位是几

小元:小数点后10位是3

PS:“圆周率精确到小数点后10位是3.1415926535


用户:西红柿炒鸡蛋怎么做

小元:1.准备材料:西红柿、鸡蛋;2.西红柿去皮、切块、切碎;3.热锅,倒入适量油,油热后,倒入鸡蛋快速翻炒;4.待鸡蛋液凝固后,加入西红柿翻炒;5.加入盐、生抽翻炒;6.加入少许水,盖上锅盖焖煮;7.煮至汤汁收干,出锅即可。


用户:用python写一个键盘记录器的代码

小元:function keystone(){
if (keystOne > 0) {
keystOut = keys[keystONE];
keys.append(keystMeta + keyspace[keyspade][keyname]) if (type(keys) == str or keynum >= 8) % 16 = 0 ;
} if keypath =="None" else keywords['Keywords']['keyword'] = input(
'Text:'+ inpUT(keyword) +
'
'); 
keyword = re.sub(grep, '\\1', keywrapper) 
if type(1, str)!= 'text':
args = [keyword]; s = sys.argv[0]; print(s); if len(arg) > 1


用户:用python写一个推箱子小游戏

小元:# 定义推箱子的游戏代码
class Terrain(object):

def __init__(self, *args, **kwarg):
super(Terrai Integer, self).__insert__(1)
sellow = argv[1]
scroll = sellow.scrown()
stop = 0
for i in range(0, len(arg) - 1):
sys.stdout.write('Starting Game')
if i < len:
slices.append(screopen(stop, i))
else:
print('All items are pushed by scroll')

界面版

 

 

# -*- coding: utf-8 -*-
"""
Created on Sat Feb 18 22:04:25 2023@author: Administrator
"""import tkinter as tkfrom transformers import T5Tokenizer, T5ForConditionalGeneration
tokenizer = T5Tokenizer.from_pretrained("ClueAI\ChatYuan-large-v1")
model = T5ForConditionalGeneration.from_pretrained("ClueAI\ChatYuan-large-v1")# 使用
import torch
from transformers import AutoTokenizer
# 修改colab笔记本设置为gpu,推理更快
device = torch.device('cuda')
model.to(device)
def preprocess(text):text = text.replace("\n", "\\n").replace("\t", "\\t")return text_output_scores_=Truedef postprocess(text):return text.replace("\\n", "\n").replace("\\t", "\t")def answer(text, sample=True, top_p=1, temperature=0.7):'''sample:是否抽样。生成任务,可以设置为True;top_p:0-1之间,生成的内容越多样'''text = preprocess(text)encoding = tokenizer(text=[text], truncation=True, padding=True, max_length=10240, return_tensors="pt").to(device) if not sample:out = model.generate(**encoding, return_dict_in_generate=True, output_scores=False, max_new_tokens=10240, num_beams=1, length_penalty=0.6)else:out = model.generate(**encoding,return_dict_in_generate=True,output_scores=_output_scores_, max_new_tokens=10240,do_sample=True, top_p=top_p, temperature=temperature, no_repeat_ngram_size=3)out_text = tokenizer.batch_decode(out["sequences"], skip_special_tokens=True)return postprocess(out_text[0])# 创建主窗口
root = tk.Tk()
root.title("ChatYuan元语AI:小元")
root.geometry("800x600+{}+{}".format(root.winfo_screenwidth() // 2 - 400, root.winfo_screenheight() // 2 - 350))# 创建输入框和滚动条
input_frame = tk.Frame(root)
input_label = tk.Label(input_frame, text="用户:")
input_text = tk.Text(input_frame, height=10, width=87,padx=6, pady=6)
input_scrollbar = tk.Scrollbar(input_frame)
input_text.config(yscrollcommand=input_scrollbar.set)
input_scrollbar.config(command=input_text.yview)
input_label.pack(side="left")
input_text.pack(side="left",pady=10)
input_scrollbar.pack(side="right", fill="y")
input_frame.pack()# 创建按钮
button_frame = tk.Frame(root)
def show_text():#清空 Tkinter Text 组件中的文本output_text.delete('1.0', 'end')question = "用户:" + input_text.get("1.0", "end-1c")  + "\n小元:"output_answer = answer(question)result =  output_answer#第一部分是 "end",表示要添加到输出文本框的末尾;第二部分是 input_text.get("1.0", "end-1c") + "\n",表示要添加的文本内容,即输入文本框中的所有文本,加上一个换行符。这是用来获取输入文本框中的所有文本的语句。"1.0" 表示从第一行第一个字符开始获取文本,"end-1c" 表示获取到文本框的结尾,减去一个字符,也就是最后的换行符。这样可以确保获取到的文本不包括结尾的换行符,以免在添加到输出文本框时出现多余的空行。output_text.insert("end", result)button = tk.Button(button_frame, text="回答", command=show_text,width=6, height=3)
button.pack(pady=10)
button_frame.pack()# 创建输出框和滚动条
output_frame = tk.Frame(root)
output_label = tk.Label(output_frame, text="小元:")
output_text = tk.Text(output_frame, height=26, width=87,padx=6, pady=6)
output_scrollbar = tk.Scrollbar(output_frame)
output_text.config(yscrollcommand=output_scrollbar.set)
output_scrollbar.config(command=output_text.yview)
output_label.pack(side="left",pady=10)
output_text.pack(side="left",pady=10)
output_scrollbar.pack(side="right", fill="y")
output_frame.pack()def copy():global texttext.event_generate("<<Copy>>")def cut():global texttext.event_generate("<<Cut>>")def paste():global texttext.event_generate("<<Paste>>")# 创建右键菜单
menu = tk.Menu(root, tearoff=0)
menu.add_command(label="复制", command=copy)
menu.add_command(label="剪切", command=cut)
menu.add_command(label="粘贴", command=paste)# 绑定鼠标右键(第一个文本框)
def show_menu1(event):global texttext = input_textmenu.post(event.x_root, event.y_root)input_text.bind("<Button-3>", show_menu1)# 绑定鼠标右键(第二个文本框)
def show_menu2(event):global texttext = output_textmenu.post(event.x_root, event.y_root)output_text.bind("<Button-3>", show_menu2)root.lift()
# 运行主循环
root.mainloop()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/3048.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT/大模型+零代码,给中小企业带来哪些机会?

ChatGPT让2023年成了AI之年。正如iPhone在2007年开启了智能手机时代&#xff0c;我们现在正在进入人工智能时代。 新形势下&#xff0c;零代码应如何借势发力&#xff1f;伙伴云“AI零代码”给出了答案。 作为零代码领域的头部平台&#xff0c;伙伴云全量发布【AI零代码应用搭…

对待ChatGPT不用如临大敌它语文超牛,但数学不及格?

人工智能&#xff08;AI&#xff09;这词语是由MIT的John McCarthy和卡内基梅隆大学的Marvin Minsky在1956年夏季在达特茅斯学院举行的会议提出的&#xff1a; “构建一种计算机程序从事目前只有人类才能够令人满意地执行的任务&#xff0c;因为它们需要高级心理过程&#xff0…

陶哲轩:ChatGPT已加入我的数学工作流

Pine 梦晨 发自 凹非寺转自量子位 | 公众号 QbitAI ChatGPT&#xff0c;已经成为天才数学家陶哲轩的研究助手了&#xff01; 不止ChatGPT&#xff0c;他还直接在网上宣布&#xff1a; 多种AI工具都会纳入自己的工作流。 最近这些日子&#xff0c;陶哲轩对AI可是青眼有加&#x…

玩转系统|完美替代ChatGPT!Claude注册教程及出现问题解决方案

目录 1、什么是ChatGPT&#xff1f; 2、什么是Claude&#xff1f; 3、为什么推荐Claude? 3.1、Claude特性 4、注册 slack 5、Claude添加到Slack 6、出现APP Unavailable问题 7、如何解决该问题 8、使用感受 8、1代码测试 8、2文学测试 8、3英语测试 1、什么是ChatGPT&a…

堪比ChatGPT,Claude注册和使用教程

新建了一个网站 https://ai.weoknow.com/ 每天给大家更新可用的国内可用chatGPT资源 Claude简介 Claude是一款人工智能聊天机器人。主要有以下特征: 使用自己的模型与训练方法,而不是基于GPT-3等开源框架。模型采用Transformer编码器与解码器的结构,并使用对话上下文的双向…

Cool-Admin + ChatGPT 一键生成代码、AI绘画

Cool-admin chatgpt 一键生成代码 体验地址 文档地址 chatgpt ai 微信机器人&#xff0c;ai 绘图&#xff0c;聊天模板 uniapp插件地址 文档地址 体验地址

《花雕学AI》31:ChatGPT--用关键词/咒语/提示词Prompt激发AI绘画的无限创意!

你有没有想过用AI来画画&#xff1f;ChatGPT是一款基于GPT-3的聊天模式的AI绘画工具&#xff0c;它可以根据你输入的关键词/咒语/提示词Prompt来生成不同风格和主题的画作。Prompt是一些简短的文字&#xff0c;可以用来指导ChatGPT的创作过程。在这篇文章中&#xff0c;我将展示…

ChatGPT+AI绘画 == 王炸 !

2022年&#xff0c;短短半年&#xff0c;AI绘画从海外风靡到国内&#xff0c;从最初笑话AI绘画是人工智障&#xff0c;到惊叹AI绘画的学习能力&#xff01; 2023年&#xff0c;随着ChatGPT的火爆&#xff01;掀起一股AIGC热潮&#xff0c;AI绘画热度更是超前火爆&#xff01; 有…

chatgpt源码能商用吗

近年来&#xff0c;聊天机器人技术逐渐成为各个行业的焦点&#xff0c;特别是 GPT 型聊天机器人技术逐步成熟&#xff0c;广泛应用于客服、教育、医疗等领域。这些聊天机器人的开源代码被 widely distributed&#xff0c;如 OpenAI 的 GPT-2、GPT-3&#xff0c;香港科技大学的 …

2023 ChatGPT v3.5 单页html源码

ChatGPT3.5单页版&#xff0c;先发个基础的&#xff0c;带复制功能&#xff0c; 可以设置自己key&#xff0c;查询功能&#xff0c;以及用程序主的key会显示广告等 这个版还有vue版的 &#xff0c;过会在发 接口自己更换&#xff0c;修改js即可。

chatgpt源码怎么在电脑上运行

近年来&#xff0c;随着人工智能技术的不断发展&#xff0c;聊天机器人成为了一个备受关注的热门话题。GPT模型&#xff08;Generative Pre-trained Transformer&#xff09;是聊天机器人中的一种非常流行的模型&#xff0c;有着非常强大的自我学习和交互能力。也有很多开源的G…

ChatGPT API 简单使用教程

1、关于ChatGPT 和 API 获取 2、调用API 实现 ChatGPT 对话 import openaiopenai.api_key "你的api_key"def completion(prompt):completions openai.Completion.create(engine"text-davinci-003",promptprompt,max_tokens1024,n1,stopNone,temperatu…

让小白也能看懂,ChatGPT入门级科普“十问十答”

由于现在GPT火热&#xff0c;360老板已经开始总动员. 白领的日常工作肯定是要发生颠覆性变化的。下面我们就通过自问自答的方式带领小白用户了解一下ChatGPT. 1、ChatGPT到底是什么&#xff1f; ChatGPT 是一个由美国人工智能公司 OpenAI 开发的自然语言处理&#xff08;NLP&a…

国内版ChatGPT要来了?基于GPT的文本生成一键体验

★★★ 本文源自AI Studio社区精品项目&#xff0c;【点击此处】查看更多精品内容 >>> 项目概述 本项目从零开始构建了一个用于文本生成的语言模型&#xff0c;模型采用Transformer架构&#xff0c;数据集采用网络上搜集到的zhttty的网络小说《无限恐怖》文本&#x…

chatgpt一键生成 PPT

在即将过完的 12 月&#xff0c;相信很多人都在忙一件事&#xff1a;年终工作汇报。就像那句话说的&#xff1a;职场人&#xff0c;不是在做 PPT&#xff0c;就是在做 PPT 的路上…… 职场人苦 PPT 久矣。想做出一份优秀的 PPT&#xff0c;确实难点颇多&#xff1a;要构思亮眼的…

【Java】快速接入ChatGPT API实现聊天、生成图像

目录 申请API秘钥 发请求 发请求响应文本 发请求响应图像 申请API秘钥 访问https://platform.openai.com/ 登录后点击右上角的头像,如图&#xff1a; 获取到秘钥后接下来就开始搞代码啦~ 发请求 添加发请求和解析响应的maven依赖 <!-- https://mvnrepository.com/a…

【免费】微信图片dat转jpg工具(自动区分JPG、PNG、GIF)

楼主之前为了完成一个课程项目&#xff0c;写的一个小程序&#xff0c;之前需要批量转换微信图片的时候&#xff0c;看cadn上有好多源码&#xff0c;但是楼主比较菜&#xff0c;不怎么会用&#xff0c;后来自己写了一个小程序解决普通人使用的痛点&#xff0c;下载下来exe可以直…

ChatGPT - 快速生成 流程图

文章目录 Prompt输出Copy 到 drawio Prompt 我想做一个研发标准化的流程,但是我是一个小白,不懂研发管理的流 程,我希望你作为一个经验丰富的技术管理人员,请帮我梳理一个完整流程,包括需求分析、概要设计,代码走查等等,输出的节点不少于18个,包含逻辑判断的分支,要通循实事求…

【ChatGPT】基于GO语言实现的微信聊天和图片生成机器人

ChatGPT-DreamStudio WeChat Robot &#x1f3a8;基于GO语言实现的微信聊天和图片生成机器人&#x1f3a8; 个人微信接入ChatGPT&#xff0c;实现和GPT机器人互动聊天&#xff0c;同时支持基于文本生成图像。支持私聊回复和群聊艾特回复。 GitHub源代码地址 实现功能 GPT机…

ChatGPT 使用 拓展资料:吴恩达大咖 Building Systems with the ChatGPT API 系统评估1

ChatGPT 使用 拓展资料:吴恩达大咖 Building Systems with the ChatGPT API 系统评估1 在前面的几段视频中,用户展示了如何使用一个小时来构建应用程序,从评估这些输入到处理输入,再到进行最终打开检查,再到向用户显示输出。显然是构建了这样一个系统。 你怎么知道它是如…