全部產品
Search
文件中心

Platform For AI:多媒體分析:Python SDK使用說明

更新時間:Aug 16, 2025

PAI多媒體分析支援通過Python SDK調用各項演算法服務。本文為您介紹多媒體分析Python SDK的介面詳情以及使用Python SDK調用演算法服務和查詢結果的樣本。

步驟一:安裝Python SDK

環境依賴Python 3及其以上版本,安裝命令如下。

pip install ai-service-python-sdk==1.1.5

步驟二:初始化Client

使用以下命令,進行環境初始化。

from ai_service_python_sdk.client.api_client import ApiClient
client = ApiClient('<HOST>', '<YOUR-APPID>', '<YOUR-TOKEN>')

您需要根據實際情況,替換以下參數值。

參數

描述

<HOST>

服務端地址:http://ai-service.ce8cc13b6421545749e7b4605f3d02607.cn-hangzhou.alicontainer.com

<YOUR-APPID>

開通多媒體分析服務後,您可以直接在多媒體分析頁面查看AppId

<YOUR-TOKEN>

開通多媒體分析服務後,您可以直接在多媒體分析頁面查看TOKEN

使用樣本

映像品質評分

提供映像品質評估能力,返回[0,100]的浮點數分值,請求程式碼範例如下。

from ai_service_python_sdk.client.api.ai_service_image_api import AiServiceImageApi

# 請求圖片URL。
image_url = 'https://your_image_url.jpg'
ai_service_api = AiServiceImageApi(client)
# 定製模型名稱。
model_name = ''
# 模型返回配置,該模型沒有返回配置參數,傳入空字典即可。
configure = {}
# 請求服務。
response = ai_service_api.image_qa(image_url, model_name, configure)
# 請求流水號。
request_id = response.request_id
# 請求狀態。
code = response.code
# 請求狀態具體資訊。
message = response.message
# 模型傳回值。
data = response.data
# 列印返回結果。
print(response)

參數說明如下。

參數

類型

是否必選

描述

image_url

STRING

圖片URL,建議圖片大小不大於5 MB,解析度不低於240 * 240。

model_name

STRING

預設輸入Null 字元串,表示調用通用模型。

如果通用模型不能滿足您的業務需求,您可以聯絡您的商務經理,為您提供定製模型。傳入定製模型名稱,即可調用定製的模型結果。

configure

Dict

模型返回配置,該模型服務輸入空字典即可。

返回結果樣本如下。

{
    "code":"OK",
    "data":{
        "image_height":214,
        "image_width":398,
        "iqa_result":66.88
    },
    "message":"success",
    "request_id":"1d4572a1-2800-4213-9e9c-33f9fa7e****"
}

返回欄位說明如下。

參數

描述

request_id

請求流水號,STRING類型。

code

請求狀態代碼,STRING類型。

message

請求狀態具體資訊,STRING類型。返回樣本如下:

  • success

  • Invalid Input - image data error - base64decode error: base64decode error: incorrect base64 format data

  • Invalid Input - json format error - json parse runtime exception

更多請求狀態,詳情請參見返回錯誤碼說明

data

模型返回內容,Dict類型。內部參數說明如下:

  • image_height:圖片像素高度,INT類型。

  • image_width:映像像素寬度,INT類型。

  • iqa_result:品質分,FLOAT類型,精度精確到小數點後兩位。

人臉屬性分析

提供人臉相關屬性的輸出,包括臉型、發色、髮型、顏值等資訊。請求程式碼範例如下。

from ai_service_python_sdk.client.api.ai_service_image_api import AiServiceImageApi

# 請求圖片URL。
image_url = 'https://your_image_url.jpg'
ai_service_api = AiServiceImageApi(client)
# 定製模型名稱。
model_name = ''
# 模型返回配置,該模型沒有返回配置參數,傳入空字典即可。
configure = {}
# 請求服務。
response = ai_service_api.face_attr_image(image_url, model_name, configure)
# 請求流水號。
request_id = response.request_id
# 請求狀態。
code = response.code
# 請求狀態具體資訊。
message = response.message
# 模型傳回值。
data = response.data
# 列印返回結果。
print(response)

參數說明如下。

參數

類型

是否必選

描述

image_url

STRING

圖片URL。映像中人臉地區大小需大於100 * 100像素。

model_name

STRING

預設輸入Null 字元串,表示調用通用模型。

如果通用模型不能滿足您的業務需求,您可以聯絡您的商務經理,為您提供定製模型。傳入定製模型名稱,即可調用定製的模型結果。

configure

Dict

模型返回配置,該模型服務輸入空字典即可。

返回結果如下。

{'code': 'OK',
 'data': {'attr': [{'FaceShape': {'三角臉': 0.0013,
                                  '圓臉': 0.0147,
                                  '心形臉': 0.0405,
                                  '方形臉': 0.0001,
                                  '橢圓臉': 0.9266,
                                  '菱形臉': 0.0027,
                                  '長臉': 0.0141},
                    'FemaleHairStyle': {'BangsType': {'中分劉海': 0.5932,
                                                      '劉海編髮': 0.0058,
                                                      '斜劉海': 0.0575,
                                                      '無劉海': 0.3078,
                                                      '空氣劉海': 0.0143,
                                                      '齊劉海': 0.0213},
                                        'FemaleCurlyHairType': {'雲朵卷': 0.1289,
                                                                '大波浪': 0.2526,
                                                                '小波浪': 0.084,
                                                                '氧氣卷': 0.2027,
                                                                '空氣卷': 0.1434,
                                                                '羊毛卷': 0.1539,
                                                                '蛋卷': 0.0345},
                                        'FemaleHairType': {'捲髮': 0.1941,
                                                           '盤發': 0.0112,
                                                           '直發': 0.7947},
                                        'FemaleLongShortHair': {'中長發': 0.2807,
                                                                '短髮': 0.0346,
                                                                '長發': 0.6846},
                                        '紮發': 0.3054,
                                        '編髮': 0.3453},
                    'HairColor': {'其他顏色': 0.0001,
                                  '咖啡色': 0,
                                  '奶奶灰': 0,
                                  '栗色': 0.0025,
                                  '棕色': 0.0622,
                                  '漸層色': 0.0004,
                                  '酒紅色': 0.0001,
                                  '金色': 0,
                                  '黃色': 0,
                                  '黑色': 0.9347},
                    'MaleHairStyle': {'分發': 0.9939,
                                      '圓寸': 0,
                                      '子彈頭': 0.0033,
                                      '平頭': 0,
                                      '板寸': 0.001,
                                      '毛寸': 0.0008,
                                      '碎發': 0,
                                      '背頭': 0.0001,
                                      '莫西幹': 0.0006},
                    'bbox': [91, 0, 430, 452],
                    'face_score': 3.2431,
                    'index': 0}]},
 'message': 'success',
 'request_id': '9b2f2c0e-d2c0-45f8-b922-058d00edc9ad'}

