You need to enable JavaScript to run this app.
导航
机箱组装智能体(Beta)
最近更新时间:2025.03.18 20:29:13首次发布时间:2025.03.18 20:29:13
我的收藏
有用
有用
无用
无用

本文介绍了如何使用边缘大模型网关平台预置的机箱组装智能体。

注意

机箱组装智能体现已推出 Beta 版本。如需体验和测试该智能体,请提交工单

能力介绍

机箱组装智能体能够基于视觉交互提示,检测 DPU(Data Processing Unit,数据处理单元)机箱上的连接器是否正确组装。

通过以下示例获取对智能体能力的直观理解:

  • DPU 机箱上需要正确组装多个连接器。通过向智能体提供一些视觉提示,可使智能体检测样本图片上的连接器是否正确组装。
    需要的视觉提示包括:

    • 连接器正确组装的 DPU 机箱参照图片及各个连接器的位置信息
    • 对应于每个连接器的引脚号(一般可从安装说明中获取)

    alt

  • 您可调用 API 向智能体发起检测请求,智能体处理请求后返回样本图片上每个连接器的组装检测结果。

    alt

使用流程

要使用机箱组装智能体,您需要:

  1. 创建一个网关访问密钥,并为该密钥绑定 机箱组装智能体。相关操作,请参见调用平台预置智能体

  2. 获取网关访问密钥的 API key。相关操作,请参见查看密钥(API Key)

  3. 调用机箱组装智能体 API 执行检测任务。关于如何使用 API,请参见 API 使用方法

API 使用方法

请求参数

API 请求中需要携带以下参数:

  • api_key: string
    您的网关访问密钥 API key。

  • image_fn: string
    待检测图片的存储路径。

  • tid: string
    待检测图片对应的机箱型号 ID。

  • image_guided_fn: string
    检测参照图片(连接器正确组装的 DPU 机箱图片)的存储路径。

  • ref_fn: string
    检查参照文件(.json)的存储路径。参照文件(.json)描述了检测参照信息,即检测参照图片上的连接器信息。
    检测参照文件(.json)示例:

    {
        "NAS99000025G": {  # 机箱型号ID
            "boxes": [                 # 参照图片上的连接器位置
                [467.20801612180935,1148.927675772503,923.2760859829818,1327.6110613524406],
                [513.1551724137923,1359.9442454097625,955.6092700403037,1516.5049261083743],
                [1040.6965965069408,1155.7346618898343,1501.8699059561122,1319.102328705777],
                [1079.8367666815939,1339.5232870577697,1525.6943573667704,1501.1892073443798],
                [1643.1148678907293,1148.9276757725033,2051.534034930586,1310.5935960591132],
                [1661.8340797133897,1339.5232870577697,2102.5864308105683,1489.2769816390505],
                [2216.603448275862,1121.6997313031795,2665.864532019704,1305.4883564711151],
                [2237.0244066278547,1322.5058217644423,2693.092476489028,1507.9961934617106],
                [2796.899014778325,1130.2084639498432,3108.3186296462154,1317.4005821764442],
                [2819.0217196596504,1337.821540528437,3118.529108822212,1489.2769816390505],
                [3142.35356023287,1126.8049708911776,3373.791088222122,1312.295342588446],
                [3172.984997760859,1336.1197939991043,3414.633004926108,1490.9787281683834]],
            "texts": [                # 参照图片上的连接器引脚号
                ["011 012 013 014 021 022 023 024"],
                ["031 032 033 034 041 042 043 044"],
                ["051 052 053 054 061 062 063 064"],
                ["071 072 073 074 081 082 083 084"],
                ["091 092 093 094 101 102 103 104"],
                ["111 112 113 114 121 122 123 124"],
                ["131 132 133 134 141 142 143 144"],
                ["151 152 153 154 161 162 163 164"],
                ["X31 X32 X33 X34 X35"],
                ["X41 X42 X43 X44 X45"],
                ["X81 X82 X83 X84"],
                ["X91 X92 X93 X94"]]
        }
    }
    

    参照信息(object[])中的每个元素表示一个机箱型号模板(object{})。每个机箱型号模板(object{})以机箱型号 ID 为字段名,并包含以下参数:

    • boxes: 由所有连接器位置信息组成的数组。每个元素表示一个连接器的位置信息。格式为 [x1,y1,x2,y2]。x1 和 y1 表示连接器边界框左上顶点的水平、垂直像素坐标;x2 和 y2 表示连接器边界框右下顶点的水平、垂直像素坐标。

    • texts: 由所有连接器的引脚号组成的数组。每个元素表示一个连接器上的所有引脚号(string[])。

