基于Python的智能创作平台开发实践
2020-08-25吴高静魏继业傅馨竹熊子淇龙辉阳张峻宁
傅 骏 吴高静 魏继业 傅馨竹 熊子淇 龙辉阳 张峻宁
(1.四川工程职业技术学院,四川 德阳 618000;2.德阳市岷山路小学,四川 德阳 618000)
百度提供的智能创作平台集合了自然语言处理和知识图谱技术,提供原创型、二次创作型写作能力,实现自动创作和辅助创作,无需人工干预,机器自主完成文章创作,全面提升内容创作效率。其中,“智能春联”功能根据用户输入的命题关键词自动生成一副春联(包括上联、下联和横批),“智能写诗”根据用户输入的命题关键词自动生成一首七言绝句。
1 访问流程
百度的智能创作平台采用HTTP调用方式。百度AIP开放平台使用OAuth2.0授权调用开放API,调用API时必须在URL中带上Access_token参数。
1.1 获取Access_token
获取Access Token的流程是:创建应用,获取API Key与Secret Key,向授权服务地址https://aip.baidubce.com/oauth/2.0/token发送请求(优先采用POST),并在URL中带上参数:grant_type=client_credentials、client_id=API Key、client_secret=Secret Key。
获取Access_token的Python代码是[3],
response = requests.get(host)
token=response.json()
Access_token=token['access_token']
返回的Expires_in表示Access Token的有效期(单位:秒)。
1.2 智能创作
智能春联的请求URL是https://aip.baidubce.com/rpc/2.0/creation/v1/couplets,智能写诗的请求URL是https://aip.baidubce.com/rpc/2.0/creation/v1/poem。
获得诗歌和春联的python代码均为,
params={'text':textt,'index':i}
url = request_url + access_token
response =requests.post(url,json=params)
1.3 结果抓取
智能创造显示了多个信息,用户需要对其中数据进行抓取,获得春联或诗歌正文。获取百度智能写诗正文的代码如下,结果存放在变量“respo”中。
response=response.json()
respons=response['poem']
respon=respons[0]
respo=respon['content']
print(respo)
2 GUI开发
设计任务是,利用Tkinter技术开发GUI界面,基于百度AI提供的开源技术,实现2个功能——智能写诗和智能春联。用户输入主题及数量后,单击对应的按钮,获得创作内容,并将结果显示在窗体上。
2.1 Tkinter界面设计
在界面上设置了3个标签、2个按钮等控件。3个标签分别显示主题、数量、百度创作的结果,2个按钮分别为“智能写诗”和“智能春联”,采用place函数设置各个控件的位置。以下代码分别实现标签和按钮的位置[4],
btn=Button(root,text='智能写诗',command=xs)
btn.place(x=100,y=20)
label=Label(root,width=23,height=6,bg='blue',fg='white')
label.place(x=300,y=150)
2.2 识别按钮功能设计
采用def函数将按钮与百度智能创作的结果进行定义。实现“智能写诗”按钮与百度智能创作结果链接的python代码是,
def智能写诗():
global textt,request_url
textt=txt.get(0.0,END)
res=""
for i in range(0,int(textt1)):
params={'text':textt,'index':i}
url=request_url+access_token
response=requests.post(url,json=params)
btn=Button( root,text = "智能写诗",command=智能写诗)
图1 “智能写诗”结果
图2 “智能春联”结果
图1是运行Tkinter开发的百度AI执行“智能写诗”界面。
3 结束语
采用Python语言,利用Http方式访问百度智能创作平台,获取Access_token,实现了“智能写诗”与“智能春联”功能并进行数据抓取。用tkinter设计了GUI界面,用户输入主题和数量,可以分别获得七言诗歌和春联。
人工智能技术方兴未艾,百度为用户使用人工智能技术提供了多种技术和平台,助力人工智能技术走进各行各业。通过此次实践,项目组掌握了智能创造的基本技术,下一步将利用此技术为用户定制更多智能创造软件。