OpenAI compatibility

Modele Gemini są dostępne za pomocą bibliotek OpenAI (Python i TypeScript / Javascript) oraz interfejsu REST API. Aby zaktualizować 3 linie kodu i użyć klucza Gemini API, wykonaj te czynności: Więcej informacji o tej funkcji znajdziesz w przewodniku po zgodności.

Metoda: chatCompletions

Generuje zestaw odpowiedzi modelu na podstawie danych wejściowych z historii czatu.

Punkt końcowy

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

Adres URL używa składni transkodowania gRPC.

Treść żądania

Treść żądania zawiera dane o następującej strukturze:

Pola
model string

Wymagane. Nazwa Model, która ma być użyta do wygenerowania zakończenia. Jeśli nazwa modelu nie zawiera znaku ukośnika, przed nazwą modelu będzie dopisany ciąg „models/”.

messages[] object (Struct format)

Wymagane. Historia czatu, która ma posłużyć do wygenerowania zakończenia. Obsługuje pojedyncze i wielokrotnie przetwarzane zapytania. Uwaga: to pole jest polimorficzne i jest deserializowane do obiektu InternalChatMessage.

stream boolean

Opcjonalnie: Określa, czy odpowiedź ma być przesyłana strumieniowo, czy zwrócona jako pojedyncza odpowiedź.

Jeśli to pole ma wartość true, pole „object” w odpowiedzi będzie zawierać wartość „chat.completion.chunk”. W przeciwnym razie będzie to „chat.completion”.

streamOptions object (StreamOptions)

Opcjonalnie: Opcje dotyczące żądań strumieniowania.

tools[] object (ChatTool)

Opcjonalnie: Zestaw narzędzi, dla których model może generować wywołania. Każde narzędzie ma swoją sygnaturę.

toolChoice value (Value format)

Opcjonalnie: Określa, czy model ma używać narzędzia i którego. Może być: - ciąg znaków „none”, aby wyłączyć narzędzia; – ciąg znaków „auto”, aby pozwolić modelowi podjąć decyzję. – ciąg „required” (wymagany), aby wymusić użycie narzędzia przez model. – obiekt opisujący nazwę funkcji, który określa narzędzie do użycia. Ostatnia opcja ma następujący schemat: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

Opcjonalnie: Liczba kandydatów do ukończenia. Musi być dodatnią liczbą całkowitą. Jeśli nie zostanie ustawiony, domyślna wartość to 1.

stop value (Value format)

Opcjonalnie: Zestaw sekwencji znaków, które powodują zatrzymanie generowania danych wyjściowych. Uwaga: to jest pole polimorficzne. Powinien zawierać ciąg znaków lub powtarzające się ciągi znaków.

maxCompletionTokens integer

Opcjonalnie: Maksymalna liczba tokenów do uwzględnienia w potencjalnej odpowiedzi. Musi być dodatnią liczbą całkowitą.

maxTokens integer

Opcjonalnie: Maksymalna liczba tokenów do uwzględnienia w potencjalnej odpowiedzi. Musi być dodatnią liczbą całkowitą. To pole zostało wycofane przez pakiet SDK.

temperature number

Opcjonalnie: Określa losowość danych wyjściowych.

topP number

Opcjonalnie: Maksymalne skumulowane prawdopodobieństwo tokenów do uwzględnienia podczas próbkowania.

responseFormat object (ResponseFormat)

Opcjonalnie: Określa format odpowiedzi. Jeśli nie zostanie ustawione, odpowiedź zostanie sformatowana jako tekst.

Treść odpowiedzi

W przypadku powodzenia odpowiedź jest ogólną odpowiedzią HTTP, której format jest zdefiniowany przez metodę.

Metoda: wektory

Generuje wektory dystrybucyjne na podstawie danych wejściowych modelu.

Punkt końcowy

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

Adres URL używa składni transkodowania gRPC.

Treść żądania

Treść żądania zawiera dane o następującej strukturze:

