简道云插件开发实战:对接百度 AI 完成雪花肉定级,含模型训练 / 参数配置 / 代码全解析
百度智能云EasyDL模型训练(核心技术支撑)—— 以国家定级图谱为标准,训练能精准识别雪花肉等级的图像分类模型,最终部署为可调用的API接口,为后续识别提供技术能力;第二阶段:简道云插件配置与集成(业务应用落地)—— 基于简道云平台开发自建插件,配置模型接口调用参数、表单交互规则,实现“用户上传图片→插件调用模型→自动返回等级结果”的业务闭环。
一、业务背景与插件核心价值
当前国内牛肉大理石纹(雪花肉)的定级依赖国家规范中的参考图谱(如图所示,分为1-5级),但人工判定存在显著痛点:
-
主观性强:不同质检人员对“纹理密度、覆盖面积”的判断标准不一致,导致同一块肉可能被判定为不同等级;
-
效率低下:人工肉眼比对图谱耗时久,批量质检场景下难以满足时效要求;
-
争议频发:采购、质检、销售环节因等级判定差异产生业务异议,影响协作效率。
因此,本插件的核心目标是通过AI技术(百度EasyDL图像分类模型)实现雪花肉等级的自动化、标准化识别,将国家定级标准转化为可量化的AI模型判定逻辑,消除人工主观差异,统一业务执行标准,同时提升质检效率。

图源:牛肉等级规则国家标准和牛肉质量等级规则国家标准
二、方案整体流程概述
本方案的实现需遵循“技术支撑先行、业务配置跟进”的逻辑,完整流程分为两大核心阶段,各阶段衔接紧密、环环相扣:
第一阶段:百度智能云EasyDL模型训练(核心技术支撑)—— 以国家定级图谱为标准,训练能精准识别雪花肉等级的图像分类模型,最终部署为可调用的API接口,为后续识别提供技术能力;

第二阶段:简道云插件配置与集成(业务应用落地)—— 基于简道云平台开发自建插件,配置模型接口调用参数、表单交互规则,实现“用户上传图片→插件调用模型→自动返回等级结果”的业务闭环。
三、第一阶段:百度智能云EasyDL模型训练与部署
模型是实现标准化识别的核心,需严格以国家《牛肉大理石花纹评级图谱》为基准完成训练与部署,确保识别结果与官方规范完全对齐。具体流程如下:
(一)数据准备
高质量数据集是模型精准识别的基础,需围绕“对齐国家规范”完成数据收集、标注与增强:
-
数据收集与上传:
-
以国家定级图谱的1-5级标准为依据,收集对应等级的雪花肉实物图片,每个等级样本量≥100张(官方建议至少不少于20张),覆盖不同拍摄角度、光线条件(需与图谱拍摄标准一致),确保样本能全面反映各等级的纹理特征;
-
通过本地文件批量上传或URL导入的方式,将数据集上传至EasyDL“数据服务”模块,完成数据存储与管理。
-





2. 数据标注:
-
标签组创建:在“标签组管理”中创建“雪花肉国家定级标准”专属标签组,标签直接对应官方等级(1级、2级…5级),从源头确保标注标准统一;
-
标注执行:标注人员经国家规范培训后,通过“在线标注”功能严格对照国家图谱,为每张图片打对应等级标签;样本量较大时,可先用“智能标注”功能预标注,再人工修正,提升效率的同时保证标注准确性。


3. 数据增强: 对标注完成的图片进行旋转、裁剪、亮度/对比度调整等增强操作,扩充数据集规模,提升模型的泛化能力;需注意增强后的图片不能偏离国家图谱的纹理特征,避免影响识别准确性。

(二)模型训练
围绕“精准区分等级差异”配置训练参数,确保模型能识别出不同等级雪花肉的细微纹理区别:
-
任务类型选择:选择“图像分类”任务,匹配雪花肉1-5级的多类别划分需求;
-
数据集选择:选中已完成标注的雪花肉数据集,按8:2的比例划分训练集(用于模型学习)与测试集(用于效果验证),测试集需包含与国家图谱高度相似的样本,确保验证结果能反映模型对官方标准的适配度;



3. 训练参数配置:选择“高精度”训练模式,保证模型能精准学习各等级的纹理特征;新手可使用默认训练轮数、学习率等参数,资深用户可根据数据情况微调;

