OpenAI compatibility

Model Gemini dapat diakses menggunakan library OpenAI (Python dan TypeScript / JavaScript) bersama dengan REST API, dengan memperbarui tiga baris kode dan menggunakan kunci Gemini API Anda. Baca selengkapnya tentang fitur ini di panduan kompatibilitas.

Metode: chatCompletions

Menghasilkan kumpulan respons dari model berdasarkan input histori chat.

Endpoint

posting https://generativelanguage.googleapis.com/v1beta:chatCompletions

URL menggunakan sintaksis gRPC Transcoding.

Isi permintaan

Isi permintaan memuat data dengan struktur berikut:

Kolom
model string

Wajib. Nama Model yang akan digunakan untuk membuat penyelesaian. Nama model akan diawali dengan "models/" jika tidak ada garis miring di dalamnya.

messages[] object (Struct format)

Wajib. Histori chat yang akan digunakan untuk membuat penyelesaian. Mendukung kueri satu dan multi-giliran. Catatan: Ini adalah kolom polimorfik, yang dideserialisasi ke InternalChatMessage.

stream boolean

Opsional. Apakah akan melakukan streaming respons atau menampilkan satu respons.

Jika benar, kolom "object" dalam respons akan menjadi "chat.completion.chunk". Jika tidak, nilainya akan menjadi "chat.completion".

streamOptions object (StreamOptions)

Opsional. Opsi untuk permintaan streaming.

tools[] object (ChatTool)

Opsional. Kumpulan alat yang dapat digunakan model untuk membuat panggilan. Setiap alat mendeklarasikan tanda tangannya.

toolChoice value (Value format)

Opsional. Mengontrol apakah model harus menggunakan alat atau tidak, dan alat mana yang akan digunakan. Dapat berupa: - String "none", untuk menonaktifkan alat. - String "auto", untuk membiarkan model memutuskan. - String "required", untuk memaksa model menggunakan alat. - Objek deskripsi nama fungsi, yang menentukan alat yang akan digunakan. Opsi terakhir mengikuti skema berikut: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

Opsional. Jumlah penyelesaian kandidat yang akan dibuat. Harus berupa bilangan bulat positif. Jika tidak ditetapkan, setelan defaultnya adalah 1.

stop value (Value format)

Opsional. Kumpulan urutan karakter yang akan menghentikan pembuatan output. Catatan: Ini adalah kolom polimorfik. Ini dimaksudkan untuk berisi string atau string berulang.

maxCompletionTokens integer

Opsional. Jumlah maksimum token yang akan disertakan dalam kandidat respons. Harus berupa bilangan bulat positif.

maxTokens integer

Opsional. Jumlah maksimum token yang akan disertakan dalam kandidat respons. Harus berupa bilangan bulat positif. Kolom ini tidak digunakan lagi oleh SDK.

temperature number

Opsional. Mengontrol keacakan output.

topP number

Opsional. Probabilitas kumulatif maksimum token yang akan dipertimbangkan saat mengambil sampel.

responseFormat object (ResponseFormat)

Opsional. Menentukan format respons. Jika tidak ditetapkan, respons akan diformat sebagai teks.

Isi respons

Jika berhasil, responsnya adalah respons HTTP generik yang formatnya ditentukan oleh metode.

Metode: embeddings

Membuat embedding dari model yang diberi input.

Endpoint

posting https://generativelanguage.googleapis.com/v1beta/embeddings

URL menggunakan sintaksis gRPC Transcoding.

Isi permintaan

Isi permintaan memuat data dengan struktur berikut:

Kolom
input value (Value format)

Wajib. Input yang akan dibuatkan embedding-nya. Dapat berupa string, atau daftar string. SDK mendukung daftar angka dan daftar daftar angka, tetapi belum diterapkan.

model string

Wajib. Model untuk membuat embedding.

encodingFormat string

Opsional. Format encoding. Harus berupa "float" atau "base64".

dimensions integer

Opsional. Ukuran dimensi penyematan yang dihasilkan.

Isi respons

Jika berhasil, isi respons memuat instance GenerateEmbeddingsResponse.

Metode: listModels

Mencantumkan model yang saat ini tersedia.

Endpoint

get https://generativelanguage.googleapis.com/v1beta/listModels

URL menggunakan sintaksis gRPC Transcoding.

Isi permintaan

Isi permintaan harus kosong.

Isi respons

Jika berhasil, isi respons memuat instance SdkListModelsResponse.

Metode: chat.completions

Menghasilkan kumpulan respons dari model berdasarkan input histori chat.