Pola
input value (Value format)

Wymagane. Dane wejściowe, dla których mają być generowane wektory dystrybucyjne. Może to być ciąg znaków lub lista ciągów znaków. Pakiet SDK obsługuje listę liczb i listę list liczb, ale nie jest to jeszcze zaimplementowane.

model string

Wymagane. Model, dla którego mają być generowane wektory dystrybucyjne.

encodingFormat string

Opcjonalnie: Format kodowania. Musi być to „float” lub „base64”.

dimensions integer

Opcjonalnie: Wymiar wygenerowanych wektorów dystrybucyjnych.

Treść odpowiedzi

W przypadku powodzenia treść odpowiedzi obejmuje wystąpienie elementu GenerateEmbeddingsResponse.

Metoda: listModels

Wyświetla listę obecnie dostępnych modeli.

Punkt końcowy

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

Adres URL używa składni transkodowania gRPC.

Treść żądania

Treść żądania musi być pusta.

Treść odpowiedzi

W przypadku powodzenia treść odpowiedzi obejmuje wystąpienie elementu SdkListModelsResponse.

Metoda: chat.completions

Generuje zestaw odpowiedzi modelu na podstawie danych wejściowych z historii czatu.

Punkt końcowy

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

Adres URL używa składni transkodowania gRPC.

Treść żądania

Treść żądania zawiera dane o następującej strukturze:

Pola
model string

Wymagane. Nazwa Model, która ma być użyta do wygenerowania zakończenia. Jeśli nazwa modelu nie zawiera znaku ukośnika, przed nazwą modelu będzie dopisany ciąg „models/”.

messages[] object (Struct format)

Wymagane. Historia czatu, która ma posłużyć do wygenerowania zakończenia. Obsługuje pojedyncze i wielokrotnie przetwarzane zapytania. Uwaga: to pole jest polimorficzne i jest deserializowane do obiektu InternalChatMessage.

stream boolean

Opcjonalnie: Określa, czy odpowiedź ma być przesyłana strumieniowo, czy zwrócona jako pojedyncza odpowiedź.

Jeśli to pole ma wartość true, pole „object” w odpowiedzi będzie zawierać wartość „chat.completion.chunk”. W przeciwnym razie będzie to „chat.completion”.

streamOptions object (StreamOptions)

Opcjonalnie: Opcje dotyczące żądań strumieniowania.

tools[] object (ChatTool)

Opcjonalnie: Zestaw narzędzi, dla których model może generować wywołania. Każde narzędzie ma swoją sygnaturę.

toolChoice value (Value format)

Opcjonalnie: Określa, czy model ma używać narzędzia i którego. Może być: - ciąg znaków „none”, aby wyłączyć narzędzia; – ciąg znaków „auto”, aby pozwolić modelowi podjąć decyzję. – ciąg „required” (wymagany), aby wymusić użycie narzędzia przez model. – obiekt opisujący nazwę funkcji, który określa narzędzie do użycia. Ostatnia opcja ma następujący schemat: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

Opcjonalnie: Liczba kandydatów do ukończenia. Musi być dodatnią liczbą całkowitą. Jeśli nie zostanie ustawiony, domyślna wartość to 1.

stop value (Value format)

Opcjonalnie: Zestaw sekwencji znaków, które powodują zatrzymanie generowania danych wyjściowych. Uwaga: to jest pole polimorficzne. Powinien zawierać ciąg znaków lub powtarzające się ciągi znaków.

maxCompletionTokens integer

Opcjonalnie: Maksymalna liczba tokenów do uwzględnienia w potencjalnej odpowiedzi. Musi być dodatnią liczbą całkowitą.

maxTokens integer

Opcjonalnie: Maksymalna liczba tokenów do uwzględnienia w potencjalnej odpowiedzi. Musi być dodatnią liczbą całkowitą. To pole zostało wycofane przez pakiet SDK.

temperature number