返回结果

返回结果包含以下两个参数:

  • labels: integer[]
    连接器安装检测结果。取值只有 1 和 0。1 表示连接器正确安装;0 表示连接器安装不正确。

  • boxes: array[]
    每个连接器的位置信息。格式为 [x1,y1,x2,y2]。x1 和 y1 表示连接器边界框左上顶点的水平、垂直像素坐标;x2 和 y2 表示连接器边界框右下顶点的水平、垂直像素坐标。

返回结果示例:

{
    "labels": [1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1],
    "boxes": [
        [521.4167432785034: 1601.544771194458: 992.5063247680664: 1757.1681175231934]: 
        [571.6965579986572: 1758.4208850860596: 982.2514171600342: 1923.638780593872]: 
        [1103.2706336975098: 1592.567310333252: 1558.9436073303223: 1754.5600061416626],
        [1151.6408557891846: 1747.2482271194458: 1551.7310886383057: 1909.1928148269653]: 
        [1755.324462890625: 1587.5738525390625: 2061.3154678344727: 1731.0310678482056]: 
        [1808.866985321045: 1746.1472854614258: 2097.0920219421387: 1882.156551361084]: 
        [2241.386100769043: 1581.686562538147: 2713.4303970336914: 1731.1300563812256]: 
        [2277.2250595092773: 1744.4140892028809: 2707.4804306030273: 1886.2657985687256]: 
        [2794.8960571289062: 1574.529218673706: 3142.582489013672: 1724.3592081069946]: 
        [2795.4283447265625: 1723.012996673584: 3127.0269927978516: 1875.0691680908203]: 
        [3135.6423110961914: 1564.4548931121826: 3363.983253479004: 1707.886178970337]: 
        [3131.689727783203: 1715.3023281097412: 3339.7285079956055: 1853.321044921875]]
}

Python 调用示例

# pip install openai
# https://platform.openai.com/docs/api-reference
import base64
from openai import OpenAI
import json

def img_to_base64(img_path):
   if img_path.find("http") >= 0:
       base64_str = base64.b64encode(httpx.get(img_path).content).decode("utf-8")
   else:
       with open(img_path, "rb") as f:
           base64_str = base64.b64encode(f.read()).decode("utf-8")
   return base64_str
   
client = OpenAI(
   base_url="https://ai-gateway.vei.volces.com/v1",
   api_key="sk-xxxxxxxxxxx"
)

# 待检测图片
image_fn = "./test_data/倾斜NAS9884703ROHS负样本.jpg"

# 检测参照信息
image_guided_fn = "./test_data/pos_NAS9884703ROHS正样本.jpg"
ref_data = {
       "NAS99000025G": {       # "NAS99000025G" 为机箱型号ID,对应value为具体模板信息
       boxes:[[x1: y1: x2: y2],[],[]]:   # "boxes" 和 "texts" 为该型号机箱具体的参照信息。 boxes 表示连接器的位置信息,texts 表示连接器的引脚号: 它们需要一一对应
       texts: [["011 012 013 021 022 023"],[],[]]}}

# 数据处理
ref_info = json.dumps(ref_data)
b64 = img_to_base64(image_fn)
b64_guided = img_to_base64(image_guided_fn)

messages = [
   {
       "role": "user",
       "content": [
           {
               "type": "text",
               "text": f"<ref_info>{ref_info}</ref_info>"},
           {
               "type": "image_url",
               "image_url": {"url": f"data:image/jpeg;base64,{b64}"},
           },
           {
               "type": "image_url",
               "image_url": {"url": f"data:image/jpeg;base64,{b64_guided}"},
           },
       ],
   }
]

completion = client.chat.completions.create(
 model="AG-DPU-assembly-agent",
 messages=messages,
 max_tokens=300,
)
print(completion)