Pular para o conteúdo principal
Biblioteca .NET para a API DeepXL: detecção de fraude, análise de documentos e verificação de identidade.

Requisitos

  • .NET 8.0 ou superior

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

  • UsageResponseImageUsageLimit, ImageUsage, VideoUsageLimit, VideoUsage, AudioUsageLimit, AudioUsage, DocumentUsageLimit, DocumentUsage e, opcionalmente, ParsingUsageLimit, ParsingUsage.
  • ListParamsLimit, 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.