Opcjonalnie: Określa losowość danych wyjściowych.

topP number

Opcjonalnie: Maksymalne skumulowane prawdopodobieństwo tokenów do uwzględnienia podczas próbkowania.

responseFormat object (ResponseFormat)

Opcjonalnie: Określa format odpowiedzi. Jeśli nie zostanie ustawione, odpowiedź zostanie sformatowana jako tekst.

Treść odpowiedzi

W przypadku powodzenia odpowiedź jest ogólną odpowiedzią HTTP, której format jest zdefiniowany przez metodę.

Metoda: embeddings.generate

Generuje wektory dystrybucyjne na podstawie modelu i podanych danych wejściowych.

Punkt końcowy

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

Adres URL używa składni transkodowania gRPC.

Treść żądania

Treść żądania zawiera dane o następującej strukturze:

Pola
input value (Value format)

Wymagane. Dane wejściowe, dla których mają być generowane wektory dystrybucyjne. Może to być ciąg znaków lub lista ciągów znaków. Pakiet SDK obsługuje listę liczb i listę list liczb, ale nie jest to jeszcze zaimplementowane.

model string

Wymagane. Model, dla którego mają być generowane wektory dystrybucyjne.

encodingFormat string

Opcjonalnie: Format kodowania. Musi być to „float” lub „base64”.

dimensions integer

Opcjonalnie: Wymiar wygenerowanych wektorów dystrybucyjnych.

Treść odpowiedzi

W przypadku powodzenia treść odpowiedzi obejmuje wystąpienie elementu GenerateEmbeddingsResponse.

Metoda: openai.chat.completions

Generuje zestaw odpowiedzi modelu na podstawie danych wejściowych z historii czatu.

Punkt końcowy

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

Adres URL używa składni transkodowania gRPC.

Treść żądania

Treść żądania zawiera dane o następującej strukturze:

Pola
model string

Wymagane. Nazwa Model, która ma być użyta do wygenerowania zakończenia. Jeśli nazwa modelu nie zawiera znaku ukośnika, przed nazwą modelu będzie dopisany ciąg „models/”.

messages[] object (Struct format)

Wymagane. Historia czatu, która ma posłużyć do wygenerowania zakończenia. Obsługuje pojedyncze i wielokrotnie przetwarzane zapytania. Uwaga: to pole jest polimorficzne i jest deserializowane do obiektu InternalChatMessage.

stream boolean

Opcjonalnie: Określa, czy odpowiedź ma być przesyłana strumieniowo, czy zwrócona jako pojedyncza odpowiedź.

Jeśli to pole ma wartość true, pole „object” w odpowiedzi będzie zawierać wartość „chat.completion.chunk”. W przeciwnym razie będzie to „chat.completion”.

streamOptions object (StreamOptions)

Opcjonalnie: Opcje dotyczące żądań strumieniowania.

tools[] object (ChatTool)

Opcjonalnie: Zestaw narzędzi, dla których model może generować wywołania. Każde narzędzie ma swoją sygnaturę.

toolChoice value (Value format)

Opcjonalnie: Określa, czy model ma używać narzędzia i którego. Może być: - ciąg znaków „none”, aby wyłączyć narzędzia; – ciąg znaków „auto”, aby pozwolić modelowi podjąć decyzję. – ciąg „required” (wymagany), aby wymusić użycie narzędzia przez model. – obiekt opisujący nazwę funkcji, który określa narzędzie do użycia. Ostatnia opcja ma następujący schemat: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

Opcjonalnie: Liczba kandydatów do ukończenia. Musi być dodatnią liczbą całkowitą. Jeśli nie zostanie ustawiony, domyślna wartość to 1.

stop value (Value format)

Opcjonalnie: Zestaw sekwencji znaków, które powodują zatrzymanie generowania danych wyjściowych. Uwaga: to jest pole polimorficzne. Powinien zawierać ciąg znaków lub powtarzające się ciągi znaków.