返回欄位說明如下。

參數

描述

request_id

請求流水號,STRING類型。

code

請求狀態代碼,STRING類型。

message

請求狀態具體資訊,STRING類型。返回樣本如下:

  • success

  • Invalid Input - image data error - base64decode error: base64decode error: incorrect base64 format data

  • Invalid Input - json format error - json parse runtime exception

更多請求狀態,詳情請參見返回錯誤碼說明

Data

模型返回內容,Dict類型。具體返回參數說明,詳情請參見data內部欄位

表 1. data內部欄位

參數

描述

attr

整個映像的屬性內容,List類型。列表中的每一個元素表示一個人臉的屬性。

說明

如果列表內容為空白,表示沒有檢測到人臉。

FaceShape

人臉形狀,Dict類型。

FemaleHairStyle

女性髮型分類,Dict類型。

BangsType

女性劉海類型,Dict類型。

FemaleCurlyHairType

女性捲髮類型,Dict類型。

FemaleHairType欄位中,捲髮對應機率最高時讀取該欄位的內容。

FemaleHairType

女性髮型,Dict類型。

FemaleLongShortHair

女性頭髮長短,Dict類型。

紮發

女性頭髮是否為紮發,FLOAT類型。

該值大於等於0.5時,表示頭髮是紮發。

編髮

女性頭髮是否是編髮,FLOAT類型。

該值大於等於0.5時,表示頭髮是編髮。

HairColor

頭髮顏色,Dict類型。

MaleHairStyle

男性髮型分類,Dict類型。

bbox

人臉矩形框,LIST類型。排列為[xmin,ymin,xmax,ymax]

index

人臉在該圖中的編號,INT類型,從0開始遞增。

年齡分析

用於識別映像中主體人臉(需唯一)的年齡區間。

說明

由於該模型屬於定製模型,您需要提供AppId給您的商務經理或相關介面人,進行後台配置後才可以調用。

請求程式碼範例如下:

from ai_service_python_sdk.client.api.ai_service_image_api import AiServiceImageApi

# 請求圖片URL
image_url = 'https://your_image_url.jpg'
ai_service_api = AiServiceImageApi(client)
# 定製模型名稱
model_name = 'fairface'
# 模型返回配置,該模型沒有返回配置參數,傳入空字典即可
configure = {}
# 請求服務
response = ai_service_api.face_attr_image(image_url, model_name, configure)
# 請求流水號
request_id = response.request_id
# 請求狀態
code = response.code
# 請求狀態具體資訊
message = response.message
# 模型傳回值
data = response.data
# 列印返回結果
print(response)

參數說明如下:

參數

類型

是否必選

描述

image_url

STRING

圖片的URL地址。圖片中的人臉地區需要大於100×100像素。

model_name

STRING

自訂模型名稱。

configure

Dict

模型返回配置。該模型服務輸入空字典即可。

返回結果樣本如下:

{
    "request_id":"10000",
    "code":"OK",
    "message":"success",
    "data":{
        "age_range":"3-9",
        "age_range_prob":0.9525
    }
}

參數

描述

request_id

請求流水號,STRING類型。

code

請求狀態代碼,STRING類型。

message

請求狀態具體資訊,STRING類型。返回樣本如下:

  • success

  • Invalid Input - image data error - {具體報錯}

data

模型返回內容,Dict類型。具體返回參數說明如下:

  • age_range:年齡區間,STRING類型。可能值為'0-2', '3-9', '10-19', '20-29', '30-39', '40-49', '50-59', '60-69', '70+'

  • age_range_prob:年齡區間機率,FLOAT類型。

映像多標籤

提供映像多標籤打標能力,支援輸出機率較高的Top K個標籤及對應機率,也支援輸出映像的高維特徵。請求程式碼範例如下。

from ai_service_python_sdk.client.api.ai_service_image_api import AiServiceImageApi

# 請求圖片URL。
image_url = 'https://your_image_url.jpg'
ai_service_api = AiServiceImageApi(client)
# 定製模型名稱。
model_name = ''
# 模型返回配置。
configure = {'tag_top_k': 5, 'output_embedding': False}
# 請求服務。
response = ai_service_api.multi_label_image_v2(image_url, model_name, configure)
# 請求流水號。
request_id = response.request_id
# 請求狀態。
code = response.code
# 請求狀態具體資訊。
message = response.message
# 模型傳回值。
data = response.data
# 列印返回結果。
print(response)

參數說明如下。

參數

類型

是否必選

描述

image_url

STRING

圖片URL,建議圖片大小不大於5 MB,解析度不低於240 * 240。

model_name

STRING

預設輸入Null 字元串,表示調用通用模型。

如果通用模型不能滿足您的業務需求,您可以聯絡阿里雲機器學習支援小組,為您提供定製模型。傳入定製模型名稱,即可調用定製的模型結果。

configure

Dict

模型返回配置,預設輸入None。具體參數配置,詳情請參見configure內部參數

說明

configureNone時,configure內部參數取預設值。

configure內部參數

configure內部參數

類型

是否必選

描述

tag_top_k

INT

輸出Top K個結果。取值範圍:[1,10],預設為10。

output_embedding

BOOL

