智慧图问
更新时间:2024-10-16
注意: 为提升开发者使用体验,本文内容已合并至至对应API文档,请查看API鉴权及调用-插件应用-智慧图问;本文档已于2024年6月28日在平台文档中心下线,内容不再更新。
功能介绍
SDK支持使用平台插件能力,以帮助用户快速构建 LLM 应用或将 LLM 应用到自建程序中。在使用这一功能前需要先创建应用、设定服务地址、将服务地址作为参数传入SDK。
该插件可以实现OCR能力。
注意事项
- 调用本文API,需使用应用AK/SK鉴权,调用流程及鉴权介绍详见SDK安装及使用流程。
- 调用本文API前,需先确保已安装智慧图问插件,安装方式请查看插件列表。
非流式调用
调用示例
import os
import qianfan
# 使用安全认证AK/SK鉴权,通过环境变量方式初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"
# Plugin 通过endpoint参数指定插件服务,将your_endpoint替换为服务地址后缀,例如服务地址为https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/plugin/testxxx/,则your_endpoint替换为testxxx,更多介绍详见本文插件服务地址说明
plugin = qianfan.Plugin(endpoint="your_endpoint")
# 智慧图问展示
resp = plugin.do(plugins=["uuid-chatocr"], query="这上面有什么文字?",fileurl="https://xxx.bcebos.com/xxx/xxx.jpeg")
print(resp)
返回示例
QfResponse(
code=200,
headers={...},
body={
'result': "根据提供的资料,图像中可以识别出的文字如下:\n\n'25种最有营养价值的水果 百香果 榴莲 葡萄 香蕉 芒果 草莓 沃柑 樱桃 柿子 西瓜 荔枝 蓝莓 杨梅 番石榴 冬枣 橙子 山竹 火龙果 猕猴桃 牛油果 小红 香梨 哈密瓜 桂圆 苹果 小红书 水蜜桃 7 '",
'log_id': 3927637630508236109
}, statistic={}, request=QfRequest(...)
)
流式调用
调用示例
import os
import qianfan
# 使用安全认证AK/SK鉴权,通过环境变量方式初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"
# Plugin 通过endpoint参数指定插件服务,将your_endpoint替换为服务地址后缀,例如服务地址为https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/plugin/testxxx/,则your_endpoint替换为testxxx,更多介绍详见本文插件服务地址说明
plugin = qianfan.Plugin(endpoint="your_endpoint")
# 智慧图问展示
resp = plugin.do(plugins=["uuid-chatocr"], stream=True, query="这上面的牛是什么颜色的", verbose=True, fileurl="https://xxx.bcebos.com/xxx")
for r in resp:
print(r)
返回示例
QfResponse(
code=200,
headers={...},
body={
'plugin_id': 'uuid-chatocr',
'request': {
'query': '这上面有什么文字?',
'filename': '9d54a81a19504359b81d4e13f75ace0b.jpeg'
},
'response': {
'error_no': 0,
'error_msg': 'success',
'format': 'json',
'result': {
'llm_result': "根据提供的资料,图像中可以识别出的文字如下:\n\n'25种最有营养价值的水果 百香果 榴莲 葡萄 香蕉 芒果 草莓 沃柑 樱桃 柿子 西瓜 荔枝 蓝莓 杨梅 番石榴 冬枣 橙子 山竹 火龙果 猕猴桃 牛油果 小红 香梨 哈密瓜 桂圆 苹果 小红书 水蜜桃 7 '\n\n这些文字主要描述了25种有营养的水果,以及一些其他信息。",
'ocr_result': [
{'rect': {'left': 73, 'top': 103, 'width': 925, 'height': 130}, 'word': '25种最有营养价值的水果'},
{'rect': {'left': 101, 'top': 460, 'width': 138, 'height': 49}, 'word': '百香果'}, ...
],
'classify_ret': None
},
'logid': 3397643593
},
'log_id': 6954105891819143907
},
statistic={...},
request=QfRequest(...)
)
插件服务地址说明
调用插件SDK时,需通过参数endpoint指定插件服务,endpoint值可以通过插件服务地址获取。
(1)配置插件应用服务成功后,可以查看服务地址等信息。如何配置插件应用服务,详见插件编排使用说明。
说明:只有服务状态为上线状态,才可以查看自动生成的服务地址。
(2)在控制台-系统配置-插件编排页面,点击某插件服务详情。
(3)在插件的详情页中,查看完整的服务地址。
(4)获取endpoint值。
例如,插件服务地址为https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/plugin/testxxx/
,则endpoint值为testxxx。
参数说明
请求参数
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
query | string | 是 | 查询信息。说明: (1)成员不能为空 (2)长度不能超过1000个字符 |
plugins | list[string] | 否 | 需要调用的插件ID列表,说明: (1)如果使用智慧图问插件,该字段必填,且为固定值["uuid-chatocr"] (2)如果不填写该字段,是在插件编排时配置范围内进行意图识别,使用模型进行回答 |
fileurl | string | 是 | 文件的URL地址,说明: (1)图片要求是百度BOS上的图片,即用户必须现将图片上传至百度BOS,图片url地址包含bcebos.com;只有在访问北京区域BOS,才不会产生BOS的外网流出流量费用 (2)图片支持jpg、jpeg、png,必须带后缀名 (3)图像尺寸最小为80*80,如果图像小于该尺寸,则无法识别 |
stream | bool | 否 | 是否以流式接口的形式返回数据,默认false,可选值如下: (1)true: 是,以流式接口的形式返回数据 (2)false:否,非流式接口形式返回数据 |
llm | dict | 否 | llm相关参数,不指定参数时,使用调试过程中的默认值。 参数示例: "llm":{"temperature":0.1,"top_p":1,"penalty_score":1} |
input_variables | dict | 否 | 说明: (1)如果prompt中使用了变量,推理时可以填写具体值; (2)如果prompt中未使用变量,该字段不填。 参数示例: "input_variables":{"key1":"value1","key2":"value2",} key1、key2为配置时prompt中使用了变量key |
history | dict | 否 | 聊天上下文信息。 参数示例: [{"role":"user","content":"..."},{"role":"assistant","content":"..."},...] |
verbose | bool | 否 | 是否返回插件的原始请求信息,默认false,可选值如下: true:是,返回插件的原始请求信息meta_info false:否,不返回插件的原始请求信息meta_info |
返回参数
名称 | 类型 | 描述 |
---|---|---|
log_id | int | 唯一,用于问题定位 |
result | string | 插件返回结果 |
sentence_id | int | 表示当前子句的序号,只有在流式接口模式下会返回该字段 |
is_end | bool | 表示当前子句是否是最后一句,只有在流式接口模式下会返回该字段 |
meta_info | dict | 插件的原始请求信息 |
meta_info说明
名称 | 类型 | 描述 |
---|---|---|
plugin_id | string | 插件名 |
request | dict | 原始请求参数 |
response | dict | 原始返回结果 |
request说明
名称 | 类型 | 描述 |
---|---|---|
query | string | 用于查询用户请求 |
filename | string | 从文件地址中解析出的文件名称 |
response说明
名称 | 类型 | 描述 |
---|---|---|
error_no | int | 错误码 |
error_msg | string | 错误信息 |
format | string | 当前返回的数据格式,可忽略 |
result | dict | OCR 返回的识别信息 |
logid | int | 唯一的log id,用于问题定位 |
result说明
名称 | 类型 | 描述 |
---|---|---|
llm_result | string | 用户请求的实际返回结果 |
ocr_result | list[dict] | OCR 接口返回的识别文字信息 |
ocr_result说明
名称 | 类型 | 描述 |
---|---|---|
rect | dict | 文字所在的位置,识别为矩形框 |
word | string | 文字内容 |
rect说明
名称 | 类型 | 描述 |
---|---|---|
left | int | 文字框左上角相对于图片左上角的横向偏移量,单位为像素 |
top | int | 文字框左上角相对于图片左上角的纵向偏移量,单位为像素 |
width | int | 文字框的宽度,单位为像素 |
height | int | 文字框的高度,单位为像素 |