GenderAPI.io V2 · دليل

تحديد الجنس من الأسماء الصينية

جرّب الأسماء الصينية مع GenderAPI.io V2. تعرّف على أثر الأجزاء القصيرة وتقسيم الاسم الكامل والحروف الأصلية وسياق CN في نتائج مجموعة البيانات والذكاء الاصطناعي.

آخر تحديث:

جرّب V2 API

تحليل اسم

مجموعة البيانات + الذكاء الاصطناعي

أرسل قيمة واطّلع على الاستجابة كاملة، بما في ذلك النتائج غير المعروفة والأرصدة المخصومة.

تستخدم هذه الأداة سياق الدولة على سبيل المثال: الصين (CN). وهو ليس الإعداد الافتراضي لكل الأسماء بهذه اللغة، ولا يثبت الجنسية.

الطلب العادي: رصيد واحد، بما في ذلك الرجوع إلى الذكاء الاصطناعي والنتائج غير المعروفة. عند تفعيل تفسير الاسم المستعار: رصيد واحد إذا وُجدت النتيجة في مجموعة البيانات، ورصيدان إجمالًا إذا استُخدم الذكاء الاصطناعي، حتى مع نتيجة غير معروفة.

تُرسَل القيمة (الاسم) إلى GenderAPI.io؛ وعند الحاجة إلى الرجوع إلى الذكاء الاصطناعي قد تُرسَل أيضًا إلى خدمة الذكاء الاصطناعي المهيأة. تعرّف على كيفية التعامل مع البيانات.

لا يوجد مفتاح API محفوظ. التجربة المشتركة حسب عنوان IP متاحة في حدود أرصدتها المتبقية.

الاستجابة أدناه مثال للتوضيح فقط. اختر «تحليل» لإرسال الطلب.

مثال على استجابة V2 · ليس نتيجة مباشرة
الاسم—
الجنسغير معروف
درجة الثقة—
المصدرنموذج ذكاء اصطناعي
الأرصدة المستخدمة1

يوضّح التكرار والقيم والرصيد في المثال بنية الاستجابة فقط؛ وقد تختلف القيم الفعلية. التقدير ليس هوية مؤكَّدة.

ميّز بين قبول Unicode وتقسيم الاسم

يمكنك إرسال الاسم الصيني نصًّا بترميز Unicode دون تحويله إلى حروف لاتينية. يبحث مسار مجموعة البيانات الحالي عن أجزاء مطبَّعة، ولا يقسّم تلقائيًا الاسم الصيني الكامل المتصل إلى اسم عائلة واسم شخصي. لذلك يُعد 王静怡 مرشحًا واحدًا، وليس بحثًا مضمونًا عن 静怡.

بالنسبة إلى الحروف الصينية الشائعة في هذه الأمثلة، يتخطى عامل تصفية المرشحين الحالي في مجموعة البيانات الأجزاءَ المكونة من حرف واحد أو حرفين. قد يكون الاسم الشخصي القصير مُدخلًا صالحًا ومع ذلك لا يكون له مرشح في مجموعة البيانات. يمكن للرجوع العادي إلى الذكاء الاصطناعي أن يأخذ القيمة الأصلية المُرسلة في الحسبان، أما وضع مجموعة البيانات فقط فيُبقي النتيجة غير معروفة.

لا يوفّر تطبيع Unicode NFKC تحويلًا عامًا من الصينية المبسطة إلى التقليدية، ولا يعيد التهجئة اللاتينية إلى اسم صيني واحد بعينه. احتفظ بنظام الكتابة المُرسل وتحقّق من المطابقة المُعادة. لا تستنتج جنس الشخص أو دولته من موضع اسم العائلة أو من نظام الكتابة أو من الكتابة بالحروف اللاتينية وحدها.

