Vai al contenuto principale

Gemini 2.0 Flash: come elaborare documenti di grandi dimensioni senza RAG

Scopri come usare l'enorme finestra di contesto di Gemini 2.0 Flash per creare uno strumento di insight sulle vendite SaaS che risponde a domande di business senza bisogno di RAG.
Aggiornato 29 set 2026  · 12 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

Con una finestra di contesto enorme da un milione di token, Gemini 2.0 Flash è ottimizzato per l'elaborazione ad alta velocità di documenti di grandi dimensioni. In questo tutorial ti spiego come usare Gemini 2.0 Flash per creare uno strumento AI per insight sulle vendite SaaS in grado di:

  • Riassumere le tendenze di vendita tra settori e prodotti.
  • Eseguire l'analisi del sentiment sulle performance di vendita.
  • Rispondere a domande di business su vendite e trend di ricavi.

Anche se ci concentreremo sulla creazione di un'app orientata al SaaS, puoi esplorare altri casi d'uso di Gemini 2.0 in questo video, in cui impari a creare uno strumento locale per creator su YouTube:

Crea uno strumento locale per creator YouTube con Gemini 2.0 Pro

Perché usare Gemini 2.0 Flash invece di RAG?

Gemini 2.0 Flash ha una finestra di contesto di 1.000.000 token, che consente l'elaborazione dell'intero dataset senza bisogno di suddivisione in chunk o meccanismi di retrieval. Inoltre, è conveniente in termini di costi rispetto a modelli più grandi come Gemini Ultra.

Molte applicazioni usano la retrieval-augmented generation (RAG) per l'analisi di dati strutturati, ma Gemini 2.0 Flash elimina la necessità di RAG perché:

  • Il suo ampio limite di token consente l'elaborazione dell'intero dataset in una singola richiesta.
  • Permette l'analisi diretta di dati strutturati, eliminando la complessità del retrieval.
  • Offre un'elaborazione più rapida e conveniente rispetto agli approcci basati su RAG.

Se vuoi usare Gemini 2.0 Flash Lite per ottimizzare i costi, puoi farlo, ma tieni presente che al momento della pubblicazione di questo articolo è limitato a 60 query al minuto ed è disponibile solo nella regione us-central1.

Panoramica: strumento di insight sulle vendite SaaS con Gemini 2.0 Flash

Vediamo i passaggi principali che seguiremo:

  • Si parte caricando e preparando il dataset AWS SaaS Sales da Kaggle.
  • Poi inizializzeremo Google Cloud Vertex AI e Gemini 2.0 Flash per l'elaborazione AI.
  • Successivamente, estrarremo i settori e i prodotti unici per la selezione da parte dell'utente.
  • Useremo Tiktoken per gestire la dimensione del dataset entro il limite di token.
  • I filtri scelti dall'utente attiveranno il calcolo delle metriche chiave di vendita e insight generati dall'AI.
  • L'analisi del sentiment classificherà le performance e una funzione di Q&A fornirà insight legati alle vendite.
  • Infine, integreremo lo strumento in Gradio per un'interazione dinamica e un'esplorazione in tempo reale.

Diagramma di flusso della demo

Passaggio 1: Prerequisiti

Prima di iniziare, assicurati di avere installati i seguenti strumenti e librerie:

  • Python 3.8+
  • Kaggle
  • Google-genai
  • Datasets
  • Tiktoken
  • Gradio

Esegui i seguenti comandi per installare le dipendenze necessarie:

!pip install gradio -q
!pip install --upgrade --quiet google-genai
!pip install datasets -q
!pip install tiktoken -q
!pip install kaggle -q

Una volta installate le dipendenze, esegui i seguenti comandi di import:

import sys
import os
import tiktoken
from datasets import load_dataset
import pandas as pd
import gradio as gr
import vertexai
from vertexai.preview.generative_models import GenerativeModel

Passaggio 2: Carica il dataset

Useremo il dataset AWS SAAS Sales per questo progetto, disponibile su Kaggle. Inizia configurando le credenziali di Kaggle e passando rispettivamente l'autore e il nome del dataset.

# Set Kaggle API credentials
os.environ["KAGGLE_CONFIG_DIR"] = os.path.expanduser("~/.kaggle")

# Download dataset
!kaggle datasets download -d nnthanh101/aws-saas-sales --unzip

Ora che il dataset è stato scaricato nel nostro ambiente, possiamo iniziare a lavorarci. Useremo la libreria pandas per caricare e leggere il dataset dal percorso.

dataset_path = "path_to_your_data.csv"  # Load dataset from specified path
dataset_df = pd.read_csv(dataset_path)  

Questo dataset contiene 9.994 transazioni con colonne quali:

  • Industry: categoria del settore dell'azienda.
  • Product: il prodotto SaaS venduto.
  • Sales: ricavo della transazione.
  • Quantity: numero di licenze vendute.
  • Profit: profitto della transazione.
  • Discount: eventuali sconti applicati.