Endpoint

posting https://generativelanguage.googleapis.com/v1beta/chat/completions

URL menggunakan sintaksis gRPC Transcoding.

Isi permintaan

Isi permintaan memuat data dengan struktur berikut:

Kolom
model string

Wajib. Nama Model yang akan digunakan untuk membuat penyelesaian. Nama model akan diawali dengan "models/" jika tidak ada garis miring di dalamnya.

messages[] object (Struct format)

Wajib. Histori chat yang akan digunakan untuk membuat penyelesaian. Mendukung kueri satu dan multi-giliran. Catatan: Ini adalah kolom polimorfik, yang dideserialisasi ke InternalChatMessage.

stream boolean

Opsional. Apakah akan melakukan streaming respons atau menampilkan satu respons.

Jika benar, kolom "object" dalam respons akan menjadi "chat.completion.chunk". Jika tidak, nilainya akan menjadi "chat.completion".

streamOptions object (StreamOptions)

Opsional. Opsi untuk permintaan streaming.

tools[] object (ChatTool)

Opsional. Kumpulan alat yang dapat digunakan model untuk membuat panggilan. Setiap alat mendeklarasikan tanda tangannya.

toolChoice value (Value format)

Opsional. Mengontrol apakah model harus menggunakan alat atau tidak, dan alat mana yang akan digunakan. Dapat berupa: - String "none", untuk menonaktifkan alat. - String "auto", untuk membiarkan model memutuskan. - String "required", untuk memaksa model menggunakan alat. - Objek deskripsi nama fungsi, yang menentukan alat yang akan digunakan. Opsi terakhir mengikuti skema berikut: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

Opsional. Jumlah penyelesaian kandidat yang akan dibuat. Harus berupa bilangan bulat positif. Jika tidak ditetapkan, setelan defaultnya adalah 1.

stop value (Value format)

Opsional. Kumpulan urutan karakter yang akan menghentikan pembuatan output. Catatan: Ini adalah kolom polimorfik. Ini dimaksudkan untuk berisi string atau string berulang.

maxCompletionTokens integer

Opsional. Jumlah maksimum token yang akan disertakan dalam kandidat respons. Harus berupa bilangan bulat positif.

maxTokens integer

Opsional. Jumlah maksimum token yang akan disertakan dalam kandidat respons. Harus berupa bilangan bulat positif. Kolom ini tidak digunakan lagi oleh SDK.

temperature number

Opsional. Mengontrol keacakan output.

topP number

Opsional. Probabilitas kumulatif maksimum token yang akan dipertimbangkan saat mengambil sampel.

responseFormat object (ResponseFormat)

Opsional. Menentukan format respons. Jika tidak ditetapkan, respons akan diformat sebagai teks.

Isi respons

Jika berhasil, responsnya adalah respons HTTP generik yang formatnya ditentukan oleh metode.

Metode: embeddings.generate

Membuat embedding dari model yang diberi input.

Endpoint

posting https://generativelanguage.googleapis.com/v1beta/embeddings:generate

URL menggunakan sintaksis gRPC Transcoding.

Isi permintaan

Isi permintaan memuat data dengan struktur berikut:

Kolom
input value (Value format)

Wajib. Input yang akan dibuatkan embedding-nya. Dapat berupa string, atau daftar string. SDK mendukung daftar angka dan daftar daftar angka, tetapi belum diterapkan.

model string

Wajib. Model untuk membuat embedding.

encodingFormat string

Opsional. Format encoding. Harus berupa "float" atau "base64".

dimensions integer

Opsional. Ukuran dimensi penyematan yang dihasilkan.

Isi respons

Jika berhasil, isi respons memuat instance GenerateEmbeddingsResponse.

Metode: openai.chat.completions

Menghasilkan kumpulan respons dari model berdasarkan input histori chat.

Endpoint

posting https://generativelanguage.googleapis.com/v1beta/openai/chat/completions

URL menggunakan sintaksis gRPC Transcoding.

Isi permintaan

Isi permintaan memuat data dengan struktur berikut:

Kolom
model string

Wajib. Nama Model yang akan digunakan untuk membuat penyelesaian. Nama model akan diawali dengan "models/" jika tidak ada garis miring di dalamnya.

messages[] object (Struct format)

Wajib. Histori chat yang akan digunakan untuk membuat penyelesaian. Mendukung kueri satu dan multi-giliran. Catatan: Ini adalah kolom polimorfik, yang dideserialisasi ke InternalChatMessage.

stream boolean

