Genera testo utilizzando l'API Gemini

L'API Gemini può generare output di testo da vari tipi di input, tra cui testo, immagini, video e audio. Puoi utilizzare la generazione di testo per varie applicazioni, tra cui:

  • Scrittura creativa
  • Descrizione o interpretazione degli asset multimediali
  • Completamento del testo
  • Riassumere il testo in formato libero
  • Traduzione da una lingua all'altra
  • chatbot,
  • Nuovi casi d'uso

Questa guida mostra come generare testo utilizzando le API generateContent e streamGenerateContent e l'SDK lato server che preferisci. Lo stato attivo è impostato sull'output di testo da input di solo testo e testo e immagine. Per scoprire di più sui prompt multimodali con file video e audio, consulta la sezione Prompt con file multimediali.

Prima di iniziare: configura il progetto e la chiave API

Prima di chiamare l'API Gemini, devi impostare il progetto e configurare la chiave API.

Genera testo da input di solo testo

Il modo più semplice per generare testo con l'API Gemini è fornire al modello un singolo input di solo testo, come mostrato in questo esempio:

import os
import google.generativeai as genai

# Access your API key as an environment variable.
genai.configure(api_key=os.environ['API_KEY'])
# Choose a model that's appropriate for your use case.
model = genai.GenerativeModel('gemini-1.5-flash')

prompt = "Write a story about a magic backpack."

response = model.generate_content(prompt)

print(response.text)

In questo caso, il prompt ("Scrivi una storia su uno zaino magico") non include esempi di output, istruzioni di sistema o informazioni di formattazione. È un approccio zero-shot. Per alcuni casi d'uso, un prompt one-shot o few-shot potrebbe produrre un output più in linea con le aspettative degli utenti. In alcuni casi, potresti anche voler fornire istruzioni di sistema per aiutare il modello a comprendere l'attività o seguire linee guida specifiche.

Genera testo da input di testo e immagine

L'API Gemini supporta input multimodali che combinano testo con file multimediali. L'esempio seguente mostra come generare testo da input di testo e immagine:

import pathlib
import os
import google.generativeai as genai

# Access your API key as an environment variable.
genai.configure(api_key=os.environ['API_KEY'])
# Choose a model that's appropriate for your use case.
model = genai.GenerativeModel('gemini-1.5-flash')

image1 = {
    'mime_type': 'image/jpeg',
    'data': pathlib.Path('image1.jpg').read_bytes()
}

image2 = {
    'mime_type': 'image/jpeg',
    'data': pathlib.Path('image2.jpg').read_bytes()
}

prompt = "What's different between these pictures?"

response = model.generate_content([prompt, image1, image2])
print(response.text)

Come per i prompt di solo testo, i prompt multimodali possono prevedere vari approcci e perfezionamenti. A seconda dell'output dell'esempio, potresti voler aggiungere passaggi al prompt o specificare istruzioni più specifiche. Per scoprire di più, consulta Strategie di richiesta dei file.

Genera uno stream di testo

Per impostazione predefinita, il modello restituisce una risposta dopo aver completato l'intero processo di generazione del testo. Puoi ottenere interazioni più rapide non attendere l'intero risultato e utilizzare invece la modalità flusso per gestire i risultati parziali.

L'esempio seguente mostra come implementare il flusso di dati utilizzando il metodo streamGenerateContent per generare testo da un prompt di input di solo testo.

import os
import google.generativeai as genai

# Access your API key as an environment variable.
genai.configure(api_key=os.environ['API_KEY'])
# Choose a model that's appropriate for your use case.
model = genai.GenerativeModel('gemini-1.5-flash')

prompt = "Write a story about a magic backpack."

response = model.generate_content(prompt, stream=True)

for chunk in response:
  print(chunk.text)
  print("_"*80)

Crea una chat interattiva

Puoi utilizzare l'API Gemini per creare esperienze di chat interattive per i tuoi utenti. La funzionalità di chat dell'API consente di raccogliere più serie di domande e risposte, consentendo agli utenti di passare in modo incrementale verso le risposte o ricevere assistenza per problemi con più parti. Questa funzionalità è ideale per le applicazioni che richiedono una comunicazione costante, come chatbot, tutor interattivi o assistenti dell'assistenza clienti.

Il seguente esempio di codice mostra un'implementazione di base della chat:

import os
import google.generativeai as genai

genai.configure(api_key=os.environ['API_KEY'])

model = genai.GenerativeModel('gemini-1.5-flash')
chat = model.start_chat(history=[])

response = chat.send_message(
    'In one sentence, explain how a computer works to a young child.')

print(response.text)

response = chat.send_message(
    'Okay, how about a more detailed explanation to a high schooler?')

print(response.text)

Configura la generazione del testo

Ogni prompt inviato al modello include parametri che controllano il modo in cui il modello genera le risposte. Puoi utilizzare GenerationConfig per configurare questi parametri. Se non configuri i parametri, il modello utilizza le opzioni predefinite, che possono variare in base al modello.

L'esempio seguente mostra come configurare due delle opzioni disponibili: temperature e maxOutputTokens.

model = genai.GenerativeModel(
    'gemini-1.5-flash',
    generation_config=genai.GenerationConfig(
        max_output_tokens=2000,
        temperature=0.9,
    ))

temperature controlla la casualità dell'output. Usa valori più alti per risposte più creative e valori più bassi per risposte più deterministiche. I valori possono essere compresi tra [0,0 e 2,0].

maxOutputTokens imposta il numero massimo di token da includere in un candidato.

Puoi anche configurare singole chiamate a generateContent:

response = model.generate_content(
    'Write a story about a magic backpack.',
    generation_config = genai.GenerationConfig(
        max_output_tokens=1000,
        temperature=0.1,
    )
)

Tutti i valori impostati sui singoli valori di override della chiamata nel costruttore del modello.

Passaggi successivi

Questa guida mostra come utilizzare generateContent e streamGenerateContent per generare output di testo da input di solo testo e testo e immagine. Per scoprire di più sulla generazione di testo utilizzando l'API Gemini, consulta le seguenti risorse:

  • Prompt con file multimediali: l'API Gemini supporta i prompt con dati di testo, immagini, audio e video, noti anche come prompt multimodali.
  • Istruzioni di sistema: le istruzioni di sistema consentono di orientare il comportamento del modello in base alle tue esigenze e ai tuoi casi d'uso specifici.
  • Indicazioni per la sicurezza: a volte i modelli di IA generativa producono output imprevisti, ad esempio imprecisi, bias o offensivi. La post-elaborazione e la valutazione umana sono essenziali per limitare il rischio di danni.