يمكن الوصول إلى نماذج Gemini باستخدام مكتبات OpenAI (Python وTypeScript / JavaScript) مع REST API، وذلك من خلال تعديل ثلاثة أسطر من الرمز البرمجي واستخدام مفتاح Gemini API. يمكنك الاطّلاع على مزيد من المعلومات حول هذه الميزة في دليل التوافق.
الطريقة: chatCompletions
تُنشئ مجموعة من الردود من النموذج استنادًا إلى إدخال سجلّ المحادثات.
نقطة نهاية
posthttps: / /generativelanguage.googleapis.com /v1beta:chatCompletions
يستخدِم عنوان URL بنية تحويل ترميز gRPC.
نص الطلب
يحتوي نص الطلب على بيانات بالبنية التالية:
model
string
مطلوب. اسم Model
المراد استخدامه لإنشاء الإنجاز. سيتمّ وضع "models/" قبل اسم النموذج إذا لم يظهر فيه واصلة.
messages[]
object (Struct
format)
مطلوب. سجلّ المحادثات المراد استخدامه لإنشاء النتيجة يتيح طلبات بحث فردية ومتعددة الخطوات. ملاحظة: هذا حقل متعدد الأشكال، ويتم تسلسله إلى InternalChatMessage.
stream
boolean
اختياريّ. لتحديد ما إذا كنت تريد بث الردّ أو عرض ردّ واحد.
إذا كانت القيمة true، سيكون حقل "العنصر" في الاستجابة هو "chat.completion.chunk". وإلّا، سيكون "chat.completion".
streamOptions
object (StreamOptions
)
اختياريّ. خيارات طلبات البث
tools[]
object (ChatTool
)
اختياريّ. مجموعة الأدوات التي يمكن للنموذج إنشاء طلبات لها تُعلن كل أداة عن توقيعها.
toolChoice
value (Value
format)
اختياريّ. يتحكّم هذا المَعلمة في ما إذا كان يجب أن يستخدم النموذج أداة أم لا، والأداة التي يجب استخدامها. يمكن أن يكون أيًّا مما يلي: - السلسلة "none" لإيقاف الأدوات. - السلسلة "auto" للسماح للنموذج باتخاذ القرار - السلسلة "مطلوب"، لإجبار النموذج على استخدام أداة. - كائن وصف اسم الدالة، الذي يحدّد الأداة التي سيتم استخدامها. يتّبع الخيار الأخير المخطّط التالي: { "type": "function", "function": {"name" : "the_function_name"} }
n
integer
اختياريّ. عدد عمليات الإكمال المُحتمَلة المطلوب إنشاؤها يجب أن يكون عددًا صحيحًا موجبًا. يتم ضبط القيمة تلقائيًا على 1 في حال عدم ضبطها.
stop
value (Value
format)
اختياريّ. مجموعة تسلسلات الأحرف التي ستؤدي إلى إيقاف إنشاء الإخراج ملاحظة: هذا حقل متعدد الأشكال. ومن المفترض أن يحتوي على سلسلة أو سلاسل متكرّرة.
maxCompletionTokens
integer
اختياريّ. الحد الأقصى لعدد الرموز المميّزة المطلوب تضمينها في أحد الردود المُحتمَلة يجب أن يكون عددًا صحيحًا موجبًا.
maxTokens
integer
اختياريّ. الحد الأقصى لعدد الرموز المميّزة المطلوب تضمينها في أحد الردود المُحتمَلة يجب أن يكون عددًا صحيحًا موجبًا. تم إيقاف هذا الحقل نهائيًا من خلال حزمة SDK.
temperature
number
اختياريّ. تتحكّم هذه السمة في العشوائية في الإخراج.
topP
number
اختياريّ. الحد الأقصى الاحتمالية التراكمية للرموز المميّزة التي يجب أخذها في الاعتبار عند أخذ العينات
responseFormat
object (ResponseFormat
)
اختياريّ. تُحدِّد تنسيق الاستجابة. في حال عدم ضبطه، سيتم تنسيق الردّ كنص.
نص الاستجابة
إذا كانت الاستجابة ناجحة، تكون استجابة HTTP عامة يتم تحديد تنسيقها من خلال الطريقة.
الطريقة: embeddings
تُنشئ هذه الدالة إدخالات من النموذج استنادًا إلى مدخلات معيّنة.
نقطة نهاية
posthttps: / /generativelanguage.googleapis.com /v1beta /embeddings
يستخدِم عنوان URL بنية تحويل ترميز gRPC.
نص الطلب
يحتوي نص الطلب على بيانات بالبنية التالية:
input
value (Value
format)
مطلوب. الإدخال الذي يتم إنشاء النماذج المضمّنة له. يمكن أن تكون سلسلة أو قائمة سلاسل. يتيح حِزم تطوير البرامج (SDK) إدخال قائمة بأرقام وقائمة بقوائم الأرقام، ولكن لم يتم تنفيذ ذلك بعد.
model
string
مطلوب. النموذج الذي يتم إنشاء البيانات المضمّنة له
encodingFormat
string
اختياريّ. تنسيق التشفير يجب أن تكون إما "float" أو "base64".
dimensions
integer
اختياريّ. الحجم البعدي للعناصر المضمّنة التي تم إنشاؤها
نص الاستجابة
إذا كانت الاستجابة ناجحة، يحتوي نص الاستجابة على مثال GenerateEmbeddingsResponse
.
الطريقة: listModels
تعرض قائمة الطُرز المتاحة حاليًا.
نقطة نهاية
الحصول علىhttps: / /generativelanguage.googleapis.com /v1beta /listModels
يستخدِم عنوان URL بنية تحويل ترميز gRPC.
نص الطلب
يجب أن يكون نص الطلب فارغًا.
نص الاستجابة
إذا كانت الاستجابة ناجحة، يحتوي نص الاستجابة على مثال SdkListModelsResponse
.
الطريقة: chat.completions
تُنشئ مجموعة من الردود من النموذج استنادًا إلى إدخال سجلّ المحادثات.
نقطة نهاية
posthttps: / /generativelanguage.googleapis.com /v1beta /chat /completions
يستخدِم عنوان URL بنية تحويل ترميز gRPC.
نص الطلب
يحتوي نص الطلب على بيانات بالبنية التالية:
model
string
مطلوب. اسم Model
المراد استخدامه لإنشاء الإنجاز. سيتمّ وضع "models/" قبل اسم النموذج إذا لم يظهر فيه واصلة.
messages[]
object (Struct
format)
مطلوب. سجلّ المحادثات المراد استخدامه لإنشاء النتيجة يتيح طلبات بحث فردية ومتعددة الخطوات. ملاحظة: هذا حقل متعدد الأشكال، ويتم تسلسله إلى InternalChatMessage.
stream
boolean
اختياريّ. لتحديد ما إذا كنت تريد بث الردّ أو عرض ردّ واحد.
إذا كانت القيمة true، سيكون حقل "العنصر" في الاستجابة هو "chat.completion.chunk". وإلّا، سيكون "chat.completion".
streamOptions
object (StreamOptions
)
اختياريّ. خيارات طلبات البث
tools[]
object (ChatTool
)
اختياريّ. مجموعة الأدوات التي يمكن للنموذج إنشاء طلبات لها تُعلن كل أداة عن توقيعها.
toolChoice
value (Value
format)
اختياريّ. يتحكّم هذا المَعلمة في ما إذا كان يجب أن يستخدم النموذج أداة أم لا، والأداة التي يجب استخدامها. يمكن أن يكون أيًّا مما يلي: - السلسلة "none" لإيقاف الأدوات. - السلسلة "auto" للسماح للنموذج باتخاذ القرار - السلسلة "مطلوب"، لإجبار النموذج على استخدام أداة. - كائن وصف اسم الدالة، الذي يحدّد الأداة التي سيتم استخدامها. يتّبع الخيار الأخير المخطّط التالي: { "type": "function", "function": {"name" : "the_function_name"} }
n
integer
اختياريّ. عدد عمليات الإكمال المُحتمَلة المطلوب إنشاؤها يجب أن يكون عددًا صحيحًا موجبًا. يتم ضبط القيمة تلقائيًا على 1 في حال عدم ضبطها.
stop
value (Value
format)
اختياريّ. مجموعة تسلسلات الأحرف التي ستؤدي إلى إيقاف إنشاء الإخراج ملاحظة: هذا حقل متعدد الأشكال. ومن المفترض أن يحتوي على سلسلة أو سلاسل متكرّرة.
maxCompletionTokens
integer
اختياريّ. الحد الأقصى لعدد الرموز المميّزة المطلوب تضمينها في أحد الردود المُحتمَلة يجب أن يكون عددًا صحيحًا موجبًا.
maxTokens
integer
اختياريّ. الحد الأقصى لعدد الرموز المميّزة المطلوب تضمينها في أحد الردود المُحتمَلة يجب أن يكون عددًا صحيحًا موجبًا. تم إيقاف هذا الحقل نهائيًا من خلال حزمة SDK.
temperature
number
اختياريّ. تتحكّم هذه السمة في العشوائية في الإخراج.
topP
number
اختياريّ. الحد الأقصى الاحتمالية التراكمية للرموز المميّزة التي يجب أخذها في الاعتبار عند أخذ العينات
responseFormat
object (ResponseFormat
)
اختياريّ. تُحدِّد تنسيق الاستجابة. في حال عدم ضبطه، سيتم تنسيق الردّ كنص.
نص الاستجابة
إذا كانت الاستجابة ناجحة، تكون استجابة HTTP عامة يتم تحديد تنسيقها من خلال الطريقة.
الطريقة: embeddings.generate
تُنشئ هذه الدالة إدخالات من النموذج استنادًا إلى مدخلات معيّنة.
نقطة نهاية
posthttps: / /generativelanguage.googleapis.com /v1beta /embeddings:generate
يستخدِم عنوان URL بنية تحويل ترميز gRPC.
نص الطلب
يحتوي نص الطلب على بيانات بالبنية التالية:
input
value (Value
format)
مطلوب. الإدخال الذي يتم إنشاء النماذج المضمّنة له. يمكن أن تكون سلسلة أو قائمة سلاسل. يتيح حِزم تطوير البرامج (SDK) إدخال قائمة بأرقام وقائمة بقوائم الأرقام، ولكن لم يتم تنفيذ ذلك بعد.
model
string
مطلوب. النموذج الذي يتم إنشاء البيانات المضمّنة له
encodingFormat
string
اختياريّ. تنسيق التشفير يجب أن تكون إما "float" أو "base64".
dimensions
integer
اختياريّ. الحجم البعدي للعناصر المضمّنة التي تم إنشاؤها
نص الاستجابة
إذا كانت الاستجابة ناجحة، يحتوي نص الاستجابة على مثال GenerateEmbeddingsResponse
.
الطريقة: openai.chat.completions
تُنشئ مجموعة من الردود من النموذج استنادًا إلى إدخال سجلّ المحادثات.
نقطة نهاية
posthttps: / /generativelanguage.googleapis.com /v1beta /openai /chat /completions
يستخدِم عنوان URL بنية تحويل ترميز gRPC.
نص الطلب
يحتوي نص الطلب على بيانات بالبنية التالية:
model
string
مطلوب. اسم Model
المراد استخدامه لإنشاء الإنجاز. سيتمّ وضع "models/" قبل اسم النموذج إذا لم يظهر فيه واصلة.
messages[]
object (Struct
format)
مطلوب. سجلّ المحادثات المراد استخدامه لإنشاء النتيجة يتيح طلبات بحث فردية ومتعددة الخطوات. ملاحظة: هذا حقل متعدد الأشكال، ويتم تسلسله إلى InternalChatMessage.
stream
boolean
اختياريّ. لتحديد ما إذا كنت تريد بث الردّ أو عرض ردّ واحد.
إذا كانت القيمة true، سيكون حقل "العنصر" في الاستجابة هو "chat.completion.chunk". وإلّا، سيكون "chat.completion".
streamOptions
object (StreamOptions
)
اختياريّ. خيارات طلبات البث
tools[]
object (ChatTool
)
اختياريّ. مجموعة الأدوات التي يمكن للنموذج إنشاء طلبات لها تُعلن كل أداة عن توقيعها.
toolChoice
value (Value
format)
اختياريّ. يتحكّم هذا المَعلمة في ما إذا كان يجب أن يستخدم النموذج أداة أم لا، والأداة التي يجب استخدامها. يمكن أن يكون أيًّا مما يلي: - السلسلة "none" لإيقاف الأدوات. - السلسلة "auto" للسماح للنموذج باتخاذ القرار - السلسلة "مطلوب"، لإجبار النموذج على استخدام أداة. - كائن وصف اسم الدالة، الذي يحدّد الأداة التي سيتم استخدامها. يتّبع الخيار الأخير المخطّط التالي: { "type": "function", "function": {"name" : "the_function_name"} }
n
integer
اختياريّ. عدد عمليات الإكمال المُحتمَلة المطلوب إنشاؤها يجب أن يكون عددًا صحيحًا موجبًا. يتم ضبط القيمة تلقائيًا على 1 في حال عدم ضبطها.
stop
value (Value
format)
اختياريّ. مجموعة تسلسلات الأحرف التي ستؤدي إلى إيقاف إنشاء الإخراج ملاحظة: هذا حقل متعدد الأشكال. ومن المفترض أن يحتوي على سلسلة أو سلاسل متكرّرة.
maxCompletionTokens
integer
اختياريّ. الحد الأقصى لعدد الرموز المميّزة المطلوب تضمينها في أحد الردود المُحتمَلة يجب أن يكون عددًا صحيحًا موجبًا.
maxTokens
integer
اختياريّ. الحد الأقصى لعدد الرموز المميّزة المطلوب تضمينها في أحد الردود المُحتمَلة يجب أن يكون عددًا صحيحًا موجبًا. تم إيقاف هذا الحقل نهائيًا من خلال حزمة SDK.
temperature
number
اختياريّ. تتحكّم هذه السمة في العشوائية في الإخراج.
topP
number
اختياريّ. الحد الأقصى الاحتمالية التراكمية للرموز المميّزة التي يجب أخذها في الاعتبار عند أخذ العينات
responseFormat
object (ResponseFormat
)
اختياريّ. تُحدِّد تنسيق الاستجابة. في حال عدم ضبطه، سيتم تنسيق الردّ كنص.
نص الاستجابة
إذا كانت الاستجابة ناجحة، تكون استجابة HTTP عامة يتم تحديد تنسيقها من خلال الطريقة.
الطريقة: openai.embeddings
تُنشئ هذه الدالة إدخالات من النموذج استنادًا إلى مدخلات معيّنة.
نقطة نهاية
posthttps: / /generativelanguage.googleapis.com /v1beta /openai /embeddings
يستخدِم عنوان URL بنية تحويل ترميز gRPC.
نص الطلب
يحتوي نص الطلب على بيانات بالبنية التالية:
input
value (Value
format)
مطلوب. الإدخال الذي يتم إنشاء النماذج المضمّنة له. يمكن أن تكون سلسلة أو قائمة سلاسل. يتيح حِزم تطوير البرامج (SDK) إدخال قائمة بأرقام وقائمة بقوائم الأرقام، ولكن لم يتم تنفيذ ذلك بعد.
model
string
مطلوب. النموذج الذي يتم إنشاء البيانات المضمّنة له
encodingFormat
string
اختياريّ. تنسيق التشفير يجب أن تكون إما "float" أو "base64".
dimensions
integer
اختياريّ. الحجم البعدي للعناصر المضمّنة التي تم إنشاؤها
نص الاستجابة
إذا كانت الاستجابة ناجحة، يحتوي نص الاستجابة على مثال GenerateEmbeddingsResponse
.
الطريقة: openai.models
تعرض قائمة الطُرز المتاحة حاليًا.
نقطة نهاية
الحصول علىhttps: / /generativelanguage.googleapis.com /v1beta /openai /models
يستخدِم عنوان URL بنية تحويل ترميز gRPC.
نص الطلب
يجب أن يكون نص الطلب فارغًا.
نص الاستجابة
إذا كانت الاستجابة ناجحة، يحتوي نص الاستجابة على مثال SdkListModelsResponse
.
ChatTool
أداة يمكن للنموذج إنشاء طلبات لها.
function
object (ChatFunction
)
مطلوب. اسم الأداة
type
string
مطلوب. مطلوب، يجب أن تكون "function".
تمثيل JSON |
---|
{
"function": {
object ( |
ChatFunction
دالة يمكن للنموذج إنشاء طلبات لها.
name
string
مطلوب. اسم الدالة
description
string
اختياريّ. وصف للدالة
parameters
object (Struct
format)
اختياريّ. مَعلمات الدالة
strict
boolean
اختياريّ. ما إذا كان التحقّق من المخطّط صارمًا إذا كانت القيمة "صحيحة"، سيتعذّر استخدام النموذج إذا لم يكن المخطّط صالحًا. ملاحظة: يتم حاليًا تجاهل هذه المَعلمة.
تمثيل JSON |
---|
{ "name": string, "description": string, "parameters": { object }, "strict": boolean } |
GenerateEmbeddingsResponse
استجابة لإنشاء عملية التضمين
object
string
النتائج فقط. "دمج" دائمًا، مطلوب من حزمة تطوير البرامج (SDK)
data[]
object (GenerateEmbeddingsEmbedding
)
النتائج فقط. قائمة بالعناصر المضمّنة المطلوبة
model
string
النتائج فقط. النموذج المستخدَم لإنشاء النماذج المضمّنة
تمثيل JSON |
---|
{
"object": string,
"data": [
{
object ( |
GenerateEmbeddingsEmbedding
متجه إدراج أنشأه النموذج
object
string
النتائج فقط. "دمج" دائمًا، مطلوب من حزمة تطوير البرامج (SDK)
index
integer
النتائج فقط. فهرس السمة المضمّنة في قائمة السمات المضمّنة
embedding
value (Value
format)
النتائج فقط. متّجه التضمين الذي تم إنشاؤه للإدخال يمكن أن تكون إما قائمة بالأعداد العشرية أو سلسلة base64 ترميز قائمة بالأعداد العشرية بتنسيق لغة C (متوافقة مع Numpy).
تمثيل JSON |
---|
{ "object": string, "index": integer, "embedding": value } |
HttpBody
رسالة تمثل نص HTTP عشوائي. لا تستخدَم هذه الرسالة إلا مع تنسيقات البيانات الأساسية التي يتعذَّر تمثيلها بترميز JSON، مثل البيانات الثنائية الأولية أو صفحة HTML.
يمكن استخدام هذه الرسالة في طرق واجهة برمجة التطبيقات المستخدَمة في بث البيانات وغير المستخدَمة على حد سواء لإجراء الطلب والاستجابة أيضًا.
يمكن استخدام هذه الرسالة باعتبارها حقل عالي المستوى للطلب، والذي يعدّ مناسبًا لاستخراج معلمات من عنوان URL أو نموذج HTTP إلى حقول الطلب وللدخول أيضًا إلى نص HTTP أولي.
مثال:
message GetResourceRequest {
// A unique request id.
string requestId = 1;
// The raw HTTP body is bound to this field.
google.api.HttpBody http_body = 2;
}
service ResourceService {
rpc GetResource(GetResourceRequest)
returns (google.api.HttpBody);
rpc UpdateResource(google.api.HttpBody)
returns (google.protobuf.Empty);
}
مثال مع طرق البث:
service CaldavService {
rpc GetCalendar(stream google.api.HttpBody)
returns (stream google.api.HttpBody);
rpc UpdateCalendar(stream google.api.HttpBody)
returns (stream google.api.HttpBody);
}
يؤدي استخدام هذا النوع إلى تغيير طريقة معالجة نصوص الطلبات والاستجابات، بدون أن يطرأ أي تغيير على عمل الميزات الأخرى.
contentType
string
قيمة عنوان HTTP Content-Type التي تحدّد نوع محتوى النص
data
string (bytes format)
نص طلب HTTP أو استجابته بتنسيق ثنائي خام
سلسلة بترميز base64
extensions[]
object
البيانات الوصفية للاستجابة الخاصة بالتطبيق. يجب أن يتم تحديد هذه البيانات في الاستجابة الأولى لواجهات برمجة تطبيقات البث.
عنصر يحتوي على حقول من نوع عشوائي يحتوي الحقل "@type"
الإضافي على معرّف موارد منتظم (URI) يحدّد النوع. مثال: { "id": 1234, "@type": "types.example.com/standard/id" }
تمثيل JSON |
---|
{ "contentType": string, "data": string, "extensions": [ { "@type": string, field1: ..., ... } ] } |
ResponseFormat
تُحدِّد تنسيق الاستجابة.
type
string
مطلوب. نوع الردّ يمكن أن يكون أيًا مما يلي: - "نص": لتنسيق الردّ على شكل نص. - "json_object": لتنسيق الاستجابة ككائن JSON - "jsonSchema": تنسيق الاستجابة ككائن JSON وفقًا للمخطّط المحدّد
jsonSchema
object (ResponseFormatSchema
)
اختياريّ. مخطّط JSON الذي يجب اتّباعه لا يتم استخدامها إلا إذا كان النوع هو "jsonSchema".
تمثيل JSON |
---|
{
"type": string,
"jsonSchema": {
object ( |
ResponseFormatSchema
مخطّط الردّ
description
string
اختياريّ. وصف العنصر الذي يمثّله المخطّط
name
string
مطلوب. اسم نوع العنصر الذي يمثّله المخطّط
strict
boolean
اختياريّ. ما إذا كان التحقّق من المخطّط صارمًا إذا كانت القيمة "صحيحة"، سيتعذّر على النموذج إكمال العملية إذا لم يكن المخطّط صالحًا. ملاحظة: يتم حاليًا تجاهل هذه المَعلمة.
schema
object (Struct
format)
اختياريّ. مخطّط JSON الذي يجب اتّباعه
تمثيل JSON |
---|
{ "description": string, "name": string, "strict": boolean, "schema": { object } } |
SdkListModelsResponse
ردّ على نماذج القوائم
object
string
النتائج فقط. يجب دائمًا استخدام "قائمة"، لأنّ حزمة SDK تتطلّب ذلك.
data[]
object (SdkModel
)
النتائج فقط. قائمة بالعناصر المضمّنة المطلوبة
تمثيل JSON |
---|
{
"object": string,
"data": [
{
object ( |
SdkModel
عنصر النموذج
id
string
النتائج فقط. رقم تعريف الطراز
object
string
النتائج فقط. دائمًا "model"، مطلوب من حزمة SDK
created
string (int64 format)
النتائج فقط. الطابع الزمني لنظام التشغيل UNIX (بالثواني) عند إنشاء النموذج
owned_by
string
النتائج فقط. المؤسسة المالكة للنموذج
تمثيل JSON |
---|
{ "id": string, "object": string, "created": string, "owned_by": string } |