【千帆平台】使用AppBuilder零代码创建应用,然后通过OpenAPI方式调用应用

欢迎来到《小5讲堂》
这是《千帆平台》系列文章,每篇文章将以博主理解的角度展开讲解。
温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!

在这里插入图片描述

目录

  • 前言
  • 创建API密钥
  • 调用文档
  • 调用说明
    • API服务域名
    • 通信协议
    • 字符编码
    • 公共请求头
  • 新建会话
    • 接口描述
    • 权限说明
    • 接口定义
    • 请求结构
    • 请求头域
    • 请求参数
    • 响应头域
    • 响应参数
    • 请求curl 示例
    • 正确响应示例
    • 错误响应示例
    • 缺少授权参数
    • 缺少应用ID参数
    • 无答复
    • 响应成功
  • 大模型对话
    • 接口描述
    • 权限说明
    • 接口定义
    • 请求结构
    • 请求头域
    • 请求参数
    • 服务错误
    • 权限错误
    • 响应成功
    • 实现代码
  • 错误返回码说明
  • 推荐文章

前言

使用千帆平台的AppBuilder零代码构建应用非常简单,也提供界面进行体验和使用。
博主想把这个应用提供的API封装到自己后端,因此本篇文章就来聊聊如何调用API。

创建API密钥

使用说明
1.密钥为使用AppBuilder平台的重要凭证,因密钥长期有效,请勿放在浏览器或外部客户端代码中,请妥善管理分发。如意外泄露,在本页面删除密钥即可关闭对应访问入口。
2.删除密钥后,已删除密钥和旧地址将无法继续请求服务,并无法恢复,请谨慎操作。
在这里插入图片描述

调用文档

找到自己创建好的应用,点击发布详情,再点API调用,最后点O喷API的接口调用说明
接口调用说明地址:https://cloud.baidu.com/doc/AppBuilder/s/klv2eywua
在这里插入图片描述

调用说明

API服务域名

RegionEndPointProtocol
allqianfan.baidubce.comHTTPS

通信协议

API 调用遵循 HTTP 协议。

字符编码

可解析内容,所有 request/response body 内容目前均使用 UTF-8 编码。

公共请求头

以下列举部分

参数名称描述是否必填示例
Authorization请求签名(此签名为appbuilder平台密钥)必须Bearer bce-v3/ALTAK-LLfggwDKNJ3mZJFtIMYP8/0d******55cdb5e8b319f93b00fffc584cex8
Content-Typeapplication/json;charset=utf-8 通用数据交互格式(默认)必须application/json;charset=utf-8
multipart/form-data;charset=utf-8 支持图片、文件等上传,以及语音二进制流传输multipart/form-data;charset=utf-8
text/event-stream;charset=utf-8 支持服务端向客户端推送服务、事件和消息通知的数据格式text/event-stream;charset=utf-8

HTTP协议的标准头域不在这里列出。公共头域将在下面的请求中出现。

新建会话

博主这里是使用C#代码进行调用

接口描述

该接口用于新增对话,对话的有效期为7天。超过之后可能无法使用,需要重新生成。

权限说明

Authorization需要填写密钥。

接口定义

完整地址:https://qianfan.baidubce.com/v2/app/conversation

URL/v2/app/conversation
MethodPOST
Content-Typeapplication/json
Authorization请求签名(此签名为应用工作台密钥)

请求结构

POST /v2/app/conversation HTTP/1.1
HOST: qianfan.baidubce.com
Authorization: authorization string
Content-Type: application/json{"app_id": "c5c7bfa8-97f6-48c0-97ac-689d1f6df6be"
}

请求头域

除公共头域外,无其它特殊头域。

请求参数

字段类型是否必须说明
app_idstring指定需要创建对话的app_id,来源于个人空间-应用-应用ID

响应头域

除公共头域外,无其它特殊头域。

响应参数

字段类型是否必须说明
request_idstringrequest_id
conversation_idstring对话id,可以用于后续调用,有效期为7天。

请求curl 示例

curl --location 'https://qianfan.baidubce.com/v2/app/conversation' \
--header 'Authorization: Bearer authorization string' \
--header 'Content-Type: application/json' \
--data '{"app_id": "85036d8f-239c-469c-b342-b62ca9d696f6"
}'

正确响应示例

HTTP/1.1 200 OK
{"request_id": "355a4f4e-a6d8-4dec-b840-7075030c6d22","conversation_id": "2370813b-5303-4a4f-b5cc-44f571121342"
}

错误响应示例

HTTP/1.1 401
{"request_id": "ae2225f7-1c2e-427a-a1ad-5413b762957d","code": "PermissionDeniedError","message": "没有权限"
}

缺少授权参数

{“requestId”:“8cfe4b0a-7abd-4b8d-ab6f-093d7f0f7bfc”,“code”:216003,“message”:“Authentication error: ( Authorization or X-Appbuilder-Authorization header is required )”}

