Ana içeriğe atla

Gemini 2.0 Flash: RAG Olmadan Büyük Belgeler Nasıl İşlenir

Gemini 2.0 Flash'in devasa bağlam penceresini kullanarak RAG gerektirmeden iş sorgularını yanıtlayan bir SaaS satış içgörüleri aracı oluşturmayı öğrenin.
Güncel 3 Eki 2026  · 12 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Bir milyon tokenlık devasa bir bağlam penceresine sahip olan Gemini 2.0 Flash, büyük belgelerin yüksek hızda işlenmesi için optimize edilmiştir. Bu eğitimde, Gemini 2.0 Flash'i kullanarak aşağıdakileri yapabilen yapay zekâ destekli bir SaaS satış içgörüleri aracı oluşturmayı nasıl yapacağınızı açıklayacağım:

  • Sektörler ve ürünler genelinde satış trendlerini özetleme.
  • Satış performansı üzerinde duygu analizi yapma.
  • Satış ve gelir trendleriyle ilgili iş sorularını yanıtlama.

Odak noktamız SaaS odaklı bir uygulama oluşturmak olacak; ancak Gemini 2.0’ın kullanım alanlarını bu videoda daha fazla keşfedebilir, yerel bir YouTube içerik oluşturucu aracının nasıl yapılacağını öğrenebilirsiniz:

Gemini 2.0 Pro ile Yerel Bir YouTube İçerik Oluşturucu Aracı Oluşturun

Neden RAG Yerine Gemini  2.0 Flash Kullanmalı?

Gemini 2.0 Flash, 1.000.000 tokenlık bir bağlam penceresine sahiptir; bu, veri kümesinin parçalara ayrılmasına veya alma mekanizmalarına gerek kalmadan tüm veri kümesinin işlenmesine olanak tanır. Ayrıca, Gemini Ultra gibi daha büyük modellere kıyasla maliyet açısından daha uygundur.

Birçok uygulama, alma ile artırılmış üretim (RAG) yöntemini yapılandırılmış veri analizi için kullanır; ancak Gemini 2.0 Flash, şu nedenlerle RAG ihtiyacını ortadan kaldırır:

  • Geniş token sınırı, tek bir istekte tüm veri kümesinin işlenmesini sağlar.
  • Doğrudan yapılandırılmış veri analizi yapılmasına olanak tanır ve alma karmaşıklığını ortadan kaldırır.
  • RAG tabanlı yaklaşımlara kıyasla daha hızlı ve daha ekonomik işlem sağlar.

Maliyeti optimize etmek için Gemini 2.0 Flash Lite kullanmak isterseniz yapabilirsiniz; ancak bu makalenin yayımlandığı anda, dakikada 60 sorguyla sınırlıdır ve yalnızca us-central1 bölgesinde kullanılabilmektedir.

Genel Bakış: Gemini 2.0 Flash ile SaaS Satış İçgörüleri Aracı

İzleyeceğimiz ana adımları özetleyelim:

  • Süreç, Kaggle'dan AWS SaaS Sales veri kümesini yükleyip hazırlamakla başlar.
  • Daha sonra, yapay zekâ işlemesi için Google Cloud Vertex AI ve Gemini 2.0 Flash'i başlatacağız.
  • Ardından kullanıcı seçimi için benzersiz sektörleri ve ürünleri çıkaracağız.
  • Veri kümesinin boyutunu token sınırında tutmak için Tiktoken kullanacağız.
  • Kullanıcı tarafından seçilen filtreler, temel satış metriklerinin hesaplanmasını ve yapay zekâ destekli içgörülerin üretilmesini tetikleyecek.
  • Duygu analizi performansı sınıflandıracak ve Soru-Cevap özelliği satışla ilgili içgörüler sunacak.
  • Son olarak, aracı dinamik kullanıcı etkileşimi ve gerçek zamanlı keşif için Gradio ile entegre edeceğiz.

Demoya ait akış şeması