maxCompletionTokens integer

Opcjonalnie: Maksymalna liczba tokenów do uwzględnienia w potencjalnej odpowiedzi. Musi być dodatnią liczbą całkowitą.

maxTokens integer

Opcjonalnie: Maksymalna liczba tokenów do uwzględnienia w potencjalnej odpowiedzi. Musi być dodatnią liczbą całkowitą. To pole zostało wycofane przez pakiet SDK.

temperature number

Opcjonalnie: Określa losowość danych wyjściowych.

topP number

Opcjonalnie: Maksymalne skumulowane prawdopodobieństwo tokenów do uwzględnienia podczas próbkowania.

responseFormat object (ResponseFormat)

Opcjonalnie: Określa format odpowiedzi. Jeśli nie zostanie ustawione, odpowiedź zostanie sformatowana jako tekst.

Treść odpowiedzi

W przypadku powodzenia odpowiedź jest ogólną odpowiedzią HTTP, której format jest zdefiniowany przez metodę.

Metoda: openai.embeddings

Generuje wektory dystrybucyjne na podstawie danych wejściowych modelu.

Punkt końcowy

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

Adres URL używa składni transkodowania gRPC.

Treść żądania

Treść żądania zawiera dane o następującej strukturze:

Pola
input value (Value format)

Wymagane. Dane wejściowe, dla których mają być generowane wektory dystrybucyjne. Może to być ciąg znaków lub lista ciągów znaków. Pakiet SDK obsługuje listę liczb i listę list liczb, ale nie jest to jeszcze zaimplementowane.

model string

Wymagane. Model, dla którego mają być generowane wektory dystrybucyjne.

encodingFormat string

Opcjonalnie: Format kodowania. Musi być to „float” lub „base64”.

dimensions integer

Opcjonalnie: Wymiar wygenerowanych wektorów dystrybucyjnych.

Treść odpowiedzi

W przypadku powodzenia treść odpowiedzi obejmuje wystąpienie elementu GenerateEmbeddingsResponse.

Metoda: openai.models

Wyświetla listę obecnie dostępnych modeli.

Punkt końcowy

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

Adres URL używa składni transkodowania gRPC.

Treść żądania

Treść żądania musi być pusta.

Treść odpowiedzi

W przypadku powodzenia treść odpowiedzi obejmuje wystąpienie elementu SdkListModelsResponse.

ChatTool

Narzędzie, które model może wywoływać.

Pola
function object (ChatFunction)

Wymagane. Nazwa narzędzia.

type string

Wymagane. Wymagane. Musi być równe „function”.

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

ChatFunction

Funkcja, do której model może generować wywołania.

Pola
name string

Wymagane. Nazwa funkcji.

description string

Opcjonalnie: Opis funkcji.

parameters object (Struct format)

Opcjonalnie: Parametry funkcji.

strict boolean

Opcjonalnie: Czy weryfikacja schematu jest rygorystyczna. Jeśli to pole ma wartość Prawda, model nie zadziała, jeśli schemat nie jest prawidłowy. UWAGA: ten parametr jest obecnie ignorowany.

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

GenerateEmbeddingsResponse

Odpowiedź dotycząca generowania wklejania.

Pola
object string

Tylko dane wyjściowe. Zawsze „osadzanie”, wymagane przez pakiet SDK.

data[] object (GenerateEmbeddingsEmbedding)

Tylko dane wyjściowe. Lista żądanych reprezentacji właściwościowych.

model string

Tylko dane wyjściowe. Model użyty do wygenerowania wektorów.

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

GenerateEmbeddingsEmbedding

Wektor embeddingu wygenerowany przez model.

Pola
object string

Tylko dane wyjściowe. Zawsze „osadzanie”, wymagane przez pakiet SDK.

index integer

Tylko dane wyjściowe. Indeks wektora dystrybucyjnego na liście wektorów dystrybucyjnych.

embedding value (Value format)

