百度API实现自动写诗

作者介绍

张琪,男,西安工程大学电子信息学院,2022级研究生
研究方向:机器视觉与人工智能
电子邮件:[email protected]

王泽宇,男,西安工程大学电子信息学院,2022级研究生,张宏伟人工智能课题组
研究方向:机器视觉与人工智能
电子邮件:[email protected]

一. 百度API实现自动写诗

1.1 百度智能写诗API接口

百度智能写诗技术是在神经网络机器翻译技术(Neural Machine Translation,简称 NMT)基础上的研发结果。结合 NMT 技术,百度工程师提出了一套基于主题规划的诗歌生成框架,有效地提升了主题相关性,大幅提高了自动生成的诗歌质量。

主题规划技术首先根据用户 Query(诗歌题目)对要生成诗歌的内容进行规划,预测得到每一句诗的子主题,每一个子主题用一个单词来表示。这个过程和人类创作诗歌比较相似,诗人在创作之前往往会列出提纲,规划出每一句诗要描写的核心内容,然后再进行每句诗的创作。主题规划模型在生成每一句诗的时候,同时把上文生成的诗句和主题词一起输入来生成下一句诗。在这里,主题词的引入可以让生成的诗句不偏离主题,从而使整首诗都做到主题明确,逻辑顺畅。

例如:
在这里插入图片描述
用户 Query 是「春天的桃花开了」。在主题规划阶段,经过主题词抽取和主题词扩展两个步骤,得到了要生成诗歌的四个主题词「春天」、「桃花」、「燕」和「柳」,这里限定每个词对应一句诗。利用 NMT 技术可以根据第一个主题词「春天」直接生成首句诗,在本例中得到「春天丽日照晴川」。在依次生成第二、三、四句诗歌的过程中,会考虑所有已生成的历史上文以及指定的主题词。具体地,用第一句诗句加主题词「桃花」生成得到第二句诗「十里桃花映满山」;用第一、二句诗加上主题词「燕」生成得到第三句诗「燕子呢喃寻旧梦」;用第一、二、三句诗加上主题词「柳」生成得到第四句诗「清风拂面柳如烟」。

百度智能写诗基于文心千亿大模型与神经网络序列生成技术,提供可直接进行场景应用的NLP语言生成能力,实现根据用户输入的任意主题词,自动生成与主题相关的七言绝句。

1.2 请求说明

HTTP 方法:POST。HTTP是超文本传输协议(Hyper Text Transfer Protocol)的缩写,其用于从服务器传输超文本到本地浏览器的传送协议,本实验采取POST请求方法。
请求URL:(https://aip.baidubce.com/rpc/2.0/creation/v1/poem)

1.3 部分参数说明

在这里插入图片描述

二.实验过程及测试结果

2.1 获得API Key

1. 注册百度智能云

注册并登录百度智能云账号,选择控制台。
请添加图片描述

2. 创建应用

产品服务——人工智能类——自然语言处理。

请添加图片描述

扫描二维码关注公众号,回复: 15193051 查看本文章

创建应用

请添加图片描述

选择自然语言处理接口

请添加图片描述

3. 在应用列表中查看应用并获取个人应用的API Key和Secret Key

请添加图片描述

2.2 代码实现

import requests
import json

API_KEY = "自己的api key"
SECRET_KEY = "自己的secret key"

def GetAccessToeken():
    token_host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={ak}&client_secret={sk}'.format(
      ak=API_KEY, sk=SECRET_KEY)
    header = {
    
    'Content-Type': 'application/json; charset=UTF-8'}
    response = requests.post(url=token_host, headers=header)
    content = response.json()
    access_token = content.get("access_token")
    return access_token
    
request_url = 'https://aip.baidubce.com/rpc/2.0/creation/v1/poem'  # 智能写诗
access_token = GetAccessToeken()
print(access_token)

datamsg = {
    
     "text": "编程学习",
			"index": 1,}
request_url = request_url + "?access_token=" + access_token
headers = {
    
    'content-type': 'application/json'}
response = requests.post(request_url, data=json.dumps(datamsg), headers=headers)
if response:
    ans = response.json()
    print(ans)

2.3 结果

在这里插入图片描述

2.4 调用出错(错误代码)

‘2’: ‘后端连接超时请重试’,
‘52001’: ‘请求超时请重试’,
‘52002’: ‘系统错误请重试’,
‘52003’: ‘未授权用户’,
‘52004’: ‘输入解析失败’,
‘52005’: ‘输入字段有误’,
‘52006’: ‘输入文本长度不超过5’,
‘52007’: ‘输入文本包含政治&黄色内容’,
‘52008’: ‘后台服务返回错误请重试’,
‘54003’: ‘访问频率受限’,
‘54100’: ‘查询接口参数为空’,
‘54102’: ‘无写诗结果请重试’

2.5 在线调试示例

在百度智能云网站中直接体验写诗结果:在创建应用后获取个人应用的API Key和Secret Key,并填入。在Body的text中输入诗题(5字内)

请添加图片描述

输出结果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_37758063/article/details/130803816