Adım 1: Ön Koşullar

Başlamadan önce, aşağıdaki araç ve kütüphanelerin kurulu olduğundan emin olalım:

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

Gerekli bağımlılıkları kurmak için aşağıdaki komutları çalıştırın:

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

Yukarıdaki bağımlılıklar kurulduktan sonra, aşağıdaki import komutlarını çalıştırın:

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

Adım 2: Veri Kümesini Yükleme

Bu proje için AWS SAAS Sales veri kümesini kullanacağız; bu veri kümesi Kaggle'da mevcuttur. Önce Kaggle kimlik bilgilerini ayarlayın ve sırasıyla yazar ile veri kümesi adını iletin.

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

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

Artık veri kümesi ortamımıza indirildiğine göre, onunla çalışmaya başlayabiliriz. Veri kümesini yoldan yüklemek ve okumak için pandas kütüphanesini kullanacağız.

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

Bu veri kümesi, aşağıdaki sütunlara sahip 9.994 işlem içerir:

  • Industry: Şirketin sektör kategorisi.
  • Product: Satılan SaaS ürünü.
  • Sales: İşlemden elde edilen gelir.
  • Quantity: Satılan lisans sayısı.
  • Profit: İşlemden elde edilen kâr.
  • Discount: Uygulanan indirimler.

Adım 3: Google Cloud Vertex AI'ı Kurma

Gemini 2.0 Flash'i kullanmak için Google Cloud ile kimlik doğrulaması yapmamız gerekir.

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

Vertex AI'ı başlatmak için Vertex AI API'sini arayın ve etkinleştirin (hesabınızda faturalandırmanın etkin olduğundan emin olun).

Vertex AI API'yi etkinleştirin

Projenin kimliğini (ID) ve konumunu gelecekte başvurmak üzere kaydedin. Bu proje için Gemini 2.0 Flash çalıştırmanın maliyeti, yaklaşık beş API çağrısı için yaklaşık 0,07 ABD doları oldu.

# 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")

Vertex AI hakkında daha fazla bilgi edinmek için Vertex AI üzerine bu giriş niteliğindeki eğitime göz atın.

Adım 4: Veri Ön İşleme

Doğru veri işleme için sütun adlarını normalleştirin ve temel kategorileri çıkarın. Demoda markdown kaynağı olarak görev yapan benzersiz sektörleri ve ürünleri buluyoruz. Farklı bir veri kümesi kullanıyorsanız, kategorilerinizi buna göre seçin.

# 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

Adım 5: Veri Kümesindeki Tokenları Sayma

Artık veri kümemizi işlediğimize göre tokenları sayacağız. Gemini 2.0 Flash'in 1.000.000 tokenlık sınırı olduğundan, veri kümesini modele iletmeden önce token sayısını hesaplamak önemlidir. Bu veri kümesinde  805447 token bulunmaktadır.

# 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}")

Aşağıdaki şekilde Tiktoken kullanıyoruz:

  • Tokenizer'ı başlatın:  Gemini ve GPT modelleri için optimize edilmiş Tiktoken'ın cl100k_base tokenizer'ını kullanın.
  • İlgili metin sütunlarını seçin: Yapay zekâ analizi için (industry, product, sales, quantity, discount, profit) gibi temel sütunları belirleyin.
  • Seçilen sütunları tek bir metin alanında birleştirin: Tür uyumsuzluklarından kaçınmak için sütunları stringe dönüştürün ve " | " ayırıcıyı kullanarak combined_text içinde birleştirin.
  • Tokenları saymak için bir işlev tanımlayın: combined_text içindeki her satırı tokenize edin ve tüm satırlardaki toplam token sayısını hesaplayın.
  • Veri kümesindeki toplam tokenları hesaplayın: NaN değerlerini kaldırın, token sayma işlevini uygulayın ve Gemini 2.0 Flash’in 1M token sınırına uyumu doğrulamak için toplam tokenları yazdırın.

Adım 6: Satış Trendlerini Özetleme

