OpenAI compatibility

Доступ к моделям Gemini можно получить с помощью библиотек OpenAI (Python и TypeScript/Javascript) вместе с REST API, обновив три строки кода и используя ключ Gemini API . Подробнее об этой функции читайте в руководстве по совместимости .

Метод: чатCompletions

Генерирует набор ответов из модели с учетом входных данных истории чата.

Конечная точка

опубликуйте https: / /generativelanguage.googleapis.com /v1beta:chatCompletions
URL-адрес использует синтаксис транскодирования gRPC .

Тело запроса

Тело запроса содержит данные следующей структуры:

Поля
model string

Необходимый. Имя Model , используемой для создания завершения. Имя модели будет иметь префикс «models/», если в нем нет косой черты.

объект messages[] object ( Struct format)

Необходимый. История чата, используемая для создания завершения. Поддерживает одно- и многоповоротные запросы. Примечание. Это полиморфное поле, оно десериализуется в InternalChatMessage.

stream boolean

Необязательный. Следует ли передавать ответ в потоковом режиме или возвращать один ответ.

Если это правда, поле «объект» в ответе будет «chat.completion.chunk». В противном случае это будет «chat.completion».

streamOptions object ( StreamOptions )

Необязательный. Варианты потоковой передачи запросов.

объект tools[] object ( ChatTool )

Необязательный. Набор инструментов, к которым модель может генерировать вызовы. Каждый инструмент декларирует свою подпись.

Значение toolChoice value ( Value format)

Необязательный. Определяет, должна ли модель использовать какой-либо инструмент и какой инструмент использовать. Может быть: - Строка «none» для отключения инструментов. - Строка «авто», чтобы позволить модели решать. — Строка «required», чтобы заставить модель использовать инструмент. — Объект дескриптора имени функции, определяющий используемый инструмент. Последний параметр соответствует следующей схеме: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

Необязательный. Количество завершенных кандидатов, которые необходимо сгенерировать. Должно быть положительным целым числом. По умолчанию 1, если не установлено.

stop value ( Value format)

Необязательный. Набор последовательностей символов, которые останавливают создание выходных данных. Примечание. Это полиморфное поле. Он предназначен для хранения строки или повторяющихся строк.

integer maxCompletionTokens

Необязательный. Максимальное количество токенов, которые можно включить в кандидата ответа. Должно быть положительным целым числом.

integer maxTokens

Необязательный. Максимальное количество токенов, которые можно включить в кандидата ответа. Должно быть положительным целым числом. Это поле устарело в SDK.

number temperature

Необязательный. Управляет случайностью вывода.

number topP

Необязательный. Максимальная совокупная вероятность токенов, которую следует учитывать при выборке.

object ( ResponseFormat ) responseFormat ( ResponseFormat )

Необязательный. Определяет формат ответа. Если не установлено, ответ будет отформатирован как текст.

Тело ответа

В случае успеха ответ представляет собой общий ответ HTTP, формат которого определяется методом.

Метод: вложения

Генерирует внедрения из модели с учетом входных данных.

Конечная точка

опубликуйте https: / /generativelanguage.googleapis.com /v1beta /embeddings
URL-адрес использует синтаксис транскодирования gRPC .

Тело запроса

Тело запроса содержит данные следующей структуры:

Поля
input value ( Value format)

Необходимый. Входные данные для создания вложений. Может быть строкой или списком строк. SDK поддерживает список номеров и список номеров, но это еще не реализовано.

model string

Необходимый. Модель для создания вложений.

string encodingFormat

Необязательный. Формат кодировки. Должно быть либо «float», либо «base64».

dimensions integer

Необязательный. Размерность создаваемых вложений.

Тело ответа

В случае успеха тело ответа содержит экземпляр GenerateEmbeddingsResponse .

Метод: listModels

Перечисляет доступные на данный момент модели.

Конечная точка

получить https: / /generativelanguage.googleapis.com /v1beta /listModels
URL-адрес использует синтаксис транскодирования gRPC .

Тело запроса

Тело запроса должно быть пустым.

Тело ответа

В случае успеха тело ответа содержит экземпляр SdkListModelsResponse .

Метод: чат.завершения

Генерирует набор ответов из модели с учетом входных данных истории чата.

