实用篇 | postman在AI模型中输入speech,text,image使用详解

                                               Postman相关直达

实用篇 | 利用Flask+Postman为深度学习模型进行快速测试(超详细)_ CSDN博客

1.基础知识

1.1.postman发送请求(json和urlencoded)

1.1.1.发送 JSON 数据请求(form-data):

要求:

  • 请求方法:POST(或其他支持请求体的方法)
  • 请求头(Headers):Content-Type 设置为 application/json

输入实例:

{ "key1": "value1",

 "key2": "value2" }

1.1.2发送 URL-encoded 数据请求:

要求:

  • 请求方法:POST(或其他支持请求体的方法)
  • 请求头(Headers):Content-Type 设置为 application/x-www-form-urlencoded

输入实例:

key1=value1&key2=value2

1.1.3.请求示例

发送文本请求

  • 请求头(Headers):Content-Type 设置为 text/plain
  • "This is a sample text."

发送图像请求

  • 请求头(Headers):Content-Type 设置为 image/png(或其他适当的图像类型)
  • 将图像二进制数据作为请求体发送

发送语音请求

  • 请求头(Headers):Content-Type 设置为 audio/wav(或其他适当的音频类型)
  • 将语音文件的二进制数据作为请求体发送

在 Postman 中,可以通过选择合适的请求方法、设置请求头、并在 Body 中输入相应的数据来发送不同类型的请求。确保请求头中的 Content-Type 与发送的数据类型相匹配。

1.2.响应结果详解

  • Pretty:格式化显示,以便查看
  • Raw:不进行任何处理,显示响应数据的原始格式
  • Preview:预览响应体,会自动换行,不会格式化(有时候是数据,有时候是页面).预览模式的显示内容取决于接口返回的数据类型。如果返回的数据是JSON格式,且数据中包含图片的base64编码,那么预览模式将展示这张图片。同样的,如果返回的数据是HTML格式,预览模式将会渲染并展示这个HTML页面。
  • Visualize:可视化响应体

“Pretty”,“Raw”,“Preview”对比

  •   "Pretty"模式是将返回的Body数据格式化后进行展示,格式化后的数据看起来更加直观,而且响应数据内容中的链接还会被高亮显示并可以点击去发送请求。默认情况下,Postman会以这种方式展示响应数据。
  •   "Raw"模式是以纯文本的方式展示响应,它可以是多种格式,例如JSON、XML、HTML或普通文本。
  •   "Preview"模式则提供响应结果的预览效果。

  因此,这三种模式各有其特点和用途:"Pretty"模式则侧重于数据的可视化展示,使结构更清晰;"Raw"模式更注重数据的原始形式;而"Preview"模式则提供了响应内容的预览。

2.调用API接口

 在使用postman测试成功后,如果第三方想要在自己的电脑进行测试的话,通过postman自动生成的代码(点击右侧</>)可直接进行接口调用,可选择python,Java,c#等语言及其他方式.

这里选择的是python语言的requests方法:

实例1:语音合成中,根据定义的输入输出方式不同,进行测试

常见的方法就是在本地运行flask api文件后,

①打开postman->选择post->输入IP地址->选择body->选择form-data->输入key和value

对应api的请求格式:

输入:text = request.form["text"]

输出:out_path = "./tts/out.wav"

return send_file(out_path,mimetype="audio/wav", as_attachment=True,download_name="out.wav")

输出的是生成的语音文件路径

打开postman->选择post->输入IP地址->选择body->选择raw(默认json)->输入JSON格式(key和value)

对应api的请求格式:

输入:text=request.json['text']

输出:out_path = "./tts/out.wav"

output = {
            
            "audio": [
                {
                    "@TITLE": base64.b64encode(open(out_path, 'rb').read()).decode()
                                               
                }
            ]
        }
        return jsonify(output)

输出的是生成的语音文件路径

实例2:STT

打开postman->选择post->输入IP地址->选择body->选择binary->上传文件->Send发送请求

实例3:图像生成

【Postman】postman显示返回的base64图片,实现直接预览_postman base64-CSDN博客

过程中遇到的错误及解决(PS)

【PS1】 postman在返回音频时,返回base64编码

不了解base64可参考【实用篇 | Base64详解及代码示例】