在这里插入图片描述

缺少应用ID参数

{“code”: “InvalidRequestArgumentError”, “message”: “request param app_id is required”, “request_id”: “65c6bf89-175f-4928-9dd1-9f4ad6a8656c”}

在这里插入图片描述

无答复

由于连接方在一段时间后没有正确答复或连接的主机没有反应,链接尝试失败。
原因:是博主自己网络问题,网络比较卡会出现这种情况
在这里插入图片描述

响应成功

{“request_id”: “b60e8917-98c0-4ca9-adc3-9dxxx”, “conversation_id”: “95914e46-d616-45e0-b8xxx”}

在这里插入图片描述

大模型对话

接口描述

该接口用于在一轮对话中向大模型发送消息。

权限说明

Authorization需要填写密钥。

接口定义

完整地址:https://qianfan.baidubce.com/v2/app/conversation/runs

URL/v2/app/conversation/runs
MethodPOST
Content-Typeapplication/json
Authorization请求签名(此签名为应用工作台密钥)

请求结构

POST /v2/app/conversation/runs HTTP/1.1
HOST: qianfan.baidubce.com
Authorization: authorization string
Content-Type: application/json{"app_id": "85036d8f-239c-469c-b342-b62ca9d696f6","query": "根据文件中的数据,统计这几所学校小学生有多少","stream": true,"conversation_id": "355a4f4e-a6d8-4dec-b840-7075030c6d22","file_ids": ["cdd1e194-cfb7-4173-a154-795fae8535d9"]
}

请求头域

除公共头域外,无其它特殊头域。

请求参数

字段类型是否必须说明
app_idstringapp_id,来源于个人空间-应用-应用ID。
querystring用户query文字, 长度限制2000字符。
streambool是否以流式接口的形式返回数据,默认false。
conversation_idstring对话id,可通过新建会话接口创建。
file_idslist[string]如果在对话中上传了文件,可以将文件id放入该字段,目前只处理第一个文件。

服务错误

{“code”: “InternalServerError”, “message”: “The browser (or proxy) sent a request that this server could not understand.”, “request_id”: “6654ae9d-9ae8-4b40-95a9-cedb9xxx”}

在这里插入图片描述

权限错误

原因是stream参数设置成了true。

{“code”: “PermissionDeniedError”, “message”: “Permission denied at app_id 5a48d77f-23a7-4d87-9b87-b80c8ba463ca, conversation_id 86fc0e4f-981c-4bd7-8e30-39axxx”, “request_id”: “e9481c30-21af-41dd-9e59-bb629xxx”}

在这里插入图片描述
原因:拿错参数了, conversation_id参数拿成了request_id参数值,所以一直都是无权限获取。另一个原因是是否以流式接口的形式返回数据,默认false。
在这里插入图片描述

响应成功

在这里插入图片描述

实现代码

//令牌
string answer = string.Empty;
string conversation_id = string.Empty;
string app_id = "你的应用ID";
string Bearer = "API密钥";// 新建会话 - 7天(建议保存起来,七天后再重新获取,省了每次去调用获取)
using (HttpClient client = new HttpClient())
{// 设置请求的URL  string url = "https://qianfan.baidubce.com/v2/app/conversation";var request = new HttpRequestMessage(HttpMethod.Post, url);request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", Bearer);var content = new StringContent("{\"app_id\":\"" + app_id + "\"}", Encoding.UTF8, "application/json");request.Content = content;HttpResponseMessage response = await client.SendAsync(request);string responseBody = await response.Content.ReadAsStringAsync();JObject jsonObject = JObject.Parse(responseBody);dynamic dynamicObject = jsonObject;conversation_id = dynamicObject.conversation_id;
}// 大模型对话
using (HttpClient client = new HttpClient())
{// 设置请求的URL  string url = "https://qianfan.baidubce.com/v2/app/conversation/runs";var request = new HttpRequestMessage(HttpMethod.Post, url);request.Headers.Add("Authorization", $"Bearer {Bearer}");var content = new StringContent("{\"app_id\":\"" + app_id + "\",\"query\":\"你输入的文本\",\"stream\":false,\"conversation_id\":\"" + conversation_id + "\",\"file_ids\":[]}", Encoding.UTF8, "application/json");request.Content = content;HttpResponseMessage response = await client.SendAsync(request);string responseBody = await response.Content.ReadAsStringAsync();JObject jsonObject = JObject.Parse(responseBody);dynamic dynamicObject = jsonObject;answer = dynamicObject.answer;
}

错误返回码说明