Artık demonun analist kısımları üzerinde çalışabiliriz. Bu işlev, seçilen sektör ve ürüne göre bir satış özeti üretir. 

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

summarize_sales() işlevi, seçilen sektör ve ürüne göre veri kümesini filtreler; toplam satış, satılan miktar, kâr ve ortalama indirim gibi temel satış metriklerini hesaplar ve verileri yapılandırılmış bir isteme dönüştürür. Bu istem daha sonra kısa ve öz bir satış özeti üretmesi için Gemini 2.0 Flash modeline iletilir.

Adım 7: Satış Duygu Analizi Yapma

Benzer şekilde, toplam kâra göre duygu analizi yapan başka bir işlev tanımlıyoruz. 

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

analyze_sales_sentiment() işlevi, seçilen sektör ve ürüne göre veri kümesini filtreleyerek toplam satış ve toplam kârı hesaplayıp Gemini 2.0 Flash kullanarak yapay zekâ destekli bir duygu analizi üretir. Model, satış performansına ilişkin yapılandırılmış bir özetle yönlendirilir; böylece yalnızca sabit kâr eşiklerine dayanmak yerine duyguyu dinamik olarak değerlendirebilir.

Adım 8: Gradio Arayüzünü Oluşturma

Artık tüm temel mantık işlevlerine sahibiz. Sırada Gradio ile etkileşimli bir arayüz oluşturmak var.

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)

Bu kod, yapay zekâ destekli SaaS satış analizi için etkileşimli bir Gradio arayüzü oluşturur. Kullanıcılar açılır menülerden bir sektör ve ürün seçip bir düğmeye tıklayarak satış özeti üretebilir. Seçilen girdiler, verileri işleyip içgörü döndüren summarize_sales() işlevine iletilir ve sonuç bir metin kutusunda görüntülenir. Gradio uygulaması daha sonra gerçek zamanlı etkileşim için başlatılır.

Gradio uygulaması

Hızlıca yaptığım bir testten çıktılar burada. Tüm sektörleri ve ürünleri seçtim, ardından modelden seçilen parametreler için bir satış özeti oluşturmasını ve duygu analizi yapmasını istedim.

Satış analizi

duygu analizi

satış verileri için Soru-Cevap

Sonuç

Bu eğitimde, Gemini 2.0 Flash kullanarak gerçek zamanlı SaaS satış verisi analizi sağlayan yapay zekâ destekli bir SaaS satış içgörüleri aracı oluşturduk. RAG olmadan yapılandırılmış verileri işlemek için Gemini 2.0 Flash'in geniş bağlam penceresinden yararlandık ve kolay kullanıcı etkileşimi için Gradio tabanlı etkileşimli bir arayüz entegre ettik.

Bu eğitimi kendi kullanım durumunuza uyarlamanızı öneririm. Gemini 2.0 ile uygulama geliştirme hakkında daha fazla bilgi edinmek için şu eğitimleri tavsiye ederim:


Aashi Dutt's photo
Author
Aashi Dutt
LinkedIn
Twitter

ML (Üretken Yapay Zekâ) alanında Google Developers Uzmanıyım, Kaggle 3x Expert unvanına sahibim ve 3+ yıllık teknoloji deneyimiyle Women Techmakers Elçisiyim. 2020'de bir sağlık teknolojileri girişiminin kurucu ortağı oldum ve Georgia Tech'te makine öğrenmesi alanında uzmanlaşarak bilgisayar bilimleri yüksek lisansı yapıyorum.

Konular
Yapay Zeka
Büyük Dil Modelleri

Bu kurslarla yapay zekâyı öğrenin!

Program

Yapay Zeka Uygulamaları Geliştirme

21 sa
OpenAI API, Hugging Face ve LangChain dahil olmak üzere en yeni yapay zeka geliştirici araçlarıyla yapay zeka destekli uygulamalar oluşturmayı öğrenin.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Devamını GörDevamını Gör