مثال على المُدخلما يمثلهما يجب التحقق منه
王静怡اسم كامل متصلمرشح واحد في مجموعة البيانات. لا يفصل المحلل الحالي اسم العائلة.
静怡اسم شخصي من حرفينيتخطاه عامل تصفية الطول في مجموعة البيانات؛ وقد يجرّب الرجوع إلى الذكاء الاصطناعي القيمة الأصلية.
王 静怡أجزاء قصيرة مفصولةلا تحل إضافة مسافة مشكلة عامل تصفية الطول. فكلا الجزأين في المثال أقصر من أن يُبحث عنه في مجموعة البيانات.
Wang Jingyiمُدخل بالحروف اللاتينيةيُعامل مُدخلًا مستقلًا يُقسَّم إلى أجزاء. ولا يُضمن أن يؤدي إلى الحروف الأصلية أو إلى السجل نفسه.

اختر سياق الدولة CN عن قصد

يرسل العرض المباشر country: CN (الصين). لا تختار API هذه الدولة بناءً على نظام كتابة الاسم. في تكاملك، استخدم سياقًا معروفًا وذا صلة أو احذف country؛ ولا تجعل قيمة هذا المثال إعدادًا افتراضيًا لكل السجلات.

لكل مرشح، يفضّل مسار مجموعة البيانات صف الدولة إن وُجد، وإلا يأخذ الصف العام في الحسبان. ثم يختار المرشح المتاح صاحب أعلى عدد إجمالي مخزَّن. تحقّق من data.match.scope وdata.match.country لمعرفة نطاق المطابقة الفعلي. لا يُستبدل صف الدولة المتعادل تلقائيًا بنتيجة عامة؛ وإذا كان الرجوع إلى الذكاء الاصطناعي مفعّلًا، فقد يُستخدم الذكاء الاصطناعي بدلًا من ذلك.

يصف data.input.country سياق الطلب. أما data.country وdata.country_source فيصفان ارتباطًا مُعادًا. وهي حقول مختلفة، ولا تثبت الجنسية أو الأصل العرقي أو مكان الإقامة.

أرسل طلب V2 مع اسم من تطبيقك

شغّل الطلب على خادمك بعد ضبط GENDERAPI_API_KEY على مفتاحك الحالي. يفعّل المثال صراحةً الرجوع العادي إلى الذكاء الاصطناعي. وهو يوضح شكل الطلب، لا تقديرًا مقيسًا ولا نتيجة تغطية. استخدم options.ai_mode: off للمعالجة بمجموعة البيانات فقط.

اختر لغة البرمجة. إعداد مفتاح API، ثم شغّل المثال على خادمك.

كل طلب تقدير عملية جديدة مدفوعة، حتى عند إعادة المحاولة. لا تعيد هذه الأمثلة المحاولة تلقائيًا. تحقّق من حالة الخصم قبل إرسال طلب آخر.

قبل التشغيل: الوصول ومعالجة الأخطاء

شغّل هذه الأمثلة على خادمك. اضبط GENDERAPI_API_KEY في بيئة العملية على مفتاح API الحالي. تأكد من أن قيمة meta.access.mode هي api_key: فالمفتاح غير المعروف قد يؤدي إلى استخدام التجربة حسب عنوان IP.

في استجابات JSON ذات رموز HTTP 4xx و5xx، يُحتفظ بجسم الخطأ وينتهي المثال برمز خروج غير صفري. تحقّق من code وaction وmeta.usage.billing_status قبل إعادة المحاولة.

دليل الأخطاء وإعادة المحاولة ←
cURL
curl --silent --show-error --fail-with-body --max-time 30 \
  --request POST 'https://api.genderapi.io/api/v2/gender' \
  --header "Authorization: Bearer ${GENDERAPI_API_KEY:?Set GENDERAPI_API_KEY}" \
  --header 'Content-Type: application/json' \
  --data '{
  "type": "name",
  "value": "王静怡",
  "country": "CN",
  "options": {
    "ai_mode": "fallback"
  }
}'

