рдореБрдЦреНрдп рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЬрд╛рдПрдБ

Gemini 2.0 Flash: RAG рдХреЗ рдмрд┐рдирд╛ рдмрдбрд╝реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреИрд╕реЗ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░реЗрдВ

рдЬрд╛рдиреЗрдВ рдХрд┐ Gemini 2.0 Flash рдХреА рд╡рд┐рд╢рд╛рд▓ рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ рд╡рд┐рдВрдбреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ SaaS рд╕реЗрд▓реНрд╕ рдЗрдирд╕рд╛рдЗрдЯреНрд╕ рдЯреВрд▓ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ рдЬреЛ RAG рдХреА рдЬрд╝рд░реВрд░рдд рдХреЗ рдмрд┐рдирд╛ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЙрддреНрддрд░ рджреЗред
┬╖ 12 рдорд┐ре░ рдкрдврд╝реЗрдВ

AI рдХреЗ рд╕рд╛рде рдЦреЛрдЬреЗрдВ

рдПрдХ рдорд┐рд▓рд┐рдпрди рдЯреЛрдХрди рдХреА рд╡рд┐рд╢рд╛рд▓ рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ рд╡рд┐рдВрдбреЛ рдХреЗ рд╕рд╛рде, Gemini 2.0 Flash рдмрдбрд╝реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рд╣рд╛рдИ-рд╕реНрдкреАрдб рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИред рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рдореИрдВ рдмрддрд╛рдКрдБрдЧрд╛ рдХрд┐ Gemini 2.0 Flash рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ AI-рд╕рдВрдЪрд╛рд▓рд┐рдд SaaS рд╕реЗрд▓реНрд╕ рдЗрдирд╕рд╛рдЗрдЯреНрд╕ рдЯреВрд▓ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ рдЬреЛ рд╕рдХреНрд╖рдо рд╣реЛ:

  • рдЙрджреНрдпреЛрдЧреЛрдВ рдФрд░ рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рдмрд┐рдХреНрд░реА рд░реБрдЭрд╛рдиреЛрдВ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдореЗрдВред
  • рдмрд┐рдХреНрд░реА рдкреНрд░рджрд░реНрд╢рди рдкрд░ рд╕реЗрдВрдЯрд┐рдореЗрдВрдЯ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдореЗрдВред
  • рдмрд┐рдХреНрд░реА рдФрд░ рд░рд╛рдЬрд╕реНрд╡ рд░реБрдЭрд╛рдиреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдореЗрдВред

рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╣рдорд╛рд░рд╛ рдлреЛрдХрд╕ SaaS-рдХреЗрдВрджреНрд░рд┐рдд рдРрдк рдмрдирд╛рдиреЗ рдкрд░ рд╣реЛрдЧрд╛, рдЖрдк рдЗрд╕ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ Gemini 2.0 рдХреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдБ рдЖрдк рдПрдХ рд▓реЛрдХрд▓ YouTube рдХрдВрдЯреЗрдВрдЯ рдХреНрд░рд┐рдПрдЯрд░ рдЯреВрд▓ рдмрдирд╛рдирд╛ рд╕реАрдЦреЗрдВрдЧреЗ:

Gemini 2.0 Pro рдХреЗ рд╕рд╛рде рдПрдХ рд▓реЛрдХрд▓ YouTube рдХрдВрдЯреЗрдВрдЯ рдХреНрд░рд┐рдПрдЯрд░ рдЯреВрд▓ рдмрдирд╛рдПрдВ

RAG рдХреА рдмрдЬрд╛рдп Gemini┬а 2.0 Flash рдХреНрдпреЛрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ?

Gemini 2.0 Flash рдХреА рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ рд╡рд┐рдВрдбреЛ 1,000,000 рдЯреЛрдХрди рдХреА рд╣реИ, рдЬреЛ рдмрд┐рдирд╛ рдЪрдВрдХрд┐рдВрдЧ рдпрд╛ рд░рд┐рдЯреНрд░реАрд╡рд▓ рдореИрдХреЗрдирд┐рдЬреНрдо рдХреЗ рдкреВрд░реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рд╕рд╛рде рд╣реА, рдпрд╣ Gemini Ultra рдЬреИрд╕реЗ рдмрдбрд╝реЗ рдореЙрдбрд▓реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд┐рдлрд╛рдпрддреА рд╣реИред

рдХрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди retrieval-augmented generation (RAG) рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрдб рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди Gemini 2.0 Flash RAG рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐:

  • рдЗрд╕рдХреА рдмрдбрд╝реА рдЯреЛрдХрди рд╕реАрдорд╛ рдПрдХ рд╣реА рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдореЗрдВ рдкреВрд░реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рджреЗрддреА рд╣реИред
  • рдпрд╣ рд╕реАрдзреЗ рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрдб рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд░рд┐рдЯреНрд░реАрд╡рд▓ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИред
  • рдпрд╣ RAG-рдЖрдзрд╛рд░рд┐рдд рддрд░реАрдХреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬрд╝ рдФрд░ рдЕрдзрд┐рдХ рдХрд┐рдлрд╛рдпрддреА рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рд▓рд╛рдЧрдд рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП Gemini 2.0 Flash Lite рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрдиреЗ рдХреЗ рд╕рдордп рдпрд╣ 60 рдХреНрд╡реЗрд░реА рдкреНрд░рддрд┐ рдорд┐рдирдЯ рддрдХ рд░реЗрдЯ-рд▓рд┐рдорд┐рдЯреЗрдб рд╣реИ рдФрд░ рдХреЗрд╡рд▓ us-central1 рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред

рдУрд╡рд░рд╡реНрдпреВ: Gemini 2.0 Flash рдХреЗ рд╕рд╛рде SaaS рд╕реЗрд▓реНрд╕ рдЗрдирд╕рд╛рдЗрдЯреНрд╕ рдЯреВрд▓

рдЖрдЗрдП рдореБрдЦреНрдп рдЪрд░рдгреЛрдВ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рджреЗрдЦреЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдЕрдкрдирд╛рдПрдВрдЧреЗ:

  • рдкреНрд░рдХреНрд░рд┐рдпрд╛ Kaggle рд╕реЗ AWS SaaS Sales рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рд▓реЛрдб рдФрд░ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред
  • рдлрд┐рд░ рд╣рдо AI рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП Google Cloud Vertex AI рдФрд░ Gemini 2.0 Flash рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдВрдЧреЗред
  • рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪрдпрди рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рдЙрджреНрдпреЛрдЧ рдФрд░ рдЙрддреНрдкрд╛рдж рдирд┐рдХрд╛рд▓реЗрдВрдЧреЗред
  • рдЯреЛрдХрди рд╕реАрдорд╛ рдХреЗ рднреАрддрд░ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо Tiktoken рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЪреБрдиреЗ рдЧрдП рдлрд╝рд┐рд▓реНрдЯрд░ рдкреНрд░рдореБрдЦ рд╕реЗрд▓реНрд╕ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдЧрдгрдирд╛ рдФрд░ AI-рдЖрдзрд╛рд░рд┐рдд рдЗрдирд╕рд╛рдЗрдЯреНрд╕ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдВрдЧреЗред
  • рд╕реЗрдВрдЯрд┐рдореЗрдВрдЯ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╡рд░реНрдЧреАрдХреГрдд рдХрд░реЗрдЧрд╛, рдФрд░ Q&A рдлрд╝реАрдЪрд░ рдмрд┐рдХреНрд░реА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЗрдирд╕рд╛рдЗрдЯреНрд╕ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред
  • рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЯреВрд▓ рдХреЛ Gradio рдореЗрдВ рдЗрдВрдЯреАрдЧреНрд░реЗрдЯ рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдбрд╛рдпрдиреЗрдорд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдФрд░ рд░рд┐рдпрд▓-рдЯрд╛рдЗрдо рдПрдХреНрд╕рдкреНрд▓реЛрд░реЗрд╢рди рд╕рдВрднрд╡ рд╣реЛред

