拓冰建站拓冰建站
首页 / 资讯中心 / 正文

agent学习(一)

注意点1 JSON JSON 是一种文本格式字符串跨语言通用几乎所有后端语言都认识能直接通过网络发送网络只能传字符串。网络接口返回的原始内容就是它对应 res.text # 拿到原始JSON字符串接口返回的原始文本而 res.json() # 等价 json.loads(res.text)直接转变成Python字典形式 JSON 字符串直接用[cls]取值报错字符串不能按键取值必须先 loads 转字典。别的语言 Java/JS/C# 没有 Python 字典但是全部都能解析 JSON 字符串。这就是为什么 Agent、前后端交互全部用 JSON不同语言写的程序靠 JSON 字符串交换数据真实项目中 app 可以是 C 写的推理服务agent 可以是 JS 写的前端互相只传 JSON 字符串一 配置虚拟环境建议在虚拟环境里建项目二 Flask的学习Flask 用 Python 写的轻量级 Web 框架用来快速搭建网站、Web 接口API。作用Flask构造的网站可以放一些自己搭建的函数接口当其他py文件(如agent.py)想要调用此接口时便可通过 request库 来访问网站的形式调用函数接口从而达成调用函数。1 构造网站导入Flask类直接使用构造网站服务提供者网页只需做好其url连接的route以及 其网页函数①json用json的get获取用户传来的数据②传入网页函数包含的模型所需参数 最后return即可2 访问网站可直接使用网页访问也可从另一个py文件通过request库访问用户(/agent) 要调用网页里的服务时可以用request库来调用网页地址用url 要给网页的函数(所包含的模型)传入的参数用 json格式。3 服务器接收数据的传输形式注意:返回数据返回的是json形式形式GET形式 POST形式下面的前2个GET形式 后4个POST形式① GET形式这是get请求 ,只从url中传数据② POST形式POST 请求与 GET 请求最大的区别在于数据的传输位置。GET 请求把参数直接拼接在 URL 的查询字符串中而 POST 请求则将数据放在独立的请求体Request Body中URL 本身只负责定位资源不携带业务参数。由于数据存放在请求体中POST 请求可以承载更大量的数据也支持更丰富的数据格式例如 JSON、表单form-data等。在 Flask 服务端可以通过request.get_json()来解析客户端以 JSON 格式提交的数据再将其作为参数传入网页函数所包含的模型中。此外POST 请求在安全性上也优于 GET参数不会暴露在浏览器地址栏中适合传输敏感信息。不过需要注意的是POST 请求体本身仍是明文传输若涉及机密数据仍需配合 HTTPS 加密通道来保证安全。这是POST请求有一个请求体在请求体中传数据可以通过POSTMAN软件来伪装POST请求和get请求,POSTMAN软件如下用POSTMAN来构造 POST请求及其请求体这是POST请求的请求体的Json形式POSTMAN构造json格式。③拿数据默认只能 拿get请求里的数据 。这里加一个methods列表可以拿POST请求里的数据注意request包①request.args获取用户通过url传来的参数如agerequest.args.get(age) print(age)②request.form获取POST请求体里的数据值如③request.json:获取了全部的json值,可以用type来看清啥形式用对应形式来访问对应的值(比如说是字典则用字典get值)res.text拿到原始字符串网页返回的原始文本 是字符串形式res.json()把字符串自动解析成 Python 字典 / 列表 是真实可用的 可以取里边值的json长得像字典 {cls:0,x1:77,y1:7,conf:0.92}。网络接口返回的原始内容就是它对应 res.text # 拿到原始JSON字符串接口返回的原始文本而 res.json() # 等价 json.loads(res.text)直接转变成Python字典形式 JSON 字符串直接用[cls]取值报错字符串不能按键取值必须先 loads 转字典。4 服务器返回数据json数据 本质就是字典返回数据返回的是json形式法1直接变成json形式返回json形式的数据法2 flask的jsonfy 直接用jsonfy返回字典注意错误1 传入的是json形式用对应的request库里的函数来获取其指定内容。但是 函数 不能直接返回 json/字典类型 一定要加jsonyfy 或者 jsondump形式返回。客户端 res.json() 想解析JSON别最后return个字符串如三 把yolo和flask融合通过yolo检测返回坐标json形式给agent.yolo检测的坐标在pred里转换成numpy数组更好操作1️⃣图片传几张一次 model (图片)results.pred (yolo5) 或者 results yolo8. 里只有这 1 张图的预测数据results model(image_path) # 只传入了单张图片路径pred results.pred[0].cpu().numpy(传多张results model([1.jpg, 2.jpg])# pred[0] → 第一张图所有框 result[0]# pred[1] → 第二张图所有框 result[1]2️⃣.cpu().numpy() 两步分别干什么① .cpu()YOLO 默认优先跑 GPU 加速cudaGPU 张量存在显卡显存里。numpy 只能读取内存里的数据显存数据不能直接转 numpy.cpu() 把显卡上的预测数据搬运到电脑内存②把 PyTorch 专属的 Tensor 张量格式 → 转换成通用的 numpy 数组后面写 for det in pred: 遍历yolo5、取 xyxy 数值都是 numpy 数组更好操作
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门