Saltar al contenido principal
Biblioteca de .NET para la API de DeepXL: detección de fraude, análisis de documentos y verificación de identidad.

Requisitos

  • .NET 8.0 o posterior

Instalación

Desde el código fuente

cd sdks/dotnet/DeepXL
dotnet pack
Haz referencia al paquete compilado o agrega una referencia de proyecto a DeepXL/DeepXL.csproj.

NuGet (cuando se publique)

<PackageReference Include="DeepXL" Version="1.0.0" />

Ejemplo

Crea una clave de API en el Panel de DeepXL (Configuración → Claves de API).
Trata tu clave de API como cualquier secreto de entorno. No la confirmes en un repositorio público ni la almacenes en texto sin formato.
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 solicitudes de larga duración (p. ej., archivos grandes), usa un HttpClient personalizado con un tiempo de espera mayor:
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 del cliente

Cuenta

  • CheckUsageAsync() – GET /v1/account. Devuelve UsageResponse (uso y límites por tipo de medio). Campos opcionales: parsingUsageLimit, parsingUsage.

Modelos

  • GetDetectionModelsAsync() – GET /v1/detection-models. Devuelve JsonDocument.
  • GetParsingModelsAsync() – GET /v1/parsing-models. Devuelve JsonDocument.

Detección de fraude

  • DetectAsync(modelName, fileName, fileData [, tags]) / DetectFileAsync(modelName, filePath [, tags]) – POST /v1/detection. Modelos: document, object. Devuelve JsonDocument.
  • GetDetectionAsync(detectionId) – GET /v1/detection/. Devuelve JsonDocument.
  • ListDetectionsAsync([param]) – GET /v1/detection. Parámetros: ListParams con limit, offset, sortBy, direction, tagFilter. Devuelve JsonDocument con totalCount, count, data.

Análisis de documentos

  • ParseAsync(modelName, fileName, fileData [, tags]) / ParseFileAsync(modelName, filePath [, tags]) – POST /v1/parse. Modelos: light, performance. Devuelve JsonDocument.
  • GetParseAsync(parseId) – GET /v1/parse/. Devuelve JsonDocument.
  • ListParsesAsync([param]) – GET /v1/parse. Devuelve JsonDocument con totalCount, count, data.

Verificación de identidad

  • VerifyAsync(idFileName, idFileData, selfieFileName, selfieFileData [, tags]) / VerifyFilesAsync(idFilePath, selfieFilePath [, tags]) – POST /v1/verification. Devuelve JsonDocument.
  • GetVerificationAsync(verificationId) – GET /v1/verification/. Devuelve JsonDocument.
  • ListVerificationsAsync([param]) – GET /v1/verification. Devuelve JsonDocument con totalCount, count, data.

Recuperación de archivos

  • GetFileAsync(fileName) – GET /v1/files/. Devuelve byte[]. Usa el nombre del archivo del array files en cualquier respuesta de análisis.

Tipos

  • UsageResponseImageUsageLimit, ImageUsage, VideoUsageLimit, VideoUsage, AudioUsageLimit, AudioUsage, DocumentUsageLimit, DocumentUsage, y opcionalmente ParsingUsageLimit, ParsingUsage.
  • ListParamsLimit, Offset, SortBy, Direction, TagFilter.

Errores

Ante un fallo de la API o de red, el cliente lanza DeepXLException con un StatusCode opcional. Analiza las respuestas de error de la API cuando estén presentes.