Questa guida mostra come iniziare a effettuare chiamate all'API Gemini direttamente dalla tua app utilizzando l'SDK Vertex AI per Firebase.
Prerequisiti
Questa guida presuppone che tu abbia familiarità con lo sviluppo di app con Flutter.
Assicurati che l'ambiente di sviluppo e l'app web soddisfino i seguenti requisiti:
- Dart 3.2.0 o versioni successive
(Facoltativo) Dai un'occhiata all'app di esempio.
Puoi provare rapidamente l'SDK, visualizzare un'implementazione completa di vari casi d'uso oppure utilizzare l'app di esempio se non disponi della tua app web. Per utilizzare l'app di esempio, devi connetterla a un progetto Firebase.
Passaggio 1: configura un progetto Firebase e collega la tua app a Firebase
Se hai già un progetto Firebase e un'app collegata a Firebase
Nella console Firebase, vai alla pagina Crea con Gemini, quindi fai clic sulla seconda scheda per avviare un flusso di lavoro che ti aiuta a eseguire le attività seguenti. Se non vedi il layout delle schede, significa che queste attività sono state completate.
Esegui l'upgrade del progetto per utilizzare il piano tariffario di pagamento a consumo Blaze.
Abilita le due API seguenti per il tuo progetto:
aiplatform.googleapis.com
efirebaseml.googleapis.com
.
Vai al passaggio successivo di questa guida per aggiungere l'SDK alla tua app.
Se non disponi già di un progetto Firebase e di un'app collegati a Firebase
Passaggio 2: aggiungi l'SDK
Dopo aver configurato il progetto Firebase e aver collegato l'app a Firebase (vedi il passaggio precedente), puoi aggiungere l'SDK Vertex AI per Firebase.
L'SDK Vertex AI per Flutter (firebase_vertexai
) fornisce l'accesso all'API Gemini.
Scarica il repository
flutterfire
dal ramovertex_ai
in modo da utilizzare la versione di anteprima dell'SDK.L'SDK si troverà in questa directory:
<your local folder>/flutterfire/packages/firebase_vertexai/firebase_vertexai
Nel file
pubspec.yaml
, aggiungi i plug-infirebase_vertexai
efirebase_core
al tuo elencodependencies
.dependencies: flutter: sdk: flutter ... firebase_vertexai: any firebase_core: ^2.27.0
Passaggio 3: inizializza il servizio Vertex AI e il modello generativo
Prima di poter effettuare chiamate API, devi inizializzare il servizio Vertex AI e il modello generativo.
Nel file
pubspec.yaml
, esegui l'override del percorso del pacchetto perfirebase_vertexai
nel percorso in cui hai scaricato l'SDK:// For private preview only dependency_overrides: firebase_vertexai: path: PATH/TO/YOUR/LOCAL/FIREBASE_VERTEXAI_PACKAGE
Nella logica del codice Dart, importa i due plug-in Firebase:
import 'package:firebase_vertexai/firebase_vertexai.dart'; import 'package:firebase_core/firebase_core.dart';
Inizializza il servizio Vertex AI e il modello generativo:
import 'package:firebase_vertexai/firebase_vertexai.dart'; import 'package:firebase_core/firebase_core.dart'; // Initialize FirebaseApp await Firebase.initializeApp(); // Initialize the Vertex AI service and the generative model // Specify a model that supports your use case // Gemini 1.5 Pro is versatile and can accept both text-only and multimodal prompt inputs final model = FirebaseVertexAI.instance.generativeModel(modelName: 'gemini-1.5-pro-preview-0409');
Una volta terminata la guida introduttiva, impara a scegliere un modello Gemini appropriato per il tuo caso d'uso.
Passaggio 4: chiama l'API Gemini
Ora che hai connesso l'app a Firebase, aggiunto l'SDK e inizializzato il servizio Vertex AI e il modello generativo, puoi chiamare l'API Gemini.
Scegli se vuoi trasmettere la risposta in streaming (generateContentStream
) o attendere la risposta fino a quando non viene generato l'intero risultato (generateContent
).
Flussi di dati
Per impostazione predefinita, il modello restituisce una risposta dopo aver completato l'intero processo di generazione. Tuttavia, puoi ottenere interazioni più rapide non aspettando l'intero risultato e utilizzando invece i flussi di dati per gestire i risultati parziali.
Puoi utilizzare generateContentStream()
per trasmettere in streaming il testo generato da una richiesta di prompt che include solo testo:
import 'package:firebase_vertexai/firebase_vertexai.dart';
import 'package:firebase_core/firebase_core.dart';
await Firebase.initializeApp();
// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 Pro is versatile and can accept both text-only and multimodal prompt inputs
final model =
FirebaseVertexAI.instance.generativeModel(modelName: 'gemini-1.5-pro-preview-0409');
// Provide a prompt that contains text
final prompt = [Content.text('Write a story about a magic backpack.')];
// To stream generated text output, call generateContentStream with the text input
final response = model.generateContentStream(prompt);
await for (final chunk in response) {
print(chunk.text);
}
Senza streaming
In alternativa, puoi attendere l'intero risultato anziché eseguire il flusso di dati; il risultato viene restituito solo dopo che il modello ha completato l'intero processo di generazione.
Puoi utilizzare generateContent()
per generare testo da una richiesta di prompt che
include solo testo:
import 'package:firebase_vertexai/firebase_vertexai.dart';
import 'package:firebase_core/firebase_core.dart';
await Firebase.initializeApp();
// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 Pro is versatile and can accept both text-only and multimodal prompt inputs
final model =
FirebaseVertexAI.instance.generativeModel(modelName: 'gemini-1.5-pro-preview-0409');
// Provide a prompt that contains text
final prompt = [Content.text('Write a story about a magic backpack.')];
// To generate text output, call generateContent with the text input
final response = await model.generateContent(prompt);
print(response.text);
Che cos'altro puoi fare?
Scopri di più sui modelli Gemini
Scopri i modelli disponibili per vari casi d'uso e le relative quote e i prezzi.
Prova altre funzionalità dell'API Gemini
- Scopri di più sull'invio di richieste di solo testo.
- Inviare richieste di prompt multimodali con prompt di testo e multimediali (inclusi immagini, PDF, video e audio).
- Creare conversazioni multi-turno (chat).
Scopri come controllare la generazione di contenuti
- Comprendere la progettazione dei prompt, incluse best practice, strategie e prompt di esempio.
- Configura i parametri del modello come la temperatura e il numero massimo di token di output.
- Utilizza le impostazioni di sicurezza per regolare la probabilità di ricevere risposte che potrebbero essere considerate dannose.
Puoi anche sperimentare i prompt e le configurazioni dei modelli utilizzando Vertex AI Studio.
Fornisci feedback sulla tua esperienza con gli SDK Vertex AI per Firebase