PaLM API umożliwia dostrajanie modeli na podstawie Twoich danych. To Twoje dane i Twoje dostrojone modele, więc wymagają bardziej rygorystycznej kontroli dostępu niż klucze API.
W tym krótkim wprowadzeniu używamy uproszczonej metody uwierzytelniania, która jest odpowiednia dla środowiska testowego. W przypadku środowiska produkcyjnego dowiedz się więcej o uwierzytelniania i autoryzacji, zanim wybierzesz dane logowania odpowiednie dla aplikacji.
Cele
- Konfigurowanie protokołu OAuth w projekcie w chmurze
- Skonfiguruj domyślne dane logowania aplikacji
- Zarządzaj danymi logowania w programie, zamiast używać usługi
gcloud auth
Wymagania wstępne
Aby uruchomić to krótkie wprowadzenie, musisz mieć:
Skonfiguruj projekt w chmurze
Aby skorzystać z tego krótkiego wprowadzenia, musisz najpierw skonfigurować projekt w chmurze.
1. Włącz API
Zanim zaczniesz korzystać z interfejsów API Google, musisz włączyć je w projekcie Google Cloud.
W konsoli Google Cloud włącz interfejs Google Generative Language API.
2. Konfigurowanie ekranu zgody OAuth
Następnie skonfiguruj ekran zgody OAuth w projekcie i dodaj siebie jako użytkownika testowego. Jeśli ten krok został już ukończony w Twoim projekcie Cloud, przejdź do następnej sekcji.
W konsoli Google Cloud otwórz Menu > Interfejsy API i usługi > Ekran zgody OAuth.
Jako typ użytkownika aplikacji wybierz Zewnętrzny, a potem kliknij Utwórz.
Wypełnij formularz rejestracji aplikacji (większość pól możesz pozostawić puste), a potem kliknij Zapisz i kontynuuj.
Na razie możesz pominąć dodawanie zakresów i kliknąć Zapisz i kontynuuj. W przyszłości, gdy będziesz tworzyć aplikację do użytku poza organizacją Google Workspace, musisz dodać i zweryfikować zakresy autoryzacji wymagane przez tę aplikację.
Dodawanie użytkowników testowych:
- W sekcji Użytkownicy testowi kliknij Dodaj użytkowników.
- Wpisz swój adres e-mail i adresy pozostałych upoważnionych użytkowników testowych, a następnie kliknij Zapisz i kontynuuj.
Przejrzyj podsumowanie rejestracji aplikacji. Aby wprowadzić zmiany, kliknij Edytuj. Jeśli rejestracja aplikacji wygląda OK, kliknij Back to Dashboard (Powrót do panelu).
3. Autoryzowanie danych logowania dla aplikacji komputerowej
Aby uwierzytelnić się jako użytkownik i uzyskać dostęp do danych użytkownika w aplikacji, musisz utworzyć co najmniej 1 identyfikator klienta OAuth 2.0. Identyfikator klienta służy do identyfikowania pojedynczej aplikacji na serwerach OAuth Google. Jeśli Twoja aplikacja działa na wielu platformach, musisz utworzyć oddzielny identyfikator klienta dla każdej z nich.
W konsoli Google Cloud wybierz Menu > Interfejsy API i usługi > Dane logowania.
Kliknij Utwórz dane logowania > Identyfikator klienta OAuth.
Kliknij Typ aplikacji > Aplikacja komputerowa.
W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest widoczna tylko w konsoli Google Cloud.
Kliknij Utwórz. Pojawi się ekran utworzony przez klienta OAuth, na którym będą wyświetlane nowe identyfikatory i tajny klucz klienta.
Kliknij OK. Nowo utworzone dane logowania pojawią się w sekcji Identyfikatory klienta OAuth 2.0.
Kliknij przycisk pobierania, aby zapisać plik JSON. Zostanie on zapisany pod nazwą
client_secret_<identifier>.json
. Nazwa zostanie zmieniona naclient_secret.json
i przeniesiona do katalogu roboczego.
Skonfiguruj domyślne dane logowania do aplikacji
Aby przekonwertować plik client_secret.json
na użyteczne dane logowania, przekaż jego lokalizację argumentu --client-id-file
polecenia 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'
Uproszczona konfiguracja projektu opisana w tym samouczku powoduje wyświetlenie okna „Ta aplikacja nie została zweryfikowana przez Google”. Jest to normalne, wybierz „kontynuuj”.
Wynikowy token zostanie umieszczony w dobrze znanej lokalizacji, dzięki czemu gcloud
lub biblioteki klienta będą mieć do niego dostęp.
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'
Po ustawieniu domyślnych danych logowania aplikacji (ACD) biblioteki klienta w większości języków potrzebują minimum pomocy, aby je znaleźć.
Do skrętu
Najszybszym sposobem na sprawdzenie, czy wszystko działa, jest użycie go do dostępu do reszty interfejsu API za pomocą narzędzia 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
W Pythonie biblioteki klienta powinny znajdować je automatycznie:
pip install google-generativeai
Minimalny skrypt do przetestowania może wyglądać tak:
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()])
Oczekiwane dane wyjściowe to:
Available base models: ['models/chat-bison-001', 'models/text-bison-001', 'models/embedding-gecko-001']
My tuned models: []
Node.js
Aby używać tych danych logowania w bibliotece klienta Node.js, ustaw zmienną środowiskową GOOGLE_APPLICATION_CREDENTIALS
.
export GOOGLE_APPLICATION_CREDENTIALS='<PATH_TO>/application_default_credentials.json'
Zainstaluj bibliotekę klienta:
npm install @google-ai/generativelanguage
Utwórz minimalny skrypt:
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);
}
});
Dane wyjściowe powinny wyglądać tak:
models/chat-bison-001
models/text-bison-001
models/embedding-gecko-001
Dalsze kroki
Jeśli to działa, możesz spróbować samodzielnie dostroić model. Przeczytaj artykuł Jak zacząć dostrajanie.
Samodzielne zarządzanie danymi logowania [Python]
W wielu przypadkach nie będziesz mieć dostępnego polecenia gcloud
, które pozwala utworzyć token dostępu z identyfikatora klienta (client_secret.json
). Google udostępnia biblioteki w wielu językach, które umożliwiają zarządzanie tym procesem w aplikacji. W tej sekcji przedstawiamy ten proces w języku Python. W dokumentacji interfejsu API Dysku znajdują się równoważne przykłady tej procedury w innych językach.
1. Zainstaluj niezbędne biblioteki
Zainstaluj bibliotekę klienta Google dla języka Python i bibliotekę klienta PaLM.
pip install --upgrade -q google-api-python-client google-auth-httplib2 google-auth-oauthlib
pip install google-generativeai
2. Zapisywanie menedżera danych logowania
W katalogu roboczym utwórz plik o nazwie load_creds.py
. Zacznij od tego kodu, aby przekonwertować client_secret.json
na token, którego można używać w 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
Aby zminimalizować liczbę konieczności przechodzenia między ekranami autoryzacji, jeśli zapisuje w pamięci podręcznej plik token.json
, który może zostać użyty później, lub odśwież, jeśli utraci ważność.
3. Tworzenie programu
Teraz utwórz 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. Uruchom program
W katalogu roboczym uruchom przykład:
python script.py
Przy pierwszym uruchomieniu skryptu otwiera się okno przeglądarki z prośbą o autoryzację dostępu.
Jeśli wcześniej nie zalogujesz się na konto Google, pojawi się prośba o zalogowanie. Jeśli w danym momencie korzystasz z wielu kont, podczas konfigurowania projektu wybierz to, które jest ustawione jako „Konto testowe”.
Informacje o autoryzacji są przechowywane w systemie plików, więc przy następnym uruchomieniu przykładowego kodu nie pojawi się prośba o autoryzację.
Uwierzytelnianie zostało skonfigurowane.