是否輸出圖片embedding,取值如下:

  • True:預設值,表示輸出圖片高維特徵。

  • False

返回結果樣本如下。

{'code': 'OK',
 'data': {'image_height': 510,
          'image_width': 516,
          'tag_result': [{'score': 0.505, 'tag': '笑容'},
                         {'score': 0.493, 'tag': '女士'},
                         {'score': 0.475, 'tag': '美女'},
                         {'score': 0.438, 'tag': '微笑'},
                         {'score': 0.432, 'tag': '蜜茶棕'}]},
 'message': 'success',
 'request_id': 'c9e5aa33-4d8d-49ce-8991-bcbb5f12e43b'}

返回欄位說明如下。

參數

描述

request_id

請求流水號,STRING類型。

code

請求狀態代碼,STRING類型。

message

請求狀態具體資訊,STRING類型。返回樣本如下:

  • success

  • Invalid Input - image data error - base64decode error: base64decode error: incorrect base64 format data

  • Invalid Input - json format error - json parse runtime exception

更多請求狀態,詳情請參見返回錯誤碼說明

data

模型返回內容,Dict類型。具體返回參數說明,詳情請參見data內部欄位

表 3. data內部欄位

參數

描述

tag_result

標籤結果,List類型,按score(機率)降序排列。

列表長度由tag_top_k決定。

score

標籤機率,FLOAT類型,精度精確到小數點後三位。

tag

標籤名,STRING類型。

embedding_result

512維圖片特徵,STRING類型,使用半形逗號(,)分隔。

僅當output_embedding為True時,存在該返回欄位。

image_height

圖片像素高度,INT類型。

image_width

圖片像素寬度,INT類型。

AI繪圖打標

提供AI繪圖(Stable-Diffusion)訓練使用到的映像多標籤打標能力,輸出為合成好的Caption以及相對於原標籤集合的得分,支援主流社交平台、新聞媒體、視頻網站等浮水印類型。

重要

該模型屬於定製模型,您需要提供AppId給您的商務經理或相關介面人,進行後台配置後才可以調用。

請求樣本如下。

from ai_service_python_sdk.client.api.ai_service_image_api import AiServiceImageApi

# 請求圖片URL
image_url = 'https://your_image_url.jpg'
ai_service_api = AiServiceImageApi(client)
# 定製模型名稱
model_name = 'tagger'
# 模型返回配置
configure = {'threshold': 0.5, 'tagger_type': "SmilingWolf/wd-v1-4-convnextv2-tagger-v2"}
# 請求服務
response = ai_service_api.multi_label_image_v2(image_url, model_name, configure)
# 請求流水號
request_id = response.request_id
# 請求狀態
code = response.code
# 請求狀態具體資訊
message = response.message
# 模型傳回值
data = response.data
# 列印返回結果
print(response)

參數說明如下:

參數名稱

參數說明

類型

是否必須

image_url

圖片URL,建議大小不大於5 M,解析度不低於 240*240。

STRING

model_name

模型名稱,輸入tagger

STRING

configure

模型返回配置configure,預設輸入None。內部參數說明,請參見configure內部參數

Dict

configure內部參數

configure

內部參數

參數說明

類型

是否

必須

樣本

threshold

輸入門限。

FLOAT

0.5

tagger_type

使用的打標模型。

  • SmilingWolf/wd-v1-4-convnext-tagger-v2

  • SmilingWolf/wd-v1-4-convnextv2-tagger-v2

  • SmilingWolf/wd-v1-4-vit-tagger-v2

  • SmilingWolf/wd-v1-4-swinv2-tagger-v2

  • RAM

  • BLIP

  • GIT

STR

SmilingWolf/wd-v1-4-convnextv2-tagger-v2

返回結果樣本如下:

{
    "data": {
    	"caption": "sensitive, 1girl, solo, long hair, looking at viewer, smile, black hair, brown eyes, scarf, lips, realistic",
    	"probs": [1.1920928955078125e-07, ............, 3.5762786865234375e-07, 4.76837158203125e-07],
	}
    "request_id": "12***", 
    "code": "OK",
    "message": "success"
}

返回欄位

參數說明

類型

request_id

請求流水號。

STRING

code

請求狀態代碼。

STRING

message

請求狀態具體資訊,樣本:

  • success

  • Invalid Input - image data error - base64decode error: incorrect base64 format data

  • Invalid Input - json format error - json parse runtime exception

STRING

data

模型返回內容。內部欄位說明,請參見data內部欄位說明

Dict

data內部欄位說明

data內部欄位

參數說明

類型

caption

打標結果,以半形逗號(,)分割。

STR

probs

使用指定的打標模型打標獲得的得分。

List

人像身材修改

提供人像身材修改能力,上傳人像照片,根據degree參數控制人像胖身或瘦身(degree > 0代表瘦身)

重要

該模型屬於定製模型,您需要提供AppId給您的商務經理或相關介面人,進行後台配置後才可以調用。

請求程式碼範例如下:

from ai_service_python_sdk.client.api.ai_service_image_api import AiServiceImageApi

# 請求圖片URL
image_url = 'https://your_image_url.jpg'
ai_service_api = AiServiceImageApi(client)
# 人身修改的模型名稱
model_name = 'body_reshaping'
# 大碼化需求下,degree 建議 [-2.5, -1.5]
configure = {'degree': -1.5}
# 請求服務
response = ai_service_api.multi_label_image_v2(image_url, model_name, configure)
# 請求流水號
request_id = response.request_id
# 請求狀態
code = response.code
# 請求狀態具體資訊
message = response.message
# 模型傳回值
data = response.data
# 列印返回結果
print(response)

請求參數說明:

參數名稱

參數說明

類型

是否必須

image_url

圖片URL,建議大小不大於5 M,解析度不低於 240*240。

STRING

model_name

模型名稱,填寫body_reshaping

STRING

configure

模型返回配置configure,預設輸入None。內部參數說明,請參見configure內部參數說明

Dict

configure內部參數說明

configure內部參數名稱

參數說明

類型

是否必須

degree