错误码HTTP状态码描述说明
InvalidRequestArgumentError400Invalid request argument请求参数错误
PermissionDeniedError401Permission denied权限错误
NotFoundResource404Not Found Resource账户、应用、模型、模版等无法找到
InternalServerError500InternalServerError服务器内部错误
QuotaLimitExceeded400Quota limit exceeded用户Quota超过限制
TemplateValuesError400The value of the template does not match the template scheme模版参数校验错误
QuotaLimitExpired400Quota limit expired用户Quota过期
QianfanPermissionDeniedError400Qianfan Permission Denied Error千帆服务访问失败,一般是权限错误
QianfanApiExpired400Qianfan Api Expired千帆服务过期
AppStatusInvalidError400应用体验地址已更新,请联系应用开发者获取最新地址应用体验地址已更新,请联系应用开发者获取最新地址
TokenStatusInvalidError400鉴权失败,请联系应用开发者获取鉴权密钥鉴权失败,请联系应用开发者获取鉴权密钥
QueryParamInvalidError400query字段异常,请检查Query必填但未填值
AccountNotExistError400账户不存在app对应的账户不存在
NoFileUploadedError400上传文件时文件为空对话中上传文件时文件为空
TooManyFilesError400文件上传时超过一个对话中文件上传时超过一个
FileTooLargeError400文件上传大小超过限制对话中文件上传大小超过限制
UnsupportedFileTypeError400文件类型不支持对话中文件类型不支持
InvalidFileError400文件无效对话中文件参数无效
CreateAgentConversationError500创建对话失败对话中创建对话失败
SdkTokenNotExistError400SDK 密钥不存在SDK 密钥不存在
ChatError500获取流式消息发生异常仅在流式请求应答中出现
RequestExpired400请求超时仅在传参x-bce-date时出现,有效时间30分钟
InvalidHTTPRequestHeader400无效的公共请求头参数公共请求头参数错误
216003401鉴权错误nan

推荐文章

【千帆平台】使用AppBuilder零代码创建应用,然后通过OpenAPI方式调用应用

【千帆平台】使用AppBuilder零代码创建应用,Excel表格数据转为Markdown格式文本

【千帆平台】AppBuilder工作流编排新功能体验之创建自定义组件

【千帆平台】AppBuildert工作流编排新功能体验之创建自定义组件

【千帆平台】使用AppBuilder三步手搓应用创建精准多轮对话agent之K12互动式练习题

【千帆平台】百度智能云千帆AppBuilder应用探索益智游戏之猜物小游戏

【人工智能】百度智能云千帆AppBuilder,快速构建您的专属AI原生应用

【人工智能】千帆平台创建和使用我的数据集,为什么需要数据集,有什么作用

【千帆平台】使用千帆大模型平台创建自定义模型调用API,贺岁灵感模型,文本对话

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/9605.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IP报文在设备间传递的封装过程

IP报文传递过程 1、PC1访问PC2报文传递过程1.1、PC1准备数据请求报文封装1.2、PC1准备ARP请求报文1.3、PC2准备ARP响应报文1.4、PC1完成数据请求报文封装 2、PC1访问PC3报文传递过程2.1、PC1准备数据请求报文封装2.2、PC1准备获取网关MAC地址的ARP请求报文2.3、网关准备ARP响应…

复制粘贴插件——clipboard.js的使用

clipboard.js是一款使用简单的粘贴复制插件,它不依赖于Flash或其他框架,在github拥有3万多颗星可见其优秀程度,介绍如何使用它,以备存。 中文文档: clipboard.js 中文文档 - itxst.com 官网网站:https://github.com/…

神经网路与深度学习

1 深度学习简述 机器学习:相当于把公式实现出来了而已。 深度学习: (1)中的特征工程使机器学习更智能。 (2)真正能学什么样的特征才是最合适的。 (3)主要应用于计算机视觉和自然语…

【探索Java编程:从入门到入狱】Day5

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…

Python深度学习基于Tensorflow(4)Tensorflow 数据处理和数据可视化

文章目录 构建Tensorflow.data数据集TFRecord数据底层生成TFRecord文件数据读取TFRecord文件数据图像增强 数据可视化 构建Tensorflow.data数据集 tf.data.Dataset表示一串元素(element),其中每个元素包含一个或多个Tensor对象。例如&#xf…

XSS-Labs 靶场通过解析(上)

前言 XSS-Labs靶场是一个专门用于学习和练习跨站脚本攻击(XSS)技术的在线平台。它提供了一系列的实验场景和演示,帮助安全研究人员、开发人员和安全爱好者深入了解XSS攻击的原理和防御方法。 XSS-Labs靶场的主要特点和功能包括:…

Transformer模型详解03-Self-Attention(自注意力机制)

文章目录 简介基础知识什么是AttentionSelf Attention原理通俗易懂理解矩阵计算Q,K,V计算Self-Attention 的输出 优势 Multi-head self-attention原理通俗易懂理解矩阵计算代码实现 简介 下图是论文中 Transformer 的内部结构图,左侧为 Enco…