cURL 7.76+ في واجهة أوامر POSIX. شغّله في الطرفية. وثائق بيئة التشغيل

JavaScript / Node.js
// Server-side Node.js. Save as example.mjs.
const apiKey = process.env.GENDERAPI_API_KEY;
if (!apiKey) throw new Error("Set GENDERAPI_API_KEY");
const body = {
  "type": "name",
  "value": "王静怡",
  "country": "CN",
  "options": {
    "ai_mode": "fallback"
  }
};

const response = await fetch("https://api.genderapi.io/api/v2/gender", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify(body),
  signal: AbortSignal.timeout(30_000),
  redirect: "error",
});
const raw = await response.text();
if (!(response.headers.get("content-type") ?? "").includes("json")) {
  throw new Error(`HTTP ${response.status}: expected JSON; request ID ${response.headers.get("x-request-id")}`);
}
const result = JSON.parse(raw); // Also accepts application/problem+json.
if (!response.ok) {
  console.error(`HTTP ${response.status}`, result);
  process.exitCode = 1; // A retry is a new operation; inspect billing first.
} else {
  console.log(JSON.stringify(result, null, 2));
  // For batches, inspect every item: HTTP 200 may contain item errors.
}

Node.js 22+ مع fetch المدمج. احفظه باسم example.mjs وشغّل node example.mjs. وثائق بيئة التشغيل

Python
import json
import os
import sys
import urllib.error
import urllib.request

api_key = os.environ.get("GENDERAPI_API_KEY")
if not api_key:
    raise RuntimeError("Set GENDERAPI_API_KEY")
body = json.loads("{\"type\":\"name\",\"value\":\"王静怡\",\"country\":\"CN\",\"options\":{\"ai_mode\":\"fallback\"}}")

class NoRedirect(urllib.request.HTTPRedirectHandler):
    def redirect_request(self, req, fp, code, msg, headers, newurl):
        return None

request = 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.

Python 3.10+ مع المكتبة القياسية. احفظه باسم example.py وشغّل python3 example.py. وثائق بيئة التشغيل

PHP
<?php
$apiKey = getenv('GENDERAPI_API_KEY');
if (!$apiKey) {
    throw new RuntimeException('Set GENDERAPI_API_KEY');
}
$body = json_decode('{"type":"name","value":"王静怡","country":"CN","options":{"ai_mode":"fallback"}}', true, 512, JSON_THROW_ON_ERROR);

$ch = curl_init('https://api.genderapi.io/api/v2/gender');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_FOLLOWLOCATION => false,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode($body, JSON_THROW_ON_ERROR),
]);
$raw = curl_exec($ch);
if ($raw === false) {
    throw new RuntimeException(curl_error($ch));
}
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$contentType = curl_getinfo($ch, CURLINFO_CONTENT_TYPE) ?: '';
curl_close($ch);
if (strpos($contentType, 'json') === false) {
    throw new RuntimeException("HTTP $status: expected a JSON response");
}
$result = json_decode($raw, true, 512, JSON_THROW_ON_ERROR);
$output = json_encode($result, JSON_PRETTY_PRINT | JSON_THROW_ON_ERROR) . PHP_EOL;
if ($status < 200 || $status >= 300) {
    fwrite(STDERR, $output); // Preserve the Problem Details body.
    exit(1);
}
echo $output;
// For batches, inspect every item; HTTP 200 can contain item errors.

PHP 8+ مع امتداد cURL. احفظه باسم example.php وشغّل php example.php. وثائق بيئة التشغيل

Java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.time.Duration;

public class GenderApiExample {
    private static String requiredEnv(String name) {
        String value = System.getenv(name);
        if (value == null || value.isBlank()) throw new IllegalStateException("Set " + name);
        return value;
    }

