资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

自由问答

接口说明

自由问答:自由问答接口基于文心ERNIE 3.0 Zeus大模型,用户按规定的prompt模板输入上文,接口自动生成不同长度的下文。

温馨提示:

每个账户每日免费请求ERNIE 3.0 Zeus API服务的上限为200条输入,免费请求额度共2000条输入。如果您有更多请求需求,请跟我们联系:wenxin-younger@baidu.com

接口要求

内容 说明
传输方式 https (为提高安全性,强烈推荐https)
请求地址 https://wenxin.baidu.com/younger/portal/api/rest/1.0/ernie/3.0/zeus
字符编码 UTF-8
响应格式 统一采用JSON格式
开发语言 任意,只要可以向服务发起HTTP请求的均可
适用范围 任意操作系统,但因不支持跨域不适用于浏览器,请在后端调用接口
请求行 POST
请求QPS限制 2
平均响应时间 生成512需要16.3s,生成256需要8.1s,生成128需要4.1s

接口调用流程

  • 将请求参数放在Http Request Body中,以POST表单的形式提交,详见下方 请求参数 。
  • 向服务器端发送Http请求后,接收服务器端的返回结果。

请求参数

  • 在调用业务接口时,配置以下参数。
  • header 信息
参数
Content-Type application/x-www-form-urlencoded
  • 参数
参数名 类型 是否必传 描述
access_token string 参考 API鉴权
text string 输入内容,长度不超过1000
seq_len int 输出内容最大长度,长度不超过1000
task_prompt string 任务类型的模板
dataset_prompt string 数据集类型的模板
topk int topk采样,取值>1,默认为10。每步的生成的结果从topk的概率值分布中采样。其中topk=1表示贪婪采样,每次生成结果固定。
temperature float 温度系数,取值>0.0,默认为1.0。更大的温度系数表示模型生成的多样性更强。
penalty_score float 重复惩罚。取值>=1.0,默认为1.0。通过对已生成的token增加惩罚,减少重复生成的现象。值越大表示惩罚越大。
penalty_text string 惩罚文本,默认为空。模型无法生成该字符串中的token。通过设置该值,可以减少某些冗余与异常字符的生成。
choice_text string 候选文本,默认为空。模型只能生成该字符串中的token的组合。通过设置该值,可以对某些抽取式任务进行定向调优。
stop_token string 提前结束符,默认为空。预测结果解析时使用的结束字符,碰到对应字符则直接截断并返回。可以通过设置该值,过滤掉few-shot等场景下模型重复的cases。
is_unidirectional int 单双向控制开关,取值0或者1,默认为0。0表示模型为双向生成,1表示模型为单向生成。建议续写与few-shot等通用场景建议采用单向生成方式,而完型填空等任务相关场景建议采用双向生成方式。
min_dec_len int 最小生成长度,取值>=1,默认为1。开启后会屏蔽掉END结束符号,让模型生成至指定的最小长度。
min_dec_penalty_text string 默认为空,与最小生成长度搭配使用,可以在min_dec_len步前不让模型生成该字符串中的tokens。

请求参数样例:

'access_token': '24.9991a77ac60c6e969e176b776f74b09e.86400000.1653006451543.499f8f33b6821ebbf9ba1fbea525d6ae-6',
'text': '问题:怎样才能让一个人变得积极、乐观、热爱生活? 回答:',
'seq_len': 256,
'task_prompt': '',
'dataset_prompt': '',
'topk': 10,
'stop_token': ''

返回参数

参数名 类型 描述
code int 错误码
msg string 错误信息
data object 结果对象

返回参数样例:

{
    "code": 0, 
    "msg": "success",
    "data": 
        {
         "result": "多参加些群体活动"
         }
}

错误码

错误码 错误描述
4001 请求参数格式错误,不是标准的JSON格式
4002 请求参数格式错误,请检查必传参数是否齐全,参数类型等
4003 text长度超过模型要求的最大值
4004 API服务内部错误,可能引起原因有请求超时、模型推理错误等

任务模板

通过使用如下模板,可以更好地引导大模型完成特定任务。

  • 问题:{{question}}\n回答:
  • 请问:{{question}}\n
  • {{question}}\n请回答上面的问题:
  • 问题"{{question}}"的答案是:
  • 问:{{question}}\n答:
  • 阅读文章:{{context}} 问题:{{question}} 回答:
  • {{context}}\n阅读上面的文章,回答问题。问题:{{question}}\n回答:
  • "{{context}}"对于问题"{{question}}",上面文章给出的答案是什么?

代码示例

import requests

url = "https://wenxin.baidu.com/younger/portal/api/rest/1.0/ernie/3.0/zeus"

payload={
    'text': '问题:怎样才能让一个人变得积极、乐观、热爱生活? 回答:',
    'seq_len': 256,
    'task_prompt': '',
    'dataset_prompt': '',
    'access_token': '24.9991a77ac60c6e969e176b776f74b09e.86400000.1653006451543.499f8f33b6821ebbf9ba1fbea525d6ae-6',
    'topk': 10,
    'stop_token': ''
    }

response = requests.request("POST", url, data=payload)

print(response.text)
 curl -i -k 'https://wenxin.baidu.com/younger/portal/api/rest/1.0/ernie/3.0/zeus?access_token=24.9991a77ac60c6e969e176b776f74b09e.86400000.1653006451543.499f8f33b6821ebbf9ba1fbea525d6ae-6' --data-urlencode 'text=问题:怎样才能让一个人变得积极、乐观、热爱生活? 回答:' -d 'seq_len=256&is_unidirectional=0&topk=10'
package main

import (
  "fmt"
  "bytes"
  "mime/multipart"
  "net/http"
  "io/ioutil"
)

func main() {

  url := "https://wenxin.baidu.com/younger/portal/api/rest/1.0/ernie/3.0/zeus"
  method := "POST"

  payload := &bytes.Buffer{}
  writer := multipart.NewWriter(payload)
  _ = writer.WriteField("text", "问题:怎样才能让一个人变得积极、乐观、热爱生活? 回答:")
  _ = writer.WriteField("seq_len", "32")
  _ = writer.WriteField("dataset_prompt", "couplet")
  _ = writer.WriteField("task_prompt", "")
  _ = writer.WriteField("topk", "10")
  _ = writer.WriteField("stop_token", "")
  _ = writer.WriteField("access_token", "24.9991a77ac60c6e969e176b776f74b09e.86400000.1653006451543.499f8f33b6821ebbf9ba1fbea525d6ae-6")
  err := writer.Close()
  if err != nil {
    fmt.Println(err)
    return
  }


  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }

  req.Header.Set("Content-Type", writer.FormDataContentType())
  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := ioutil.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}```ni
上一篇
对联续写
下一篇
小说续写