身材修改程度,> 0代表對映像中的人物進行瘦身,預設值為 -1.5

FLOAT

返回結果樣本如下:

{
 "code":"OK",
 "data":"imByev+I3vrryTGN****",
 "message":"success",
 "request_id":"1d4572a1-2800-4213-9e9c-33********"
}

返回欄位說明如下:

返回欄位

參數說明

類型

request_id

請求流水號。

STRING

code

請求狀態代碼。

STRING

message

請求狀態具體資訊,樣本:

  • success

  • Invalid Input - image data error - base64decode error: base64decode error: incorrect base64 format data

  • Invalid Input - json format error - json parse runtime exception

STRING

data

模型推理返回的圖片base64。

STRING

映像去浮水印

傳入帶浮水印的映像,返回無浮水印映像,主要針對常見視頻、社交平台等浮水印。

重要

該模型屬於定製模型,您需要提供AppId給您的商務經理或相關介面人,進行後台配置後才可以調用。

請求程式碼範例如下:

from ai_service_python_sdk.client.api.ai_service_image_api import AiServiceImageApi

# 請求圖片URL
image_url = 'https://your_image_url.jpg'
ai_service_api = AiServiceImageApi(client)
# 定製模型名稱
model_name = 'watermark_remover'
# 傳入空字典即可
configure = {}
# 請求服務
response = ai_service_api.multi_label_image_v2(image_url, model_name, configure)
# 請求流水號
request_id = response.request_id
# 請求狀態
code = response.code
# 請求狀態具體資訊
message = response.message
# 模型傳回值
data = response.data
# 列印返回結果
print(response)

請求參數說明如下。

參數名稱

參數說明

類型

是否必須

image_url

圖片URL,建議大小不大於 5M,解析度不低於 240*240。

STRING

model_name

模型名稱,填寫watermark_remover

STRING

configure

模型返回配置configure,預設輸入None

Dict

返回結果樣本如下:

{
 "code":"OK",
 "data":"imByev+I3vr****",
 "message":"success",
 "request_id":"1d4572a****"
}

結果欄位說明:

返回欄位

參數說明

類型

request_id

請求流水號。

STRING

code

請求狀態代碼。

STRING

message

請求狀態具體資訊,樣本:

  • success

  • Invalid Input - image data error - base64decode error: incorrect base64 format data

  • Invalid Input - json format error - json parse runtime exception

STRING

data

模型推理返回圖片的base64。

STRING

圖文視頻動態分類打標

為包含多模態內容的動態或文章提供分類打標服務,支援使用文本+圖片或文本+視頻的組合進行分類打標,並支援返回高維特徵Embedding。

說明

由於該模型屬於定製模型,您需要提供AppId給您的商務經理或相關介面人,進行後台配置後才可以調用。

請求程式碼範例如下:

from ai_service_python_sdk.client.api.ai_service_video_api import AiServiceVideoApi

ai_service_api = AiServiceVideoApi(client)
# 多模態打標模型名稱
model_name = 'multi_modal_tag'
# 視頻URL,若沒有則傳入Null 字元串
video_url = 'https://YOUR_VIDEO.mp4'
# 圖片URL集,若沒有則傳入空數組
images = [
    'https://YOUR_IMAGE_0.jpg',
    'https://YOUR_IMAGE_1.jpg',
    'https://YOUR_IMAGE_2.jpg'
]
# 常值內容
text = '常值內容'
# 模型返回配置
configure = {
    'output_classification': True, 
    'classification_top_k': 1,
    'output_tag': True,
    'tag_top_k': 5, 
    'output_embedding': True
}
# 請求服務
response = ai_service_api.multimodal_classify(video_url, images, text, model_name, configure)
# 請求流水號
request_id = response.request_id
# 請求狀態
code = response.code
# 請求狀態具體資訊
message = response.message
# 請求返回內容
data = response.data
# job id
job_id = response.data['job_id']
# 列印返回結果
print(response)

參數說明如下:

參數

類型

是否必選

描述

video_url

STRING

視頻的URL地址,如果沒有視頻則傳入Null 字元串。

images

List[STRING]

圖片的URL集合,如果沒有圖片則傳入空數組。多個圖片URL地址使用半形逗號(,)分隔。

text

STRING

常值內容,使用標題與簡介進行拼接。

model_name

STRING

模型名稱。

configure

Dict

模型額外配置,Dict類型。內部參數說明,請參見configure內部參數

configure內部參數

configure內部參數

類型

是否必選

描述

output_classification

BOOL

是否輸出分類結果,預設為True。

classification_top_k

INT

輸出TopK的分類結果,範圍為[1, 10],預設為1。

output_tag

BOOL

是否輸出標籤結果,預設為True。

tag_top_k

INT

輸出TopK的標籤結果,範圍為[1, 10],預設為5。

output_embedding

BOOL

是否輸出32維的多模態embedding,預設為True。

返回結果樣本如下:

{'code': 'OK',
 'data': {'job_id': 1134***},
 'message': 'success',
 'request_id': '49b0c9c2-06be-4f30-9b9f-f04baecf4577'}

從上述返回結果中擷取job_id,並使用以下代碼進行結果查詢。

from ai_service_python_sdk.client.api.ai_service_job_api import AiServiceJobApi

ai_service_job_api = AiServiceJobApi(client)
# 結果查詢
result = ai_service_job_api.get_async_job(<YOUR-JOB-ID>)
# 列印返回結果
print(result)

其中:<YOUR-JOB-ID>需要替換為請求服務時返回的job_id