    public static void main(String[] args) throws Exception {
        String apiKey = requiredEnv("GENDERAPI_API_KEY");
        String body = "{\"type\":\"name\",\"value\":\"王静怡\",\"country\":\"CN\",\"options\":{\"ai_mode\":\"fallback\"}}";
        HttpClient client = HttpClient.newBuilder()
            .connectTimeout(Duration.ofSeconds(10))
            .followRedirects(HttpClient.Redirect.NEVER)
            .build();
        HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.genderapi.io/api/v2/gender"))
            .timeout(Duration.ofSeconds(30))
            .header("Authorization", "Bearer " + apiKey)
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(body, StandardCharsets.UTF_8))
            .build();
        HttpResponse<String> response = client.send(request,
            HttpResponse.BodyHandlers.ofString(StandardCharsets.UTF_8));
        if (!response.headers().firstValue("content-type").orElse("").contains("json")) {
            throw new IllegalStateException("HTTP " + response.statusCode() + ": expected JSON");
        }
        // JSON text; parse with your application's JSON library when integrating.
        if (response.statusCode() < 200 || response.statusCode() >= 300) {
            System.err.println(response.body()); // Includes Problem Details.
            System.exit(1);
        }
        System.out.println(response.body());
        // For batches, inspect each item's data or error, including on HTTP 200.
    }
}

Java 17+ مع عميل HTTP القياسي. احفظه باسم GenderApiExample.java وشغّل java GenderApiExample.java. وثائق بيئة التشغيل

C# / .NET
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\":\"王静怡\",\"country\":\"CN\",\"options\":{\"ai_mode\":\"fallback\"}}", 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.
}

تطبيق وحدة تحكم (console) على .NET 8+. استخدمه كملف Program.cs في مشروع console، ثم شغّل dotnet run. وثائق بيئة التشغيل

Go
package main

import (
    "encoding/json"
    "fmt"
    "io"
    "net/http"
    "os"
    "strings"
    "time"
)

func requiredEnv(name string) string {
    value := os.Getenv(name)
    if value == "" { panic("Set " + name) }
    return value
}

func run() error {
    apiKey := requiredEnv("GENDERAPI_API_KEY")
    body := "{\"type\":\"name\",\"value\":\"王静怡\",\"country\":\"CN\",\"options\":{\"ai_mode\":\"fallback\"}}"
    request, err := http.NewRequest("POST", "https://api.genderapi.io/api/v2/gender", strings.NewReader(body))
    if err != nil { return err }
    request.Header.Set("Authorization", "Bearer " + apiKey)
    request.Header.Set("Content-Type", "application/json")
    client := &http.Client{
        Timeout: 30 * time.Second,
        CheckRedirect: func(req *http.Request, via []*http.Request) error {
            return http.ErrUseLastResponse
        },
    }
    response, err := client.Do(request)
    if err != nil { return err }
    defer response.Body.Close()
    raw, err := io.ReadAll(response.Body)
    if err != nil { return err }
    if !strings.Contains(response.Header.Get("Content-Type"), "json") || !json.Valid(raw) {
        return fmt.Errorf("HTTP %d: expected a JSON response", response.StatusCode)
    }
    if response.StatusCode < 200 || response.StatusCode >= 300 {
        return fmt.Errorf("HTTP %d: %s", response.StatusCode, raw)
    }
    fmt.Println(string(raw))
    // For batches, inspect every item even on HTTP 200.
    return nil
}

func main() {
    if err := run(); err != nil {
        fmt.Fprintln(os.Stderr, err) // Keep Problem Details for error handling.
        os.Exit(1)
    }
}

Go 1.22+ مع المكتبة القياسية. احفظه باسم main.go وشغّل go run main.go. وثائق بيئة التشغيل

احفظ النتيجة مع أدلتها

الارتباط المُستنتج ليس الجنس الذي يصرّح به الشخص. احفظ المُدخل الأصلي والأدلة المُعادة وما صرّح به الشخص كلًّا على حدة. النتيجة غير المعروفة نتيجة صالحة، ولا ينبغي أن تتحول في تطبيقك إلى فئة مُخمَّنة.