哪里有视频素材可以用?全视频素材都在哪里找?

在这个数字化快速发展的世界中,高清和4K视频素材对于提升视觉故事的品质至关重要。以下是一系列全球知名的视频素材网站,它们提供的高质量素材能够满足您从商业广告到个人项目的所有需求。 1. 蛙学府 以其庞大的创意资源库著称,订阅者可以无…

【数据流图】用JointJs实现数据流图(一)

一、效果图 二、为什么选用JointJs? 节点是动态绘制的JointJs绘制流向线条时不会遮挡住下方的节点元素,方便绑定事件做拓展JointJs提供丰富的API,虽然比较底层但是拓展灵活连线不仅可以通过坐标点连接,还可直接根据节点连接 三、…

如何使用Vite快速构建vue项目

1、在自己定义的目录下打开cmd命令窗口:如文件夹目录上面输入cmd回车就可以打开 2、检查 node环境:通过node --version看版本号表示安装好了 3、 使用Vite 快速构建Vue项目 npm init vitelatest qiuqiu.admin 注意:如何你电脑没有装vite首…

PCIE协议-2-事务层规范---事务描述符

2.2.6.1 概览 事务描述符是请求者和完成器之间传输事务信息的机制。事务描述符由三个字段组成: 事务ID:标识未完成的事务属性字段:定义事务的特征流量类别(TC)字段:将事务与所需的服务类型关联起来 图2-…

EasyHPC - PyTorch入门教程【笔记】

内容来源:超算习堂 (easyhpc.net) 文章目录 01 Tensors环境要求1.1 Tensors1.1.1 直接创建tensor1.1.2 在现有tensor中创建tensor1.1.3 从NumPy中创建tensor 1.2 基本运算1.2.1 使用运算符1.2.2 调用方法 1.3 CUDA Tensors 02 Autograd2.1 Tensor2.2 Gradient 03 Ne…

实现流程化办公,可了解一下可视化报表开源

当前,实现流程化办公早已成为众多中小企业的发展目标和趋势。可以借助什么样的软件平台实现这一目标?低代码技术平台拥有可视化操作界面、够灵活、易维护等优势特点,在助力企业实现流程化办公、数字化转型方面具有重要的应用价值和推动作用。…

[华为OD] C卷 田忌赛马 DFS 200

题目: 给定两个只包含数字的数组a, b,调整数组a里面数字的顺序,使得尽可能多的a[i] >b[i]。 数组a和b中的数字各不相同。 输出所有可以达到最优结果的a数组的数量 输入描述 输入的第一行是数组a中的数字,其中只包含数字,每…

【0002day】HistCite的使用

HistCite是一个很好的软件,可以找出一个领域中具有代表性的几篇文章。同时使用也比较方便,因而我学习了一下它,并做一下记录。 分析过程 首先,需要选择核心数据库,然后依据关键字进行检索。 检索出来后,将…

Secure Transformer Inference Made Non-interactive

目录 1.概述2.Attention2.1 Matrix multiplication (ciphertext-plaintext).2.2 Matrix multiplication (ciphertext-ciphertext)2.3 Placement of bootstrapping3.SIMD密文压缩和解压缩4.SIMD槽折叠5.实验结果 1.概述 我们提出了NEXUS,这是第一个用于安全变压器推…

变老相机app

变老相机app 在手机上使用“变老相机”app,其中的时光穿梭功能可以生成10岁、20岁、50岁、70岁的照片 目的 得到未来自己的照片,能够更有效地督促我们为老年的自己存款。

记录minio的bug(Object name contains unsupported characters.)

场景是我将后端服务从121.xxx.xxx.xxx服务器上转移到了另一台服务器10.xxx.xxx.xxx 但图片都还在121.xxx.xxx.xxx服务器上,同样我10.xxx.xxx.xxx也安装了minio并且我的后端服务配置的minio地址也是10.xxx.xxx.xxx 此时有一个业务通过minio客户端获取图片&#xf…

矩阵和空间变换理解

矩阵和空间变换 把向量和矩阵相乘看作是空间变换,是其中一种看法 代数角度:向量的一行和矩阵的一列逐项相乘再相加等于新向量的一项 w代表原来坐标轴和新坐标轴之间的变换关系,而a和b体现的是原来向量的关系 矩阵代表的是旧坐标和新坐标之间…

Wireshark明文抓取

目录 原理 配置 1、配置环境变量 2、Wireshark配置 原理 SSLKEYLOGFILE是一个用于记录SSL/TLS会话中使用的密钥的文件。它主要用于调试和分析SSL/TLS协议。当启用了SSLKEYLOGFILE配置,系统会将所有SSL/TLS会话中使用的密钥记录到指定的文件中。这些密钥可以用来…