Passaggio 3: Configurare Google Cloud Vertex AI

Per usare Gemini 2.0 Flash, dobbiamo effettuare l'autenticazione con Google Cloud.

if "google.colab" in sys.modules:
    from google.colab import auth
    auth.authenticate_user()

Per inizializzare Vertex AI, cerca la Vertex AI API e abilitala (assicurati che la fatturazione sia abilitata sul tuo account).

Abilita Vertex AI API

Salva l'ID e la località del progetto per riferimento futuro. L'esecuzione di Gemini 2.0 Flash per questo progetto è costata circa $0,07 per circa cinque chiamate API.

# Set up Google Cloud Vertex AI
PROJECT_ID = "Your_project_id"
LOCATION = "Your_location"
vertexai.init(project=PROJECT_ID, location=LOCATION)
model = GenerativeModel("gemini-2.0-flash")

Per saperne di più su Vertex AI, dai un'occhiata a questo tutorial introduttivo su Vertex AI.

Passaggio 4: Preprocessing dei dati

Per garantire una corretta gestione dei dati, normalizza i nomi delle colonne ed estrai le categorie chiave. Troviamo i settori e i prodotti unici che fungono da sorgente per il nostro markdown nella demo. Se stai usando un dataset diverso, scegli le tue categorie di conseguenza.

# Normalize column names to prevent key errors
df.columns = df.columns.str.strip().str.lower()
print("Dataset columns:", df.columns)  # Debugging

# Extract unique industry names and product categories
unique_industries = sorted(df["industry"].dropna().unique().tolist())
unique_industries.insert(0, "All Industries")  # Add "All Industries" option
unique_products = sorted(df["product"].dropna().unique().tolist())
unique_products.insert(0, "All Products")  # Add "All Products" option

Passaggio 5: conteggio dei token nel dataset

Ora che abbiamo elaborato il nostro dataset, conteremo i token. Poiché Gemini 2.0 Flash ha un limite di 1.000.000 di token, è importante calcolare il numero di token nel dataset prima di passarlo al modello. Questo dataset ha  805447 token.

# Initialize tokenizer (use "cl100k_base" for Gemini/GPT models)
encoder = tiktoken.get_encoding("cl100k_base")

# Choose relevant text columns
text_columns = ['industry', 'product', 'sales', 'quantity', 'discount', 'profit']

# Create a combined text column for tokenization
df["combined_text"] = df[text_columns].astype(str).agg(" | ".join, axis=1)

# Function to count tokens
def count_tokens(texts):
    total_tokens = sum(len(encoder.encode(str(text))) for text in texts)
    return total_tokens

# Calculate total tokens
total_tokens = count_tokens(df["combined_text"].dropna().tolist())
print(f"Total tokens in the dataset: {total_tokens}")

Usiamo Tiktoken per la tokenizzazione come segue:

  • Inizializza il tokenizer: usa il tokenizer cl100k_base di Tiktoken, ottimizzato per i modelli Gemini e GPT.
  • Seleziona le colonne di testo rilevanti: identifica le colonne chiave (industry, product, sales, quantity, discount, profit) per l'analisi AI.
  • Combina le colonne selezionate in un unico campo testuale: converti le colonne in stringhe per evitare incongruenze di tipo e uniscile in combined_text usando " | " come separatore.
  • Definisci una funzione per contare i token: tokenizza ogni riga in combined_text e calcola il numero totale di token su tutte le righe.
  • Calcola i token totali nel dataset: rimuovi i valori NaN, applica la funzione di conteggio dei token e stampa il totale dei token per assicurarti di rispettare il limite di 1M token di Gemini 2.0 Flash.

Passaggio 6: riassumere le tendenze di vendita

Ora possiamo lavorare sulla parte di analisi della demo. Questa funzione genera un riepilogo delle vendite in base al settore e al prodotto selezionati. 

def summarize_sales(industry, product):
    filtered_data = df.copy()

    if industry != "All Industries":
        filtered_data = filtered_data[filtered_data["industry"] == industry]
    if product != "All Products":
        filtered_data = filtered_data[filtered_data["product"] == product]

    if filtered_data.empty:
        return "No sales data available for the selected industry and product."

    # Create sales report
    total_sales = filtered_data["sales"].sum()
    total_quantity = filtered_data["quantity"].sum()
    total_profit = filtered_data["profit"].sum()
    avg_discount = filtered_data["discount"].mean()

    sales_text = f"""
    Sales Data for {industry} - {product}:
    - Total Sales: ${total_sales:,.2f}
    - Total Quantity Sold: {total_quantity}
    - Total Profit: ${total_profit:,.2f}
    - Average Discount: {avg_discount:.2f}%
    """

    # Generate summary using Gemini 2.0 Flash
    response = model.generate_content(sales_text, stream=True)
    response_text = "".join(chunk.text for chunk in response)

    return response_text

