Gemini الأصلي

إنشاء المحتوى

إنشاء المحتوى باستخدام تنسيق Google Gemini API

POST
/v1beta/models/{model}:generateContent

استخدم تنسيقات الطلب والاستجابة الخاصة بـ Gemini مع نموذج يتم إرجاعه بواسطة Gemini Models API. يتم قبول تنسيق ProtoJSON بنمط lowerCamelCase وأسماء الحقول المقابلة له بنمط snake_case الخاص بـ proto. تعتمد الحقول والقيم الاختيارية المدعومة على النموذج المختار.

معاملات المسار (Path Parameters)

modelstringpathمطلوب

اسم النموذج (على سبيل المثال، gemini-2.5-pro، gemini-3.5-flash).

معاملات الاستعلام (Query Parameters)

keystringquery

مفتاح API (بديل لمصادقة الترويسة).

المصادقة (Authentication)

تدعم نقاط نهاية Gemini طرق مصادقة متعددة:

  • معامل الاستعلام ?key=YOUR_API_KEY
  • ترويسة x-goog-api-key: YOUR_API_KEY
  • ترويسة Authorization: Bearer YOUR_API_KEY

نص الطلب (Request Body)

contentsarrayمطلوب

محتويات المحادثة مع parts و role اختياري. تستخدم أجزاء الوسائط inlineData / inline_data أو fileData / file_data. لا يمكن استخدام الملفات ومعرفات التخزين المؤقت (Cache IDs) التي تم إنشاؤها بواسطة TokenLab إلا في مساحة العمل (Workspace) الخاصة بها.

systemInstructionobject

تعليمات النظام للنموذج.

generationConfigobject

إعدادات التوليد مثل temperature و topP و topK و maxOutputTokens و stopSequences و candidateCount و responseModalities و responseMimeType و responseSchema و thinkingConfig. يتم قبول أسماء snake_case المقابلة أيضاً. تعتمد القيم والمجموعات المدعومة على النموذج.

safetySettingsarray

إعدادات مرشح الأمان.

يمكن لكل حقل بنمط lowerCamelCase موضح أعلاه استخدام تهجئة snake_case الرسمية الخاصة بـ proto، على سبيل المثال system_instruction و generation_config و safety_settings و tool_config و cached_content و file_data.file_uri و inline_data.mime_type.

الطرق المدعومة (Supported Methods)

تتضمن واجهة برمجة التطبيقات المتوافقة مع Gemini سرد/جلب النماذج، و generateContent و streamGenerateContent و countTokens و embedContent و batchEmbedContents. ميزات Gemini Interactions و Live غير متاحة.

الاستجابة (Response)

candidatesarray

مرشحات المحتوى التي تم إنشاؤها.

usageMetadataobject

معلومات استخدام الرموز (Tokens).

الطلب

curl -X POST "https://api.tokenlab.sh/v1beta/models/gemini-2.5-pro:generateContent?key=sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "parts": [{"text": "Hello, Gemini!"}]
      }
    ],
    "generationConfig": {
      "temperature": 0.7,
      "maxOutputTokens": 1024
    }
  }'

مثال على إدخال الرؤية (Vision Input Example)

بالنسبة لطلبات Gemini متعددة الوسائط، ضع الوسائط داخل contents[].parts[] باستخدام إما بايتات مضمنة أو مراجع ملفات تعتمد على URL.

فئات الوسائط المدعومة في عقد Gemini العام:

  • صورة
  • صوت
  • فيديو

بالنسبة للوسائط المضمنة، استخدم إما inlineData أو inline_data وقم بتمرير بايتات الملف المشفرة بـ Base64.

بالنسبة للوسائط التي تعتمد على URL، استخدم إما fileData أو file_data وقم بتمرير رابط https عام.

مثال على إدخال الفيديو (Video Input Example)

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Please describe this video." },
        {
          "fileData": {
            "mimeType": "video/mp4",
            "fileUri": "https://example.com/demo.mp4"
          }
        }
      ]
    }
  ]
}