الحقلطريقة الاستخدام
data.gender / data.result_statusاستخدم male أو female فقط مع identified. في النتيجة غير المعروفة، احتفظ بقيمة JSON null الأصلية.
data.name / data.matchتحقّق من الاسم المُعاد ومن المرشح المختار. لا تثبت المطابقة على جزء من السلسلة أن المُدخل يخص شخصًا بهذا الاسم.
data.confidence / data.confidence_kindدرجة الثقة على مقياس من 0 إلى 1 أو null. تستند observed_frequency إلى تكرارات مخزَّنة؛ أما model_reported فقيمة يقدّمها الذكاء الاصطناعي. قيّم العتبات لكل نوع على حدة.
data.source / data.sample_countميّز بين dataset وai وnone. لا تملك نتائج الذكاء الاصطناعي حجم عينة مخزَّنًا. وحجم العينة ليس قيمة دقة مقيسة.
meta.access.modeفي تكامل مرتبط بحساب، تحقّق من أن القيمة api_key. أما المفاتيح المفقودة أو غير المعروفة فقد تستخدم التجربة المشتركة حسب عنوان IP.
meta.usageاقرأ charged_credits وbilling_status. تُخصم أرصدة النتيجة غير المعروفة الناجحة. ولا يثبت فقدان الاستجابة أن الطلب كان مجانيًا.

متى تستخدم الذكاء الاصطناعي

forceToGenderize اختياري للأسماء وعناوين البريد الإلكتروني وأسماء المستخدمين. عند تفعيله، احذف ai_mode أو استخدم fallback؛ فلا يمكن الجمع بينه وبين off أو always، ويعيد ذلك 422. يكفي رصيد ابتدائي موجب لبدء الطلب، حتى لو جعل الخصم النهائي الرصيد سالبًا.

قد يعيد وضع الأسماء المستعارة جنسًا مع name: null، وقد يعطي أيضًا نتيجة غير معروفة. لا يضمن الرجوع العادي إلى الذكاء الاصطناعي ولا تفسير الأسماء المستعارة إجابة صحيحة أو قيمة غير null.

خيار الطلبالسلوكالأرصدة لكل بحث ناجح
options.ai_mode: offيستخدم مجموعة البيانات فقط.1، حتى للنتيجة غير المعروفة
options.ai_mode: fallbackيبحث في مجموعة البيانات أولًا، ثم يستخدم الذكاء الاصطناعي العادي إذا لم يُعَد جنس. وهو الإعداد الافتراضي للطلبات الفردية.1 إجمالًا، بما في ذلك الرجوع إلى الذكاء الاصطناعي
options.ai_mode: alwaysيستخدم الذكاء الاصطناعي مباشرة.2
forceToGenderize: trueيبحث في مجموعة البيانات أولًا، ثم يترك للذكاء الاصطناعي تفسير اسم مستعار شخصي أو كنية، حتى دون اسم أول حقيقي.1 للنتيجة الموجودة في مجموعة البيانات؛ و2 إجمالًا إذا استُخدم الذكاء الاصطناعي

عالج قائمة أسماء دون أن تفقد سياقها

استخدم POST /api/v2/gender/batch لما يصل إلى 50 عنصرًا مع مفتاح API لحساب مسجّل، أو 10 عناصر في التجربة حسب عنوان IP. خصّص معرّفًا فريدًا لكل عنصر، واحتفظ بالقيمة الأصلية لكل صف. يمكن أن يكون لكل عنصر سياق دولة وخيار ذكاء اصطناعي خاصان به؛ واحذف country إذا لم تكن الدولة معروفة.