рдбреЗрдореЛ рдХрд╛ рдлреНрд▓реЛрдЪрд╛рд░реНрдЯ

рдЪрд░рдг 1: рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд╛рдПрдБ

рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯреВрд▓ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реИрдВ:

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

рдЖрд╡рд╢реНрдпрдХ рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:

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

рдКрдкрд░ рджреА рдЧрдИ рдбрд┐рдкреЗрдВрдбреЗрдВрд╕рд┐рдпрд╛рдБ рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдирд┐рдореНрди рдЗрдореНрдкреЛрд░реНрдЯ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:

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

рдЪрд░рдг 2: рдбреЗрдЯрд╛рд╕реЗрдЯ рд▓реЛрдб рдХрд░реЗрдВ

рд╣рдо рдЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП AWS SAAS Sales рдбреЗрдЯрд╛рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ Kaggle рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред Kaggle рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рд╕реЗрдЯрдЕрдк рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░ рдХреНрд░рдорд╢рдГ рдСрдерд░ рдФрд░ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХрд╛ рдирд╛рдо рдкрд╛рд╕ рдХрд░реЗрдВред

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

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

рдЕрдм рдЬрдмрдХрд┐ рдбреЗрдЯрд╛рд╕реЗрдЯ рд╣рдорд╛рд░реЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рд╣реЛ рдЪреБрдХрд╛ рд╣реИ, рд╣рдо рдЗрд╕ рдкрд░ рдХрд╛рдо рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдкрд╛рдВрдбрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рде рд╕реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рд▓реЛрдб рдФрд░ рд░реАрдб рдХрд░реЗрдВрдЧреЗред

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

рдЗрд╕ рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ 9,994 рдЯреНрд░рд╛рдВрдЬрд╝реИрдХреНрд╢рди рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рдирд┐рдореНрди рдХреЙрд▓рдо рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • Industry: рдХрдВрдкрдиреА рдХрд╛ рдЙрджреНрдпреЛрдЧ рд╢реНрд░реЗрдгреАред
  • Product: рдмреЗрдЪрд╛ рдЧрдпрд╛ SaaS рдЙрддреНрдкрд╛рджред
  • Sales: рдЯреНрд░рд╛рдВрдЬрд╝реИрдХреНрд╢рди рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд░рд╛рдЬрд╕реНрд╡ред
  • Quantity: рдмреЗрдЪреЗ рдЧрдП рд▓рд╛рдЗрд╕реЗрдВрд╕реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред
  • Profit: рдЯреНрд░рд╛рдВрдЬрд╝реИрдХреНрд╢рди рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд▓рд╛рднред
  • Discount: рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдИ рднреА рдбрд┐рд╕реНрдХрд╛рдЙрдВрдЯред

рдЪрд░рдг 3: Google Cloud Vertex AI рд╕реЗрдЯрдЕрдк рдХрд░рдирд╛

Gemini 2.0 Flash рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ Google Cloud рдХреЗ рд╕рд╛рде рдСрдереЗрдВрдЯрд┐рдХреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

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

Vertex AI рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Vertex AI API рдЦреЛрдЬреЗрдВ рдФрд░ рдЙрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ (рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдЕрдХрд╛рдЙрдВрдЯ рдкрд░ рдмрд┐рд▓рд┐рдВрдЧ рд╕рдХреНрд╖рдо рд╣реИ)ред

Vertex AI API рд╕рдХреНрд╖рдо рдХрд░реЗрдВ

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ ID рдФрд░ рд▓реЛрдХреЗрд╢рди рдЖрдЧреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реЗрдЬ рдХрд░ рд░рдЦреЗрдВред рдЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП Gemini 2.0 Flash рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ рдкрд╛рдБрдЪ API рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдХрд░реАрдм $0.07 рдХрд╛ рдЦрд░реНрдЪ рдЖрдпрд╛ред

# 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 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, Vertex AI рдкрд░ рдпрд╣ рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рджреЗрдЦреЗрдВред