(三)模型校验
训练完成后,需通过标准样本验证模型效果,确保识别结果与国家规范无偏差:
-
批量校验:上传加工车间提供的雪花肉样本,执行批量识别,查看模型返回的等级结果是否与图谱等级100%匹配;
-
人工对比校验:随机选取100张雪花肉图片,同时进行“模型识别”与“人工对照图谱判定”,计算两者结果的一致性,需确保一致性≥98%;若未达标,需优化数据集(补充易混淆样本)并重新训练。

(四)模型部署
模型验证通过后,部署应用,生成可调用的API接口,为简道云插件提供识别能力:
-
服务类型选择:选择“公有云在线服务”,配置服务名称,设置合理的配额(根据实际业务量调整);
-
应用接入配置:在“模型应用”模块创建专属应用,完成应用信息登记后,获取应用对应的API Key(AK)和Secret Key(SK)(后续简道云插件需通过这两个密钥完成接口调用的身份认证);

3. 接口生成:部署完成后,平台自动生成模型调用的API接口地址(如:https://aip.baidubce.com/rpc/2.0/ai_custom/v1/classification/*),记录该地址用于后续简道云插件配置。
四、第二阶段:简道云插件配置与集成
基于已部署的EasyDL模型接口,在简道云平台完成自建插件的配置,实现技术能力与业务场景的落地融合,核心是完成“参数配置→表单交互→结果存储”的全流程设计:
(一)插件核心配置参数设置
插件运行依赖模型接口的身份认证参数,需通过简道云表单控件完成配置并存储:
|
参数名称 |
控件ID |
配置值 |
作用 |
校验要求 |
|
百度API Key(AK) |
_widget_1769*****1 |
*** |
对应EasyDL应用的AK,用于调用模型接口时的身份标识 |
必填、字符串格式 |
|
百度Secret Key(SK) |
_widget_1769*****1 |
*** |
对应EasyDL应用的SK,与AK配合完成接口调用的身份认证 |
必填、字符串格式 |
说明:上述参数通过简道云“文本”类型控件配置,设置为“必填”属性,避免因参数缺失导致接口调用失败;默认值已预填充,减少用户后续配置成本。
(二)输入与输出参数配置
明确插件与简道云表单的交互数据格式,确保“用户上传数据→插件处理→结果返回”的数据流顺畅:

1. 输入参数(用户上传数据)
-
控件ID:_widget_176******81
-
参数类型:字符串(JSON格式)
-
数据结构:包含雪花肉图片URL的数组,示例格式为
[{"url":"图片在线访问地址"}] -
来源:简道云表单的“雪花肉照片”上传字段(用户上传照片后,表单自动生成图片的在线访问URL)
-
核心要求:图片需清晰展示雪花肉纹理,无遮挡、模糊或光线异常问题(与EasyDL模型训练样本的拍摄标准一致),否则会影响识别准确性。
2. 输出参数(识别结果)
-
参数名称:classification_name
-
类型:字符串
-
数据内容:雪花肉等级结果(如“5级”),直接来源于EasyDL模型的识别输出,与国家定级标准完全一致
-
存储配置:通过插件配置将该参数值映射到简道云表单的“雪花肉等级”字段,实现结果自动存储,供采购、质检、销售等各业务环节直接引用,消除判定争议。
(三)前端事件配置(插件与表单交互逻辑)
通过简道云“前端事件”功能,定义插件的触发条件、执行动作与字段映射关系,实现业务流程自动化:
-
触发动作:用户在简道云表单中完成“雪花肉照片”上传后,自动触发插件请求;
-
执行动作:插件自动完成“参数校验→获取模型接口令牌→图片Base64编码→调用EasyDL模型接口→解析识别结果”的全流程处理;
-
字段映射:
-
输入映射:表单“雪花肉照片”字段的URL→插件输入参数;
-
输出映射:插件返回的classification_name参数→表单“雪花肉等级”字段。
-
-
赋值方式:逐行赋值,适配表单多数据行批量上传、批量识别的业务场景。

(四)插件核心代码逻辑(Python)
插件通过Python代码实现与EasyDL模型接口的交互,核心逻辑是串联“参数校验→令牌获取→图片处理→接口调用→结果解析”,确保数据处理与接口调用的稳定性:
简道云插件开发:对接百度EasyDL实现图片自动分类
一、开发背景
基于简道云自建插件能力,对接百度EasyDL自定义图片分类模型,实现表单上传图片后自动调用AI接口完成分类,并将结果写回表单。
二、核心功能
1. 读取简道云表单图片字段的临时URL;
2. 将图片转换为Base64编码(适配AI接口要求);
3. 调用百度EasyDL自定义分类模型; 4. 解析分类结果并返回给简道云表单。
三、使用说明(脱敏后需替换的内容)
1. 替换控件ID:将代码中`_widget_XXXXXXXXXXXXXX`替换为自己简道云插件配置的实际控件ID;
2. 替换模型地址:`call_ai_classification_api`函数中的`api_url`替换为自己EasyDL模型的部署地址;
3. 调整结果解析:根据自己的模型返回格式,修改`classification_result`的解析逻辑;
4. 适配返回参数:`return {"classification_result": top_result}`中的键名对应插件「返回参数」配置的ID。
四、开发要点
1. 简道云插件参数读取规范:通用参数从`agentConf`读取,请求参数从`triggerConf`读取,键为控件ID而非显示名称;
2. 异常处理:通过`raise`抛出异常,简道云插件会自动捕获并展示错误信息;
3. 网络请求:添加超时控制和HTTP异常捕获,提升插件稳定性;
4. 图片处理:适配简道云图片字段的JSON数组格式,解析出图片URL。
import json
import requests
import base64
"""
【简道云插件开发】百度EasyDL图片分类接口调用示例
功能:对接简道云表单图片字段,调用百度EasyDL自定义分类模型,返回分类结果
适用场景:简道云自建插件开发、AI图片分类自动化
"""
# ===================== 1. 脱敏配置 - 核心参数读取(简道云插件规范) =====================
# 通用参数(插件全局配置):从简道云agentConf读取(替换为自己的控件ID)
AI_API_KEY = agentConf.get('_widget_XXXXXXXXXXXXXX') # 百度API Key控件ID
AI_SECRET_KEY = agentConf.get('_widget_XXXXXXXXXXXXXX') # 百度Secret Key控件ID
# 请求参数(表单触发参数):从简道云triggerConf读取(替换为自己的控件ID)
IMAGE_FIELD_KEY = triggerConf.get('_widget_XXXXXXXXXXXXXX')# 表单图片字段控件ID
# 解析简道云图片字段(JSON数组格式)
try:
parsed_image_data = json.loads(IMAGE_FIELD_KEY)
image_url = parsed_image_data[0]['url'] # 取第一张图片的URL
except Exception as e:
raise ValueError(f"图片参数解析失败:{str(e)}")
# 参数合法性校验(增强插件健壮性)
if not AI_API_KEY or not isinstance(AI_API_KEY, str):
raise ValueError('AI接口API Key格式错误或未配置')
if not AI_SECRET_KEY or not isinstance(AI_SECRET_KEY, str):
raise ValueError('AI接口Secret Key格式错误或未配置')
if not image_url or not image_url.startswith('http'):
raise ValueError('图片URL无效或未获取到')
# ===================== 2. 核心工具函数 - 通用能力封装 =====================
def get_ai_platform_token(api_key: str, secret_key: str) -> str:
"""
获取AI平台接口访问令牌(通用逻辑,适配百度EasyDL/文心一言等平台)
:param api_key: 平台API Key
:param secret_key: 平台Secret Key
:return: 访问令牌
"""
token_url = "https://aip.baidubce.com/oauth/2.0/token" # 百度通用token地址
params = {
"grant_type": "client_credentials",
"client_id": api_key,
"client_secret": secret_key
}
try:
token_response = requests.get(token_url, params=params, timeout=10)
token_response.raise_for_status() # 主动抛出HTTP异常
return token_response.json()["access_token"]
except requests.exceptions.RequestException as e:
raise Exception(f"获取AI平台令牌失败:{str(e)}")
def image_url_to_base64(image_url: str) -> str:
"""
图片URL转Base64编码(适配AI接口要求)
:param image_url: 图片临时URL
:return: Base64编码字符串
"""
try:
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
response = requests.get(image_url, headers=headers, timeout=15)
response.raise_for_status()
return base64.b64encode(response.content).decode('utf-8')
except requests.exceptions.RequestException as e:
raise Exception(f"图片下载/编码失败:{str(e)}")
def call_ai_classification_api(image_base64: str, token: str) -> dict:
"""
调用AI图片分类接口(自定义模型)
:param image_base64: 图片Base64编码
:param token: AI平台访问令牌
:return: 分类结果JSON
"""
# 替换为自己的EasyDL模型部署地址(脱敏)
api_url = f"https://aip.baidubce.com/rpc/2.0/ai_custom/v1/classification/XXXXXX?access_token={token}"
headers = {"Content-Type": "application/json"}
request_data = {"image": image_base64} # 接口入参格式(按模型要求调整)
try:
response = requests.post(
api_url,
headers=headers,
json=request_data,
timeout=20
)
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
raise Exception(f"AI分类接口调用失败:{str(e)}")
# ===================== 3. 主逻辑 - 插件核心执行流程 =====================
def main():
"""简道云插件主执行函数(符合插件开发规范)"""
try:
# 1. 获取AI平台令牌
ai_token = get_ai_platform_token(AI_API_KEY, AI_SECRET_KEY)
# 2. 图片URL转Base64
img_base64 = image_url_to_base64(image_url)
# 3. 调用AI分类接口
classification_result = call_ai_classification_api(img_base64, ai_token)
# 4. 解析结果(按实际模型返回格式调整)
if not classification_result or "results" not in classification_result:
raise ValueError("AI分类接口返回结果异常")
# 取置信度最高的分类结果
top_result = classification_result["results"][0]["name"]
# 5. 返回结果给简道云(键名对应插件返回参数配置)
return {"classification_result": top_result}
except Exception as e:
# 异常向上抛出,简道云插件会自动捕获并展示
print(f"插件执行异常:{str(e)}")
raise
# 执行主逻辑(简道云插件入口)
if __name__ == "__main__":
main()
五、方案运行流程与效果验证
(一)完整运行流程(业务闭环)
-
用户操作:在简道云表单中上传待判定的雪花肉照片;
-
触发机制:照片上传完成后,自动触发简道云前端事件,调用自建插件;
-
插件处理:插件提取配置的AK/SK参数,获取EasyDL模型接口令牌,同时将图片URL转换为Base64编码;
-
接口调用:插件向EasyDL模型接口发送编码后的图片数据,请求等级识别;
-
结果返回:模型完成识别后,将与国家规范一致的等级结果(如“5级”)返回给插件;
-
结果存储:插件将识别结果自动填充到简道云表单的“雪花肉等级”字段,完成整个流程。

(二)效果验证
通过实际测试验证方案的可行性与准确性:
-
测试输入:上传30张覆盖1-5级的雪花肉照片(含与国家图谱一致的标准样本);
-
测试结果:插件均能快速返回识别结果,且结果与人工对照国家图谱判定的一致性达98%以上;
-
业务价值:各业务环节直接引用表单中自动存储的等级结果,无判定争议,同时质检效率较人工提升60%以上。
六、适用场景与扩展建议
(一)适用场景
-
餐饮企业采购质检:采购时快速判定雪花肉等级是否符合菜品要求(如高端牛排需5级),提升采购效率;
-
生鲜电商平台运营:商家上传商品图片后自动标注等级,向消费者透明展示品质,提升购物体验;
-
肉类加工厂批量质检:替代人工肉眼判定,实现批量产品的标准化分级,降低人力成本。
(二)扩展建议
-
批量识别优化:扩展插件代码逻辑,支持多图片URL批量解析与调用,适配加工厂批量质检场景;
-
置信度展示:在简道云表单中新增“识别置信度”字段,同步展示模型返回的置信度分值,让用户了解结果可靠性;
-
模型迭代:定期收集识别错误的样本,补充到EasyDL数据集并重新训练,持续提升模型识别准确率;
-
多品类支持:基于EasyDL训练其他肉类(如猪肉、羊肉)的等级识别模型,通过简道云下拉框让用户选择识别类型,提升插件通用性。
七、总结
本方案通过“百度智能云EasyDL模型训练先行、简道云插件配置跟进”的逻辑,成功将国家雪花肉定级标准转化为自动化、标准化的识别能力,有效解决了人工判定主观性强、争议多、效率低的痛点。方案整体流程清晰、可落地性强,既保证了识别结果与官方规范的一致性,又通过简道云的表单交互能力实现了业务场景的快速落地。后续通过扩展优化,可进一步提升方案的通用性与适用范围,为更多肉类品质分级场景提供技术支撑。。
更多推荐


所有评论(0)