Puoi chiedere a un Gemini modello di analizzare i file di documenti (come PDF e file di testo normale) che fornisci in linea (codificati in base64) o tramite URL. Quando utilizzi Firebase AI Logic, puoi effettuare questa richiesta direttamente dalla tua app.
Con questa funzionalità, puoi:
- Analizzare diagrammi, grafici e tabelle all'interno dei documenti
- Estrarre informazioni in formati di output strutturati
- Rispondere a domande sui contenuti visivi e di testo nei documenti
- Riassumere i documenti
- Trascrivere i contenuti dei documenti (ad esempio in HTML), conservando layout e formattazione, per l'utilizzo in applicazioni downstream (ad esempio nelle pipeline RAG)
Questa guida riguarda la generazione di testo da input di documenti (come PDF), ma puoi anche generare immagini da input di documenti.
Vai agli esempi di codice Vai al codice per le risposte in streaming
|
Consulta altre guide per ulteriori opzioni per lavorare con i documenti (come i PDF) Genera output strutturato Chat a più turni |
Prima di iniziare
|
Fai clic sul tuo fornitore Gemini API per visualizzare contenuti specifici del fornitore e codice in questa pagina. |
Se non l'hai ancora fatto, completa la
guida introduttiva, che descrive come
configurare il progetto Firebase, collegare l'app a Firebase, aggiungere l'SDK,
inizializzare il servizio di backend per il fornitore Gemini API scelto e
creare un'istanza di GenerativeModel.
Per testare e iterare sui prompt, ti consigliamo di utilizzare Google AI Studio.
Modelli che supportano questa funzionalità
Questa guida riguarda la generazione di testo da input di documenti (come PDF) ed è applicabile ai seguenti Gemini modelli:
gemini-3.1-pro-previewgemini-3.7-flash(e i modelli precedentigemini-3.6-flashegemini-3.5-flash)gemini-3.5-flash-lite(e il modello precedentegemini-3.1-flash-lite)
I modelli Gemini 2.5 di uso generale supportano questa funzionalità, ma sono tutti ritirati.
Genera testo da file PDF (codificati in base64)
|
Prima di provare questo esempio, completa la sezione Prima di iniziare di questa guida per configurare il progetto e l'app. In questa sezione, fai clic anche su un pulsante per il Gemini API fornitore dell'API Gemini scelto in modo da visualizzare contenuti specifici del fornitore in questa pagina. |
Puoi chiedere a un modello Gemini di
generare testo utilizzando prompt con testo e PDF, fornendo il mimeType di ogni file di
input e il file stesso. Trova
i requisiti e i consigli per i file di input
più avanti in questa pagina.
Swift
Puoi chiamare
generateContent()
per generare testo da input multimodali di testo e PDF.
import FirebaseAILogic
// Initialize the Gemini Developer API backend service.
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// Create a `GenerativeModel` instance with a model that supports your use case.
let model = ai.generativeModel(modelName: "gemini-3.7-flash")
// Provide the PDF as `Data` with the appropriate MIME type
let pdf = try InlineDataPart(data: Data(contentsOf: pdfURL), mimeType: "application/pdf")
// Provide a text prompt to include with the PDF file
let prompt = "Summarize the important results in this report."
// To generate text output, call `generateContent` with the PDF file and text prompt
let response = try await model.generateContent(pdf, prompt)
// Print the generated text, handling the case where it might be nil
print(response.text ?? "No text in response.")
Kotlin
Puoi chiamare
generateContent()
per generare testo da input multimodali di testo e PDF.
// Initialize the Gemini Developer API backend service.
// Create a `GenerativeModel` instance with a model that supports your use case.
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
.generativeModel("gemini-3.7-flash")
val contentResolver = applicationContext.contentResolver
// Provide the URI for the PDF file you want to send to the model
val inputStream = contentResolver.openInputStream(pdfUri)
if (inputStream != null) { // Check if the PDF file loaded successfully
inputStream.use { stream ->
// Provide a prompt that includes the PDF file specified above and text
val prompt = content {
inlineData(
bytes = stream.readBytes(),
mimeType = "application/pdf" // Specify the appropriate PDF file MIME type
)
text("Summarize the important results in this report.")
}
// To generate text output, call `generateContent` with the prompt
val response = model.generateContent(prompt)
// Log the generated text, handling the case where it might be null
Log.d(TAG, response.text