рдЪрд░рдг 4: рдбреЗрдЯрд╛ рдкреНрд░реА-рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ

рдЙрдЪрд┐рдд рдбреЗрдЯрд╛ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЙрд▓рдо рдирд╛рдореЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд░реЗрдВ рдФрд░ рдкреНрд░рдореБрдЦ рд╢реНрд░реЗрдгрд┐рдпрд╛рдБ рдирд┐рдХрд╛рд▓реЗрдВред рд╣рдо рдбреЗрдореЛ рдореЗрдВ рдЕрдкрдиреЗ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрджреНрд╡рд┐рддреАрдп рдЙрджреНрдпреЛрдЧреЛрдВ рдФрд░ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдкрд╛рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдХреЛрдИ рдЕрд▓рдЧ рдбреЗрдЯрд╛рд╕реЗрдЯ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЕрдкрдиреА рд╢реНрд░реЗрдгрд┐рдпрд╛рдБ рдЙрд╕реА рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЪреБрдиреЗрдВред

# 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

рдЪрд░рдг 5: рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рдЯреЛрдХрди рдЧрд┐рдирдирд╛

рдЕрдм рдЬрдм рд╣рдордиреЗ рдЕрдкрдирд╛ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рддреЛ рд╣рдо рдЯреЛрдХрди рдЧрд┐рдиреЗрдВрдЧреЗред рдЪреВрдБрдХрд┐ Gemini 2.0 Flash рдореЗрдВ 1,000,000 рдЯреЛрдХрди рдХреА рд╕реАрдорд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЙрдбрд▓ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рдЯреЛрдХрди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЗрд╕ рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ ┬а805447 рдЯреЛрдХрди рд╣реИрдВред

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

рд╣рдо рдЯреЛрдХрдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП Tiktoken рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ:

  • Tokenizer рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдВ: Gemini рдФрд░ GPT рдореЙрдбрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд Tiktoken рдХреЗ cl100k_base рдЯреЛрдХрдирд╛рдЗрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
  • рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЯреЗрдХреНрд╕реНрдЯ рдХреЙрд▓рдо рдЪреБрдиреЗрдВ: AI рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдХреЙрд▓рдо (industry, product, sales, quantity, discount, profit) рдХреА рдкрд╣рдЪрд╛рди рдХрд░реЗрдВред
  • рдЪреБрдиреЗ рдЧрдП рдХреЙрд▓рдо рдХреЛ рдПрдХрд▓ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░реЗрдВ: рдЯрд╛рдЗрдк рдорд┐рд╕рдореИрдЪ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдо рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдмрджрд▓реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ " | " рд╕реЗрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде combined_text рдореЗрдВ рдорд░реНрдЬ рдХрд░реЗрдВред
  • рдЯреЛрдХрди рдЧрд┐рдирдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ: combined_text рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдЯреЛрдХрдирд╛рдЗрдЬрд╝ рдХрд░реЗрдВ рдФрд░ рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдХреБрд▓ рдЯреЛрдХрди рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВред
  • рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рдХреБрд▓ рдЯреЛрдХрди рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ: NaN рдорд╛рди рд╣рдЯрд╛рдПрдБ, рдЯреЛрдХрди рдЧрд┐рдирдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рдФрд░ Gemini 2.0 Flash рдХреА 1M рдЯреЛрдХрди рд╕реАрдорд╛ рдХреЗ рдЕрдиреБрдкрд╛рд▓рди рдХреА рдкреБрд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рдХреБрд▓ рдЯреЛрдХрди рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВред

рдЪрд░рдг 6: рдмрд┐рдХреНрд░реА рд░реБрдЭрд╛рдиреЛрдВ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢

рдЕрдм рд╣рдо рдбреЗрдореЛ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╣рд┐рд╕реНрд╕реЛрдВ рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдЪреБрдиреЗ рдЧрдП рдЙрджреНрдпреЛрдЧ рдФрд░ рдЙрддреНрдкрд╛рдж рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реЗрд▓реНрд╕ рд╕рд╛рд░рд╛рдВрд╢ рдмрдирд╛рддрд╛ рд╣реИред┬а

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() рдлрд╝рдВрдХреНрд╢рди рдЪреБрдиреЗ рдЧрдП рдЙрджреНрдпреЛрдЧ рдФрд░ рдЙрддреНрдкрд╛рдж рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддрд╛ рд╣реИ, рдХреБрд▓ рдмрд┐рдХреНрд░реА, рдмреЗрдЪреА рдЧрдИ рдорд╛рддреНрд░рд╛, рд▓рд╛рдн рдФрд░ рдФрд╕рдд рдбрд┐рд╕реНрдХрд╛рдЙрдВрдЯ рдЬреИрд╕реЗ рдкреНрд░рдореБрдЦ рд╕реЗрд▓реНрд╕ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╕рдВрд░рдЪрд┐рдд рдкреНрд░реЙрдореНрдкреНрдЯ рдореЗрдВ рдлреЙрд░реНрдореЗрдЯ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкреНрд░реЙрдореНрдкреНрдЯ рдлрд┐рд░ Gemini 2.0 Flash рдореЙрдбрд▓ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕реЗрд▓реНрд╕ рд╕рд╛рд░рд╛рдВрд╢ рдЬреЗрдирд░реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдЪрд░рдг 7: рдмрд┐рдХреНрд░реА рд╕реЗрдВрдЯрд┐рдореЗрдВрдЯ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ

рдЗрд╕реА рддрд░рд╣, рд╣рдо рдПрдХ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХреБрд▓ рд▓рд╛рдн рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реЗрдВрдЯрд┐рдореЗрдВрдЯ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИред┬а

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() рдлрд╝рдВрдХреНрд╢рди рдЪреБрдиреЗ рдЧрдП рдЙрджреНрдпреЛрдЧ рдФрд░ рдЙрддреНрдкрд╛рдж рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдХреЗ рдХреБрд▓ рдмрд┐рдХреНрд░реА рдФрд░ рдХреБрд▓ рд▓рд╛рдн рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ Gemini 2.0 Flash рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ AI-рд╕рдВрдЪрд╛рд▓рд┐рдд рд╕реЗрдВрдЯрд┐рдореЗрдВрдЯ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЬреЗрдирд░реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдореЙрдбрд▓ рдХреЛ рдлрд┐рд░ рдмрд┐рдХреНрд░реА рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдПрдХ рд╕рдВрд░рдЪрд┐рдд рд╕рд╛рд░рд╛рдВрд╢ рд╕реЗ рдкреНрд░реЙрдореНрдкреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рдХреЗрд╡рд▓ рдлрд┐рдХреНрд╕реНрдб рд▓рд╛рдн рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╕реЗрдВрдЯрд┐рдореЗрдВрдЯ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░ рд╕рдХреЗред

рдЪрд░рдг 8: Gradio рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдПрдВ

рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рднреА рдкреНрд░рдореБрдЦ рд▓реЙрдЬрд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдореМрдЬреВрдж рд╣реИрдВред рдЕрдЧрд▓рд╛ рдХрджрдо Gradio рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ UI рдмрдирд╛рдирд╛ рд╣реИред

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)

рдпрд╣ рдХреЛрдб AI-рд╕рдВрдЪрд╛рд▓рд┐рдд SaaS рд╕реЗрд▓реНрд╕ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ Gradio UI рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдБ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреНрд░реЙрдкрдбрд╛рдЙрди рдореЗрдиреВ рд╕реЗ рдХрд┐рд╕реА рдЙрджреНрдпреЛрдЧ рдФрд░ рдЙрддреНрдкрд╛рдж рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░ рд╕реЗрд▓реНрд╕ рд╕рд╛рд░рд╛рдВрд╢ рдЬреЗрдирд░реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЪреБрдиреЗ рдЧрдП рдЗрдирдкреБрдЯреНрд╕ summarize_sales() рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдХреЗ рдЗрдирд╕рд╛рдЗрдЯреНрд╕ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рдмреЙрдХреНрд╕ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж Gradio рдРрдк рд░рд┐рдпрд▓-рдЯрд╛рдЗрдо рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Gradio рдРрдк

