文心大模型api使用

文心大模型api使用

  • 首先,我们要获取硅谷社区的连个key
  • 复制两个api备用
  • 获取Access Token
  • 获取access_token示例代码
  • 之后就会输出
  • 作文创作
  • 作文创作:作文创作接口基于文心ERNIE 3.0 Zeus大模型,用户按规定的prompt模板输入上文,接口自动生成不同长度的下文。
    • 接口要求
    • 接口调用流程
    • 请求参数
    • 参数
  • 返回参数
  • 错误代码
  • 任务模板
      • shell
      • python
      • go

首先,我们要获取硅谷社区的连个key

复制两个api备用

获取Access Token

请求URL数据格式

向授权服务地址 https://wenxin.baidu.com/younger/portal/api/oauth/token 发送请求(使用POST),并在URL中带上以下参数:

grant_type: 必须参数,固定为client_credentials; client_id: 必须参数,应用的API
Key(AK) 从 https://wenxin.baidu.com/younger 调用专区申请; client_secret:
必须参数,应用的Secret Key(SK) 从 https://wenxin.baidu.com/younger 调用专区申请;

例如:

https://wenxin.baidu.com/younger/portal/api/oauth/token?grant_type=client_credentials&client_id={API Key}&client_secret={Secret Key}

获取access_token示例代码

使用curl发送post(用postman什么的也可以)

 curl -i -k 'https://wenxin.baidu.com/younger/portal/api/oauth/token?grant_type=client_credentials&client_id={API Key}&client_secret={Secret Key}' -H 'Content-Type:application/x-www-form-urlencoded'

之后就会输出

HTTP/1.1 200 OK
Connection: keep-alive
Content-Type: application/json;charset=UTF-8
Date: Thu, 19 May 2022 00:27:31 GMT
X-B3-Spanid: 78994d34-d70a-11ec-9366-add4e2698b01
X-B3-Traceid: 78994d35-d70a-11ec-9366-add4e2698b01
Transfer-Encoding: chunked

{"code":0,"msg":"success","data":"{access_token}"}

之后输出的access token,之后复制,就可以开始使用api了

作文创作

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

温馨提示 每个账户每日免费请求ERNIE 3.0 Zeus API服务的上限为200条输入,免费请求额度共2000条输入。如果您有更多请求需求,请跟我们联系:[email protected]

接口要求

文心大模型api使用_第1张图片

接口调用流程

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

请求参数

  • 在调用业务接口时,配置以下参数。
  • header 信息
    文心大模型api使用_第2张图片

参数

作文创作参数配置样例:

'access_token': '24.9991a77ac60c6e969e176b776f74b09e.86400000.1653006451543.499f8f33b6821ebbf9ba1fbea525d6ae-6',
'text': '作文题目:可为与有为。内容:当今社会竞争加剧,每人身上压力倍增,于是乎,“躺平”成了话语,“佛系”成了主义。仰望星空的眼神逐渐空洞,低头专注的仅仅是尺寸之间,这些“万事不可为”之信念确乎不该是我们青年一辈所应有所该有。请谨记,相信“可为”才能实现梦想,坚持“有为”才能书写华章。',
'seq_len': 256,
'task_prompt': '',
'is_unidirectional': 0,
'min_dec_len': 100,
'min_dec_penalty_text': '[gEND]',
'topk': 1,
'dataset_prompt': 'zuowen'  ## 作文创作接口的dataset_prompt为zuowen

返回参数

文心大模型api使用_第3张图片

返回参数样例:

{
    "code": 0, 
    "msg": "success",
    "data": {
         "result": "理想是一盏灯,照亮了我们前进的道路;理想是一把火炬,点燃了我们心中的希望;理想是一座灯塔,指引着我们前行的方向。每个人都有自己的理想,而这些理想就像天上的星星,数也数不清。但是,如果没有理想,那么你将会变成一只无头苍蝇,到处乱撞,最终还是一事无"
    }
}

错误代码

文心大模型api使用_第4张图片

任务模板

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

  • 作文题目:{{title}}\n内容:
  • 请写一篇以{{title}}为标题的作文。
  • 作文标题:{{title}}\n正文:

代码示例

shell


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&min_dec_len=100&min_dec_penalty_text=[gEND]&topk=1&dataset_prompt=zuowen'

python


import requests

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

payload={
    'access_token': '24.9991a77ac60c6e969e176b776f74b09e.86400000.1653006451543.499f8f33b6821ebbf9ba1fbea525d6ae-6',
    'text': '作文题目:可为与有为。内容:当今社会竞争加剧,每人身上压力倍增,于是乎,“躺平”成了话语,“佛系”成了主义。仰望星空的眼神逐渐空洞,低头专注的仅仅是尺寸之间,这些“万事不可为”之信念确乎不该是我们青年一辈所应有所该有。请谨记,相信“可为”才能实现梦想,坚持“有为”才能书写华章。',
    'seq_len': 256,
    'task_prompt': '',
    'dataset_prompt': 'zuowen',
    'is_unidirectional': 0,
    'min_dec_len': 100,
    'min_dec_penalty_text': '[gEND]',
    'topk': 1
    }

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

print(response.text)

go


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("access_token", "24.9991a77ac60c6e969e176b776f74b09e.86400000.1653006451543.499f8f33b6821ebbf9ba1fbea525d6ae-6")
  _ = writer.WriteField("text", "作文题目:可为与有为。内容:当今社会竞争加剧,每人身上压力倍增,于是乎,“躺平”成了话语,“佛系”成了主义。仰望星空的眼神逐渐空洞,低头专注的仅仅是尺寸之间,这些“万事不可为” 之信念确乎不该是我们青年一辈所应有所该有。请谨记,相信“可为”才能实现梦想,坚持“有为”才能书写华章。")
  _ = writer.WriteField("seq_len", "256")
  _ = writer.WriteField("dataset_prompt", "zuowen")
  _ = writer.WriteField("task_prompt", "")
  _ = writer.WriteField("topk", "1")
  _ = writer.WriteField("is_unidirectional", "0")
  _ = writer.WriteField("min_dec_len", "100")
  _ = writer.WriteField("min_dec_penalty_text", "[gEND]")
  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))
}

谢谢阅读!!!

最后,我展示一下api的输出

/Users/xxxx/.conda/envs/文心json请求/bin/python /Users/xxxx/PycharmProjects/文心json请求/main.py
{"code":0,"msg":"","data":{"result":"“可为”与“有为”,一字之差,却是两种截然不同的人生态度。“可为”者,不畏艰难险阻,勇于拼搏奋斗;“有为”者,不惧困难挫折,敢于挑战自我。“可为”者,不会因为一时的失败而放弃努力,他们相信,只要坚持不懈,就能成功;“有为”者,不会因为一时的成功而"}}

进程已结束,退出代码0

你可能感兴趣的:(文心,java,前端,json)