目前需要单独进行解码操作

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Audio Player</title>
</head>
<body><audio controls id="audioPlayer">Your browser does not support the audio element.
</audio><script>// 获取从服务器端获取的Base64编码的音频数据const base64Data = "YOUR_BASE64_ENCODED_AUDIO_DATA"; // 替换为实际的Base64数据// 创建一个新的Blob对象const blob = base64toBlob(base64Data, 'audio/wav');// 为Blob创建一个URLconst blobUrl = URL.createObjectURL(blob);// 将Blob URL设置为音频元素的源const audioPlayer = document.getElementById('audioPlayer');audioPlayer.src = blobUrl;// 解码Base64数据并创建Blob对象的辅助函数function base64toBlob(base64Data, contentType) {contentType = contentType || '';const sliceSize = 1024;const byteCharacters = atob(base64Data);const byteArrays = [];for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {const slice = byteCharacters.slice(offset, offset + sliceSize);const byteNumbers = new Array(slice.length);for (let i = 0; i < slice.length; i++) {byteNumbers[i] = slice.charCodeAt(i);}const byteArray = new Uint8Array(byteNumbers);byteArrays.push(byteArray);}const blob = new Blob(byteArrays, { type: contentType });return blob;}
</script></body>
</html>

【PS2】postman在发送请求后返回415

HTTP状态码415表示"不支持的媒体类型",这通常是由于服务器无法理解或处理请求中提供的媒体类型引起的。在这种情况下,可能是因为请求头中的Content-Type与服务器预期的不匹配。

确保在Postman中的请求头中包含正确的Content-Type。对于发送JSON数据,通常使用"application/json"。你可以在Postman的请求头中手动设置或者使用Postman的"Body"选项,选择"raw"并选择"JSON (application/json)"。

Postman发送的请求不正确导致了415错误。

Q&A

【Q&A1】Server中Werkzeug和nginx的区别是什么?

Werkzeug:

Werkzeug 是一个用于构建 WSGI(Web Server Gateway Interface)应用程序的 Python 库。WSGI 定义了 Web 服务器与应用程序之间的标准接口,允许开发者使用不同的框架编写应用程序,而无需担心底层的服务器细节。

Werkzeug 通常被用作 Flask 框架的基础,它提供了一个简单而灵活的方式来构建 Web 应用程序。在开发阶段,Werkzeug 通常用于本地测试服务器,用于方便地调试和测试 Flask 应用。

Werkzeug 不是一个独立的生产级服务器,而是用于在开发环境中运行的轻量级服务器。

Nginx:

Nginx 是一个高性能的反向代理服务器和 Web 服务器。它通常用于生产环境,作为一个前端服务器,处理客户端的请求并将它们传递给后端的应用服务器。

Nginx 提供了负载均衡、反向代理、静态文件服务、SSL 终端等功能。它被广泛用于搭建高性能和可扩展的 Web 架构。

与 Werkzeug 不同,Nginx 不是用于构建应用程序的框架或库,而是专注于提供高效的服务器功能。

在一个典型的 Web 架构中,Werkzeug 通常用于本地开发和测试,而 Nginx 用于实际的生产环境部署。开发者可以使用 Werkzeug 作为调试服务器,而在生产环境中,Nginx 与应用服务器(如 Gunicorn、uWSGI 等)一起使用,以提供高性能和稳定的 Web 服务。

扩展

A1:postman对字符串进行base64编码方法和变量的使用

在发送请求前,对将要发送的文件进行预处理,也就是把生成的编码传值给请求参数。

在页面的【Pre-request Script】选项页中,增加如下代码

const text = CryptoJS.enc.Utf8.parse("将要输入的文件")
const base64_text = CryptoJS.enc.Base64.stringify(text)

具体内容为:使用CryptoJS这个库,“var”为JS语言新建变量的固定声明方式ip

  • 新建变量card,使用CryptoJS库,对待加密的原始字符串“1652423”进行编码字符串
  • 新建变量base64,使用CryptoJS库,对编码后的字符串进行base64类型的加密requests
  • 设置一个环境变量名为:“cardNumber”,用来获取第②行base64加密后的值

(这个变量名须要与以前设置环境变量时的变量名相同)

 点击send发送请求,在下面出现预期结果。请求中字段使用Base64加密成功

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

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

相关文章

jQuery前段开发--星级评价和图形跟随指针移动

一、实验原理&#xff1a; 当鼠标移入某个星星&#xff0c;前面的星星都会被点亮&#xff1b;当鼠标移出&#xff0c;星星将会变暗&#xff0c;单击某个星星后&#xff0c;即可完成评论&#xff0c;此时鼠标移出后&#xff0c;被单击星星前面的星星都会被点亮&#xff0c;后面…

