Puoi creare app e funzionalità Apple basate sull'AI con l'inferenza ibrida utilizzando Firebase AI Logic. L'inferenza ibrida consente di eseguire l'inferenza utilizzando i modelli on-device (in particolare il framework Foundation Models di Apple) quando disponibili e di eseguire il fallback senza problemi ai modelli Google ospitati sul cloud (e viceversa).
Questa pagina descrive come iniziare a utilizzare l'SDK client, oltre a mostrare opzioni e funzionalità di configurazione aggiuntive, come la temperatura.
Tieni presente che l'inferenza on-device tramite Firebase AI Logic è supportata per le app Apple che utilizzano l'SDK Firebase AI Logic v12.13.0 o versioni successive e che vengono eseguite su dispositivi con Apple Intelligence abilitato. È regolata dai requisiti di utilizzo accettabile per il framework Foundation Models di Apple.
Casi d'uso consigliati
L'utilizzo di un modello on-device per l'inferenza offre:
- Maggiore privacy
- Inferenza senza costi
- Funzionalità offline
L'utilizzo della funzionalità ibrida offre:
- Offrire a tutti i clienti un'esperienza app simile, indipendentemente dal dispositivo dell'utente finale
- Migliorare la disponibilità delle funzionalità di AI generativa, indipendentemente dalla connettività internet, dalle limitazioni di quota o dalle funzionalità del dispositivo
Funzionalità, API e dispositivi supportati
Prima di implementare l'inferenza ibrida e on-device utilizzando Firebase AI Logic, esamina questa sezione per capire cosa è supportato per le app Apple.
Funzionalità e funzionalità supportate per l'inferenza on-device
L'inferenza on-device supporta solo la generazione di testo, in particolare le seguenti funzionalità di generazione di testo:
Assicurati di esaminare l'elenco dettagliato dell'inferenza ibrida o on-device non ancora supportata in fondo a questa pagina.
API e dispositivi supportati
L'inferenza in-cloud utilizza il provider Gemini API scelto (l' Gemini Developer API o il Vertex AI Gemini API).
L'inferenza on-device utilizza il framework Foundation Models di Apple, che è disponibile solo sui dispositivi con Apple Intelligence abilitato. Il modello on-device viene scaricato automaticamente quando Apple Intelligence è abilitato.
Inizia
Assicurati di aver esaminato la sezione precedente che descrive le funzionalità, le API e i dispositivi supportati.
Questi passaggi iniziali descrivono la configurazione generale richiesta per qualsiasi richiesta di prompt supportata che vuoi inviare.
Passaggio 1: configura un progetto Firebase e connetti la tua app a Firebase
Accedi alla Firebase console, e seleziona il tuo progetto Firebase.
Nella Firebase console, vai a Servizi AI > AI Logic.
Fai clic su Inizia per avviare un workflow guidato che ti aiuterà a configurare le API richieste e le risorse per il tuo progetto.
Configura il progetto in modo che utilizzi un provider "Gemini API".
Ti consigliamo di iniziare a utilizzare Gemini Developer API. In qualsiasi momento, puoi sempre configurare l'Vertex AI Gemini API (e il relativo requisito di fatturazione).
Per Gemini Developer API, la console abiliterà le API richieste e creerà una chiave API Gemini nel tuo progetto.
Non aggiungere questa chiave API Gemini al codebase della tua app. Scopri di più.Se richiesto nel workflow della console, segui le istruzioni sullo schermo per registrare l'app e collegarla a Firebase.
Continua con il passaggio successivo di questa guida per aggiungere l'SDK alla tua app.
Passaggio 2: aggiungi gli SDK richiesti
Utilizza Swift Package Manager (SPM) per installare e gestire le dipendenze di Xcode. Il supporto ibrido è disponibile solo quando si utilizza SPM.
La libreria Firebase AI Logic fornisce l'accesso alle API per interagire
con i modelli generativi. La libreria è inclusa nell'SDK Firebase per le piattaforme Apple (firebase-ios-sdk).
Se utilizzi già Firebase, assicurati che il pacchetto Firebase sia la versione 12.13.0 o successive.
In Xcode, con il progetto dell'app aperto, vai a File > Add Package Dependencies (File > Aggiungi dipendenze pacchetto).
Quando richiesto, aggiungi il repository dell'SDK delle piattaforme Apple di Firebase:
https://github.com/firebase/firebase-ios-sdkSeleziona la versione più recente dell'SDK.
Seleziona la libreria
FirebaseAILogic.
Al termine, Xcode inizierà automaticamente a risolvere e a scaricare le tue dipendenze in background.
Passaggio 3: inizializza il servizio e crea un'istanza della sessione del modello
|
Fai clic sul tuo provider Gemini API per visualizzare contenuti specifici del provider e codice in questa pagina. |
Configura quanto segue prima di inviare una richiesta di prompt al modello.
Inizializza il servizio per il provider Gemini API scelto.
Crea un'istanza
GenerativeModelSessioncon unHybridModel.Imposta i modelli
primaryesecondaryin base alle tue preferenze. Puoi impostare l'ordine dell'inferenza tentata:Tenta prima l'inferenza on-device, ma consenti il fallback al cloud: imposta
primarysu un modello "di sistema" esecondarysu un modello cloud.Tenta prima l'inferenza in-cloud, ma consenti il fallback all'inferenza on-device: imposta
primarysu un modello cloud esecondarysu un modello "di sistema".
Tieni presente che l'SDK supporta l'impostazione di un solo
model, il che significa che l'SDK tenterà solo l'inferenza on-device o in-cloud. Tuttavia, per un'esperienza ibrida, devi creare unHybridModele impostare i modelliprimaryesecondary.Scopri di più sul comportamento delle "modalità di inferenza" (l'ordine dell'inferenza tentata) in Opzioni di configurazione.
L'esempio seguente mostra come tentare prima l'inferenza on-device, ma consentire il fallback al modello ospitato sul cloud:
// Initialize the Gemini Developer API backend service
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// Initialize a cloud model that supports your use case
let cloudModel = ai.geminiModel(name: "GEMINI_MODEL_NAME")
// Initialize an on-device model that supports your use case
let systemModel = FirebaseAI.SystemLanguageModel.default
// Create a Hybrid Model
// Provide your preferred model as `primary` and your fallback model as `secondary`
// In this example, attempt to use on-device model; otherwise, fall back to cloud.
let hybridModel = HybridModel(
primary: systemModel,
secondary: cloudModel
)
// Create a GenerativeModelSession with the HybridModel created earlier.
let session = firebaseAI.generativeModelSession(
model: hybridModel,
)
Passaggio 4: invia una richiesta di prompt a un modello
Questa sezione mostra come:
Generare testo da input di solo testo
| Prima di provare questo esempio, assicurati di aver completato la sezione Inizia di questa guida. |
Per generare testo da un prompt che contiene testo, utilizza respond(to:) come segue:
// Imports + initialization of Gemini API backend service + creation of model session
// Provide a prompt that contains text
let prompt = "Write a story about a magic backpack."
// To generate text output, call `respond(to:)` with the text input
let response = try await session.respond(to: prompt)
print(response.content)
Trasmettere testo da input di solo testo
| Prima di provare questo esempio, assicurati di aver completato la sezione Inizia di questa guida. |
Puoi ottenere interazioni più rapide senza attendere l'intero risultato della generazione del modello e utilizzando invece lo streaming per gestire i risultati parziali. Per trasmettere il testo generato da un prompt che contiene testo, utilizza streamResponse(to:) come segue:
// Imports + initialization of Gemini API backend service + creation of model session
// Provide a prompt that contains text
let prompt = "Write a story about a magic backpack."
// To stream generated text output, call `streamResponse(to:)` with the text input
let stream = session.streamResponse(to: prompt)
for try await snapshot in stream {
print(snapshot.content)
}
Cos'altro sai fare?
Puoi utilizzare varie opzioni e funzionalità di configurazione aggiuntive per le tue esperienze ibride:
Determina se è stata utilizzata l'inferenza on-device o in-cloud.
Utilizza la configurazione del modello per controllare le risposte (ad esempio la temperatura).
Funzionalità non ancora supportate per l'inferenza ibrida o on-device
Trattandosi di una release sperimentale, non tutte le funzionalità di Firebase AI Logic o dei modelli ospitati sul cloud sono supportate.
Le seguenti funzionalità non sono supportate per le implementazioni ibride o on-device implementazioni: modelli Imagen, API Gemini Live e modelli di prompt templates. Inoltre, non è consigliabile fare affidamento sul conteggio dei token perché il conteggio sarà diverso tra i modelli ospitati sul cloud e on-device, quindi non esiste un fallback intuitivo.
Le seguenti funzionalità non sono ancora supportate per l'inferenza on-device. Se vuoi utilizzare una di queste funzionalità, ti consigliamo di utilizzare solo un modello ospitato sul cloud per un'esperienza più coerente.
Generazione di testo da input multimodali, come immagini, audio, video e documenti (PDF)
Generazione di contenuti multimediali, come immagini, audio o video
Invio di richieste che superano i 4096 token (o circa 3000 parole in inglese).
Fornire al modello on-device strumenti integrati per aiutarlo a generare la risposta (come l'esecuzione del codice, il contesto dell'URL e il grounding con la Ricerca Google)
Il monitoraggio dell'AI nella console Firebase non mostra alcun dato per l'inferenza on-device (inclusi i log on-device). Tuttavia, qualsiasi inferenza che utilizza un modello ospitato sul cloud può essere monitorata come altre inferenze tramite Firebase AI Logic.
Limitazioni aggiuntive
Oltre a quanto sopra, l'inferenza on-device presenta le seguenti limitazioni:
L'utente finale della tua app deve utilizzare un dispositivo con Apple Intelligence abilitato.
La tua app può eseguire l'inferenza on-device solo quando è in primo piano.
Fornisci un feedback sulla tua esperienza con Firebase AI Logic