or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

async-clients.mdclassifier-management.mddocument-analysis.mdindex.mdmodel-management.mdmodels-and-types.md

model-management.mddocs/

0

# Model Management Operations

1

2

Custom document model lifecycle management including building, composing, copying, and managing document models. Supports both template and neural training modes with comprehensive model metadata, operation tracking, and cross-resource model copying capabilities.

3

4

## Capabilities

5

6

### Model Building

7

8

Creates custom document models from training data using template or neural training modes. Template mode works well for consistent document layouts, while neural mode handles diverse document structures.

9

10

```python { .api }

11

def begin_build_document_model(

12

body: Union[BuildDocumentModelRequest, JSON, IO[bytes]],

13

**kwargs: Any

14

) -> LROPoller[DocumentModelDetails]:

15

"""

16

Builds a custom document model.

17

18

Parameters:

19

- body: Build request with model configuration and training data

20

21

Returns:

22

LROPoller[DocumentModelDetails]: Model building operation poller

23

"""

24

```

25

26

Usage example:

27

28

```python

29

from azure.ai.documentintelligence.models import (

30

BuildDocumentModelRequest,

31

AzureBlobContentSource,

32

DocumentBuildMode

33

)

34

35

# Build neural model for diverse layouts

36

build_request = BuildDocumentModelRequest(

37

model_id="my-neural-model",

38

description="Invoice processing model",

39

build_mode=DocumentBuildMode.NEURAL,

40

training_data_source=AzureBlobContentSource(

41

container_url="https://account.blob.core.windows.net/training-data"

42

),

43

tags={"department": "finance", "version": "1.0"}

44

)

45

46

poller = admin_client.begin_build_document_model(build_request)

47

model = poller.result()

48

print(f"Model {model.model_id} built successfully")

49

```

50

51

### Model Composition

52

53

Combines multiple trained models into a single composed model that can intelligently route documents to the appropriate sub-model based on document characteristics.

54

55

```python { .api }

56

def begin_compose_model(

57

body: Union[ComposeDocumentModelRequest, JSON, IO[bytes]],

58

**kwargs: Any

59

) -> LROPoller[DocumentModelDetails]:

60

"""

61

Composes multiple models into a single model.

62

63

Parameters:

64

- body: Compose request with component model IDs and configuration

65

66

Returns:

67

LROPoller[DocumentModelDetails]: Model composition operation poller

68

"""

69

```

70

71

Usage example:

72

73

```python

74

from azure.ai.documentintelligence.models import (

75

ComposeDocumentModelRequest,

76

ComponentDocumentModelDetails

77

)

78

79

compose_request = ComposeDocumentModelRequest(

80

model_id="composed-invoice-model",

81

description="Multi-format invoice model",

82

component_models=[

83

ComponentDocumentModelDetails(model_id="invoice-template-1"),

84

ComponentDocumentModelDetails(model_id="invoice-template-2"),

85

ComponentDocumentModelDetails(model_id="receipt-model")

86

],

87

tags={"type": "composed", "domain": "invoicing"}

88

)

89

90

poller = admin_client.begin_compose_model(compose_request)

91

composed_model = poller.result()

92

```

93

94

### Model Information Retrieval

95

96

Retrieves detailed information about trained models including training statistics, field schemas, and model capabilities.

97

98

```python { .api }

99

def get_model(

100

model_id: str,

101

**kwargs: Any

102

) -> DocumentModelDetails:

103

"""

104

Gets detailed model information.

105

106

Parameters:

107

- model_id (str): Unique model identifier

108

109

Returns:

110

DocumentModelDetails: Complete model metadata and configuration

111

"""

112

113

def list_models(

114

**kwargs: Any

115

) -> Iterable[DocumentModelDetails]:

116

"""

117

Lists all custom models.

118

119

Returns:

120

Iterable[DocumentModelDetails]: Paginated model collection

121

"""

122

```

123

124

### Model Deletion

125

126

Removes custom models from the service to free up model quotas and clean up unused models.

127

128

```python { .api }

129

def delete_model(

130

model_id: str,

131

**kwargs: Any

132

) -> None:

133

"""

134

Deletes a custom model.

135

136

Parameters:

137

- model_id (str): Model identifier to delete

138

"""

139

```

140

141

### Model Copy Authorization

142

143

Generates authorization tokens for copying models between different Document Intelligence resources, enabling model sharing and deployment across environments.

144

145

```python { .api }

146

def authorize_model_copy(

147

body: Union[AuthorizeCopyRequest, JSON, IO[bytes]],

148

**kwargs: Any

149

) -> ModelCopyAuthorization:

150

"""

151

Generates authorization for model copy operation.

152

153

Parameters:

154

- body: Copy authorization request with target resource details

155

156

Returns:

157

ModelCopyAuthorization: Authorization token and metadata for copy operation

158

"""

159

```

160

161

### Model Copying

162

163

Copies models between Document Intelligence resources using authorization tokens, enabling model deployment and sharing across different environments.

164

165

```python { .api }

166

def begin_copy_model_to(

167

model_id: str,

168

body: Union[ModelCopyAuthorization, JSON, IO[bytes]],

169

**kwargs: Any

170

) -> LROPoller[DocumentModelDetails]:

171

"""

172

Copies model to target resource.

173

174

Parameters:

175

- model_id (str): Source model identifier

176

- body: Copy authorization from target resource

177

178

Returns:

179

LROPoller[DocumentModelDetails]: Model copy operation poller

180

"""

181

```

182

183

Usage example:

184

185