Конечная точка

опубликовать https: / /generativelanguage.googleapis.com /v1beta /chat /completions
URL-адрес использует синтаксис транскодирования gRPC .

Тело запроса

Тело запроса содержит данные следующей структуры:

Поля
model string

Необходимый. Имя Model , используемой для создания завершения. Имя модели будет иметь префикс «models/», если в нем нет косой черты.

объект messages[] object ( Struct format)

Необходимый. История чата, используемая для создания завершения. Поддерживает одно- и многоповоротные запросы. Примечание. Это полиморфное поле, оно десериализуется в InternalChatMessage.

stream boolean

Необязательный. Следует ли передавать ответ в потоковом режиме или возвращать один ответ.

Если это правда, поле «объект» в ответе будет «chat.completion.chunk». В противном случае это будет «chat.completion».

streamOptions object ( StreamOptions )

Необязательный. Варианты потоковой передачи запросов.

объект tools[] object ( ChatTool )

Необязательный. Набор инструментов, для которых модель может генерировать вызовы. Каждый инструмент декларирует свою подпись.

Значение toolChoice value ( Value format)

Необязательный. Определяет, должна ли модель использовать инструмент или нет, а также какой инструмент использовать. Может быть: - Строка «none» для отключения инструментов. - Строка «авто», чтобы позволить модели решать. — Строка «required», чтобы заставить модель использовать инструмент. — Объект дескриптора имени функции, определяющий используемый инструмент. Последний параметр соответствует следующей схеме: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

Необязательный. Количество завершенных кандидатов, которые необходимо сгенерировать. Должно быть положительным целым числом. По умолчанию 1, если не установлено.

stop value ( Value format)

Необязательный. Набор последовательностей символов, которые останавливают создание выходных данных. Примечание. Это полиморфное поле. Он предназначен для хранения строки или повторяющихся строк.

integer maxCompletionTokens

Необязательный. Максимальное количество токенов, которые можно включить в кандидата ответа. Должно быть положительным целым числом.

integer maxTokens

Необязательный. Максимальное количество токенов, которые можно включить в кандидата ответа. Должно быть положительным целым числом. Это поле устарело в SDK.

number temperature

Необязательный. Управляет случайностью вывода.

number topP

Необязательный. Максимальная совокупная вероятность токенов, которую следует учитывать при выборке.

object ( ResponseFormat ) responseFormat ( ResponseFormat )

Необязательный. Определяет формат ответа. Если не установлено, ответ будет отформатирован как текст.

Тело ответа

В случае успеха ответ представляет собой общий ответ HTTP, формат которого определяется методом.

Метод: embeddings.generate

Генерирует внедрения из модели с учетом входных данных.

Конечная точка

опубликуйте https: / /generativelanguage.googleapis.com /v1beta /embeddings:generate
URL-адрес использует синтаксис транскодирования gRPC .

Тело запроса

Тело запроса содержит данные следующей структуры:

Поля
input value ( Value format)

Необходимый. Входные данные для создания вложений. Может быть строкой или списком строк. SDK поддерживает список номеров и список номеров, но это еще не реализовано.

model string

Необходимый. Модель для создания вложений.

string encodingFormat

Необязательный. Формат кодировки. Должно быть либо «float», либо «base64».

dimensions integer

Необязательный. Размерность создаваемых вложений.

Тело ответа

В случае успеха тело ответа содержит экземпляр GenerateEmbeddingsResponse .

Метод: openai.chat.completions

Генерирует набор ответов из модели с учетом входных данных истории чата.

Конечная точка

опубликовать https: / /generativelanguage.googleapis.com /v1beta /openai /chat /completions
URL-адрес использует синтаксис транскодирования gRPC .

Тело запроса

Тело запроса содержит данные следующей структуры:

Поля
model string

Необходимый. Имя Model , используемой для создания завершения. Имя модели будет иметь префикс «models/», если в нем нет косой черты.

объект messages[] object ( Struct format)

Необходимый. История чата, используемая для создания завершения. Поддерживает одно- и многоповоротные запросы. Примечание. Это полиморфное поле, оно десериализуется в InternalChatMessage.

stream boolean

Необязательный. Следует ли передавать ответ в потоковом режиме или возвращать один ответ.