返回結果樣本如下:

  • 任務執行中的返回結果樣本如下:

    {'code': 'OK',
     'data': {'job': {'Result': '',
                      'app_id': 'YOUR_APPID',
                      'create_time': '2023-10-18T14:32:42.619+08:00',
                      'id': 1134206,
                      'message': 'video downloading',
                      'state': 1}},
     'message': 'success',
     'request_id': '49b0c9c2-06be-4f30-9b9f-f04baecf4577'}
  • 任務執行完成後的返回結果樣本如下:

    {
    'code': 'OK',
    'data': {'job': 
                {'Result': 
                            '{"classification_result":[{"class":"旅遊","score":0.67}],
                            "duration":15.16,
                            "embedding_result":"0.915,0.882,0.943,0.978,1.027,1.181,1.066,1.029,0.866,0.716,0.628,1.203,0.689,0.533,0.734,1.038,0.98,0.613,0.96,0.88,0.586,0.702,1.515,0.697,0.987,0.699,1.179,4.274,0.757,0.89,0.805,0.901",
                            "tag_result":[{"score":0.56,"tag":"有字幕"},{"score":0.456,"tag":"航拍"},{"score":0.453,"tag":"西藏"},{"score":0.437,"tag":"交通工具"},{"score":0.429,"tag":"機械"}],
                            "video_height":918,
                            "video_width":552}',
                            'app_id': '202211140827340****',
                            'create_time': '2023-10-18T14:32:42.619+08:00',
                            'id': 113****,
                            'message': 'success',
                            'model_id': 0,
                            'request_id': '',
                            'state': 2,
                            'type': 'Video'
                }
            },
    'message': 'success',
    'request_id': '139a40ad-fdf6-45de-b760-161c52ff3f3c'
    }

返回欄位說明如下:

返回欄位

類型

參數說明

request_id

STRING

請求流水號。

code

STRING

請求狀態代碼。

message

STRING

請求狀態具體資訊,可能值為:

  • success

  • Invalid Input - video data error - load video failed

  • Invalid Input - json format error - json parse runtime exception

data

Dict

模型返回內容。內部欄位說明,詳情請參見data內部欄位說明

data內部欄位說明

data['job']內部欄位

類型

欄位說明

id

INT

任務ID,即job_id。

app_id

STRING

使用者的AppId。

state

INT

任務狀態代碼,可能值為:

  • 0:任務初始化。

  • 1:任務執行中。

  • 2:任務完成。

  • 3:任務失敗。

message

STRING

任務執行資訊,可能值為:

  • success

  • video downloading

create_time

STRING

任務建立的時間。

Result

STRING

模型返回結果,內部欄位說明,請參見Result內部欄位說明

Result內部欄位說明

Result內部欄位

類型

欄位說明

classification_result

List

分類結果,按score降序排列。長度由

classification_top_k決定,每個元素為Dict格式。

僅當output_classification為True時存在該欄位。

tag_result

List

標籤結果,按score降序排列。長度由tag_top_k決定,每個元素為Dict格式。

僅當output_tag為True時存在該欄位。

score

FLOAT

標籤機率,精度到小數點後3位。

class

STRING

類別名。

tag

STRING

標籤名。

embedding_result

STRING

32維多模態特徵,使用半形逗號(,)分隔。

video_height

INT

視頻像素高度。當video_url傳入Null 字元串時,該值為空白字串。

video_width

INT

視頻像素寬度。當video_url傳入Null 字元串時,該值為空白字串。

duration

FLOAT

視頻時間長度。當video_url傳入Null 字元串時,該值為空白字串。

視頻品質評分

