3.2百度EasyDL文本--- 调用API_easydl python

目录

1.接口描述

1.1请求URL

1.2API_KEY、SECRET_KEY 获取

2.Python代码

3.使用方法

4.常见问题

TEXT_FILEPATH(测试文本地址)、MODEL_API_URL(API地址)、API_KEY、SECRET_KEY

我们先获取这些,下面的代码将会用到这些值输入到代码对应位置上。

1.接口描述

基于自定义训练出的文本分类模型,实现个性化文本识别。模型训练完毕后发布可获得定制化文本分类API 

更多训练模型过程中的常见问题请查看‘’常见问题‘’

1.1请求URL

请首先在EasyDL文本分类-单标签进行自定义模型训练,完成训练后可在服务列表中查看并获取URL

URL参数:

参数
access_token通过API Key和Secret Key获取的access_token

 Header如下:

参数
Content-Typeapplication/json

注意:如果出现336001的错误码很可能是因为请求方式错误,定制化文本分类服务以json方式请求。

Body请求示例:

  1. {
  2. "text": "<UTF-8编码文本>",
  3. "top_num": 6
  4. }

Body中放置请求参数,参数详情如下:

请求参数

参数是否必选类型可选值范围说明
textstring-文本数据,UTF-8编码。最大长度4096汉字
top_numnumber-返回分类数量,默认为6个

1.2API_KEY、SECRET_KEY 获取

1.2.1点击服务详情,后点击立即使用

 1.2.2跳转到应用列表这里,开始时默认自己的账号没有创建应用,使用我们先开始创建一个新的应用

 1.2.3输入应用名称,这里我们的接口选择EasyDL,其他内容按照自己的需求填写,填写完成后点击立即创建。

 1.2.4创建应用成功后,点击查看应用详情,

这里我们获取API Key、Secret Key的值,填写到Python代码里面

API Key

Secret Key

2.Python代码

  1. """
  2. EasyDL 文本分类单标签 调用模型公有云API Python3实现
  3. """
  4. import json
  5. import base64
  6. import requests
  7. """
  8. 使用 requests 库发送请求
  9. 使用 pip(或者 pip3)检查我的 python3 环境是否安装了该库,执行命令
  10. pip freeze | grep requests
  11. 若返回值为空,则安装该库
  12. pip install requests
  13. """
  14. # 目标文本的 本地文件路径,UTF-8编码,最大长度4096汉字
  15. TEXT_FILEPATH = "文字分类.txt"#【您的测试文本地址,例如:./example.txt】
  16. # 可选的请求参数
  17. # top_num: 返回的分类数量,不声明的话默认为 6 个
  18. PARAMS = {"top_num": 2}
  19. # 服务详情 中的 接口地址
  20. MODEL_API_URL ="https://aip.baidubce.c" #【您的API地址】
  21. # 调用 API 需要 ACCESS_TOKEN。若已有 ACCESS_TOKEN 则于下方填入该字符串
  22. # 否则,留空 ACCESS_TOKEN,于下方填入 该模型部署的 API_KEY 以及 SECRET_KEY,会自动申请并显示新 ACCESS_TOKEN
  23. ACCESS_TOKEN = ""#您的ACCESS_TOKEN(默认为空)
  24. API_KEY = "d919GBjNDwjzzk"#【您的API_KEY】
  25. SECRET_KEY = "WsULoSMo9R5"#【您的SECRET_KEY】
  26. print("1. 读取目标文本 '{}'".format(TEXT_FILEPATH))
  27. with open(TEXT_FILEPATH, 'r',encoding='utf-8') as f:
  28. text_str = f.read()
  29. print("将读取的文本填入 PARAMS 的 'text' 字段")
  30. PARAMS["text"] = text_str
  31. if not ACCESS_TOKEN:
  32. print("2. ACCESS_TOKEN 为空,调用鉴权接口获取TOKEN")
  33. auth_url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials"\
  34. "&client_id={}&client_secret={}".format(API_KEY, SECRET_KEY)
  35. auth_resp = requests.get(auth_url)
  36. auth_resp_json = auth_resp.json()
  37. ACCESS_TOKEN = auth_resp_json["access_token"]
  38. print("新 ACCESS_TOKEN: {}".format(ACCESS_TOKEN))
  39. else:
  40. print("2. 使用已有 ACCESS_TOKEN")
  41. print("3. 向模型接口 'MODEL_API_URL' 发送请求")
  42. request_url = "{}?access_token={}".format(MODEL_API_URL, ACCESS_TOKEN)
  43. response = requests.post(url=request_url, json=PARAMS)
  44. response_json = response.json()
  45. response_str = json.dumps(response_json, indent=4, ensure_ascii=False)
  46. print("结果:\n{}".format(response_str))
  47. len=len(response_json["results"])
  48. print('------识别结果------')
  49. for i in range(len):
  50. print(response_json["results"][i]["name"],end=':')
  51. print(response_json["results"][i]["score"])

3.使用方法

在该Python的根目录下创建一个.txt文档

如果文档在Python的根目录下,直接在代码的TEXT_FILEPATH对应位置写上文档的名称

 如果文档在电脑的其他位置,文档的调用要把斜杠号换成反斜杠号加上文档的名称,再在代码的TEXT_FILEPATH对应位置写上 

.txt文档的内容可以写一段文字 

 

4.常见问题

4.1    TEXT_FILEPATH(测试文本地址)、MODEL_API_URL(API地址)、API_KEY、SECRET_KEY不过这里要更改为自己的

4.2  运行错误:要打开百度EasyDL文本,否则用不了

4.3 ACCESS_TOKEN = ""#这里的双引号里面为空,否则报错

4.4识别结果准确率低可以增加文本数量或者文字输入简单一些