Если это правда, поле «объект» в ответе будет «chat.completion.chunk». В противном случае это будет «chat.completion».

streamOptions object ( StreamOptions )

Необязательный. Варианты потоковой передачи запросов.

объект tools[] object ( ChatTool )

Необязательный. Набор инструментов, к которым модель может генерировать вызовы. Каждый инструмент декларирует свою подпись.

Значение toolChoice value ( Value format)

Необязательный. Определяет, должна ли модель использовать какой-либо инструмент и какой инструмент использовать. Может быть: - Строка «none» для отключения инструментов. - Строка «авто», чтобы позволить модели решать. — Строка «required», чтобы заставить модель использовать инструмент. — Объект дескриптора имени функции, определяющий используемый инструмент. Последний параметр соответствует следующей схеме: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

Необязательный. Количество завершенных кандидатов, которые необходимо сгенерировать. Должно быть положительным целым числом. По умолчанию 1, если не установлено.

stop value ( Value format)

Необязательный. Набор последовательностей символов, которые останавливают создание выходных данных. Примечание. Это полиморфное поле. Он предназначен для хранения строки или повторяющихся строк.

integer maxCompletionTokens

Необязательный. Максимальное количество токенов, которые можно включить в кандидата ответа. Должно быть положительным целым числом.

integer maxTokens

Необязательный. Максимальное количество токенов, которые можно включить в кандидата ответа. Должно быть положительным целым числом. Это поле устарело в SDK.

number temperature

Необязательный. Управляет случайностью вывода.

number topP

Необязательный. Максимальная совокупная вероятность токенов, которую следует учитывать при выборке.

object ( ResponseFormat ) responseFormat ( ResponseFormat )

Необязательный. Определяет формат ответа. Если не установлено, ответ будет отформатирован как текст.

Тело ответа

В случае успеха ответ представляет собой общий ответ HTTP, формат которого определяется методом.

Метод: openai.embeddings

Генерирует внедрения из модели с учетом входных данных.

Конечная точка

опубликуйте https: / /generativelanguage.googleapis.com /v1beta /openai /embeddings
URL-адрес использует синтаксис транскодирования gRPC .

Тело запроса

Тело запроса содержит данные следующей структуры:

Поля
input value ( Value format)

Необходимый. Входные данные для создания вложений. Может быть строкой или списком строк. SDK поддерживает список номеров и список номеров, но это еще не реализовано.

model string

Необходимый. Модель для создания вложений.

string encodingFormat

Необязательный. Формат кодировки. Должно быть либо «float», либо «base64».

dimensions integer

Необязательный. Размерность создаваемых вложений.

Тело ответа

В случае успеха тело ответа содержит экземпляр GenerateEmbeddingsResponse .

Метод: openai.models

Перечисляет доступные на данный момент модели.

Конечная точка

получить https: / /generativelanguage.googleapis.com /v1beta /openai /models
URL-адрес использует синтаксис транскодирования gRPC .

Тело запроса

Тело запроса должно быть пустым.

Тело ответа

В случае успеха тело ответа содержит экземпляр SdkListModelsResponse .

ЧатИнструмент

Инструмент, к которому модель может генерировать вызовы.

Поля
объект function object ( ChatFunction )

Необходимый. Название инструмента.

type string

Необходимый. Обязательно, должна быть «функция».

JSON-представление
{
  "function": {
    object (ChatFunction)
  },
  "type": string
}

ЧатФункция

Функция, вызовы которой может генерировать модель.

Поля
string name

Необходимый. Имя функции.

string description

Необязательный. Описание функции.

объект parameters object ( Struct format)

Необязательный. Параметры функции.

strict boolean

Необязательный. Является ли проверка схемы строгой. Если это правда, модель завершится ошибкой, если схема недействительна. ПРИМЕЧАНИЕ. В настоящее время этот параметр игнорируется.

JSON-представление
{
  "name": string,
  "description": string,
  "parameters": {
    object
  },
  "strict": boolean
}

Генератэмбеддингсответ

Ответ на встраивание генерации.

Поля
string object

Только вывод. Всегда «встраивание», требуемое SDK.

объект data[] object ( GenerateEmbeddingsEmbedding )