提供短視頻品質評估能力,返回[0,100]的浮點品質分。支援以下兩種請求方式:

  • 單次請求介面,請求程式碼範例如下。

    from ai_service_python_sdk.client.api.ai_service_video_api import AiServiceVideoApi
    
    video_url = 'https://your_video_url.mp4'
    ai_service_api = AiServiceVideoApi(client)
    # 定製模型名稱。
    model_name = ''
    # 視頻標題。
    video_title = ''
    # 模型返回配置。
    configure = {}
    # 請求服務。
    response = ai_service_api.video_qa(video_url, model_name, video_title, configure)
    # 請求流水號。
    request_id = response.request_id
    # 請求狀態。
    code = response.code
    # 請求狀態具體資訊。
    message = response.message
    # 請求返回內容。
    data = response.data
    # job id。
    job_id = response.data['job_id']
    # 列印返回結果。
    print(response)

    參數說明如下。

    參數

    類型

    是否必選

    描述

    video_url

    STRING

    視頻URL,建議視頻大小不大於100 MB,解析度不低於320 * 240。

    video_title

    STRING

    視頻標題,該模型不會用到標題,所以傳入Null 字元串即可。

    model_name

    STRING

    預設輸入Null 字元串,表示調用通用模型。

    如果通用模型不能滿足您的業務需求,您可以聯絡您的商務經理,為您提供定製模型。傳入定製模型名稱,即可調用定製的模型結果。

    configure

    Dict

    模型返回配置,該模型服務輸入空字典即可。

    返回結果樣本如下。

    {'code': 'OK',
     'data': {'job_id': 10**},
     'message': 'success',
     'request_id': '228235a6-db4f-466a-b20b-a4453f81****'}

    從上述返回結果中擷取job_id,並使用以下代碼進行結果查詢。

    from ai_service_python_sdk.client.api.ai_service_job_api import AiServiceJobApi
    
    ai_service_job_api = AiServiceJobApi(client)
    # 結果查詢。
    result = ai_service_job_api.get_async_job(<YOUR-JOB-ID>)
    # 列印返回結果。
    print(result)

    其中:<YOUR-JOB-ID>:需要替換為請求服務時返回的job_id,INT類型。

    • 任務執行中時,返回結果樣本如下。

      {'code': 'OK',
       'data': {'job': {'Result': '',
                        'app_id': '202209070402410****',
                        'create_time': '2022-09-07T14:03:33.8+08:00',
                        'id': 1012,
                        'message': 'video downloading',
                        'state': 1}},
       'message': 'success',
       'request_id': '5259ec57-e55c-4772-b01e-3deafd74****'}
    • 任務執行完成後,返回結果樣本如下。

      {'code': 'OK',
       'data': {'job': {'Result': '{"avg_fps":30,"duration":14,"height":1920,"single_img":0.74072265625,"video_score":20.57750291278764,"width":1080}',
                        'app_id': '202209290847310****',
                        'create_time': '2022-10-12T10:51:30.015+08:00',
                        'id': 1012,
                        'message': 'success',
                        'state': 2}},
       'message': 'success',
       'request_id': '0b4f658f-cd96-4606-8d81-d2fe0a6d****'}

    返回欄位說明如下。

    參數

    類型

    描述

    request_id

    STRING

    請求流水號,STRING類型。

    code

    STRING

    請求狀態代碼,STRING類型。

    message

    STRING

    請求狀態具體資訊,STRING類型。返回樣本如下:

    • success

    • Invalid Input - video data error - load video failed

    • Invalid Input - json format error - json parse runtime exception

    更多請求狀態,詳情請參見返回錯誤碼說明

    data

    Dict

    模型返回內容,Dict類型。具體返回參數說明,詳情請參見data內部欄位

    表 4. data內部欄位

    參數

    描述

    id

    任務ID,即job_id,INT類型。

    app_id

    您的AppId,STRING類型。

    state

    任務狀態代碼,INT類型。取值如下:

    • 0:任務初始化。

    • 1:任務執行中。

    • 2:任務完成。

    • 3:任務失敗。

    message

    任務執行資訊,STRING類型。取值如下:

    • success

    • video downloading

    create_time

    任務建立時間,STRING類型。

    Result

    模型返回結果,STRING類型。具體返回參數說明,詳情請參見Result內部欄位

    表 5. Result內部欄位

    參數

    描述

    video_score

    品質分,FLOAT類型,取值範圍為[0,100]。

    avg_fps

    視頻的平均幀率,INT類型。

    duration

    視頻時間長度,單位:秒,INT類型。

    single_img

    視頻裡映像間的差異度,FLOAT類型。取值範圍為[0,1]。值越小表示映像間的差異越小,越接近靜態圖產生的視頻。

    height

    視頻映像的高,INT類型。

    width

    視頻映像的寬,INT類型。

  • 批量請求介面,請求程式碼範例如下。

    from ai_service_python_sdk.client.api.ai_service_video_api import AiServiceVideoApi
    from ai_service_python_sdk.client.models.batch_video_request_videos import BatchVideoRequestVideos
    
    ai_service_api = AiServiceVideoApi(client)
    
    # 構建批量請求(視頻URL + 視頻標題)。
    videos = [
        BatchVideoRequestVideos('https://your_video_1_url.mp4', ''),
        BatchVideoRequestVideos('https://your_video_2_url.mp4', '')
        ]
    # 定製模型名稱。
    model_name = ''
    # 模型返回配置。
    configure = {}
    # 請求服務。
    response = ai_service_api.batch_video_qa(videos, model_name, configure)
    # 請求流水號。
    request_id = response.request_id
    # 請求狀態。
    code = response.code
    # 請求狀態具體資訊。
    message = response.message
    # 請求返回內容。
    data = response.data
    # batch id。
    batch_id = response.data['batch_id']
    # 列印返回結果。
    print(response)

    返回結果樣本如下。

    {'code': 'OK',
     'data': {'batch_id': 14},
     'message': 'success',
     'request_id': '6d5ef1b5-c01f-4e63-9eec-150ddde9****'}

    從上述返回結果中擷取batch_id,並使用以下代碼進行結果查詢。

    from ai_service_python_sdk.client.api.ai_service_job_api import AiServiceJobApi
    
    ai_service_job_api = AiServiceJobApi(client)
    # 結果查詢。
    result = ai_service_job_api.get_batch_job_with_id(<YOUR-BATCH-ID>)
    # 列印返回結果。
    print(result)

    其中:<YOUR-BATCH-ID>:需要替換為請求服務時返回的batch_id,INT類型。

    查詢結果樣本如下。

    {'code': 'OK',
     'data': {'jobs': [{'Result': '{"avg_fps":30,"duration":14.633333333333333,"height":1280,"single_img":0.486328125,"video_score":55.3773279862801,"width":720}',
                        'app_id': '202209290847310****',
                        'batch_id': 14,
                        'create_time': '2022-10-26T19:44:47.501+08:00',
                        'id': 44**,
                        'message': 'success',
                        'object': 'https://your_video_1_url.mp4',
                        'state': 2},
                       {'Result': '{"avg_fps":30,"duration":18.2,"height":568,"single_img":0.5791015625,"video_score":67.21071975649835,"width":320}',
                        'app_id': '202209290847310****',
                        'batch_id': 14,
                        'create_time': '2022-10-26T19:44:47.501+08:00',
                        'id': 4484,
                        'message': 'success',
                        'object': 'https://your_video_2_url.mp4',
                        'state': 2}]},
     'message': 'success',
     'request_id': 'e99697ff-7d42-4c0a-a0a0-c6a0c0ba****'}

    批量請求返回的data['jobs']為數組形式,具體欄位說明如下。

    參數

    描述

    id

    批量任務中的單條資料ID,INT類型。

    batch_id

    批量任務ID,INT類型。

    app_id

    您的AppId,STRING類型。

    state

    任務狀態代碼,INT類型,取值如下:

    • 0:任務初始化。

    • 1:任務執行中。

    • 2:任務完成。

    • 3:任務失敗。

    message

    任務執行資訊,STRING類型。取值如下:

    • success

    • video downloading

    create_time

    任務建立時間,STRING類型。

    object

    請求視頻的URL,STRING類型。

    Result

    模型返回結果,STRING類型。

    說明

    與單次請求介面返回的Result內部欄位相同。

視頻分類打標

