Elija el modo IA solo conjunto de datos, fallback o always en GenderAPI v2. Comprenda la inferencia de apodos, los valores predeterminados de lotes por elemento y las tarifas de crédito exactas.
Modos IA y forceToGenderize
En cuerpos POST, configurar options: {"ai_mode": "off"} (o fallback / always). En las URL GET, utilice ai_mode=off. Los elementos del lote tienen por defecto off; habilite fallback por separado en cada elemento que lo necesite.
Cuando forceToGenderize es true, omita ai_mode o use fallback. Combinarlo con off o always arroja 422. La inferencia de IA ordinaria requiere un nombre de pila real utilizable; La inferencia forzada puede utilizar un alias. Ninguno de los modos garantiza un género que no sea null.
Un error de conjunto de datos o de proveedor es una solicitud fallida, no una falta de conjunto de datos. Las predicciones fallidas se reembolsan; inspeccione billing_status antes de volver a intentarlo cuando no se pueda confirmar el resultado de la facturación.
Modo
Comportamiento
Créditos totales por elemento exitoso
off
Solo conjunto de datos; sin llamada de IA.
1, incluido un resultado desconocido
fallback
Primero el conjunto de datos, luego la IA si el género no está resuelto. Valor predeterminado para solicitudes individuales.
1, incluido el respaldo de IA
always
Omita el conjunto de datos y pregúntele a IA directamente.
2
forceToGenderize: true
Primero el conjunto de datos, luego la IA con reconocimiento de apodos si no se resuelve. Funciona para nombre, correo electrónico y nombre de usuario.
1 para un resultado de conjunto de datos resuelto; 2 en total si se utiliza IA
Habilitar inferencia basada en apodos
El campo opcional forceToGenderize funciona con los tres valores de type: name, email y username. Este ejemplo proporciona un apodo en la entrada del nombre. Utilice su clave API de portador existente. Un género desconocido también es un resultado válido.
Elija un lenguaje de programación.Configura tu clave API, luego ejecute el ejemplo en su servidor.
Cada solicitud de predicción es una nueva operación facturable, incluidos los reintentos. Estos ejemplos no se reintentan automáticamente. Verifique el estado de facturación antes de enviar otra solicitud.
Antes de ejecutar: acceso y manejo de errores
Ejecute estos ejemplos en su servidor. Configure GENDERAPI_API_KEY en el entorno de proceso con su clave API existente. Confirme que meta.access.mode es api_key: una clave no reconocida puede recurrir a la prueba IP.
Las respuestas HTTP 4xx y 5xx JSON conservan el cuerpo del error y devuelven un estado de salida distinto de cero. Verifique code, action y meta.usage.billing_status antes de volver a intentarlo.
import jsonimport osimport sysimport urllib.errorimport urllib.requestapi_key = os.environ.get("GENDERAPI_API_KEY")if not api_key: raise RuntimeError("Set GENDERAPI_API_KEY")body = json.loads("{\"type\":\"name\",\"value\":\"prenses\",\"country\":\"TR\",\"forceToGenderize\":true}")class NoRedirect(urllib.request.HTTPRedirectHandler): def redirect_request(self, req, fp, code, msg, headers, newurl): return Nonerequest = urllib.request.Request( "https://api.genderapi.io/api/v2/gender", method="POST", data=json.dumps(body).encode("utf-8"), headers={ "Authorization": "Bearer " + api_key, "Content-Type": "application/json", },)opener = urllib.request.build_opener(NoRedirect())try: response = opener.open(request, timeout=30)except urllib.error.HTTPError as error: response = error # Keep the Problem Details body on non-2xx responses.with response: status = response.status raw = response.read().decode("utf-8") if "json" not in response.headers.get("Content-Type", ""): raise RuntimeError(f"HTTP {status}: expected a JSON response") result = json.loads(raw)print(json.dumps(result, indent=2), file=sys.stderr if status >= 300 else sys.stdout)if not 200 <= status < 300: sys.exit(1) # Inspect code, action and billing before retrying.# For batches, inspect every item even when HTTP status is 200.
using System;using System.Net.Http;using System.Net.Http.Headers;using System.Text;using System.Text.Json;string RequiredEnv(string name) => !string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable(name)) ? Environment.GetEnvironmentVariable(name)! : throw new InvalidOperationException($"Set {name}");var apiKey = RequiredEnv("GENDERAPI_API_KEY");using var handler = new HttpClientHandler { AllowAutoRedirect = false };using var client = new HttpClient(handler) { Timeout = TimeSpan.FromSeconds(30) };using var request = new HttpRequestMessage(HttpMethod.Post, "https://api.genderapi.io/api/v2/gender");request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);request.Content = new StringContent("{\"type\":\"name\",\"value\":\"prenses\",\"country\":\"TR\",\"forceToGenderize\":true}", Encoding.UTF8, "application/json");using var response = await client.SendAsync(request);var raw = await response.Content.ReadAsStringAsync();if (!(response.Content.Headers.ContentType?.MediaType?.Contains("json") ?? false)) throw new InvalidOperationException($"HTTP {(int)response.StatusCode}: expected JSON");using var result = JsonDocument.Parse(raw);if (!response.IsSuccessStatusCode){ Console.Error.WriteLine(result.RootElement); // Preserve Problem Details. Environment.ExitCode = 1;}else{ Console.WriteLine(result.RootElement); // For batches, inspect every item even on HTTP 200.}