Velg mellom bare datasettet, fallback og always som KI-modus i GenderAPI.io V2. Forstå tolkningen av kallenavn, standardverdiene per element i samleforespørsler og de nøyaktige kredittprisene.
KI-moduser og forceToGenderize
I POST-body angir du options: {"ai_mode": "off"} (eller fallback / always). I GET-URL-er bruker du ai_mode=off. Elementer i samleforespørsler bruker off som standard; aktiver fallback separat for hvert element som trenger det.
Når forceToGenderize er true, utelater du ai_mode eller bruker fallback. Kombinert med off eller always gir det 422. Et vanlig KI-estimat krever et brukbart ekte fornavn; et tvunget estimat kan bruke et alias. Ingen av modusene garanterer et kjønn som ikke er null.
En feil i datasettet eller hos leverandøren er en mislykket forespørsel, ikke et manglende treff i datasettet. Mislykkede prediksjoner refunderes; sjekk billing_status før du prøver på nytt når belastningen ikke kan bekreftes.
Modus
Virkemåte
Kreditter totalt per vellykket element
Modusoff
VirkemåteBare datasettet; ingen KI-kall.
Kreditter totalt per vellykket element1, også for et ukjent resultat
Modusfallback
VirkemåteDatasettet først, deretter KI hvis kjønnet ikke kan fastslås. Standard for enkeltforespørsler.
Kreditter totalt per vellykket element1, inkludert KI-reserve
Modusalways
VirkemåteHopp over datasettet og spør KI direkte.
Kreditter totalt per vellykket element2
ModusforceToGenderize: true
VirkemåteDatasettet først, deretter KI som tolker kallenavn hvis det ikke finnes et resultat. Fungerer for navn, e-postadresser og brukernavn.
Kreditter totalt per vellykket element1 for et resultat fra datasettet; 2 totalt hvis KI brukes
Aktiver tolkning av kallenavn
Det samme valgfrie feltet forceToGenderize fungerer med type name, email og username. Dette eksemplet bruker et kallenavn som navneverdi. Bruk din eksisterende API-nøkkel med Bearer. Ukjente utfall er fortsatt gyldige resultater.
Velg et programmeringsspråk.Konfigurer API-nøkkelen, og kjør deretter eksemplet på serveren din.
Hver prediksjonsforespørsel er en ny operasjon som belastes, også nye forsøk. Disse eksemplene prøver ikke automatisk på nytt. Sjekk belastningsstatusen før du sender en ny forespørsel.
Før du kjører: tilgang og feilhåndtering
Kjør disse eksemplene på serveren din. Sett GENDERAPI_API_KEY i prosessmiljøet til din eksisterende API-nøkkel. Bekreft at meta.access.mode er api_key: en nøkkel som ikke gjenkjennes, kan føre til IP-prøveperioden.
Ved JSON-svar med HTTP 4xx og 5xx beholdes feilinnholdet, og eksemplet avsluttes med en exit-status som ikke er null. Sjekk code, action og meta.usage.billing_status før du prøver på nytt.
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.}