Tylko dane wyjściowe. Wektor dystrybucyjny wygenerowany dla danych wejściowych. Może to być lista liczb zmiennoprzecinkowych lub ciąg znaków w formacie base64 kodujący listę liczb zmiennoprzecinkowych w układzie w stylu C (zgodny z Numpy).

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

HttpBody

Komunikat dotyczący dowolnej treści HTTP. Powinien być używany wyłącznie w przypadku formatów ładunku, których nie da się zapisać jako JSON, takich jak pliki binarne RAW lub strony HTML.

Komunikat może być używany w żądaniu oraz w odpowiedzi zarówno w strumieniowych, jak i niestrumieniowych metodach API.

Może służyć jako pole żądania najwyższego poziomu, co jest wygodne, gdy chcesz wyodrębnić parametry z szablonu URL lub HTTP i użyć ich w polach żądania oraz gdy potrzebujesz dostępu do treści HTTP w formacie RAW.

Przykład

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

}

Przykład z metodami strumieniowymi:

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

}

Użycie tego typu treści zmienia tylko sposób obsługi treści żądania i odpowiedzi – pozostałe funkcje działają bez zmian.

Pola
contentType string

Wartość nagłówka HTTP Content-Type określająca typ treści.

data string (bytes format)

Treść żądania/odpowiedzi HTTP jako dane binarne.

Ciąg znaków zakodowany w formacie Base64.

extensions[] object

Metadane odpowiedzi aplikacji. W przypadku strumieniowych interfejsów API muszą być przesłane w pierwszej odpowiedzi.

Obiekt zawierający pola dowolnego typu. Dodatkowe pole "@type" zawiera identyfikator URI identyfikujący typ. Przykład: { "id": 1234, "@type": "types.example.com/standard/id" }.

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

ResponseFormat

Określa format odpowiedzi.

Pola
type string

Wymagane. Typ odpowiedzi. Możesz wybrać: – „text”: odpowiedź w formacie tekstowym. – „json_object”: odpowiedź jest formatowana jako obiekt JSON. – „jsonSchema”: sformatuj odpowiedź jako obiekt JSON zgodnie z podanym schematem.

jsonSchema object (ResponseFormatSchema)

Opcjonalnie: Schemat JSON, którego należy przestrzegać. Używane tylko wtedy, gdy typ to „jsonSchema”.

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

ResponseFormatSchema

Schemat odpowiedzi.

Pola
description string

Opcjonalnie: Opis obiektu reprezentowanego przez schemat.

name string

Wymagane. Nazwa typu obiektu reprezentowanego przez schemat.

strict boolean

Opcjonalnie: Czy weryfikacja schematu jest rygorystyczna. Jeśli to pole ma wartość Prawda, model nie zadziała, jeśli schemat nie jest prawidłowy. UWAGA: ten parametr jest obecnie ignorowany.

schema object (Struct format)

Opcjonalnie: Schemat JSON, którego należy przestrzegać.

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

SdkListModelsResponse

Odpowiedź dla modeli list.

Pola
object string

Tylko dane wyjściowe. Zawsze „list”, wymagane przez pakiet SDK.

data[] object (SdkModel)

Tylko dane wyjściowe. Lista żądanych reprezentacji właściwościowych.

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

SdkModel

Obiekt model.

Pola
id string

Tylko dane wyjściowe. Identyfikator modelu.

object string

Tylko dane wyjściowe. Zawsze „model”, wymagany przez pakiet SDK.

created string (int64 format)

Tylko dane wyjściowe. Sygnatura czasowa systemu Unix (w sekundach) utworzenia modelu.

owned_by string

Tylko dane wyjściowe. Organizacja, której model należy.

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

StreamOptions

Opcje dotyczące żądań strumieniowania.

Pola
includeUsage boolean

Opcjonalnie: Jeśli jest ustawiona, uwzględnij w odpowiedzi statystyki użytkowania.

Zapis JSON
{
  "includeUsage": boolean
}