Opsional. Apakah akan melakukan streaming respons atau menampilkan satu respons.

Jika benar, kolom "object" dalam respons akan menjadi "chat.completion.chunk". Jika tidak, nilainya akan menjadi "chat.completion".

streamOptions object (StreamOptions)

Opsional. Opsi untuk permintaan streaming.

tools[] object (ChatTool)

Opsional. Kumpulan alat yang dapat digunakan model untuk membuat panggilan. Setiap alat mendeklarasikan tanda tangannya.

toolChoice value (Value format)

Opsional. Mengontrol apakah model harus menggunakan alat atau tidak, dan alat mana yang akan digunakan. Dapat berupa: - String "none", untuk menonaktifkan alat. - String "auto", untuk membiarkan model memutuskan. - String "required", untuk memaksa model menggunakan alat. - Objek deskripsi nama fungsi, yang menentukan alat yang akan digunakan. Opsi terakhir mengikuti skema berikut: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

Opsional. Jumlah penyelesaian kandidat yang akan dibuat. Harus berupa bilangan bulat positif. Jika tidak ditetapkan, setelan defaultnya adalah 1.

stop value (Value format)

Opsional. Kumpulan urutan karakter yang akan menghentikan pembuatan output. Catatan: Ini adalah kolom polimorfik. Ini dimaksudkan untuk berisi string atau string berulang.

maxCompletionTokens integer

Opsional. Jumlah maksimum token yang akan disertakan dalam kandidat respons. Harus berupa bilangan bulat positif.

maxTokens integer

Opsional. Jumlah maksimum token yang akan disertakan dalam kandidat respons. Harus berupa bilangan bulat positif. Kolom ini tidak digunakan lagi oleh SDK.

temperature number

Opsional. Mengontrol keacakan output.

topP number

Opsional. Probabilitas kumulatif maksimum token yang akan dipertimbangkan saat mengambil sampel.

responseFormat object (ResponseFormat)

Opsional. Menentukan format respons. Jika tidak ditetapkan, respons akan diformat sebagai teks.

Isi respons

Jika berhasil, responsnya adalah respons HTTP generik yang formatnya ditentukan oleh metode.

Metode: openai.embeddings

Membuat embedding dari model yang diberi input.

Endpoint

posting https://generativelanguage.googleapis.com/v1beta/openai/embeddings

URL menggunakan sintaksis gRPC Transcoding.

Isi permintaan

Isi permintaan memuat data dengan struktur berikut:

Kolom
input value (Value format)

Wajib. Input yang akan dibuatkan embedding-nya. Dapat berupa string, atau daftar string. SDK mendukung daftar angka dan daftar daftar angka, tetapi belum diterapkan.

model string

Wajib. Model untuk membuat embedding.

encodingFormat string

Opsional. Format encoding. Harus berupa "float" atau "base64".

dimensions integer

Opsional. Ukuran dimensi penyematan yang dihasilkan.

Isi respons

Jika berhasil, isi respons memuat instance GenerateEmbeddingsResponse.

Metode: openai.models

Mencantumkan model yang saat ini tersedia.

Endpoint

get https://generativelanguage.googleapis.com/v1beta/openai/models

URL menggunakan sintaksis gRPC Transcoding.

Isi permintaan

Isi permintaan harus kosong.

Isi respons

Jika berhasil, isi respons memuat instance SdkListModelsResponse.

ChatTool

Alat yang dapat digunakan model untuk membuat panggilan.

Kolom
function object (ChatFunction)

Wajib. Nama alat.

type string

Wajib. Wajib diisi, harus "function".

Representasi JSON
{
  "function": {
    object (ChatFunction)
  },
  "type": string
}

ChatFunction

Fungsi yang dapat dibuat panggilannya oleh model.

Kolom
name string

Wajib. Nama fungsi.

description string

Opsional. Deskripsi fungsi.

parameters object (Struct format)

Opsional. Parameter fungsi.

strict boolean

Opsional. Apakah validasi skema bersifat ketat. Jika benar, model akan gagal jika skema tidak valid. CATATAN: Parameter ini saat ini diabaikan.

Representasi JSON
{
  "name": string,
  "description": string,
  "parameters": {
    object
  },
  "strict": boolean
}

GenerateEmbeddingsResponse

Respons untuk pembuatan penyematan.

Kolom
object string

Hanya output. Selalu "menyisipkan", yang diperlukan oleh SDK.

data[] object (GenerateEmbeddingsEmbedding)

Hanya output. Daftar penyematan yang diminta.

model string

Hanya output. Model yang digunakan untuk membuat penyematan.

