Biblioteca de .NET para la API de DeepXL: detección de fraude, análisis de documentos y verificación de identidad.
Requisitos
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
- UsageResponse –
ImageUsageLimit, ImageUsage, VideoUsageLimit, VideoUsage, AudioUsageLimit, AudioUsage, DocumentUsageLimit, DocumentUsage, y opcionalmente ParsingUsageLimit, ParsingUsage.
- ListParams –
Limit, 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.