Wybierz tryb AI tylko dla zestawu danych, fallback lub always w GenderAPI v2. Poznaj wnioskowanie o pseudonimie, domyślne ustawienia partii dla poszczególnych pozycji i dokładne stawki kredytowe.
Tryby AI i forceToGenderize
W korpusach POST należy ustawić options: {"ai_mode": "off"} (lub fallback / always). W adresach URL GET użyj ai_mode=off. Domyślne elementy partii to off; włącz fallback osobno dla każdego elementu, który tego potrzebuje.
Gdy forceToGenderize to true, pomiń ai_mode lub użyj fallback. Połączenie tego z off lub always zwraca 422. Zwykłe wnioskowanie AI wymaga użytecznego prawdziwego imienia; wymuszone wnioskowanie może używać aliasu. Żaden tryb nie gwarantuje płci innej niż null.
Błąd zbioru danych lub dostawcy oznacza nieudane żądanie, a nie brak zbioru danych. Nieudane prognozy zostaną zwrócone; sprawdź billing_status przed ponowną próbą, jeśli nie można potwierdzić wyniku rozliczenia.
Tryb
Zachowanie
Całkowita liczba kredytów za udany przedmiot
off
Tylko zbiór danych; brak wezwania AI.
1, w tym wynik nieznany
fallback
Najpierw zbiór danych, potem AI, jeśli płeć nie jest ustalona. Domyślne dla pojedynczych żądań.
1, w tym rezerwa AI
always
Pomiń zbiór danych i zapytaj bezpośrednio AI.
2
forceToGenderize: true
Najpierw zbiór danych, a następnie sztuczna inteligencja rozpoznająca pseudonimy, jeśli nie została rozwiązana. Działa dla imienia, adresu e-mail i nazwy użytkownika.
1 dla rozpoznanego wyniku zbioru danych; Łącznie 2, jeśli używana jest sztuczna inteligencja
Włącz wnioskowanie uwzględniające pseudonimy
Opcjonalne pole forceToGenderize współpracuje ze wszystkimi trzema wartościami type: name, email i username. W tym przykładzie w polu nazwy wprowadzany jest pseudonim. Użyj istniejącego klucza API Bearer. Nieznana płeć jest również ważnym wynikiem.
Wybierz język programowania.Skonfiguruj klucz API, następnie uruchom przykład na swoim serwerze.
Każde żądanie prognozy jest nową płatną operacją, włączając ponowne próby. W tych przykładach nie następuje automatycznie ponowna próba. Sprawdź status płatności przed wysłaniem kolejnej prośby.
Zanim uruchomisz: dostęp i obsługa błędów
Uruchom te przykłady na swoim serwerze. Ustaw GENDERAPI_API_KEY w środowisku procesowym na istniejący klucz API. Potwierdź, że meta.access.mode to api_key: nierozpoznany klucz może wrócić do wersji próbnej IP.
Odpowiedzi HTTP 4xx i 5xx JSON zachowują treść błędu i zwracają niezerowy status wyjścia. Przed ponowną próbą sprawdź code, action i meta.usage.billing_status.
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.}