Representasi JSON
{
  "object": string,
  "data": [
    {
      object (GenerateEmbeddingsEmbedding)
    }
  ],
  "model": string
}

GenerateEmbeddingsEmbedding

Vektor embedding yang dihasilkan oleh model.

Kolom
object string

Hanya output. Selalu "menyisipkan", yang diperlukan oleh SDK.

index integer

Hanya output. Indeks penyematan dalam daftar penyematan.

embedding value (Value format)

Hanya output. Vektor penyematan yang dihasilkan untuk input. Dapat berupa daftar float atau string base64 yang mengenkode daftar float dengan tata letak gaya C (kompatibel dengan Numpy).

Representasi JSON
{
  "object": string,
  "index": integer,
  "embedding": value
}

HttpBody

Pesan yang merepresentasikan bagian isi HTTP arbitrer. Pesan ini hanya boleh digunakan untuk format payload yang tidak dapat direpresentasikan sebagai JSON, seperti biner mentah atau halaman HTML.

Pesan ini dapat digunakan baik dalam metode API streaming maupun non-streaming pada permintaan dan juga pada respons.

Pesan ini dapat digunakan sebagai kolom permintaan tingkat atas, yang praktis jika seseorang ingin mengekstrak parameter dari template HTTP atau URL ke dalam kolom permintaan dan juga menginginkan akses ke isi HTTP mentah.

Contoh:

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

}

Contoh dengan metode streaming:

service CaldavService {
  rpc GetCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);
  rpc UpdateCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);

}

Penggunaan jenis ini hanya mengubah cara penanganan isi permintaan dan respons; semua fitur lainnya tetap berfungsi tanpa perubahan.

Kolom
contentType string

Nilai header Content-Type HTTP yang menentukan jenis konten pada bagian isi.

data string (bytes format)

Isi permintaan/respons HTTP sebagai biner mentah.

String berenkode base64.

extensions[] object

Metadata respons khusus aplikasi. Harus ditetapkan dalam respons pertama untuk API streaming.

Objek yang berisi kolom tipe arbitrer. Kolom tambahan "@type" berisi URI yang mengidentifikasi jenis. Contoh: { "id": 1234, "@type": "types.example.com/standard/id" }.

Representasi JSON
{
  "contentType": string,
  "data": string,
  "extensions": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}

ResponseFormat

Menentukan format respons.

Kolom
type string

Wajib. Jenis respons. Dapat berupa: - "text": Memformat respons sebagai teks. - "json_object": Memformat respons sebagai objek JSON. - "jsonSchema": Memformat respons sebagai objek JSON yang mengikuti skema yang diberikan.

jsonSchema object (ResponseFormatSchema)

Opsional. Skema JSON yang akan diikuti. Hanya digunakan jika jenisnya adalah "jsonSchema".

Representasi JSON
{
  "type": string,
  "jsonSchema": {
    object (ResponseFormatSchema)
  }
}

ResponseFormatSchema

Skema untuk respons.

Kolom
description string

Opsional. Deskripsi objek yang direpresentasikan oleh skema.

name string

Wajib. Nama jenis objek yang diwakili oleh skema.

strict boolean

Opsional. Apakah validasi skema bersifat ketat. Jika benar, model akan gagal jika skema tidak valid. CATATAN: Parameter ini saat ini diabaikan.

schema object (Struct format)

Opsional. Skema JSON yang akan diikuti.

Representasi JSON
{
  "description": string,
  "name": string,
  "strict": boolean,
  "schema": {
    object
  }
}

SdkListModelsResponse

Respons untuk model daftar.

Kolom
object string

Hanya output. Selalu "list", diperlukan oleh SDK.

data[] object (SdkModel)

Hanya output. Daftar penyematan yang diminta.

Representasi JSON
{
  "object": string,
  "data": [
    {
      object (SdkModel)
    }
  ]
}

SdkModel

Objek model.

Kolom
id string

Hanya output. ID model.

object string

Hanya output. Selalu "model", yang diperlukan oleh SDK.

created string (int64 format)

Hanya output. Stempel waktu Unix (dalam detik) saat model dibuat.

owned_by string

Hanya output. Organisasi yang memiliki model.

Representasi JSON
{
  "id": string,
  "object": string,
  "created": string,
  "owned_by": string
}

StreamOptions

Opsi untuk permintaan streaming.

Kolom
includeUsage boolean

Opsional. Jika ditetapkan, sertakan statistik penggunaan dalam respons.

Representasi JSON
{
  "includeUsage": boolean
}