La funzione summarize_sales() filtra il dataset in base al settore e al prodotto selezionati, calcola le metriche chiave come vendite totali, quantità venduta, profitto e sconto medio, e formatta i dati in un prompt strutturato. Questo prompt viene quindi passato al modello Gemini 2.0 Flash per generare un riepilogo conciso delle vendite.

Passaggio 7: eseguire l'analisi del sentiment sulle vendite

In modo analogo, definiamo un'altra funzione che esegue l'analisi del sentiment in base al profitto totale. 

def analyze_sales_sentiment(industry, product):
    filtered_data = dataset_df.copy()

    if industry != "All Industries":
        filtered_data = filtered_data[filtered_data["industry"] == industry]
    if product != "All Products":
        filtered_data = filtered_data[filtered_data["product"] == product]

    if filtered_data.empty:
        return "No sales data available for sentiment analysis."

    total_sales = filtered_data["sales"].sum()
    total_profit = filtered_data["profit"].sum()

    # Define sentiment labels based on profit margins
    if total_profit > 500000:
        sentiment_label = "Positive"
    elif total_profit > 100000:
        sentiment_label = "Neutral"
    else:
        sentiment_label = "Negative"

    sentiment_text = f"""
    The total sales for {industry} - {product} is ${total_sales:,.2f}, 
    with a total profit of ${total_profit:,.2f}.
    Based on market trends, this performance is considered {sentiment_label}.
    Analyze the sentiment of sales performance for this product.
    """

    # Generate sentiment analysis using Gemini Flash 2.0
    response = model.generate_content(sentiment_text, stream=True)

    # Collect response text
    response_text = "".join(chunk.text for chunk in response)

    return response_text

La funzione analyze_sales_sentiment() analizza il sentiment delle vendite filtrando il dataset in base al settore e al prodotto selezionati, calcolando vendite totali e profitto totale e generando un'analisi del sentiment con Gemini 2.0 Flash. Il modello viene quindi istruito con un riepilogo strutturato delle performance di vendita, permettendogli di valutare il sentiment in modo dinamico invece di basarsi solo su soglie fisse di profitto.

Passaggio 8: creare l'interfaccia Gradio

Ora abbiamo tutte le funzioni logiche chiave. Procediamo con la costruzione di un'interfaccia interattiva con Gradio.

with gr.Blocks() as demo:
    gr.Markdown("# AI-Powered SaaS Sales Analysis")
    industry_dropdown = gr.Dropdown(choices=unique_industries, label="Select an Industry")
    product_dropdown = gr.Dropdown(choices=unique_products, label="Select a Product")
    summarize_btn = gr.Button("Summarize Sales Trends")
    summary_output = gr.Textbox(label="Sales Trend Summary")
    summarize_btn.click(summarize_sales, inputs=[industry_dropdown, product_dropdown], outputs=summary_output)
    demo.launch(debug=True)

Questo codice crea un'interfaccia Gradio interattiva per l'analisi AI delle vendite SaaS, in cui l'utente può selezionare un settore e un prodotto dai menu a tendina e fare clic su un pulsante per generare un riepilogo delle vendite. Gli input selezionati vengono passati alla funzione summarize_sales(), che elabora i dati e restituisce insight visualizzati in una casella di testo. L'app Gradio viene quindi avviata per l'interazione in tempo reale.

App Gradio

Ecco gli output di un rapido test che ho eseguito. Ho scelto tutti i settori e prodotti, poi ho chiesto al modello di produrre un riepilogo delle vendite e di fare l'analisi del sentiment sui parametri scelti.

Analisi delle vendite

analisi del sentiment

Q&A sui dati di vendita

Conclusione

In questo tutorial, abbiamo creato uno strumento AI per insight sulle vendite SaaS usando Gemini 2.0 Flash, abilitando l'analisi in tempo reale dei dati di vendita SaaS. Abbiamo sfruttato l'ampia finestra di contesto di Gemini 2.0 Flash per elaborare dati strutturati senza RAG e integrato un'interfaccia interattiva basata su Gradio per un'interazione semplice.

Ti invito ad adattare questo tutorial al tuo caso d'uso. Per saperne di più sulla creazione di app con Gemini 2.0, ti consiglio questi tutorial:


Aashi Dutt's photo
Author
Aashi Dutt
LinkedIn
Twitter

Sono una Google Developers Expert in ML (Gen AI), una Kaggle 3x Expert e una Women Techmakers Ambassador con oltre 3 anni di esperienza nel tech. Ho co-fondato una startup health-tech nel 2020 e sto conseguendo un master in informatica al Georgia Tech, con specializzazione in machine learning.

Argomenti
Intelligenza artificiale
Large Language Models

Impara l'AI con questi corsi!

Programma

Sviluppare applicazioni AI

21 ore
Impara a creare applicazioni basate sull'intelligenza artificiale con i più recenti strumenti per sviluppatori di AI, tra cui OpenAI API, Hugging Face e LangChain.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

Mostra AltroMostra Altro