提供短視頻分類打標能力,返回短視頻類別和機率較高的Top K個標籤及對應機率,也支援輸出視頻的高維特徵。支援以下兩種請求方式:

  • 單次請求介面,請求程式碼範例如下。

    from ai_service_python_sdk.client.api.ai_service_video_api import AiServiceVideoApi
    
    video_url = 'https://your_video_url.mp4'
    ai_service_api = AiServiceVideoApi(client)
    # 定製模型名稱。
    model_name = ''
    # 視頻標題。
    video_title = 'your_video_title'
    # 模型返回配置。
    configure = {
        'output_classification': True,
        'classification_top_k': 1,
        'output_tag': True,
        'tag_top_k': 5,
        'output_embedding': True
        }
    # 請求服務。
    response = ai_service_api.classify_label_video(video_url, video_title, model_name, configure)
    # 請求流水號。
    request_id = response.request_id
    # 請求狀態。
    code = response.code
    # 請求狀態具體資訊。
    message = response.message
    # 請求返回內容。
    data = response.data
    # job id。
    job_id = response.data['job_id']
    # 列印返回結果。
    print(response)

    參數說明如下。

    參數

    類型

    是否必選

    描述

    video_url

    STRING

    視頻URL,建議視頻大小不大於100 MB,解析度不低於320 * 240。

    video_title

    STRING

    視頻標題,如果沒有標題,可以傳入Null 字元串。

    model_name

    STRING

    預設輸入Null 字元串,表示調用通用模型。

    如果通用模型不能滿足您的業務需求,您可以聯絡阿里雲機器學習支援小組,為您提供定製模型。傳入定製模型名稱,即可調用定製的模型結果。

    configure

    Dict

    模型返回配置,預設輸入None。具體參數配置,詳情請參見configure內部參數

    說明

    configureNone時,configure內部參數取預設值。

    表 6. configure內部參數

    參數

    類型

    是否必選

    描述

    output_classification

    BOOL

    是否輸出視頻分類結果,取值如下:

    • True(預設值)

    • False

    classification_top_k

    INT

    輸出TopK的分類結果,取值範圍為:[1,10],預設為1。

    output_tag

    BOOL

    是否輸出視頻標籤結果,取值如下:

    • True(預設值)

    • False

    tag_top_k

    INT

    輸出TopK的標籤結果,取值範圍為:[1,10],預設為5。

    output_embedding

    BOOL

    是否輸出64維的視頻embedding,取值如下:

    • True(預設值)

    • False

    返回結果樣本如下。

    {'code': 'OK',
     'data': {'job_id': 5},
     'message': 'success',
     'request_id': '4f6caecb-e3d6-4997-89fe-26ac7536****'}

    從上述返回結果中擷取job_id,並使用以下代碼進行結果查詢。

    from ai_service_python_sdk.client.api.ai_service_job_api import AiServiceJobApi
    
    ai_service_job_api = AiServiceJobApi(client)
    # 結果查詢。
    result = ai_service_job_api.get_async_job(<YOUR-JOB-ID>)
    # 列印返回結果。
    print(result)

    其中:<YOUR-JOB-ID>:需要替換為請求服務時返回的job_id,INT類型。

    • 任務執行中時,返回結果樣本如下。

      {'code': 'OK',
       'data': {'job': {'Result': '',
                        'app_id': '202209070402410****',
                        'create_time': '2022-09-07T14:03:33.8+08:00',
                        'id': 5,
                        'message': 'video downloading',
                        'state': 1}},
       'message': 'success',
       'request_id': '5259ec57-e55c-4772-b01e-3deafd74****'}
      
    • 任務執行完成後,返回結果樣本如下。

      {'code': 'OK',
       'data': {'job': {'Result':
          '{"classification_result":[
              {"class":"三農","score":0.997}
              ],
          "duration":14.633333333333333,
          "embedding_result":"-0.162,0.483,0.881,0.686,0.319,-1.569,0.266,0.227,-1.352,1.157,-0.784,-1.016,-0.987,-1.214,-0.493,-1.182,0.85,1.473,-1.27,-3.391,3.394,-0.471,-0.434,0.256,2.146,0.787,0.348,1.67,0.229,-0.878,0.299,0.392,-2.161,-0.756,-3.438,-0.158,0.713,-5.812,-1.248,0.253,-1.111,-0.165,2.644,-2.368,-1.636,-0.533,0.468,1.2,-1.431,-1.151,-1.276,-1.954,1.167,-0.938,-0.111,-2.636,-1.248,4.662,1.892,5.485,-1.137,1.589,-1.935,1.018",
          "tag_result":[
              {"score":0.728,"tag":"盆栽"},
              {"score":0.576,"tag":"植物"},
              {"score":0.539,"tag":"種植技術"},
              {"score":0.466,"tag":"農業技術"},
              {"score":0.458,"tag":"種植"}
              ],
          "video_height":1280,
          "video_width":720}\n',
        'app_id': '202209070402410****',
        'create_time': '2022-09-07T14:03:33.8+08:00',
        'id': 5,
        'message': 'success',
        'state': 2}},
       'message': 'success',
       'request_id': '9283066a-f414-40fd-8fd3-0f77c1ef****'}

    返回欄位說明如下。

    參數

    描述

    request_id

    請求流水號,STRING類型。

    code

    請求狀態代碼,STRING類型。

    message

    請求狀態具體資訊,STRING類型。返回樣本如下:

    • success

    • Invalid Input - video data error - load video failed

    • Invalid Input - json format error - json parse runtime exception

    更多請求狀態,詳情請參見返回錯誤碼說明

    data

    模型返回內容,Dict類型。具體返回欄位說明,詳情請參見data['job']內部欄位

    表 7. data['job']內部欄位

    參數

    描述

    id

    任務ID,即job_id,INT類型。

    app_id

    您的AppId,STRING類型。

    state

    任務狀態代碼,INT類型,取值如下:

    • 0:任務初始化。

    • 1:任務執行中。

    • 2:任務完成。

    • 3:任務失敗。

    message

    任務執行資訊,STRING類型。取值如下:

    • success

    • video downloading

    create_time

    任務建立時間,STRING類型。

    Result

    模型返回結果,STRING類型。具體返回欄位說明,詳情請參見Result內部欄位

    表 8. Result內部欄位

    參數

    描述

    classification_result

    分類結果,LIST類型,按score(機率)降序排列。

    列長度由classification_top_k決定。

    僅當output_classificationTrue時,存在該欄位。

    tag_result

    標籤結果,按score(機率)降序排列。

    列長度由tag_top_k決定。

    僅當output_tagTrue時,存在該欄位。

    score

    標籤機率,FLOAT類型,精度精確到小數點後三位。

    class

    類別名,STRING類型。

    tag

    標籤名,STRING類型。

    embedding_result

    64維視頻特徵,半形逗號(,)分隔,STRING類型。

    僅當output_embedding為True時,存在該欄位。

    video_height

    視頻像素高度,INT類型。

    video_width

    視頻像素寬度,INT類型。

    duration

    視頻時間長度,FLOAT類型。

  • 批量請求介面,請求程式碼範例如下

    from ai_service_python_sdk.client.api.ai_service_video_api import AiServiceVideoApi
    from ai_service_python_sdk.client.models.batch_video_request_videos import BatchVideoRequestVideos
    
    ai_service_api = AiServiceVideoApi(client)
    
    # 模型返回配置。
    configure = {
        'output_classification': True,
        'classification_top_k': 1,
        'output_tag': True,
        'tag_top_k': 5,
        'output_embedding': True
        }
    # 構建批量請求(視頻URL + 視頻標題)。
    videos = [
        BatchVideoRequestVideos('https://your_video_1_url.mp4', 'your_video_title_1'),
        BatchVideoRequestVideos('https://your_video_2_url.mp4', 'your_video_title_2')
        ]
    # 定製模型名稱。
    model_name = ''
    # 請求服務。
    response = ai_service_api.batch_classify_label_video(videos, model_name, configure)
    # 請求流水號。
    request_id = response.request_id
    # 請求狀態。
    code = response.code
    # 請求狀態具體資訊。
    message = response.message
    # 請求返回內容。
    data = response.data
    # batch id
    batch_id = response.data['batch_id']
    # 列印返回結果。
    print(response)

    返回結果樣本如下。

    {'code': 'OK',
     'data': {'batch_id': 1},
     'message': 'success',
     'request_id': 'c59eb912-9df4-4afe-8129-23f7b6dc****'}

    從上述返回結果中擷取batch_id,並使用以下代碼進行結果查詢。

    from ai_service_python_sdk.client.api.ai_service_job_api import AiServiceJobApi
    
    ai_service_job_api = AiServiceJobApi(client)
    # 結果查詢。
    result = ai_service_job_api.get_batch_job_with_id(<YOUR-BATCH-ID>)
    # 列印返回結果。
    print(result)

    其中:<YOUR-BATCH-ID>:需要替換為請求服務時返回的batch_id,INT類型。

    查詢結果樣本如下。

    {'code': 'OK',
     'data': {'jobs': [{'Result': '{"classification_result":[{"class":"生活","score":0.998}],"duration":14.633333333333333,"embedding_result":"0.998,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.002","tag_result":[{"score":0.917,"tag":"盆栽"},{"score":0.777,"tag":"植物"},{"score":0.693,"tag":"園藝"},{"score":0.58,"tag":"幸福樹"},{"score":0.509,"tag":"有字幕"}],"video_height":1280,"video_width":720}',
                        'app_id': '202209290847310****',
                        'batch_id': 13,
                        'create_time': '2022-10-26T18:13:20.928+08:00',
                        'id': 4090,
                        'message': 'success',
                        'object': 'https://your_video_1_url.mp4',
                        'state': 2},
                       {'Result': '{"classification_result":[{"class":"體育","score":0.998}],"duration":18.2,"embedding_result":"0.0,0.0,0.0,0.998,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.001,0.0,0.0,0.0,0.0,0.001,0.0,0.0,0.0,0.0","tag_result":[{"score":0.981,"tag":"全運會"},{"score":0.901,"tag":"乒乓球"},{"score":0.798,"tag":"運動"},{"score":0.583,"tag":"有字幕"},{"score":0.498,"tag":"乒乓球比賽"}],"video_height":568,"video_width":320}',
                        'app_id': '202209290847310****',
                        'batch_id': 13,
                        'create_time': '2022-10-26T18:13:20.928+08:00',
                        'id': 4091,
                        'message': 'success',
                        'object': 'https://your_video_2_url.mp4',
                        'state': 2}]},
     'message': 'success',
     'request_id': '73e4b48e-42b8-4347-9cb4-7a49c1f8****'}

    批量請求返回的data['jobs']為數組形式,具體欄位說明如下。

    參數

    描述

    id

    批量任務中的單條資料ID,INT類型。

    batch_id

    批量任務ID,INT類型。

    app_id

    您的AppId,STRING類型。

    state

    任務狀態代碼,INT類型,取值如下:

    • 0:任務初始化。

    • 1:任務執行中。

    • 2:任務完成。

    • 3:任務失敗。

    message

    任務執行資訊,STRING類型。取值如下:

    • success

    • video downloading

    create_time

    任務建立時間,STRING類型。

    object

    請求視頻的URL,STRING類型。

    Result

    模型返回結果,STRING類型。

    說明

    與單次請求介面返回的Result內部欄位相同。

