OpenAI compatibility

يمكن الوصول إلى نماذج Gemini باستخدام مكتبات OpenAI (Python وTypeScript / JavaScript) مع REST API، وذلك من خلال تعديل ثلاثة أسطر من الرمز البرمجي واستخدام مفتاح Gemini API. يمكنك الاطّلاع على مزيد من المعلومات حول هذه الميزة في دليل التوافق.

الطريقة: chatCompletions

تُنشئ مجموعة من الردود من النموذج استنادًا إلى إدخال سجلّ المحادثات.

نقطة نهاية

post https://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

تُنشئ هذه الدالة إدخالات من النموذج استنادًا إلى مدخلات معيّنة.

نقطة نهاية

post https://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

تُنشئ مجموعة من الردود من النموذج استنادًا إلى إدخال سجلّ المحادثات.

نقطة نهاية

post https://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

تُنشئ هذه الدالة إدخالات من النموذج استنادًا إلى مدخلات معيّنة.

نقطة نهاية

post https://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

تُنشئ مجموعة من الردود من النموذج استنادًا إلى إدخال سجلّ المحادثات.

نقطة نهاية

post https://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

تُنشئ هذه الدالة إدخالات من النموذج استنادًا إلى مدخلات معيّنة.

نقطة نهاية

post https://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)
  },
  "type": string
}

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)
    }
  ],
  "model": string
}

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)
  }
}

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)
    }
  ]
}

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
}

StreamOptions

خيارات طلبات البث

الحقول
includeUsage boolean

اختياريّ. تضمين إحصاءات الاستخدام في الردّ، في حال ضبطها

تمثيل JSON
{
  "includeUsage": boolean
}