A API PaLM permite ajustar modelos com seus próprios dados. Como são seus dados e seus modelos ajustados, isso exige controles de acesso mais rígidos do que as chaves de API.
Este guia de início rápido usa uma abordagem de autenticação simplificada que é adequada para um ambiente de teste. Para um ambiente de produção, saiba mais sobre autenticação e autorização antes de escolher as credenciais de acesso adequadas para o app.
Objetivos
- Configurar o projeto do Cloud para OAuth
- Configurar o application-default-credentials
- Gerenciar credenciais no seu programa em vez de usar
gcloud auth
Pré-requisitos
Para executar este guia de início rápido, você precisa de:
Configurar seu projeto na nuvem
Para concluir este guia de início rápido, primeiro você precisa configurar seu projeto de nuvem.
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 Google Language Transformer.
2. Configurar a tela de permissão OAuth
Em seguida, configure a tela de consentimento do OAuth do projeto e adicione você mesmo como um usuário de teste. Se você já concluiu esta etapa para seu projeto do Cloud, pule para a próxima seção.
No console do Google Cloud, acesse Menu > APIs e serviços > Tela de consentimento OAuth.
Selecione o tipo de usuário Externo para o app e clique em Criar.
Preencha o formulário de registro do app (é possível deixar a maioria dos campos em branco) e clique em Salvar e continuar.
Por enquanto, pule a adição de escopos e clique em Salvar e continuar. No futuro, quando você criar um app para uso fora da sua organização do Google Workspace, será necessário adicionar e verificar os escopos de autorização necessários.
Adicionar usuários de teste:
- Em Test users, clique em Add users.
- Insira seu endereço de e-mail e os outros usuários de teste autorizados. Depois, clique em Salvar e continuar.
Analise o resumo do registro do app. Para fazer alterações, clique em Editar. Se o registro do app estiver correto, clique em Voltar ao painel.
3. Autorizar credenciais para um aplicativo para 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. Se o app for 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 é mostrado apenas no console do Google Cloud.
Clique em Criar. A tela do cliente OAuth criado aparece, mostrando o novo ID e a chave secreta do cliente.
Clique em OK. A credencial recém-criada aparece em IDs do cliente OAuth 2.0.
Clique no botão de download para salvar o arquivo JSON. Ele será salvo como
client_secret_<identifier>.json
, renomeado comoclient_secret.json
e movido para o diretório de trabalho.
Configurar o Application Default Credentials
Para converter o arquivo client_secret.json
em credenciais utilizáveis, transmita o
local do argumento --client-id-file
do comando gcloud auth application-default login
.
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.tuning'
A configuração simplificada do projeto neste tutorial aciona uma caixa de diálogo "O Google não verificou este app". Isso é normal. Escolha "Continuar".
Isso coloca o token resultante em um local 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.tuning'
Depois de definir as credenciais padrão do aplicativo (ADC), as bibliotecas de cliente na maioria dos idiomas 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 a API REST usando o curl:
access_token=$(gcloud auth application-default print-access-token) project_id=<MY PROJECT ID>
curl -X GET https://generativelanguage.googleapis.com/v1beta3/models \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer ${access_token}" \ -H "x-goog-user-project: ${project_id}" | grep '"name"'
"name": "models/chat-bison-001",
"name": "models/text-bison-001",
"name": "models/embedding-gecko-001",
Python
No Python, as bibliotecas de cliente precisam encontrá-las 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()])
print('My tuned models:', [m.name for m in genai.list_tuned_models()])
A resposta esperada é:
Available base models: ['models/chat-bison-001', 'models/text-bison-001', 'models/embedding-gecko-001']
My tuned models: []
Node.js
Para usar essas credenciais com a biblioteca de cliente Node.js, defina a
variável de ambiente GOOGLE_APPLICATION_CREDENTIALS
.
export GOOGLE_APPLICATION_CREDENTIALS='<PATH_TO>/application_default_credentials.json'
Instale a biblioteca de cliente:
npm install @google-ai/generativelanguage
Crie um script mínimo:
const { ModelServiceClient } =
require("@google-ai/generativelanguage").v1beta3;
const MODEL_NAME = "models/text-bison-001";
const client = new ModelServiceClient({});
client
.listModels({})
.then((result) => {
result = result[0]
for (let i = 0; i < result.length; i++) {
console.log(result[i].name);
}
});
A saída precisa ser:
models/chat-bison-001
models/text-bison-001
models/embedding-gecko-001
Próximas etapas
Se estiver funcionando, você já pode tentar ajustar um modelo. Confira Como começar a ajustar.
Gerenciar credenciais por conta própria [Python]
Em muitos casos, o comando gcloud
não está disponível para criar o token de acesso
com base no ID do cliente (client_secret.json
). O Google fornece bibliotecas em
várias linguagens para que você possa gerenciar esse processo no seu app. Esta seção
demonstra o processo em Python. Há exemplos equivalentes desse tipo
de procedimento, para outros idiomas, disponíveis 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 PaLM.
pip install --upgrade -q google-api-python-client google-auth-httplib2 google-auth-oauthlib
pip install google-generativeai
2. Gravar o gerenciador de credenciais
No diretório de trabalho, crie um arquivo chamado load_creds.py
. Comece com o
código abaixo para converter o client_secret.json
em um token que pode ser usado com o
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.tuning']
def load_creds():
"""Converts `oauth-client-id.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(
'oauth-client-id.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
Para minimizar o número de vezes que você precisa clicar nas telas de autorização, o app armazena em cache um arquivo token.json
que pode ser reutilizado mais tarde ou atualiza se
ele tiver expirado.
3. Programar seu 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_tuned_models()])
print('My tuned models:', [m.name for m in genai.list_tuned_models()])
4. Executar o programa
No diretório de trabalho, execute o exemplo:
python script.py
Na primeira vez que você executar o script, ele vai abrir uma janela do navegador e solicitar a autorização de acesso.
Se você ainda não estiver conectado à sua Conta do Google, será solicitado que você faça login. Se você tiver feito login em várias contas, selecione a conta definida como "Conta de teste" ao configurar seu projeto.
As informações de autorização são armazenadas no sistema de arquivos. Assim, na próxima vez que você executar o código de exemplo, não será necessário fazer a autorização.
Você configurou a autenticação.