返回錯誤碼說明

使用Python SDK發送服務要求,返回的錯誤碼及說明如下。

映像分析服務

請求服務錯誤。

HTTP狀態代碼

code

message

說明

400

PARAMETER_ERROR

image is empty

請求圖片為空白。

note found appid

AppId填寫錯誤。

Unmarshal type error: expected=string, got=number, field=image, offset=42, internal=json: cannot unmarshal number into Go struct field ImageRequest.image of type string

image參數類型錯誤。

401

PARAMETER_ERROR

sign error

TOKEN填寫錯誤。

404

PARAMETER_ERROR

model not found

對應模型服務未部署。

422

SERVER_ERROR

以具體報錯資訊為準。

模型服務報錯,具體原因,請參見message內容。

視頻分析服務

  • 請求服務錯誤

    HTTP狀態代碼

    code

    message

    說明

    400

    PARAMETER_ERROR

    not found appid

    AppId填寫錯誤。

    401

    PARAMETER_ERROR

    sign error

    TOKEN填寫錯誤。

    404

    PARAMETER_ERROR

    model not found

    對應模型服務未部署。

  • 結果查詢錯誤

    state

    message

    說明

    3

    failed to download video, err=fetch resource failed\tcode = 404

    視頻URL下載失敗。

    3

    以具體報錯資訊為準。

    模型服務報錯,具體原因見message內容。