# 发布精调训练产物为模型资产 - PublishFtArtifacts
#### 功能介绍
训练任务运行成功后，将产生的模型信息发布到资产中心。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/ModelArts/doc?api=PublishFtArtifacts)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-modelarts/modelarts_03_0138.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                                   | 访问级别  | 资源类型（\*为必须） | 条件键                   | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | modelarts:trainJob:publishFtArtifacts | Write | trainJob \* | g:EnterpriseProjectId | -  | -      |
     
  
 
#### URI
POST /v2/{project_id}/training-jobs/{training_job_id}/ft-artifacts/publish
表1路径参数 
| 参数              | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| project_id      | 是    | String | **参数解释** ：用户项目ID。获取方法请参见[获取项目ID和名称](https://support.huaweicloud.com/api-modelarts/modelarts_03_0147.html)。 **约束限制**：不涉及。 **取值范围**：1 - 64字符，字母、数字和中划线。 **默认取值**：不涉及。             |
| training_job_id | 是    | String | **参数解释** ：训练作业ID。获取方法请参见[查询训练作业列表](https://support.huaweicloud.com/api-modelarts/ListTrainingJobs.html#ZH-CN_TOPIC_0000002723741806)。 **约束限制**：不涉及。 **取值范围**：不涉及。 **默认取值**：不涉及。 |
   
#### 请求参数
表2请求Body参数 
| 参数                | 是否必选 | 参数类型                                                                                                                      | 描述       |
|:---|:---|:---|:---|
| workspace_id      | 否    | String                                                                                                                    | 工作空间ID   |
| publish_artifacts | 否    | Array of [ArtifactsPublish] objects | 产物发布请求列表 |
   
 表3ArtifactsPublish 
| 参数                  | 是否必选 | 参数类型    | 描述                                          |
|:---|:---|:---|:---|
| is_ckpt             | 否    | Boolean | 是否是中间产物，false-是模型产物，true-是中间产物              |
| artifact_id         | 否    | String  | 断点ID,ckpt发布时使用                              |
| asset_name          | 否    | String  | 模型产物发布后资产名称，默认{源模型名字}-{训练类型}-{训练时间}         |
| visibility          | 否    | String  | 全局可见性，用来控制资产是当前空间可见或者全部空间可见，取值current\|all。 |
| description         | 否    | String  | 发布资产描述信息，{任务名}的最终产出模型                       |
| publish_asset_type  | 否    | String  | 模型发布方式                                      |
| asset_source_type   | 否    | String  | 资产来源                                        |
| asset_code          | 否    | String  | 选择模型。                                       |
| asset_version       | 否    | String  | 版本号。                                        |
| version_description | 否    | String  | 版本描述。                                       |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数       | 参数类型   | 描述   |
|:---|:---|:---|
| model_id | String | 模型ID |
   
**状态码：400**
表5响应Body参数 
| 参数             | 参数类型   | 描述      |
|:---|:---|:---|
| error_msg      | String | 错误信息。   |
| error_code     | String | 错误码。    |
| error_solution | String | 错误解决建议。 |
   
#### 请求示例
如下以查询uuid为3faf5c03-aaa1-4cbe-879d-24b05d997347的训练作业为例。
```
POST https://{endpoint}/v2/{project_id}/training-jobs/3faf5c03-aaa1-4cbe-879d-24b05d997347/ft-artifacts/publish
{
  "workspace_id" : "8f0xxxxx7",
  "publish_artifacts" : [ {
    "is_ckpt" : false,
    "asset_name" : "Pangu-NLP-N2-32K-SFT-20250401220401",
    "visibility" : "current",
    "description" : "N1模型微调的最终产出模型",
    "publish_asset_type" : "NEW_ASSET",
    "asset_source_type" : "custom_train",
    "asset_code" : "pangu-nlp-n2-32k",
    "asset_version" : "v1",
    "version_description" : "首次发布的精调模型版本"
  } ]
}
```
#### 响应示例
**状态码：200**
模型ID
```
{
  "model_id" : "28f61af50fc9452aa0ed5ea25c3cc3d3"
}
```
**状态码：400**
通用的错误应答消息体格式；如下为id是3f5d6706-7b67-408d-8ba0-ec08048c45ee的训练作业未找到时的返回信息。
```
{
  "error_msg" : "Job not found.",
  "error_code" : "ModelArts.2755",
  "error_solution" : "Check whether the training job in the request is valid."
}
```
#### 状态码
| 状态码 | 描述                                                                     |
|:---|:---|
| 200 | 模型ID                                                                   |
| 400 | 通用的错误应答消息体格式；如下为id是3f5d6706-7b67-408d-8ba0-ec08048c45ee的训练作业未找到时的返回信息。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-modelarts/modelarts_03_0095.html)。
