// 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.Receipt,
OcrData = new Oci.AidocumentService.Models.AnalyzeDocumentResult
{
DocumentMetadata = new Oci.AidocumentService.Models.DocumentMetadata
{
PageCount = 279,
MimeType = "EXAMPLE-mimeType-Value"
},
Pages = new List<Oci.AidocumentService.Models.Page>
{
new Oci.AidocumentService.Models.Page
{
PageNumber = 168,
Dimensions = new Oci.AidocumentService.Models.Dimensions
{
Width = 6506.377,
Height = 1836.6045,
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.20636326
}
},
DetectedLanguages = new List<Oci.AidocumentService.Models.DetectedLanguage>
{
new Oci.AidocumentService.Models.DetectedLanguage
{
Language = "EXAMPLE-language-Value",
Confidence = (float)0.9804424
}
},
Words = new List<Oci.AidocumentService.Models.Word>
{
new Oci.AidocumentService.Models.Word
{
Text = "EXAMPLE-text-Value",
Confidence = (float)0.18925643,
BoundingPolygon = new Oci.AidocumentService.Models.BoundingPolygon
{
NormalizedVertices = new List<Oci.AidocumentService.Models.NormalizedVertex>
{
new Oci.AidocumentService.Models.NormalizedVertex
{
X = 0.7567968,
Y = 0.16993767
}
}
}
}
},
Lines = new List<Oci.AidocumentService.Models.Line>
{
new Oci.AidocumentService.Models.Line
{
Text = "EXAMPLE-text-Value",
Confidence = (float)0.2521472,
BoundingPolygon = new Oci.AidocumentService.Models.BoundingPolygon
{
NormalizedVertices = new List<Oci.AidocumentService.Models.NormalizedVertex>
{
new Oci.AidocumentService.Models.NormalizedVertex
{
X = 0.26323795,
Y = 0.69503534
}
}
},
WordIndexes = new List<Int32>
{
796
}
}
},
Tables = new List<Oci.AidocumentService.Models.Table>
{
new Oci.AidocumentService.Models.Table
{
RowCount = 337,
ColumnCount = 386,
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 = 862,
ColumnIndex = 665,
Confidence = (float)0.37774736,
BoundingPolygon = new Oci.AidocumentService.Models.BoundingPolygon
{
NormalizedVertices = new List<Oci.AidocumentService.Models.NormalizedVertex>
{
new Oci.AidocumentService.Models.NormalizedVertex
{
X = 0.27124602,
Y = 0.08899367
}
}
},
WordIndexes = new List<Int32>
{
986
}
}
}
}
},
Confidence = (float)0.5289005,
BoundingPolygon = new Oci.AidocumentService.Models.BoundingPolygon
{
NormalizedVertices = new List<Oci.AidocumentService.Models.NormalizedVertex>
{
new Oci.AidocumentService.Models.NormalizedVertex
{
X = 0.7253601,
Y = 0.571634
}
}
}
}
},
DocumentFields = new List<Oci.AidocumentService.Models.DocumentField>
{
new Oci.AidocumentService.Models.DocumentField
{
FieldType = Oci.AidocumentService.Models.DocumentField.FieldTypeEnum.LineItemField,
FieldLabel = new Oci.AidocumentService.Models.FieldLabel
{
Name = "EXAMPLE-name-Value",
Confidence = (float)0.99906224
},
FieldName = new Oci.AidocumentService.Models.FieldName
{
Name = "EXAMPLE-name-Value",
Confidence = (float)0.12940931,
BoundingPolygon = new Oci.AidocumentService.Models.BoundingPolygon
{
NormalizedVertices = new List<Oci.AidocumentService.Models.NormalizedVertex>
{
new Oci.AidocumentService.Models.NormalizedVertex
{
X = 0.6239295,
Y = 0.31811917
}
}
},
WordIndexes = new List<Int32>
{
287
}
},
FieldValue = new Oci.AidocumentService.Models.ValueInteger
{
Value = 363,
Text = "EXAMPLE-text-Value",
Confidence = (float)0.81502527,
BoundingPolygon = new Oci.AidocumentService.Models.BoundingPolygon
{
NormalizedVertices = new List<Oci.AidocumentService.Models.NormalizedVertex>
{
new Oci.AidocumentService.Models.NormalizedVertex
{
X = 0.17849636,
Y = 0.83037513
}
}
},
WordIndexes = new List<Int32>
{
928
},
NormalizedValue = "EXAMPLE-normalizedValue-Value",
NormalizedConfidence = (float)0.44432253
}
}
},
Signatures = new List<Oci.AidocumentService.Models.Signature>
{
new Oci.AidocumentService.Models.Signature
{
Confidence = (float)0.053895116,
BoundingPolygon = new Oci.AidocumentService.Models.BoundingPolygon
{
NormalizedVertices = new List<Oci.AidocumentService.Models.NormalizedVertex>
{
new Oci.AidocumentService.Models.NormalizedVertex
{
X = 0.33834213,
Y = 0.26724082
}
}
}
}
},
BarCodes = new List<Oci.AidocumentService.Models.BarCode>
{
new Oci.AidocumentService.Models.BarCode
{
Confidence = (float)0.0715785,
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.45336193,
Y = 0.13147873
}
}
}
}
},
SelectionMarks = new List<Oci.AidocumentService.Models.SelectionMark>
{
new Oci.AidocumentService.Models.SelectionMark
{
State = Oci.AidocumentService.Models.SelectionMark.StateEnum.Unselected,
Confidence = (float)0.6809422,
BoundingPolygon = new Oci.AidocumentService.Models.BoundingPolygon
{
NormalizedVertices = new List<Oci.AidocumentService.Models.NormalizedVertex>
{
new Oci.AidocumentService.Models.NormalizedVertex
{
X = 0.30912173,
Y = 0.50898546
}
}
}
}
}
}
},
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.9831584
}
},
DetectedLanguages = new List<Oci.AidocumentService.Models.DetectedLanguage>
{
new Oci.AidocumentService.Models.DetectedLanguage
{
Language = "EXAMPLE-language-Value",
Confidence = (float)0.2196948
}
},
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 = "MNREAKWJSDFRX2NFLO7N<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;
}
}
}
}