Biblioteca .NET para a API DeepXL: detecção de fraude, análise de documentos e verificação de identidade.
Requisitos
Instalação
A partir do código-fonte
cd sdks/dotnet/DeepXL
dotnet pack
Referencie o pacote gerado ou adicione uma referência de projeto para DeepXL/DeepXL.csproj.
NuGet (quando publicado)
<PackageReference Include="DeepXL" Version="1.0.0" />
Exemplo
Crie uma chave de API no Painel do DeepXL (Configurações → Chaves de API).
Trate sua chave de API como qualquer segredo de ambiente. Não faça commit em um repositório público nem armazene em texto simples.
using DeepXL;
using System.Text.Json;
var apiKey = Environment.GetEnvironmentVariable("DEEPXL_API_KEY")
?? throw new InvalidOperationException("Set DEEPXL_API_KEY environment variable.");
var client = new DeepXLClient(apiKey);
var usage = await client.CheckUsageAsync();
using var detection = await client.DetectFileAsync("document", "./file.pdf");
using var parsed = await client.ParseFileAsync("light", "./id.pdf");
using var verification = await client.VerifyFilesAsync("./id.jpg", "./selfie.jpg");
Console.WriteLine(detection.RootElement.GetProperty("likelihood").GetDouble());
Console.WriteLine(parsed.RootElement.GetProperty("documentType").GetString());
Console.WriteLine(verification.RootElement.GetProperty("verified").GetBoolean());
Para solicitações de longa duração (por exemplo, arquivos grandes), use um HttpClient personalizado com um timeout maior:
var apiKey = Environment.GetEnvironmentVariable("DEEPXL_API_KEY")
?? throw new InvalidOperationException("Set DEEPXL_API_KEY environment variable.");
var http = new HttpClient { BaseAddress = new Uri("https://api.deepxl.ai/v1/"), Timeout = TimeSpan.FromSeconds(120) };
http.DefaultRequestHeaders.Add("x-api-key", apiKey);
var client = new DeepXLClient(http);
Métodos do cliente
Conta
- CheckUsageAsync() – GET /v1/account. Retorna
UsageResponse (uso e limites por tipo de mídia). Campos opcionais: parsingUsageLimit, parsingUsage.
Modelos
- GetDetectionModelsAsync() – GET /v1/detection-models. Retorna
JsonDocument.
- GetParsingModelsAsync() – GET /v1/parsing-models. Retorna
JsonDocument.
Detecção de fraude
- DetectAsync(modelName, fileName, fileData [, tags]) / DetectFileAsync(modelName, filePath [, tags]) – POST /v1/detection. Modelos:
document, object. Retorna JsonDocument.
- GetDetectionAsync(detectionId) – GET /v1/detection/. Retorna
JsonDocument.
- ListDetectionsAsync([param]) – GET /v1/detection. Parâmetros:
ListParams com limit, offset, sortBy, direction, tagFilter. Retorna JsonDocument com totalCount, count, data.
Análise de documentos
- ParseAsync(modelName, fileName, fileData [, tags]) / ParseFileAsync(modelName, filePath [, tags]) – POST /v1/parse. Modelos:
light, performance. Retorna JsonDocument.
- GetParseAsync(parseId) – GET /v1/parse/. Retorna
JsonDocument.
- ListParsesAsync([param]) – GET /v1/parse. Retorna
JsonDocument com totalCount, count, data.
Verificação de identidade
- VerifyAsync(idFileName, idFileData, selfieFileName, selfieFileData [, tags]) / VerifyFilesAsync(idFilePath, selfieFilePath [, tags]) – POST /v1/verification. Retorna
JsonDocument.
- GetVerificationAsync(verificationId) – GET /v1/verification/. Retorna
JsonDocument.
- ListVerificationsAsync([param]) – GET /v1/verification. Retorna
JsonDocument com totalCount, count, data.
Recuperação de arquivos
- GetFileAsync(fileName) – GET /v1/files/. Retorna
byte[]. Use o nome do arquivo da matriz files em qualquer resposta de análise.
Tipos
- UsageResponse –
ImageUsageLimit, ImageUsage, VideoUsageLimit, VideoUsage, AudioUsageLimit, AudioUsage, DocumentUsageLimit, DocumentUsage e, opcionalmente, ParsingUsageLimit, ParsingUsage.
- ListParams –
Limit, Offset, SortBy, Direction, TagFilter.
Erros
Em caso de falha na API ou na rede, o cliente lança DeepXLException com um StatusCode opcional. Faça o parse das respostas de erro da API quando presentes.