百度AI攻略:智能春联

首先认证授权:

在开始调用任何API之前需要先进行认证授权,具体的说明请参考:

http://ai.baidu.com/docs#/Auth/top

获取Access Token

向授权服务地址https://aip.baidubce.com/oauth/2.0/token发送请求(推荐使用POST),并在URL中带上以下参数:

grant_type:?必须参数,固定为client_credentials;

client_id:?必须参数,应用的API Key;

client_secret:?必须参数,应用的Secret Key;

例如:

https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=Va5yQRHlA4Fq5eR3LT0vuXV4&client_secret=0rDSjzQ20XUj5itV6WRtznPQSzr5pVw2&

具体Python3代码如下:

# -*- coding: utf-8 -*-

#!/usr/bin/env python

import urllib

import json

#client_id 为官网获取的AK, client_secret 为官网获取的SK

client_id =【百度云应用的AK】

client_secret =【百度云应用的SK】

#获取token

def get_token():

    host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secret

    request = urllib.request.Request(host)

    request.add_header('Content-Type', 'application/json; charset=UTF-8')

    response = urllib.request.urlopen(request)

    token_content = response.read()

    if token_content:

        token_info = json.loads(token_content)

        token_key = token_info['access_token']

    return token_key

智能春联:

具体说明请参考:http://ai.baidu.com/docs#/IntelligentWriting-API/f85d34cc

接口描述

根据用户输入的命题关键词自动生成一副春联,包括上联、下联和横批。

注:请使用方注意接口使用的合规性,不得利用该接口从事不合规场景的应用;如有违规使用,一经发现,AI开放平台有权立即停止提供服务

请求说明

HTTP方法: POST

请求URL: https://aip.baidubce.com/rpc/2.0/nlp/v1/couplets

URL参数:

参数 值

access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取”

Header如下:

参数 值

Content-Type application/json

Body请求示例:

{

"text": "百度",

"index": 0

}

请求参数

参数 是否必选 类型 描述

text 是 string 字符串(限5字符数以内)即春联的主题

Index 否 int 整数 默认为数值为0,即第一幅春联。每换一次,数值加1即可,一定数量后会返回之前的春联结果。

返回参数

参数 类型 描述

log_id uint64 请求唯一标识码

first string 春联上联:成7-9个字的上联

second string 春联下联:生成7-9个字的春联下联

center string 春联横批:生成4个字的春联横批

提示: 请求body为json字符串,无须对body进行urlencode(百分号编码)

Python3调用代码如下:

#调用百度智能春联接口

def get_couplets(content):

    token=get_token()

    url = 'https://aip.baidubce.com/rpc/2.0/nlp/v1/couplets'

    params = dict()

    params['index'] = 0

    params['text'] = content

    params = json.dumps(params).encode('utf-8')

    access_token = token

    url = url + "?access_token=" + access_token

    request = urllib.request.Request(url=url, data=params)

    request.add_header('Content-Type', 'application/json')

    response = urllib.request.urlopen(request)

    content = response.read()

    if content:

        content=content.decode('utf-8')

        #print (content)

        data = json.loads(content)

        data=data['couplets']

        print ('上联:',data['first'])

        print ('下联:',data['second'])

        print ('横批:',data['center'])

get_couplets('社区') 

调用结果:

上联: 和谐社会春光好

下联: 富贵人家福祉多

横批: 大好春光

建议:

1,建议统一文本处理返回的编码,现在有的是UTF-8(比如春联)有的是GB2312(比如文本纠错),使用起来不太方便。

2,实际返回JSON为:{"couplets":{"center":"大好春光","first":"和谐社会春光好","second":"富贵人家福祉多"}}与API帮助给的例子Json:

{

"log_id": 7310552510652020090,

"first": "喜气千年千里新",

"second": "清风百度百花艳",

"center": "千云祥集"

}

不太一样,建议修改API帮助


猜你喜欢

转载自blog.51cto.com/14664861/2466902