рдпрд╣рд╛рдБ рдПрдХ рддреНрд╡рд░рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд╣реИрдВ рдЬреЛ рдореИрдВрдиреЗ рдЪрд▓рд╛рдпрд╛ред рдореИрдВрдиреЗ рд╕рднреА рдЙрджреНрдпреЛрдЧ рдФрд░ рдЙрддреНрдкрд╛рдж рдЪреБрдиреЗ, рдлрд┐рд░ рдореЙрдбрд▓ рд╕реЗ рд╕реЗрд▓реНрд╕ рд╕рд╛рд░рд╛рдВрд╢ рдмрдирд╛рдиреЗ рдФрд░ рдЪреБрдиреЗ рдЧрдП рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рдкрд░ рд╕реЗрдВрдЯрд┐рдореЗрдВрдЯ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ред

рд╕реЗрд▓реНрд╕ рд╡рд┐рд╢реНрд▓реЗрд╖рдг

рд╕реЗрдВрдЯрд┐рдореЗрдВрдЯ рд╡рд┐рд╢реНрд▓реЗрд╖рдг

рд╕реЗрд▓реНрд╕ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП Q&A

рдирд┐рд╖реНрдХрд░реНрд╖

рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдордиреЗ Gemini 2.0 Flash рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ AI-рд╕рдВрдЪрд╛рд▓рд┐рдд SaaS рд╕реЗрд▓реНрд╕ рдЗрдирд╕рд╛рдЗрдЯреНрд╕ рдЯреВрд▓ рдмрдирд╛рдпрд╛, рдЬреЛ SaaS рдмрд┐рдХреНрд░реА рдбреЗрдЯрд╛ рдХрд╛ рд░рд┐рдпрд▓-рдЯрд╛рдЗрдо рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред рд╣рдордиреЗ Gemini 2.0 Flash рдХреА рдмрдбрд╝реА рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ рд╡рд┐рдВрдбреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрдб рдбреЗрдЯрд╛ рдХреЛ рдмрд┐рдирд╛ RAG рдХреЗ рдкреНрд░реЛрд╕реЗрд╕ рдХрд┐рдпрд╛ рдФрд░ рдЖрд╕рд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рд▓рд┐рдП Gradio-рдЖрдзрд╛рд░рд┐рдд рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЗрдВрдЯреАрдЧреНрд░реЗрдЯ рдХрд┐рдпрд╛ред

рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЛ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛/рдХрд░рддреА рд╣реВрдБред Gemini 2.0 рдХреЗ рд╕рд╛рде рдРрдкреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдпреЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╕реБрдЭрд╛рддрд╛/рд╕реБрдЭрд╛рддреА рд╣реВрдБ:

Aashi Dutt

рд▓реЗрдЦрдХ

Aashi Dutt

рдореИрдВ рдПрдордПрд▓ (Gen AI) рдореЗрдВ Google Developers Expert, Kaggle 3x Expert, рдФрд░ Women Techmakers рдПрдВрдмреЗрд╕рдбрд░ рд╣реВрдБ, рддрдерд╛ рддрдХрдиреАрдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ 3+ рд╡рд░реНрд╖реЛрдВ рдХрд╛ рдЕрдиреБрднрд╡ рд░рдЦрддреА рд╣реВрдБред рдореИрдВрдиреЗ 2020 рдореЗрдВ рдПрдХ рд╣реЗрд▓реНрде-рдЯреЗрдХ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреА рд╕рд╣-рд╕реНрдерд╛рдкрдирд╛ рдХреА рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ Georgia Tech рд╕реЗ рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬреНрдЮрд╛рди рдореЗрдВ рдорд╛рд╕реНрдЯрд░ рдХрд░ рд░рд╣реА рд╣реВрдБ, рдЬрд┐рд╕рдореЗрдВ рдореЗрд░рд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдХреНрд╖реЗрддреНрд░ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рд╣реИред

рд╡рд┐рд╖рдп