Esta página explica como formatar pedidos de API para o Gemini no Google Distributed Cloud (GDC) air-gapped usando os detalhes do corpo do pedido do ponto final Chat Completions da OpenAI. Ao seguir este formato, pode integrar facilmente as capacidades avançadas do Gemini nas suas aplicações enquanto usa a estrutura da API OpenAI.
A família de modelos Gemini inclui modelos que funcionam com pedidos de comandos multimodais. O termo multimodal indica que pode usar mais do que uma modalidade ou tipo de entrada num comando. Para mais informações, consulte o artigo Comandos de design.
Para mais informações sobre as descrições genéricas dos tipos, métodos e campos gerados para a biblioteca gRPC, consulte a referência do gRPC do Gemini.
Antes de começar
Antes de formatar os pedidos da API, certifique-se de que cumpre os seguintes pré-requisitos:
- Saiba mais sobre as capacidades do Gemini na GDC.
- Comece a usar os requisitos mínimos do projeto para fazer pedidos de API para o Gemini.
- Identifique o ID do ponto final do modelo Gemini que quer usar nos seus pedidos. Selecionar um modelo específico permite-lhe usar as respetivas capacidades únicas para as suas tarefas. Veja os modelos do Gemini disponíveis no GDC.
- Compreenda como criar os seus comandos cuidadosamente para obter as respostas esperadas do Gemini. Experimente diferentes estilos e formatos de comandos para otimizar o resultado. Para mais informações, consulte o artigo Introdução aos comandos.
- Explore os vários parâmetros disponíveis no ponto final Chat Completions da OpenAI para controlar o comportamento do Gemini. Ajuste parâmetros como
temperature,max_completion_tokensetop_ppara controlar a criatividade, o comprimento e a diversidade do texto gerado. Para mais informações, consulte o artigo Faça experiências com parâmetros.
Sintaxe do pedido
Os exemplos seguintes contêm a sintaxe que tem de usar nos seus pedidos API para gerar uma resposta do modelo:
Python
import openai
client = openai.OpenAI()
model_response = client.chat.completions.create(
model = "MODEL_ID",
messages = [
{
...
}
]
...
)
print(model_response)
curl
curl \
-X POST "https://ENDPOINT:443/v1/projects/PROJECT/locations/PROJECT/chat/completions" \
-H "Content-Type: application/json; charset=utf-8" \
-H "Authorization: Bearer $(gdcloud auth print-identity-token)" \
-d '{
"model_id": "MODEL_ID",
"messages" = [
{
...
}
]
...
}'
Parâmetros da API
Esta secção contém uma lista dos parâmetros mais importantes que pode definir no corpo do pedido dos seus pedidos de API para o Gemini no GDC e o corpo da resposta que o modelo tem de devolver. Para a referência completa da API do ponto final Chat Completions da OpenAI, consulte https://platform.openai.com/docs/api-reference/chat.
Corpo do pedido
{
"messages" = [
{
"role": string,
"content": [
{
"type": "image_url",
"image_url": {
"url": string
}
},
{
"type": "input_audio",
"input_audio": {
"data": string,
"format": string
}
},
{
"type": "audio_url",
"audio_url": {
"url": string
}
},
{
"type": "input_video",
"input_video": {
"data": string,
"format": string
}
},
{
"type": "video_url",
"video_url": {
"url": string
}
},
{
"type": "input_document",
"input_document": {
"data": string,
"format": string
}
},
{
"type": "document_url",
"document_url": {
"url": string
}
}
]
}
],
"temperature": number,
"max_completion_tokens": integer,
"top_p": number,
"n": integer,
"stop": string,
"user": string
}
A tabela seguinte descreve os campos principais e as respetivas descrições no corpo do pedido para o ponto final Chat Completions da OpenAI quando usado com o Gemini:
| Parâmetros | ||
|---|---|---|
| Nome do campo | Descrição | |
|
Obrigatório: O modelo do Gemini a usar. Para mais informações, consulte os modelos do Gemini disponíveis. |
|
|
Obrigatório: Uma lista de mensagens que compõem a conversa atual com o modelo. Cada mensagem tem um São suportados diferentes tipos de mensagens (modalidades), como texto, imagens, áudio, vídeos e documentos. |
|
|
Obrigatório: A função do autor da mensagem, que pode ser uma das seguintes:
|
|
|
Obrigatório: O conteúdo da mensagem do sistema, do utilizador ou do assistente. O valor é uma única instância para consultas de uma única interação. Para consultas com várias interações, |
|
|
Opcional: A aleatoriedade do texto gerado. Os valores mais baixos (mais próximos de A predefinição é |
|
|
Opcional: O número máximo de tokens a gerar na resposta, incluindo tokens de saída visíveis e tokens de raciocínio. |
|
|
Opcional: A probabilidade de amostragem do núcleo. Os valores mais elevados (mais próximos de A predefinição é |
|
|
Opcional: O número de conclusões a gerar para cada comando. A predefinição é |
|
|
Opcional: Uma lista de strings que, quando encontradas, interrompem o processo de geração de texto. A predefinição é |
|
|
Opcional: Um identificador exclusivo do utilizador final. Este parâmetro permite-lhe acompanhar os padrões de utilização e personalizar as respostas. |
|
content
Este campo é o tipo de dados estruturados base que contém o conteúdo multipartes de uma mensagem.
Se a entrada for um comando de texto, o valor deste campo é uma string. No entanto, para comandos
multimodais, este campo consiste numa matriz que contém duas propriedades principais
em cada objeto: type e INPUT. A propriedade type
denota o tipo de conteúdo da entrada multimodal, enquanto a propriedade
INPUT contém o elemento de entrada, representado como
dados codificados em base64 ou um URL de um contentor de armazenamento do GDC.
A tabela seguinte descreve os principais campos content e as respetivas descrições para comandos
multimodais:
| Nome do campo | Descrição | |
|---|---|---|
|
Obrigatório: O tipo de conteúdo para comandos multimodais. Os valores aceitáveis incluem o seguinte:
|
|
|
Obrigatório: A entrada de conteúdo para comandos multimodais. O nome deste campo tem de ser igual ao valor especificado no campo Por isso, o nome deste campo é um dos seguintes:
Cada campo de entrada tem um |
|
|
Opcional: Se o conteúdo de entrada for fornecido como um URL, o caminho para o ficheiro num contentor de armazenamento do GDC. No caso das imagens, este campo pode conter dados codificados em Base64 em vez de um URL. |
|
|
Opcional: Se o conteúdo de entrada for fornecido como dados codificados em base64, os dados binários são convertidos numa string de carateres. No caso das imagens, os dados codificados em Base64 são fornecidos no campo |
|
|
Opcional: Se o conteúdo de entrada for fornecido no campo Consoante os dados de entrada, são suportados diferentes formatos. Para mais informações, consulte os tipos MIME para imagens, áudio, vídeos e documentos. |
|
Corpo da resposta
{
"id": string,
"object": string,
"created": integer,
"model": string,
"choices": [
{
"index": integer,
"message": {
"role": string,
"content": string,
"refusal": null
},
"logprobs": null,
"finish_reason": string
}
],
"usage": {
"completion_tokens": integer,
"prompt_tokens": integer,
"total_tokens": integer
},
"system_fingerprint": string
}
A tabela seguinte descreve os campos principais e as respetivas descrições no corpo da resposta devolvido pelo modelo com base na entrada fornecida:
| Nome do campo | Descrição | |
|---|---|---|
|
Um identificador exclusivo do texto gerado. |
|
|
O tipo de objeto, que é sempre |
|
|
A data/hora em segundos de quando o texto é gerado. |
|
|
O modelo usado para gerar o texto. |
|
|
Uma lista de opções de geração de texto. Este campo pode conter várias opções se |
|
|
O índice da escolha na lista de escolhas. |
|
|
Uma mensagem de geração de texto gerada pelo modelo. Este campo contém as seguintes propriedades:
|
|
|
Informações de probabilidade do registo para a escolha. |
|
|
O motivo pelo qual o modelo parou de gerar tokens. O valor é um dos seguintes:
|
|
|
Estatísticas de utilização do pedido. |
|
|
Número de tokens no texto gerado. |
|
|
Número de tokens no comando. |
|
|
Número total de tokens no comando e no texto gerado. |
|
|
A configuração de back-end que o modelo usa para ser executado. |
|
Exemplos
Esta secção contém um exemplo do corpo do pedido e da resposta de geração de texto que o modelo tem de devolver.
Exemplo de pedido
O exemplo seguinte mostra os detalhes de um corpo do pedido que envia um comando ao Gemini para gerar texto. O exemplo contém controlos de temperatura e de tokens máximos. Para ver detalhes de implementação, consulte os artigos Envie um comando de texto ou Envie um comando multimodal.
{
"messages": [
{
"role": "system",
"content": "You are a helpful and informative assistant."
},
{
"role": "user",
"content": "What is the capital of France?"
}
],
"temperature": 0.7,
"max_completion_tokens": 100
}
Exemplo de resposta
O exemplo seguinte mostra os detalhes de uma resposta de geração de texto devolvida pelo modelo:
{
"id": "",
"object": "",
"created": 0,
"model": "",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "The capital of France is Paris.\n",
"refusal": null
},
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"completion_tokens": 7,
"prompt_tokens": 8,
"total_tokens": 15
},
"system_fingerprint": ""
}