诗歌生成
功能介绍
根据用户的输入生成诗歌。
具体Endpoint请参见终端节点。
调用华为云NLP服务会产生费用,本API以定制版API定价按需计费,不支持使用套餐包,使用时请在自然语言处理价格计算器 按需计费-自然语言处理定制版API中查看费用详情。
本API调用限制为2次/秒。
调试
您可以在API Explorer中调试该接口。
前提条件
在使用本API之前,需要您完成服务申请和认证鉴权,具体操作流程请参见申请服务和认证鉴权章节。
用户首次使用需要先申请开通。服务只需要开通一次即可,后面使用时无需再次申请。如未开通服务,调用服务时会提示ModelArts.4204报错,请在调用服务前先进入控制台开通服务,并注意开通服务区域与调用服务的区域保持一致。
URI
- URI格式
POST /v1/{project_id}/nlg/poem
- 参数说明
表1 URI参数说明 名称
是否必选
说明
project_id
是
项目ID。获取方法请参见获取项目ID。
请求消息
请求参数如下所示。
名称 |
是否必选 |
参数类型 |
说明 |
---|---|---|---|
type |
是 |
Integer |
诗歌类型,取值如下:
|
title |
是 |
String |
诗歌标题,目前仅支持UTF-8编码,仅支持中文,长度为1-10。 |
acrostic |
否 |
boolean |
藏头诗,取值如下。
默认取值为false。 |
响应消息
响应参数如表3所示。
名称 |
参数类型 |
说明 |
---|---|---|
poem |
Array[String] |
根据文本请求体,返回生成的诗歌。 |
error_code |
String |
调用失败时的错误码,具体参见错误码。 调用成功时无此字段。 |
error_msg |
String |
调用失败时的错误信息。 调用成功时无此字段。 |
请求示例
- 请求示例(生成标题为春色,类型为七言律诗的藏头诗)
POST https://{endpoint}/v1/{project_id}/nlg/poem Request Header: Content-Type: application/json X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG... //用户认证获取的token值,获取方法详细请参考“如何调用API”章节中的“认证鉴权”页面。 Request Body: { "type": 3, "title": "春色", "acrostic":true }
- Python3语言请求代码示例(生成标题为春色,类型为七言律诗的藏头诗)
# -*- coding: utf-8 -*- # 此demo仅供测试使用,建议使用sdk。需提前安装requests,执行pip install requests import requests import json def nlp_demo(): url = 'https://{endpoint}/v1/{project_id}/nlg/poem' # endpoint和project_id需替换 token = '用户对应region的token' header = { 'Content-Type': 'application/json', 'X-Auth-Token': token } body = { 'type': 3, 'title': '春色', 'acrostic': True } resp = requests.post(url, data=json.dumps(body), headers=header) print(resp.json()) if __name__ == '__main__': nlp_demo()
- Java语言请求代码示例(生成标题为夏日,类型为五言绝句的藏头诗)
import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.URL; /** * 此demo仅供测试使用,建议使用sdk */ public class NLPDemo { public void nlpDemo() { try { //endpoint和projectId需要替换成实际信息。 URL url = new URL("https://{endpoint}/v1/{project_id}/nlg/poem"); String token = "对应region的token"; HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setDoInput(true); connection.setDoOutput(true); connection.addRequestProperty("Content-Type", "application/json"); connection.addRequestProperty("X-Auth-Token", token); //输入参数 String title = "夏日"; String body = "{\"title\":\""+title +"\",\"type\": 0,\"acrostic\":true}"; OutputStreamWriter osw = new OutputStreamWriter(connection.getOutputStream(), "UTF-8"); osw.append(body); osw.flush(); InputStream is = connection.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8")); while (br.ready()) { System.out.println(br.readLine()); } } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { NLPDemo nlpDemo = new NLPDemo(); nlpDemo.nlpDemo(); } }
响应示例
- 成功响应示例
{ "poem": [ "春色", "春风吹梦到湖山,陡觉欣荣触眼看。", "色与梅花相避远,名随竹叶共阑干。", "一年好处几人赏,半夜诗成独倚栏。", "老去自知才思尽,只将华发镜中弹。" ] }
- 失败响应示例
{ "error_code": "NLP.3104", "error_msg": "poem_type is null or empty." }
状态码
状态码请参见状态码。
错误码
错误码请参见错误码。