Gemini الأصلي
إنشاء المحتوى
إنشاء المحتوى باستخدام تنسيق Google Gemini API
استخدم تنسيقات الطلب والاستجابة الخاصة بـ Gemini مع نموذج يتم إرجاعه بواسطة Gemini Models API. يتم قبول تنسيق ProtoJSON بنمط lowerCamelCase وأسماء الحقول المقابلة له بنمط snake_case الخاص بـ proto. تعتمد الحقول والقيم الاختيارية المدعومة على النموذج المختار.
معاملات المسار (Path Parameters)
اسم النموذج (على سبيل المثال، gemini-2.5-pro، gemini-3.5-flash).
معاملات الاستعلام (Query Parameters)
مفتاح API (بديل لمصادقة الترويسة).
المصادقة (Authentication)
تدعم نقاط نهاية Gemini طرق مصادقة متعددة:
- معامل الاستعلام
?key=YOUR_API_KEY - ترويسة
x-goog-api-key: YOUR_API_KEY - ترويسة
Authorization: Bearer YOUR_API_KEY
نص الطلب (Request Body)
محتويات المحادثة مع parts و role اختياري. تستخدم أجزاء الوسائط inlineData / inline_data أو fileData / file_data. لا يمكن استخدام الملفات ومعرفات التخزين المؤقت (Cache IDs) التي تم إنشاؤها بواسطة TokenLab إلا في مساحة العمل (Workspace) الخاصة بها.
تعليمات النظام للنموذج.
إعدادات التوليد مثل temperature و topP و topK و maxOutputTokens و stopSequences و candidateCount و responseModalities و responseMimeType و responseSchema و thinkingConfig. يتم قبول أسماء snake_case المقابلة أيضاً. تعتمد القيم والمجموعات المدعومة على النموذج.
إعدادات مرشح الأمان.
يمكن لكل حقل بنمط 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)
مرشحات المحتوى التي تم إنشاؤها.
معلومات استخدام الرموز (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"
}
}
]
}
]
}الاستجابة
{
"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
}
}الواجهات ذات الصلة (Related interfaces)
اقرأ تفاصيل النموذج الحالي للنموذج المختار قبل استخدام واجهة أخرى. تعتمد التوفر وحقول الطلب على النموذج.
| HTTP | API |
|---|---|
| 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 مصادقة مفتاح API. قم بإنشاء أو إدارة مفاتيح API في Dashboard > API > API Keys.
الموضع: header
معاملات المسار
اسم النموذج (مثال: gemini-2.5-pro)
معاملات الاستعلام
مفتاح API (بديل لمصادقة الرأس)
الترويسات
سياسة التسليم لكل طلب. تتجاوز إعدادات 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