ES6-let

一、基本语法 ES6 中的 let 关键字用于声明变量&#xff0c;并且具有块级作用域。 - 语法&#xff1a;let 标识符;let 标识符初始值; - 规则&#xff1a;1.不能重复声明let不允许在相同作用域内重复声明同一个变量2.不存在变量提升在同一作用域内&#xff0c;必须先声明才能试…

Mac电脑连接linux远程桌面

起因 家庭中的内网下有一台ubuntu虚拟机&#xff0c;只能通过ssh终端操作或者通过实体机进行操作实在有些不方便。所以便想着通过linux远程桌面的方式进行连接&#xff0c;由于家庭内网&#xff0c;延迟还是非常低的。 步骤 首先在ubuntu虚拟机上安装xrdp&#xff08;可能已…

深度解析源码,Spring 如何使用三级缓存解决循环依赖

目录 一. 前言 二. 基础知识 2.1. 什么是循环依赖&#xff1f; 2.2. 三级缓存 2.3. 原理执行流程 三. 源码解读 3.1. 代码入口 3.2. 第一层 3.3. 第二层 3.4. 第三层 3.5. 返回第二层 3.6. 返回第一层 四. 原理深度解读 4.1. 什么要有三级缓存&#xff1f; 4.2.…

ToF传感器在移动机器人中的作用

原创 | 文 BFT机器人 在日新月异的机器人技术领域&#xff0c;技术的无缝整合正引领着人类与机器交互方式的革新潮流。ToF传感器作为变革性创新的一个例子&#xff0c;对移动机器人更好地感知周围环境起到了决定性的作用。 ToF传感器与激光雷达技术在创建深度图方面有着异曲同…

Vue3学习记录(一)--- 组合式API之基础概念和变量声明

一、组合式API基础 1、简介 ​ 组合式 API (Composition API) 是Vue3和Vue2的v2.7之后版本中的全新特性&#xff0c;是一系列API的的集合&#xff08;响应式API、生命周期钩子、依赖注入等等&#xff09;&#xff0c;其风格是基于函数的组合&#xff0c;以一种更直观、更灵活…

python+django+vue高校学生社团管理系统euw84

社团管理系统是一个B/S模式系统&#xff0c;采用django框架&#xff0c;MySQL数据库设计开发&#xff0c;充分保证系统的稳定性。在系统的测试环节&#xff0c;主要通过功能测试的方式&#xff0c;验证系统的功能设计是否符合要求&#xff0c;能否满足使用需求。本社团管理系统…

论文阅读-在分布式数据库环境中对哈希算法进行负载均衡基准测试

论文名称&#xff1a;Benchmarking Hashing Algorithms for Load Balancing in a Distributed Database Environment 摘要 现代高负载应用使用多个数据库实例存储数据。这样的架构需要数据一致性&#xff0c;并且确保数据在节点之间均匀分布很重要。负载均衡被用来实现这些目…

springboot并mybatis入门启动

pom.xml,需要留意jdk的版本&#xff08;11&#xff09;和springboot版本要匹配&#xff08;2.7.4&#xff09;&#xff0c;然后还要注意mybatis启动l类的版本&#xff08;2.2.2&#xff09; <?xml version"1.0" encoding"UTF-8"?> <project xm…

用免费软件分流抢票Bypass辅助购买火车票的亲测可用方法

本文介绍基于分流抢票&#xff08;Bypass&#xff09;软件&#xff0c;协助购买预售、已开售或候补等各类状态的火车票的方法。 最近几天一直没有顾得上看过年回家的火车票&#xff0c;导致错过了回家车票的开售时间&#xff0c;所以当时就直接去12306的官方网站候补了&#xf…

vite打包原理

vite 工程化开发&#xff1a;打包工具 启动速度很快 核心原理还是webpack 把webpack封装了&#xff0c;把webpack对象封装了 和vue2整体结构几乎一致 webpack两种模式&#xff1a;开发&生产 代码打包编译&#xff0c;本地起一个web服务器实时预览编译后的结果 build 命令模…

爱快安装和双宽带叠加

文章目录 一、爱快安装二、爱快使用1. 配置WAN12. 配置WAN23. 配置LAN14. 配置DHCP5. DNS设置6. 多线负载7. 基础设置 三、通过交换机拨号1. 交换机设置2. 配置WAN1 一、爱快安装 &#xff08;1&#xff09;下载爱快路由ISO版本 爱快路由系统下载 &#xff08;2&#xff09;IS…