تتيح Gemini API تحميل ملفات الوسائط بشكل منفصل عن إدخال الطلب، ما يسمح بإعادة استخدام الوسائط في طلبات متعددة وطلبات مختلفة. لمزيد من التفاصيل، يمكنك الاطّلاع على دليل تقديم الطلبات باستخدام الوسائط.
الطريقة: media.upload
تحميل البيانات إلى ragStore، ومعالجتها مسبقًا وتقسيمها إلى أجزاء قبل تخزينها في مستند RagStore
نقطة نهاية
- عنوان URI للتحميل، لطلبات تحميل الوسائط:
https: / /generativelanguage.googleapis.com /upload /v1beta /{ragStoreName=ragStores /*}:uploadToRagStore
- معرّف الموارد المنتظم للبيانات الوصفية، للطلبات التي تتضمّن البيانات الوصفية فقط:
https: / /generativelanguage.googleapis.com /v1beta /{ragStoreName=ragStores /*}:uploadToRagStore
مَعلمات المسار
ragStoreName
string
الحقل مطلوب. غير قابل للتغيير اسم RagStore
الذي سيتم تحميل الملف إليه. مثال: ragStores/my-rag-store-123
ويكون بالتنسيق التالي: ragStores/{ragstore}
.
نص الطلب
يتضمن نص الطلب بيانات بالبنية التالية:
displayName
string
اختيارية: الاسم المعروض للمستند الذي تم إنشاؤه
customMetadata[]
object (CustomMetadata
)
بيانات التعريف المخصّصة التي سيتم ربطها بالبيانات
chunkingConfig
object (ChunkingConfig
)
اختيارية: إعدادات لتحديد كيفية تقسيم البيانات إلى أجزاء. في حال عدم توفيرها، ستستخدم الخدمة المَعلمات التلقائية.
mimeType
string
اختيارية: نوع MIME للبيانات في حال عدم توفيرها، سيتم استنتاجها من المحتوى الذي تم تحميله.
نص الاستجابة
هذه نسخة من google.longrunning.Operation. علينا نسخها لأنّه للتفاعل مع Scotty، يجب إضافة حقل خاص بـ Scotty لا يمكن إضافته في Operation proto ذي المستوى الأعلى.
إذا كانت الاستجابة ناجحة، سيحتوي نص الاستجابة على بيانات بالبنية التالية:
name
string
هو الاسم الذي يُعيّنه الخادم، ويكون فريدًا فقط ضمن الخدمة نفسها التي أرسلت الاسم في الاستجابة. إذا كنت تستخدم أسلوب ربط HTTP التلقائي، يجب أن يكون حقل name
اسم مورد ينتهي بالشكل التالي: operations/{unique_id}
.
metadata
object
يشير الحقل إلى بيانات وصفية خاصة بالخدمة ومرتبطة بالعملية. يتضمّن عادةً معلومات حول مستوى تقدّم العملية وبيانات وصفية شائعة مثل وقت الإنشاء. يُرجى الِعلم أنّ بعض الخدمات قد لا توفّر هذه البيانات. إذا أدّى إجراء ما إلى بدء عملية طويلة، يجب أن يوثّق نوع البيانات الوصفية، إن وُجدِت.
هو كائن يحتوي على حقول من أي نوع، بالإضافة إلى حقل "@type"
الذي يتضمّن معرف موارد منتظم (URI) يحدّد نوع الكائن، مثل { "id": 1234, "@type": "types.example.com/standard/id" }
.
done
boolean
إذا كانت القيمة false
، هذا يعني أنّ العملية ما زالت قيد التنفيذ. أما إذا كانت true
، فهذا يعني أنّ العملية اكتملت، ويمكن عندها الوصول إلى error
أو response
.
result
Union type
error
أو response
صالحة. إذا كان done
== false
، هذا يعني أنّه لم يتم ضبط أي من error
أو response
. إذا كان done
== true
، هذا يعني أنّه يمكن ضبط إما error
أو response
فقط. بعض الخدمات قد لا توفّر النتيجة. يمكن أن تكون result
إحدى القيم التالية فقط:error
object (Status
)
يمثّل نتيجة الخطأ للعملية في حال فشلها أو إلغائها.
response
object
يشير هذا الحقل إلى الاستجابة المعتادة إذا كانت العملية ناجحة. إذا كان الإجراء الأصلي لا يعرض أي بيانات عند نجاحه، مثل Delete
، تكون الاستجابة google.protobuf.Empty
. وإذا كان الإجراء الأصلي أحد العمليات الشائعة مثل Get
أو Create
أو Update
، يجب أن تكون الاستجابة هي المورد نفسه. أما بالنسبة إلى الإجراءات الأخرى، فيجب أن يكون نوع الاستجابة بصيغة XxxResponse
، حيث يمثّل Xxx
اسم الإجراء الأصلي. على سبيل المثال، إذا كان اسم الإجراء الأصلي TakeSnapshot()
، سيكون نوع الاستجابة المستنتَج TakeSnapshotResponse
.
هو كائن يحتوي على حقول من أي نوع، بالإضافة إلى حقل "@type"
الذي يتضمّن معرف موارد منتظم (URI) يحدّد نوع الكائن، مثل { "id": 1234, "@type": "types.example.com/standard/id" }
.
تمثيل JSON |
---|
{
"name": string,
"metadata": {
"@type": string,
field1: ...,
...
},
"done": boolean,
// result
"error": {
object ( |
ChunkingConfig
المَعلمات التي تحدّد للخدمة كيفية تقسيم الملف إلى أجزاء، مستوحاة من google3/cloud/ai/platform/extension/lib/retrieval/config/chunker_config.proto
config
Union type
config
إحدى القيم التالية فقط:whiteSpaceConfig
object (WhiteSpaceConfig
)
إعدادات تقسيم المساحات البيضاء
تمثيل JSON |
---|
{
// config
"whiteSpaceConfig": {
object ( |
WhiteSpaceConfig
إعدادات خوارزمية تقسيم إلى أجزاء حسب المساحة البيضاء [مفصولة بمساحة بيضاء]
maxTokensPerChunk
integer
الحد الأقصى لعدد الرموز المميزة لكل جزء يتم تعريف الرموز المميزة على أنّها كلمات لهذه الخوارزمية. ملاحظة: نحن نعرّف الرموز المميزة بأنّها كلمات مفصولة بمسافة بيضاء، وليس كناتج لأداة تقسيم الرموز المميزة. تبلغ حاليًا قدرة الاستيعاب لأحدث نموذج تضمين من Gemini اعتبارًا من 17 أبريل 2025، 8,192 رمزًا مميزًا. نفترض أنّ متوسط عدد الأحرف في الكلمة هو 5 أحرف. لذلك، وضعنا الحدّ الأعلى عند 2**9، أي 512 كلمة أو 2560 رمزًا مميزًا، بافتراض أسوأ حالة وهي حرف واحد لكل رمز مميز. هذا تقدير متحفّظ يهدف إلى منع تجاوز قدرة الاستيعاب.
maxOverlapTokens
integer
الحد الأقصى لعدد الرموز المميزة المتداخلة بين جزأين متجاورين
تمثيل JSON |
---|
{ "maxTokensPerChunk": integer, "maxOverlapTokens": integer } |
الطريقة: files.get
تعرض هذه الطريقة البيانات الوصفية الخاصة بـ File
المحدّد.
نقطة نهاية
gethttps: / /generativelanguage.googleapis.com /v1beta /{name=files /*}
مَعلمات المسار
name
string
الحقل مطلوب. اسم File
المطلوب الحصول عليه. مثال: files/abc-123
ويكون بالتنسيق التالي: files/{file}
.
نص الطلب
يجب أن يكون نص الطلب فارغًا.
مثال على الطلب
Python
Node.js
Go
محارة
نص الاستجابة
إذا كانت الاستجابة ناجحة، يحتوي نص الاستجابة على مثال File
.
الطريقة: files.list
تعرض هذه الطريقة البيانات الوصفية الخاصة بـ File
التي يملكها المشروع الذي يرسل الطلب.
نقطة نهاية
gethttps: / /generativelanguage.googleapis.com /v1beta /files
مَعلمات طلب البحث
pageSize
integer
اختيارية: الحد الأقصى لعدد File
التي سيتم عرضها في كل صفحة إذا لم يتم تحديد عدد، سيكون العدد التلقائي 10. الحد الأقصى pageSize
هو 100.
pageToken
string
اختيارية: رمز مميّز للصفحة من طلب files.list
سابق.
نص الطلب
يجب أن يكون نص الطلب فارغًا.
مثال على الطلب
Python
Node.js
Go
محارة
نص الاستجابة
الاستجابة لـ files.list
إذا كانت الاستجابة ناجحة، سيحتوي نص الاستجابة على بيانات بالبنية التالية:
files[]
object (File
)
قائمة File
nextPageToken
string
رمز مميّز يمكن إرساله كـ pageToken
في طلب files.list
لاحق.
تمثيل JSON |
---|
{
"files": [
{
object ( |
الطريقة: files.delete
يحذف File
.
نقطة نهاية
deletehttps: / /generativelanguage.googleapis.com /v1beta /{name=files /*}
مَعلمات المسار
name
string
الحقل مطلوب. تمثّل هذه السمة اسم File
المطلوب حذفه. مثال: files/abc-123
ويكون بالتنسيق التالي: files/{file}
.
نص الطلب
يجب أن يكون نص الطلب فارغًا.
مثال على الطلب
Python
Node.js
Go
محارة
نص الاستجابة
إذا كانت الاستجابة ناجحة، سيكون نص الاستجابة عبارة عن كائن JSON فارغ.
مورد REST: ملفات
المورد: ملف
ملف تم تحميله إلى واجهة برمجة التطبيقات المعرّف التالي: 15
name
string
غير قابل للتغيير المعرّف تمثّل هذه السمة File
اسم المورد. يمكن أن يحتوي المعرّف (الاسم باستثناء البادئة "files/") على ما يصل إلى 40 حرفًا أبجديًا رقميًا صغيرًا أو شرطة (-)، ولا يمكن أن يبدأ المعرّف أو ينتهي بشرطة. إذا كان الاسم فارغًا عند الإنشاء، سيتم إنشاء اسم فريد. مثال: files/123-456
displayName
string
اختيارية: تمثّل هذه السمة الاسم المعروض File
الذي يمكن للمستخدم قراءته. يجب ألا يزيد طول الاسم المعروض عن 512 حرفًا، بما في ذلك المسافات. مثال: "صورة الترحيب"
mimeType
string
النتائج فقط. نوع MIME للملف
sizeBytes
string (int64 format)
النتائج فقط. حجم الملف بالبايت
createTime
string (Timestamp
format)
النتائج فقط. الطابع الزمني لوقت إنشاء File
يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف Z. أمثلة: "2014-10-02T15:01:23Z"
أو "2014-10-02T15:01:23.045123456Z"
أو "2014-10-02T15:01:23+05:30"
.
updateTime
string (Timestamp
format)
النتائج فقط. الطابع الزمني لآخر تعديل على File
يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف Z. أمثلة: "2014-10-02T15:01:23Z"
أو "2014-10-02T15:01:23.045123456Z"
أو "2014-10-02T15:01:23+05:30"
.
expirationTime
string (Timestamp
format)
النتائج فقط. الطابع الزمني لوقت حذف File
يجب ضبط هذه السمة فقط إذا كان من المقرر أن تنتهي صلاحية File
.
يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف Z. أمثلة: "2014-10-02T15:01:23Z"
أو "2014-10-02T15:01:23.045123456Z"
أو "2014-10-02T15:01:23+05:30"
.
sha256Hash
string (bytes format)
النتائج فقط. تجزئة SHA-256 للبايتات التي تم تحميلها
سلسلة مرمّزة باستخدام Base64
uri
string
النتائج فقط. تمثّل هذه السمة معرّف الموارد المنتظم (URI) الخاص بالسمة File
.
downloadUri
string
النتائج فقط. تمثّل هذه السمة معرّف الموارد المنتظم (URI) الخاص بتنزيل File
.
state
enum (State
)
النتائج فقط. حالة معالجة الملف
source
enum (Source
)
مصدر الملف
error
object (Status
)
النتائج فقط. حالة الخطأ في حال تعذّرت معالجة الملف.
metadata
Union type
metadata
إحدى القيم التالية فقط:videoMetadata
object (VideoFileMetadata
)
النتائج فقط. تمثّل هذه السمة البيانات الوصفية لفيديو.
تمثيل JSON |
---|
{ "name": string, "displayName": string, "mimeType": string, "sizeBytes": string, "createTime": string, "updateTime": string, "expirationTime": string, "sha256Hash": string, "uri": string, "downloadUri": string, "state": enum ( |
VideoFileMetadata
البيانات الوصفية لفيديو File
videoDuration
string (Duration
format)
تمثّل هذه السمة مدة الفيديو.
مدة بالثواني مع ما يصل إلى تسعة أرقام كسور، وتنتهي بـ "s
". مثال: "3.5s"
تمثيل JSON |
---|
{ "videoDuration": string } |
ولاية
حالات دورة حياة الملف
عمليات التعداد | |
---|---|
STATE_UNSPECIFIED |
القيمة التلقائية يتم استخدام هذه القيمة في حال عدم تحديد الولاية. |
PROCESSING |
تتم معالجة الملف ولا يمكن استخدامه للاستدلال بعد. |
ACTIVE |
تتم معالجة الملف ويكون متاحًا للاستنتاج. |
FAILED |
تعذّرت معالجة الملف. |
المصدر
عمليات التعداد | |
---|---|
SOURCE_UNSPECIFIED |
يتم استخدامها في حال عدم تحديد المصدر. |
UPLOADED |
تشير إلى أنّ المستخدم حمّل الملف. |
GENERATED |
يشير إلى أنّ الملف من إنشاء Google. |
REGISTERED |
يشير إلى أنّ الملف مسجّل، أي أنّه ملف Google Cloud Storage. |
الحالة
يحدّد نوع Status
نموذجًا منطقيًا للتعامل مع الأخطاء، يناسب بيئات البرمجة المختلفة مثل REST API وRPC API. يتم استخدامه من خلال gRPC. تتكون رسالة Status
من ثلاثة أجزاء من البيانات، هي رمز الخطأ ورسالته وتفاصيله.
يمكنك التعرّف على المزيد حول نموذج الخطأ هذا وكيفية التعامل معه في دليل تصميم واجهة برمجة التطبيقات.
code
integer
هو رمز الحالة، ويجب أن يكون قيمة محدّدة مسبقًا من google.rpc.Code
.
message
string
يشير إلى رسالة خطأ موجّهة للمطوّرين، ويجب أن تكون الرسالة بالإنجليزية. أما رسائل الخطأ الموجّهة للمستخدمين، فيجب ترجمتها وإرسالها في حقل google.rpc.Status.details
أو ترجمتها من قِبل العميل.
details[]
object
يشير إلى قائمة بالرسائل التي تتضمّن تفاصيل الخطأ. تتوفّر مجموعة شائعة من أنواع الرسائل التي يمكن لواجهات برمجة التطبيقات استخدامها.
هو كائن يحتوي على حقول من أي نوع، بالإضافة إلى حقل "@type"
الذي يتضمّن معرف موارد منتظم (URI) يحدّد نوع الكائن، مثل { "id": 1234, "@type": "types.example.com/standard/id" }
.
تمثيل JSON |
---|
{ "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } |