Genera testo utilizzando l'API Gemini

L'API Gemini può generare output di testo da vari tipi di input, tra cui come testo, immagini, video e audio. Puoi utilizzare la generazione di testo per 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 illustra come generare testo utilizzando generateContent e streamGenerateContent su quelle di livello inferiore. Lo stato attivo è impostato sull'output di testo da input di solo testo e testo e immagine. A scopri di più sui prompt multimodali con file video e audio, consulta: Strategie di prompt di file.

Prima di iniziare: configura il progetto e la chiave API

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

Genera testo da input di solo testo

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

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.")
print(response.text)

In questo caso, il prompt ("Scrivi una storia su uno zaino magico") non includere esempi di output, istruzioni di sistema o informazioni di formattazione. È uno zero-shot l'importanza di un approccio umile. Per alcuni casi d'uso, one-shot o Prompt few-shot potrebbe produrre un output più in linea con le aspettative degli utenti. In alcuni casi, puoi anche fornire istruzioni di sistema per aiutare il modello 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 PIL.Image

model = genai.GenerativeModel("gemini-1.5-flash")
organ = PIL.Image.open(media / "organ.jpg")
response = model.generate_content(["Tell me about this instrument", organ])
print(response.text)

Come per i prompt di solo testo, i prompt multimodali possono includere vari approcci e perfezionamenti. A seconda dell'output di questo esempio, aggiungi passaggi alla richiesta o fornisci istruzioni più specifiche. Per saperne di più, consulta Strategie di prompt di file.

Genera uno stream di testo

Per impostazione predefinita, il modello restituisce una risposta dopo aver completato l'intero testo di machine learning. Per ottenere interazioni più rapide, non devi attendere l'intero risultato e al suo posto utilizza 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.

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.", 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. Usare la funzionalità di chat dell'API per raccogliere più serie di domande e risposte, consentendo agli utenti di spostarsi in modo incrementale verso le risposte o ricevere aiuto con problemi multiparte. Questa funzionalità è ideale per le applicazioni che richiedono comunicazione continua, ad esempio chatbot, tutor interattivi o assistenza clienti assistenti.

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

model = genai.GenerativeModel("gemini-1.5-flash")
chat = model.start_chat(
    history=[
        {"role": "user", "parts": "Hello"},
        {"role": "model", "parts": "Great to meet you. What would you like to know?"},
    ]
)
response = chat.send_message("I have 2 dogs in my house.")
print(response.text)
response = chat.send_message("How many paws are in my house?")
print(response.text)

Configura la generazione del testo

Ogni prompt inviato al modello include parametri che controllare il modo in cui il modello genera le risposte. Puoi utilizzare la modalità Da GenerationConfig a configurarli. Se non configuri i parametri, il modello utilizza le opzioni predefinite, che possono variare in base al modello.

L'esempio seguente mostra come configurare diverse opzioni disponibili.

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content(
    "Tell me a story about a magic backpack.",
    generation_config=genai.types.GenerationConfig(
        # Only one candidate for now.
        candidate_count=1,
        stop_sequences=["x"],
        max_output_tokens=20,
        temperature=1.0,
    ),
)

print(response.text)

candidateCount specifica il numero di risposte generate da restituire. Al momento, questo valore può essere impostato solo su 1. Se non viene configurato, il valore predefinito è 1.

stopSequences specifica l'insieme di sequenze di caratteri (fino a 5) che e interrompere la generazione dell'output. Se specificato, l'API si interromperà alla prima apparizione di stop_sequence. La sequenza di interruzioni non sarà inclusa nel tag risposta.

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

temperature controlla la casualità dell'output. Utilizza valori più alti per maggiori risposte creative e valori più bassi per risposte più deterministiche. Valori può variare da [0,0, 2,0].

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 illustra 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:

  • Strategie di richiesta file: L'API Gemini supporta i prompt con dati di testo, immagini, audio e video, noti come prompt multimodali.
  • Istruzioni di sistema: System le istruzioni consentono di orientare il comportamento del modello in base alle esigenze e casi d'uso.
  • Indicazioni per la sicurezza: A volte, l'IA generativa i modelli producono output inaspettati, ad esempio output imprecisi, di parte oppure offensivi. La post-elaborazione e la valutazione umana sono essenziali limitare il rischio di danni derivanti da questi output.