// This is an automatically generated code sample.
// To make this code sample work in your Oracle Cloud tenancy,
// please replace the values for any parameters whose current values do not fit
// your use case (such as resource IDs, strings containing ‘EXAMPLE’ or ‘unique_id’, and
// boolean, number, and enum parameters with values not fitting your use case).
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Oci.AidocumentService;
using Oci.Common;
using Oci.Common.Auth;
namespace Oci.Sdk.DotNet.Example.Aidocument
{
public class AnalyzeDocumentExample
{
public static async Task Main()
{
// Create a request and dependent object(s).
var analyzeDocumentDetails = new Oci.AidocumentService.Models.AnalyzeDocumentDetails
{
Features = new List<Oci.AidocumentService.Models.DocumentFeature>
{
new Oci.AidocumentService.Models.DocumentElementsExtractionFeature
{
ModelId = "ocid1.test.oc1..<unique_ID>EXAMPLE-modelId-Value"
}
},
Document = new Oci.AidocumentService.Models.ObjectStorageDocumentDetails
{
NamespaceName = "EXAMPLE-namespaceName-Value",
BucketName = "EXAMPLE-bucketName-Value",
ObjectName = "EXAMPLE-objectName-Value",
PageRange = new List<string>
{
"EXAMPLE--Value"
}
},
CompartmentId = "ocid1.test.oc1..<unique_ID>EXAMPLE-compartmentId-Value",
OutputLocation = new Oci.AidocumentService.Models.OutputLocation
{
NamespaceName = "EXAMPLE-namespaceName-Value",
BucketName = "EXAMPLE-bucketName-Value",
Prefix = "EXAMPLE-prefix-Value"
},
Language = "EXAMPLE-language-Value",
DocumentType = Oci.AidocumentService.Models.DocumentType.BankStatement,
OcrData = new Oci.AidocumentService.Models.AnalyzeDocumentResult
{
DocumentMetadata = new Oci.AidocumentService.Models.DocumentMetadata
{
PageCount = 286,
MimeType = "EXAMPLE-mimeType-Value"
},
Pages = new List<Oci.AidocumentService.Models.Page>
{
new Oci.AidocumentService.Models.Page
{
PageNumber = 899,
Dimensions = new Oci.AidocumentService.Models.Dimensions
{
Width = 2736.696,
Height = 7404.4033,
Unit = Oci.AidocumentService.Models.Dimensions.UnitEnum.Inch
},
DetectedDocumentTypes = new List<Oci.AidocumentService.Models.DetectedDocumentType>
{
new Oci.AidocumentService.Models.DetectedDocumentType
{
DocumentType = "EXAMPLE-documentType-Value",
DocumentId = "ocid1.test.oc1..<unique_ID>EXAMPLE-documentId-Value",
Confidence = (float)0.88120127
}
},
DetectedLanguages = new List<Oci.AidocumentService.Models.DetectedLanguage>
{
new Oci.AidocumentService.Models.DetectedLanguage
{
Language = "EXAMPLE-language-Value",
Confidence = (float)0.7630292
}
},
Words = new List<Oci.AidocumentService.Models.Word>
{
new Oci.AidocumentService.Models.Word
{
Text = "EXAMPLE-text-Value",
Confidence = (float)0.5820554,
BoundingPolygon = new Oci.AidocumentService.Models.BoundingPolygon
{
NormalizedVertices = new List<Oci.AidocumentService.Models.NormalizedVertex>
{
new Oci.AidocumentService.Models.NormalizedVertex
{
X = 0.539,
Y = 0.18517375
}
}
}
}
},
Lines = new List<Oci.AidocumentService.Models.Line>
{
new Oci.AidocumentService.Models.Line
{
Text = "EXAMPLE-text-Value",
Confidence = (float)0.2596383,
BoundingPolygon = new Oci.AidocumentService.Models.BoundingPolygon
{
NormalizedVertices = new List<Oci.AidocumentService.Models.NormalizedVertex>
{
new Oci.AidocumentService.Models.NormalizedVertex
{
X = 0.16880095,
Y = 0.56655943
}
}
},
WordIndexes = new List<Int32>
{
597
}
}
},
Tables = new List<Oci.AidocumentService.Models.Table>
{
new Oci.AidocumentService.Models.Table
{
RowCount = 481,
ColumnCount = 528,
HeaderRows = new List<Oci.AidocumentService.Models.TableRow>
{
new Oci.AidocumentService.Models.TableRow
{
Cells = new List<Oci.AidocumentService.Models.Cell>
{
new Oci.AidocumentService.Models.Cell
{
Text = "EXAMPLE-text-Value",
RowIndex = 82,
ColumnIndex = 97,
Confidence = (float)0.7915788,
BoundingPolygon = new Oci.AidocumentService.Models.BoundingPolygon
{
NormalizedVertices = new List<Oci.AidocumentService.Models.NormalizedVertex>
{
new Oci.AidocumentService.Models.NormalizedVertex
{
X = 0.21344054,
Y = 0.18217057
}
}
},
WordIndexes = new List<Int32>
{
470
}
}
}
}
},
Confidence = (float)0.8949226,
BoundingPolygon = new Oci.AidocumentService.Models.BoundingPolygon
{
NormalizedVertices = new List<Oci.AidocumentService.Models.NormalizedVertex>
{
new Oci.AidocumentService.Models.NormalizedVertex
{
X = 0.90452045,
Y = 0.360969
}
}
}
}
},
DocumentFields = new List<Oci.AidocumentService.Models.DocumentField>
{
new Oci.AidocumentService.Models.DocumentField
{
FieldType = Oci.AidocumentService.Models.DocumentField.FieldTypeEnum.LineItemGroup,
FieldLabel = new Oci.AidocumentService.Models.FieldLabel
{
Name = "EXAMPLE-name-Value",
Confidence = (float)0.91329247
},
FieldName = new Oci.AidocumentService.Models.FieldName
{
Name = "EXAMPLE-name-Value",
Confidence = (float)0.48671412,
BoundingPolygon = new Oci.AidocumentService.Models.BoundingPolygon
{
NormalizedVertices = new List<Oci.AidocumentService.Models.NormalizedVertex>
{
new Oci.AidocumentService.Models.NormalizedVertex
{
X = 0.8225719,
Y = 0.22518373
}
}
},
WordIndexes = new List<Int32>
{
808
}
},
FieldValue = new Oci.AidocumentService.Models.ValueDate
{
Value = DateTime.Parse("07/29/2002 18:48:32"),
Text = "EXAMPLE-text-Value",
Confidence = (float)0.50700265,
BoundingPolygon = new Oci.AidocumentService.Models.BoundingPolygon
{
NormalizedVertices = new List<Oci.AidocumentService.Models.NormalizedVertex>
{
new Oci.AidocumentService.Models.NormalizedVertex
{
X = 0.5485146,
Y = 0.15085089
}
}
},
WordIndexes = new List<Int32>
{
585
},
NormalizedValue = "EXAMPLE-normalizedValue-Value",
NormalizedConfidence = (float)0.7296643
}
}
},
Signatures = new List<Oci.AidocumentService.Models.Signature>
{
new Oci.AidocumentService.Models.Signature
{
Confidence = (float)0.9114065,
BoundingPolygon = new Oci.AidocumentService.Models.BoundingPolygon
{
NormalizedVertices = new List<Oci.AidocumentService.Models.NormalizedVertex>
{
new Oci.AidocumentService.Models.NormalizedVertex
{
X = 0.976919,
Y = 0.36215204
}
}
}
}
},
BarCodes = new List<Oci.AidocumentService.Models.BarCode>
{
new Oci.AidocumentService.Models.BarCode
{
Confidence = (float)0.18569374,
Value = "EXAMPLE-value-Value",
CodeType = "EXAMPLE-codeType-Value",
BoundingPolygon = new Oci.AidocumentService.Models.BoundingPolygon
{
NormalizedVertices = new List<Oci.AidocumentService.Models.NormalizedVertex>
{
new Oci.AidocumentService.Models.NormalizedVertex
{
X = 0.29512691,
Y = 0.4454499
}
}
}
}
},
SelectionMarks = new List<Oci.AidocumentService.Models.SelectionMark>
{
new Oci.AidocumentService.Models.SelectionMark
{
State = Oci.AidocumentService.Models.SelectionMark.StateEnum.Unselected,
Confidence = (float)0.47050613,
BoundingPolygon = new Oci.AidocumentService.Models.BoundingPolygon
{
NormalizedVertices = new List<Oci.AidocumentService.Models.NormalizedVertex>
{
new Oci.AidocumentService.Models.NormalizedVertex
{
X = 0.5427887,
Y = 0.39394003
}
}
}
}
}
}
},
DetectedDocumentTypes = new List<Oci.AidocumentService.Models.DetectedDocumentType>
{
new Oci.AidocumentService.Models.DetectedDocumentType
{
DocumentType = "EXAMPLE-documentType-Value",
DocumentId = "ocid1.test.oc1..<unique_ID>EXAMPLE-documentId-Value",
Confidence = (float)0.8591421
}
},
DetectedLanguages = new List<Oci.AidocumentService.Models.DetectedLanguage>
{
new Oci.AidocumentService.Models.DetectedLanguage
{
Language = "EXAMPLE-language-Value",
Confidence = (float)0.88962764
}
},
DocumentClassificationModelVersion = "EXAMPLE-documentClassificationModelVersion-Value",
LanguageClassificationModelVersion = "EXAMPLE-languageClassificationModelVersion-Value",
TextExtractionModelVersion = "EXAMPLE-textExtractionModelVersion-Value",
KeyValueExtractionModelVersion = "EXAMPLE-keyValueExtractionModelVersion-Value",
TableExtractionModelVersion = "EXAMPLE-tableExtractionModelVersion-Value",
SignatureExtractionModelVersion = "EXAMPLE-signatureExtractionModelVersion-Value",
BarCodeExtractionModelVersion = "EXAMPLE-barCodeExtractionModelVersion-Value",
Errors = new List<Oci.AidocumentService.Models.ProcessingError>
{
new Oci.AidocumentService.Models.ProcessingError
{
Code = "EXAMPLE-code-Value",
Message = "EXAMPLE-message-Value"
}
},
// Create a byte array. This can be created in several different ways depending on your use case.
// For example, use <see href="https://docs.microsoft.com/en-us/dotnet/api/system.io.file.readallbytes?view=netcore-3.1">File.ReadAllBytes(String)</see>,
// or use <see href="https://docs.microsoft.com/en-us/dotnet/api/system.text.encoder?view=netcore-3.1">Encoder class</see>.
SearchablePdf = System.Text.Encoding.UTF8.GetBytes("some data")
}
};
var analyzeDocumentRequest = new Oci.AidocumentService.Requests.AnalyzeDocumentRequest
{
AnalyzeDocumentDetails = analyzeDocumentDetails,
IfMatch = "EXAMPLE-ifMatch-Value",
OpcRequestId = "AQMB4MQPRVVSD7UCGIZB<unique_ID>"
};
// Create a default authentication provider that uses the DEFAULT
// profile in the configuration file.
// Refer to <see href="https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm#SDK_and_CLI_Configuration_File>the public documentation</see> on how to prepare a configuration file.
var provider = new ConfigFileAuthenticationDetailsProvider("DEFAULT");
try
{
// Create a service client and send the request.
using (var client = new AIServiceDocumentClient(provider, new ClientConfiguration()))
{
var response = await client.AnalyzeDocument(analyzeDocumentRequest);
// Retrieve value from the response.
var documentMetadataValue = response.AnalyzeDocumentResult.DocumentMetadata;
}
}
catch (Exception e)
{
Console.WriteLine($"AnalyzeDocument Failed with {e.Message}");
throw e;
}
}
}
}