Только вывод. Список запрошенных вложений.

model string

Только вывод. Модель, используемая для создания вложений.

JSON-представление
{
  "object": string,
  "data": [
    {
      object (GenerateEmbeddingsEmbedding)
    }
  ],
  "model": string
}

ГенерироватьEmbeddingsEmbedding

Вектор внедрения, сгенерированный моделью.

Поля
string object

Только вывод. Всегда «встраивание», требуемое SDK.

integer index

Только вывод. Индекс вложения в списке вложений.

значение embedding value ( Value format)

Только вывод. Вектор внедрения, созданный для ввода. Может быть либо списком чисел с плавающей запятой, либо строкой base64, кодирующей список чисел с плавающей запятой с макетом в стиле C (совместимо с Numpy).

JSON-представление
{
  "object": string,
  "index": integer,
  "embedding": value
}

HttpBody

Сообщение, представляющее произвольное тело HTTP. Его следует использовать только для форматов полезной нагрузки, которые не могут быть представлены как JSON, например необработанных двоичных файлов или HTML-страниц.

Это сообщение можно использовать как в потоковых, так и в непотоковых методах API в запросе, а также в ответе.

Его можно использовать в качестве поля запроса верхнего уровня, что удобно, если вы хотите извлечь параметры из 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);

}

Использование этого типа меняет только способ обработки тел запроса и ответа, все остальные функции продолжат работать без изменений.

Поля
string contentType

Значение заголовка HTTP Content-Type, указывающее тип содержимого тела.

строка data string ( bytes format)

Тело HTTP-запроса/ответа в виде необработанного двоичного файла.

Строка в кодировке Base64.

object extensions[]

Метаданные ответа конкретного приложения. Должен быть установлен в первом ответе для API потоковой передачи.

Объект, содержащий поля произвольного типа. Дополнительное поле "@type" содержит URI, идентифицирующий тип. Пример: { "id": 1234, "@type": "types.example.com/standard/id" } .

JSON-представление
{
  "contentType": string,
  "data": string,
  "extensions": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}

Формат ответа

Определяет формат ответа.

Поля
type string

Необходимый. Тип ответа. Может быть: - «текст»: отформатируйте ответ как текст. - «json_object»: отформатируйте ответ как объект JSON. - «jsonSchema»: отформатируйте ответ как объект JSON, соответствующий заданной схеме.

объект jsonSchema object ( ResponseFormatSchema )

Необязательный. Схема JSON, которой нужно следовать. Используется только в том случае, если тип — «jsonSchema».

JSON-представление
{
  "type": string,
  "jsonSchema": {
    object (ResponseFormatSchema)
  }
}

ОтветФорматСхема

Схема ответа.

Поля
string description

Необязательный. Описание объекта, представленного схемой.

string name

Необходимый. Имя типа объекта, представленного схемой.

strict boolean

Необязательный. Является ли проверка схемы строгой. Если это правда, модель завершится ошибкой, если схема недействительна. ПРИМЕЧАНИЕ. В настоящее время этот параметр игнорируется.

объект schema object ( Struct format)

Необязательный. Схема JSON, которой нужно следовать.

JSON-представление
{
  "description": string,
  "name": string,
  "strict": boolean,
  "schema": {
    object
  }
}

SdkListModelsResponse

Ответ для моделей списков.

Поля
string object

Только вывод. Всегда «список», требуемый SDK.

объект data[] object ( SdkModel )

Только вывод. Список запрошенных вложений.

JSON-представление
{
  "object": string,
  "data": [
    {
      object (SdkModel)
    }
  ]
}

СдкМодель

Модельный объект.

Поля
string id

Только вывод. Идентификатор модели.

string object

Только вывод. Всегда «модель», требуемая SDK.

created string ( int64 format)

Только вывод. Временная метка Unix (в секундах), когда была создана модель.

string owned_by

Только вывод. Организация, владеющая моделью.

JSON-представление
{
  "id": string,
  "object": string,
  "created": string,
  "owned_by": string
}

Параметры потока

Варианты потоковой передачи запросов.

Поля
includeUsage boolean

Необязательный. Если установлено, включать в ответ статистику использования.

JSON-представление
{
  "includeUsage": boolean
}