A API Gemini permite realizar a recuperação semântica dos seus próprios dados. Como é seus dados, isso requer controles de acesso mais rigorosos que as chaves de API.
Este guia de início rápido usa uma abordagem de autenticação simplificada apropriada para um ambiente de teste. Para um ambiente de produção, aprenda cerca de autenticação e autorização antes como escolher as credenciais de acesso adequados para seu app.
Objetivos
- Configurar seu projeto na nuvem para o OAuth
- Configurar o application-default-credentials
- Gerencie as credenciais no seu programa em vez de usar
gcloud auth
Pré-requisitos
Para executar este guia de início rápido, você precisa do seguinte:
Configurar seu projeto na nuvem
Para concluir este guia de início rápido, você precisa configurar seu projeto do Cloud.
1. Ativar a API
Antes de usar as APIs do Google, você precisa ativá-las em um projeto do Google Cloud.
No console do Google Cloud, ative a API Generative Language do Google.
2. Configurar a tela de permissão OAuth
Em seguida, configure a tela de permissão OAuth do projeto e se adicione como um teste usuário. Se você já concluiu essa etapa para seu projeto do Cloud, pule para a na próxima seção.
No console do Google Cloud, acesse Menu > APIs e Serviços > OAuth tela de consentimento.
Selecione o tipo de usuário Externo para o app e clique em Criar.
Preencha o formulário de registro do app (você pode deixar a maioria dos campos em branco). e clique em Salvar e continuar.
Por enquanto, ignore a adição de escopos e clique em Salvar e continuar. Na quando você criar um app para usar fora da sua conta do Google organização, adicione e verifique os escopos de autorização pelo app.
Adicione usuários de teste:
- Em Usuários de teste, clique em Adicionar usuários.
- Insira seu endereço de e-mail e qualquer outro usuário de teste autorizado e, em seguida, Clique em Salvar e continuar.
Analise o resumo do registro do app. Para fazer alterações, clique em Editar. Se quando o registro do app estiver OK, clique em Voltar para o painel.
3. Autorizar credenciais para um aplicativo de computador
Para fazer a autenticação como usuário final e acessar os dados do usuário no app, crie um ou mais IDs do cliente OAuth 2.0. Um ID do cliente é usado para identificar um único app nos servidores OAuth do Google. Caso seu app seja executado em várias plataformas, crie um ID do cliente separado para cada plataforma.
No console do Google Cloud, acesse Menu > APIs e Serviços > Credenciais.
Clique em Criar credenciais > ID do cliente OAuth.
Clique em Tipo de aplicativo > App para computador.
No campo Nome, digite um nome para a credencial. Esse nome só é mostrados no console do Google Cloud.
Clique em Criar. A tela criada pelo cliente OAuth é exibida, mostrando o novo ID e chave secreta do cliente.
Clique em OK. A credencial recém-criada aparece em Cliente OAuth 2.0 IDs.
Clique no botão de download para salvar o arquivo JSON. Ele será salvo como
client_secret_<identifier>.json
e renomeie comoclient_secret.json
e movê-lo para o diretório de trabalho.
Configurar o Application Default Credentials
Para converter o arquivo client_secret.json
em credenciais utilizáveis, transmita o
o local do comando gcloud auth application-default login
argumento --client-id-file
.
gcloud auth application-default login \
--client-id-file=client_secret.json \
--scopes='https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/generative-language.retriever'
A configuração do projeto simplificada neste tutorial aciona uma mensagem de erro "O Google não verificou este app.". Isso é normal. Escolha Continuar.
Isso coloca o token resultante em um local bem conhecido para que ele possa ser acessado
por gcloud
ou pelas bibliotecas de cliente.
gcloud auth application-default login
--no-browser
--client-id-file=client_secret.json
--scopes='https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/generative-language.retriever'
Depois de definir as credenciais padrão do aplicativo (ACD), o cliente na maioria das linguagens, precisam de pouca ou nenhuma ajuda para encontrá-las.
Curl
A maneira mais rápida de testar se isso está funcionando é usá-lo para acessar o REST API usando curl:
access_token=$(gcloud auth application-default print-access-token) project_id=<MY PROJECT ID>
curl -X GET https://generativelanguage.googleapis.com/v1/models \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer ${access_token}" \ -H "x-goog-user-project: ${project_id}" | grep '"name"'
Python
Em Python, as bibliotecas de cliente as encontram automaticamente:
pip install google-generativeai
Um script mínimo para testar pode ser:
import google.generativeai as genai
print('Available base models:', [m.name for m in genai.list_models()])
Próximas etapas
Se isso está funcionando, você está pronto para tentar Recuperação semântica de dados de texto.
Gerenciar credenciais por conta própria [Python]
Em muitos casos, você não terá o comando gcloud
disponível para criar o acesso.
token do ID do cliente (client_secret.json
). O Google fornece bibliotecas em
em muitas linguagens para que você possa
gerenciar esse processo dentro do seu app. Esta seção
demonstra o processo em Python. Há exemplos equivalentes desse tipo
de procedimento, para outros idiomas, disponível na
Documentação da API Drive
1. Instalar as bibliotecas necessárias
Instale a biblioteca de cliente do Google para Python e a biblioteca de cliente do Gemini.
pip install --upgrade -q google-api-python-client google-auth-httplib2 google-auth-oauthlib
pip install google-generativeai
2. Escrever o gerenciador de credenciais
Para minimizar o número de vezes que você precisa clicar no botão de autorização
telas, crie um arquivo chamado load_creds.py
em seu diretório de trabalho para
armazena em cache um arquivo token.json
que pode ser reutilizado mais tarde ou atualizado se expirar.
Comece com o
código a seguir para converter o arquivo client_secret.json
em um token utilizável com
genai.configure
:
import os.path
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
SCOPES = ['https://www.googleapis.com/auth/generative-language.retriever']
def load_creds():
"""Converts `client_secret.json` to a credential object.
This function caches the generated tokens to minimize the use of the
consent screen.
"""
creds = None
# The file token.json stores the user's access and refresh tokens, and is
# created automatically when the authorization flow completes for the first
# time.
if os.path.exists('token.json'):
creds = Credentials.from_authorized_user_file('token.json', SCOPES)
# If there are no (valid) credentials available, let the user log in.
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
else:
flow = InstalledAppFlow.from_client_secrets_file(
'client_secret.json', SCOPES)
creds = flow.run_local_server(port=0)
# Save the credentials for the next run
with open('token.json', 'w') as token:
token.write(creds.to_json())
return creds
3. Criar o programa
Agora, crie o script.py
:
import pprint
import google.generativeai as genai
from load_creds import load_creds
creds = load_creds()
genai.configure(credentials=creds)
print()
print('Available base models:', [m.name for m in genai.list_models()])
4. Executar o programa
No diretório de trabalho, execute o exemplo:
python script.py
Na primeira execução do script, ele abre uma janela do navegador e solicita para autorizar o acesso.
Se ainda não tiver feito login na sua Conta do Google, você será solicitado a fazer login. Se você tiver feito login em várias contas, selecione a que você definiu como "Conta de teste" ao configurar seu projeto.
As informações de autorização são armazenadas no sistema de arquivos. Assim, da próxima vez que você executar o exemplo de código, a autorização não será solicitada.
A autenticação foi configurada.