```python

186

# Step 1: Generate copy authorization on target resource

187

target_admin_client = DocumentIntelligenceAdministrationClient(

188

endpoint="https://target-resource.cognitiveservices.azure.com/",

189

credential=AzureKeyCredential("target-api-key")

190

)

191

192

auth_request = AuthorizeCopyRequest(

193

model_id="copied-model-id",

194

description="Copied invoice model"

195

)

196

copy_auth = target_admin_client.authorize_model_copy(auth_request)

197

198

# Step 2: Copy model from source resource

199

source_admin_client = DocumentIntelligenceAdministrationClient(

200

endpoint="https://source-resource.cognitiveservices.azure.com/",

201

credential=AzureKeyCredential("source-api-key")

202

)

203

204

poller = source_admin_client.begin_copy_model_to("source-model-id", copy_auth)

205

copied_model = poller.result()

206

```

207

208

## Request Types

209

210

```python { .api }

211

class BuildDocumentModelRequest:

212

"""Request to build a custom document model."""

213

model_id: str

214

description: Optional[str]

215

build_mode: DocumentBuildMode

216

training_data_source: Union[AzureBlobContentSource, AzureBlobFileListContentSource]

217

test_data_source: Optional[Union[AzureBlobContentSource, AzureBlobFileListContentSource]]

218

tags: Optional[Dict[str, str]]

219

220

class ComposeDocumentModelRequest:

221

"""Request to compose multiple models."""

222

model_id: str

223

description: Optional[str]

224

component_models: List[ComponentDocumentModelDetails]

225

tags: Optional[Dict[str, str]]

226

227

class AuthorizeCopyRequest:

228

"""Request to authorize model copying."""

229

model_id: str

230

description: Optional[str]

231

tags: Optional[Dict[str, str]]

232

233

class ComponentDocumentModelDetails:

234

"""Component model for composition."""

235

model_id: str

236

```

237

238

## Response Types

239

240

```python { .api }

241

class DocumentModelDetails:

242

"""Comprehensive model information and metadata."""

243

model_id: str

244

description: Optional[str]

245

created_date_time: datetime

246

expiration_date_time: Optional[datetime]

247

api_version: str

248

tags: Optional[Dict[str, str]]

249

build_mode: Optional[DocumentBuildMode]

250

azure_blob_source: Optional[AzureBlobContentSource]

251

azure_blob_file_list_source: Optional[AzureBlobFileListContentSource]

252

doc_types: Optional[Dict[str, DocumentTypeDetails]]

253

warnings: Optional[List[DocumentIntelligenceWarning]]

254

training_hours: Optional[int]

255

base_model_id: Optional[str]

256

257

class ModelCopyAuthorization:

258

"""Authorization for cross-resource model copying."""

259

target_resource_id: str

260

target_resource_region: str

261

target_model_id: str

262

target_model_location: str

263

access_token: str

264

expiration_date_time: datetime

265

266

class DocumentTypeDetails:

267

"""Document type configuration within a model."""

268

description: Optional[str]

269

build_mode: Optional[DocumentBuildMode]

270

field_schema: Optional[Dict[str, DocumentFieldSchema]]

271

field_confidence: Optional[Dict[str, float]]

272

```

273

274

## Content Source Types

275

276

```python { .api }

277

class AzureBlobContentSource:

278

"""Azure Blob Storage content source."""

279

container_url: str

280

prefix: Optional[str]

281

282

class AzureBlobFileListContentSource:

283

"""Azure Blob Storage file list source."""

284

container_url: str

285

file_list: str

286

287

class DocumentFieldSchema:

288

"""Schema definition for document fields."""

289

type: DocumentFieldType

290

description: Optional[str]

291

example: Optional[str]

292

items: Optional["DocumentFieldSchema"]

293

properties: Optional[Dict[str, "DocumentFieldSchema"]]

294

295

class CustomDocumentModelsDetails:

296

"""Custom model quota and usage information."""

297

count: int

298

limit: int

299

```

300

301

## Service Operations

302

303

```python { .api }

304

def get_resource_details(

305

**kwargs: Any

306

) -> DocumentIntelligenceResourceDetails:

307

"""

308

Gets Document Intelligence resource information.

309

310

Returns:

311

DocumentIntelligenceResourceDetails: Service resource details and limits

312

"""

313

314

def get_operation(

315

operation_id: str,

316

**kwargs: Any

317

) -> DocumentIntelligenceOperationDetails:

318

"""

319

Gets operation details by ID.

320

321

Parameters:

322

- operation_id (str): Long-running operation identifier

323

324

Returns:

325

DocumentIntelligenceOperationDetails: Operation status and metadata

326

"""

327

328

def list_operations(

329

**kwargs: Any

330

) -> Iterable[DocumentIntelligenceOperationDetails]:

331

"""

332

Lists all operations.

333

334

Returns:

335

Iterable[DocumentIntelligenceOperationDetails]: Paginated operations collection

336

"""

337

338

class DocumentIntelligenceResourceDetails:

339

"""Service resource information."""

340

custom_document_models: CustomDocumentModelsDetails

341

custom_neural_document_model_builds: CustomDocumentModelsDetails

342

343

class DocumentIntelligenceOperationDetails:

344

"""Base operation details with status and timing."""

345

operation_id: str

346

status: DocumentIntelligenceOperationStatus

347

percent_completed: Optional[int]

348

created_date_time: datetime

349

last_updated_date_time: datetime

350

kind: OperationKind

351

resource_location: str

352

api_version: Optional[str]

353

tags: Optional[Dict[str, str]]

354

error: Optional[DocumentIntelligenceError]

355

```