تستخدم عناصر الطلب المجمّع وضع مجموعة البيانات فقط افتراضيًا، بخلاف الطلب الفردي الذي يستخدم الرجوع إلى الذكاء الاصطناعي افتراضيًا. اضبط options.ai_mode: fallback على كل عنصر يحتاج إلى الذكاء الاصطناعي. تحقّق من كل نتيجة حتى بعد HTTP 200، واحتفظ بالنتائج غير المعروفة، وراجع أخطاء العناصر والخصم قبل أي إرسال جديد. يستهلك كل عنصر عادي ناجح رصيدًا واحدًا؛ ولا يساوي طلب HTTP مجمّع واحد رصيد تقدير واحدًا.

اعرف ما الذي ترسله

لا يرسل العرض المباشر القيمة المُدخلة إلى GenderAPI.io إلا عندما ترسلها بنفسك. إذا استُخدم الذكاء الاصطناعي، تُنقل type وvalue وسياق الدولة المُرسل إلى الخدمة المهيأة للتقديرات. للحصول على تقدير يعتمد على مجموعة البيانات فقط، اضبط options.ai_mode: off في تكاملك دون forceToGenderize.

تصف سياسة الخصوصية واتفاقية معالجة البيانات وقائمة المعالجين الفرعيين شروط المعالجة المنشورة. النتيجة ارتباط مُستنتج، وما يصرّح به الشخص هو المقدَّم. لا تستخدمها أساسًا لقرارات ذات عواقب مهمة على أي شخص.

الأسئلة الشائعة

لماذا قد يكون الاسم الصيني المكون من حرفين غير معروف في وضع مجموعة البيانات فقط؟

يتخطى عامل تصفية المرشحين الحالي في مجموعة البيانات الأجزاءَ التي لا يزيد طول سلسلتها في JavaScript على حرفين. بالنسبة إلى الحروف الصينية المعروضة هنا، يكون الاسم المكون من حرفين مُدخلًا صالحًا، لكنه لا يصبح مرشحًا في مجموعة البيانات. وقد يأخذ الرجوع إلى الذكاء الاصطناعي المُدخل الأصلي في الحسبان.

هل يفصل V2 تلقائيًا اسم العائلة الصيني عن الاسم الشخصي؟

لا يقسّم مسار مجموعة البيانات الاسم الصيني الكامل المتصل. قد يستنتج الذكاء الاصطناعي اسمًا من القيمة الكاملة، لكن لا يضمن أيٌّ من المسارين الاسم الشخصي المقصود. تحقّق من المصدر والمطابقة المُعادين.

هل نُشر تقييم مستقل للدقة لهذا النوع من الأسماء؟

لا يُنشر مثل هذا القياس في هذه الصفحة. قبول المُدخل والأعداد المخزَّنة وقيمة درجة الثقة ليست معيارًا مستقلًا للدقة. راجع صفحة المنهجية لمعرفة الأدلة المتاحة والقياسات التي لم تُنشر بعد.

هل تستهلك النتيجة غير المعروفة أرصدة؟

نعم، تُحتسب النتيجة غير المعروفة الناجحة. تكلفة الوضع العادي (مجموعة البيانات فقط أو الرجوع إلى الذكاء الاصطناعي) رصيد واحد إجمالًا. ومع تفعيل forceToGenderize تكلف النتيجة الموجودة في مجموعة البيانات رصيدًا واحدًا، ويكلف استخدام الذكاء الاصطناعي رصيدين إجمالًا، حتى إذا كانت نتيجته غير معروفة. وللأخطاء قواعد خصم منفصلة؛ راجع meta.usage.

متابعة الاختبار

استخدم مفتاح GenderAPI

ألصق مفتاح API من حساب GenderAPI لمتابعة الاختبار بعد نفاد الأرصدة المشتركة للتجربة حسب عنوان IP خلال 24 ساعة. حفظ المفتاح لا يرسل أي طلب؛ أعد إرسال الطلب عندما تكون جاهزًا.

يُحفظ في علامة التبويب الحالية فقط ويُحذف عند إغلاقها.