مثال على إدخال الصوت (Audio Input Example)

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Please describe this audio." },
        {
          "fileData": {
            "mimeType": "audio/mpeg",
            "fileUri": "https://example.com/demo.mp3"
          }
        }
      ]
    }
  ]
}

مثال على إدخال الصورة (Image Input Example)

استخدم بايتات الصورة المضمنة:

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Please describe this image." },
        {
          "inlineData": {
            "mimeType": "image/jpeg",
            "data": "/9j/4AAQSkZJRgABAQ..."
          }
        }
      ]
    }
  ]
}

استخدم رابط صورة:

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Please describe this image." },
        {
          "fileData": {
            "mimeType": "image/jpeg",
            "fileUri": "https://example.com/demo.jpg"
          }
        }
      ]
    }
  ]
}

مثال على إدخال الصوت (Audio Input Example)

استخدم رابط صوت:

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Transcribe and summarize this audio." },
        {
          "file_data": {
            "mime_type": "audio/mpeg",
            "file_uri": "https://example.com/sample.mp3"
          }
        }
      ]
    }
  ]
}

مثال على إدخال الفيديو (Video Input Example)

استخدم رابط فيديو:

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Describe this video briefly." },
        {
          "fileData": {
            "mimeType": "video/mp4",
            "fileUri": "https://example.com/sample.mp4"
          }
        }
      ]
    }
  ]
}

الاستجابة

Response
{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {"text": "Hello! How can I assist you today?"}
        ]
      },
      "finishReason": "STOP",
      "safetyRatings": [
        {"category": "HARM_CATEGORY_HARASSMENT", "probability": "NEGLIGIBLE"}
      ]
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 5,
    "candidatesTokenCount": 10,
    "totalTokenCount": 15
  }
}

اقرأ تفاصيل النموذج الحالي للنموذج المختار قبل استخدام واجهة أخرى. تعتمد التوفر وحقول الطلب على النموذج.

HTTPAPI
POST/v1beta/models/{model}:countTokens
POST/v1beta/models/{model}:embedContent
POST/v1beta/models/{model}:batchEmbedContents

يتطلب حساب الرموز (Token counting) مفتاح API ولا يتم محاسبته. عدد المدخلات الذي يتم إرجاعه هو تقدير للتخطيط؛ استخدم سجل الاستخدام والفوترة النهائي للاستجابة للرسوم.

countTokens: contents / generateContentRequest

embedContent: content, taskType, title, outputDimensionality

batchEmbedContents: requests

التفويض

BearerAuth
AuthorizationBearer <token>

مصادقة مفتاح API. قم بإنشاء أو إدارة مفاتيح API في Dashboard > API > API Keys.

الموضع: header

معاملات المسار

model*string

اسم النموذج (مثال: gemini-2.5-pro)

معاملات الاستعلام

key?string

مفتاح API (بديل لمصادقة الرأس)

الترويسات

X-TokenLab-Delivery-Policy?string

سياسة التسليم لكل طلب. تتجاوز إعدادات API key و Workspace الافتراضية. يحاول النظام تلقائياً استخدام TokenLab Verified أولاً، وقد ينتقل مرة واحدة إلى Official فقط قبل المخرجات، أو قبول الطلب، أو إنشاء مورد دائم.

القيم المتاحة

  • "auto"
  • "verified"
  • "official"

جسم الطلب

application/json

طلب Gemini GenerateContent الأصلي. يتم قبول والحفاظ على كل من أسماء ProtoJSON بصيغة lowerCamelCase وأسماء proto الأصلية بصيغة snake_case، بما في ذلك الطلبات المختلطة. إذا كان كلا تهجئتي الحقل موجودتين، فإن TokenLab لا تقوم بدمجهما أو اختيار أولوية محلية. يتم إعادة توجيه الحقول غير المعروفة على أساس بذل أفضل جهد.

الاستجابة

application/json

application/json

application/json

application/json

application/json

application/json