جمینی برای توسعه‌دهندگان

۱. مقدمه 👋

۳۵۸۰۷۳۸۸b۸۰۰fbe۰.png

در این آزمایشگاه کد، شما هر آنچه را که به عنوان یک توسعه‌دهنده باید در مورد اکوسیستم Gemini بدانید، خواهید آموخت. به طور خاص، شما با مدل‌های مختلف Gemini، ابزارهای مختلف ارائه شده توسط Gemini، و Google Gen AI SDK برای ادغام با Gemini آشنا خواهید شد. همچنین ویژگی‌های مختلف Gemini مانند متن طولانی، حالت تفکر، درک مکانی، Live API، خروجی تصویر و صدای بومی و موارد دیگر را بررسی خواهید کرد.

در پایان این آزمایشگاه کد، شما باید درک کاملی از اکوسیستم جمینی داشته باشید!

💡آنچه خواهید آموخت

  • مدل‌های مختلف جمینی
  • ابزارهایی که با مدل‌های Gemini کار می‌کنند.
  • نحوه ادغام با Gemini با استفاده از Google Gen AI SDK.
  • پنجره‌ی زمینه‌ی طولانیِ جوزا.
  • حالت تفکر جوزا.
  • ابزارهای داخلی مختلف مانند جستجوی گوگل، نقشه‌های گوگل.
  • نحوه تعامل با عوامل تحقیقاتی با استفاده از Interactions API.
  • تولید تصویر و متن به گفتار.
  • درک فضایی جوزا.
  • API زنده برای تعاملات صوتی و تصویری در لحظه.

⚠️ آنچه نیاز خواهید داشت

  • یک کلید API برای نمونه‌های استودیوی هوش مصنوعی گوگل.
  • یک پروژه گوگل کلود با قابلیت پرداخت برای نمونه‌های هوش مصنوعی ورتکس.
  • محیط توسعه محلی شما یا ویرایشگر Cloud Shell در Google Cloud.

۲. خانواده جوزا 🫂

جمینی مدل هوش مصنوعی گوگل است که به هر ایده‌ای جان می‌بخشد. این مدل، مدلی عالی برای درک چندوجهی و کدگذاری عاملی و پویا است - که همگی بر پایه استدلال پیشرفته ساخته شده‌اند. می‌توانید این ویدیو را برای مرور سریع مدل جمینی تماشا کنید:

جمینی فقط یک مدل نیست. بلکه یک برند چتری است که در محصولات گوگل استفاده می‌شود.

که از مدل Gemini استفاده می‌کنند. طیف وسیعی از محصولات Gemini وجود دارد، از اپلیکیشن Gemini و NotebookLM متمرکز بر مصرف‌کننده گرفته تا AI Studio متمرکز بر توسعه‌دهندگان و Vertex AI گوگل کلود متمرکز بر سازمان. همچنین ابزارهای توسعه‌دهندگانی مانند Gemini CLI و Google Antigravity که توسط Gemini پشتیبانی می‌شوند نیز وجود دارند.

3ceb2752ccfbc149.jpeg

۳. ابزارهای برقی جمینی 🧰

بیایید به طور خلاصه نگاهی به ابزارهای ارائه شده توسط Gemini بیندازیم.

اپلیکیشن جمینی 💬

اپلیکیشن جمینی ( gemini.google.com ) یک اپلیکیشن مصرف‌کننده مبتنی بر چت است. این اپلیکیشن ساده‌ترین راه برای تعامل با جمینی است. این اپلیکیشن ابزارهایی برای تحقیقات عمیق، تولید تصویر، ویدئو، موسیقی و موارد دیگر دارد. همچنین نسخه‌های مختلفی از جدیدترین مدل جمینی (سریع، متفکرانه، حرفه‌ای) را ارائه می‌دهد. اپلیکیشن جمینی برای استفاده روزمره عالی است.

d3800f85bafe9a4a.png

نوت‌بوک ال‌ام

NotebookLM ( notebooklm.google.com ) یک شریک تحقیقاتی مبتنی بر هوش مصنوعی است. فایل‌های PDF، وب‌سایت‌ها، ویدیوهای یوتیوب، فایل‌های صوتی، Google Docs، Google Slides و موارد دیگر را آپلود کنید و NotebookLM آنها را خلاصه کرده و ارتباطات جالبی بین موضوعات برقرار می‌کند، که همه اینها با استفاده از آخرین نسخه قابلیت‌های درک چندوجهی Gemini ارائه می‌شود. همچنین از منابعی که آپلود کرده‌اید، مرورهای صوتی، مرورهای ویدیویی، اینفوگرافیک‌ها و موارد دیگر جالب و جذاب ایجاد می‌کند.

4c3274795844251.png

استودیوی هوش مصنوعی گوگل 🎨

استودیوی هوش مصنوعی گوگل ( ai.dev ) سریع‌ترین راه برای شروع ساخت با Gemini است. پنل Playground در استودیوی هوش مصنوعی گوگل به شما امکان می‌دهد مدل‌های مختلف را برای تولید متن، تصویر، ویدیو آزمایش کنید و همچنین صدا و ویدیوی بلادرنگ را با Gemini Live API امتحان کنید. پنل Build در استودیوی هوش مصنوعی گوگل به شما امکان می‌دهد برنامه‌های وب را با کدنویسی پویا (vibe-code) و آنها را روی Cloud Run در Google Cloud مستقر کنید و کد را به GitHub ارسال کنید.

48fadc9d3d5f9500.png

استودیوی هوش مصنوعی ورتکس ☁️

Vertex AI یک پلتفرم توسعه هوش مصنوعی یکپارچه و کاملاً مدیریت‌شده برای ساخت و استفاده از هوش مصنوعی مولد در Google Cloud است. Vertex AI Studio ( console.cloud.google.com/vertex-ai/studio ) به شما کمک می‌کند تا برنامه‌های هوش مصنوعی مولد آماده برای سازمان را آزمایش، تنظیم و مستقر کنید.

۱۵b55a2b635d63e1.png

رابط خط فرمان جمینی ⚙️

Gemini CLI ( geminicli.com ) یک عامل هوش مصنوعی متن‌باز است که قدرت Gemini را مستقیماً به ترمینال شما می‌آورد. این ابزار به گونه‌ای طراحی شده است که ابزاری قدرتمند، قابل توسعه و مبتنی بر ترمینال برای توسعه‌دهندگان، مهندسان، SREها و فراتر از آن باشد. Gemini CLI با محیط محلی شما ادغام می‌شود. می‌تواند فایل‌ها را بخواند و ویرایش کند، دستورات shell را اجرا کند و در وب جستجو کند، در حالی که زمینه پروژه شما را حفظ می‌کند.

b2a7f0bf377ac7b0.png

گوگل ضد جاذبه 🚀

گوگل آنتی‌گراویتی ( antigravity.google ) یک پلتفرم توسعه عامل‌محور است که IDE را به دوران عامل‌محوری ارتقا می‌دهد. آنتی‌گراویتی به توسعه‌دهندگان این امکان را می‌دهد که در سطحی بالاتر و وظیفه‌محور، عامل‌ها را در فضاهای کاری مدیریت کنند، در حالی که تجربه آشنای IDE هوش مصنوعی را در هسته خود حفظ می‌کنند.

آنتی‌گراویتی، عامل‌ها را به سطح خودشان استخراج می‌کند و ابزارهای مورد نیاز برای عملکرد خودکار در ویرایشگر، ترمینال و مرورگر را با تأکید بر تأیید و ارتباطات سطح بالاتر از طریق وظایف و مصنوعات، در اختیار آنها قرار می‌دهد. این قابلیت، عامل‌ها را قادر می‌سازد تا وظایف نرم‌افزاری پیچیده‌تر و سرتاسری را برنامه‌ریزی و اجرا کنند و تمام جنبه‌های توسعه، از ساخت ویژگی‌ها، تکرار رابط کاربری و رفع اشکالات گرفته تا تحقیق و تولید گزارش‌ها را ارتقا دهند.

ee964351b100df93.png

می‌توانید این ابزارها را دانلود و با آنها کار کنید. در اینجا چند راهنمایی کلی در مورد اینکه در چه مواقعی از کدام ابزار استفاده کنید، آورده شده است:

  • اگر تازه شروع کرده‌اید، احتمالاً از برنامه Gemini برای پرسیدن سوال یا تولید کد اولیه استفاده می‌کنید.
  • اگر در حال کدنویسی ویب-کد برای یک اپلیکیشن وب هستید، احتمالاً Google AI Studio ابزاری است که انتخاب می‌کنید.
  • اگر می‌خواهید یک برنامه پیچیده با استفاده از محیط توسعه محلی خود بسازید، Gemini CLI یا Google Antigravity را انتخاب کنید.
  • اگر می‌خواهید گوگل کلود را مستقر کنید یا از قبل از آن استفاده می‌کنید و پشتیبانی و ویژگی‌های سطح سازمانی را می‌خواهید، Vertex AI و استودیوی آن همان چیزی است که انتخاب می‌کنید.

البته، می‌توانید این ابزارها را با هم ترکیب و تطبیق دهید. برای مثال، با کدنویسی vibe در AI Studio شروع کنید تا به GitHub منتقل شوید و سپس از Antigravity برای ادامه کدنویسی و سپس استقرار در Google Cloud استفاده کنید.

۴. مدل‌های جمینی 🧠

مدل‌های Gemini هر چند ماه یکبار با نسخه‌های جدید، دائماً در حال بهبود هستند. تا به امروز (فوریه 2026)، مدل‌های برجسته Vertex AI در Google Cloud به شرح زیر هستند:

d2e4a116eaccf2fc.png

مدل‌های Gemini عمومی ، مدل‌های Preview Gemini ، مدل‌های باز Gemma ، مدل‌های Embedding ، مدل‌های Imagegen ، مدل‌های Veo و موارد دیگر بسیار دیگری نیز وجود دارند.

برای بررسی مدل‌های اصلی موجود در Vertex AI برای موارد استفاده مختلف، به صفحه مستندات Google Models مراجعه کنید.

۵. کیت توسعه نرم‌افزاری هوش مصنوعی نسل گوگل (Google Gen AI SDK) 📦

برای ادغام Gemini با برنامه خود، می‌توانید از Google Gen AI SDK استفاده کنید.

همانطور که قبلاً بحث کردیم، می‌توانید از طریق Google AI Studio یا Vertex AI Studio به مدل‌های Gemini دسترسی داشته باشید. Google Gen AI SDK یک رابط کاربری یکپارچه برای مدل‌های Gemini از طریق Google AI API و Google Cloud API فراهم می‌کند. به جز چند مورد استثنا، کدی که روی یک پلتفرم اجرا می‌شود، روی هر دو پلتفرم نیز اجرا می‌شود.

485e9a003d26f8d.png

کیت توسعه نرم‌افزاری هوش مصنوعی گوگل (Google Gen AI SDK) در حال حاضر از زبان‌های پایتون ، گو ، نود ، جاوا و سی‌شارپ پشتیبانی می‌کند.

برای مثال، اینگونه است که شما با Gemini در Google AI در پایتون صحبت می‌کنید:

client = genai.Client(
  api_key=your-gemini-api-key)

response = client.models.generate_content(
  model="gemini-3-flash-preview",
  contents="Why is the sky blue?")

برای انجام همین کار در مقابل Gemini در Vertex AI، فقط باید مقداردهی اولیه کلاینت را تغییر دهید و بقیه کار مشابه است:

client = genai.Client(
  vertexai=True,
  project=your-google-cloud-project,
  location="us-central1")

response = client.models.generate_content(
  model="gemini-3-flash-preview",
  contents="Why is the sky blue?")

برای اجرای این نمونه‌ها خودتان، می‌توانید main.py در github.com/meteatamel/genai-samples/tree/main/vertexai/gemini2/hello-world اجرا کنید.

۶. رابط برنامه‌نویسی کاربردی تعاملات 🔄

رابط برنامه‌نویسی کاربردی تعاملات (بتا) یک رابط یکپارچه جدید برای تعامل با مدل‌ها و عامل‌های Gemini است. این رابط به عنوان جایگزینی بهبود یافته برای رابط برنامه‌نویسی کاربردی generateContent ، مدیریت وضعیت، تنظیم ابزار و وظایف طولانی مدت را ساده می‌کند.

اینگونه است که شما یک تعامل اولیه با API جدید خواهید داشت:

interaction =  client.interactions.create(
    model="gemini-3-flash-preview",
    input="Tell me a short joke."
)
print(interaction.outputs[-1].text)

شما می‌توانید با ارسال شناسه‌ی تعامل از تعامل قبلی، یک مکالمه‌ی حالت‌دار (stateful) داشته باشید:

interaction1 = client.interactions.create(
    model="gemini-3-flash-preview",
    input="Hi, my name is Phil."
)
print(f"Model: {interaction1.outputs[-1].text}")

interaction2 = client.interactions.create(
    model="gemini-3-flash-preview",
    input="What is my name?",
    previous_interaction_id=interaction1.id
)
print(f"Model: {interaction2.outputs[-1].text}")

رابط برنامه‌نویسی کاربردی تعاملات (Interactions API) برای ساخت و تعامل با عامل‌ها طراحی شده است و شامل پشتیبانی از فراخوانی تابع، ابزارهای داخلی، خروجی‌های ساختاریافته و پروتکل Model Context (MCP) می‌شود. برای مشاهده نحوه استفاده از آن با عامل تحقیقات عمیق (Deep Research Agent)، به مرحله Agents 🤖 در زیر مراجعه کنید.

برای اجرای این نمونه‌ها توسط خودتان، می‌توانید main.py در github.com/meteatamel/genai-samples/blob/main/vertexai/interactions-api اجرا کنید.

۷. پنجره متن طولانی 🪟

بسیاری از مدل‌های Gemini با پنجره‌های متنی بزرگی با ۱ میلیون یا بیشتر توکن ارائه می‌شوند. از نظر تاریخی، مدل‌های زبانی بزرگ (LLM) به طور قابل توجهی توسط مقدار متن (یا توکن‌هایی) که می‌توانستند در یک زمان به مدل منتقل شوند، محدود می‌شدند. پنجره متنی طولانی Gemini بسیاری از موارد استفاده جدید و الگوهای توسعه‌دهنده را باز می‌کند.

3fb7123fc45e7cdf.png

برای مشاهده‌ی پنجره‌ی متن طولانی در عمل، می‌توانید به Vertex AI Studio Prompt Gallery بروید و گزینه‌ی Extract Video Chapters را انتخاب کنید. این گزینه، محتوای ویدیو را به فصل‌ها گروه‌بندی می‌کند و خلاصه‌ای از هر فصل ارائه می‌دهد.

پس از اجرای آن با ویدیوی ارائه شده، باید خروجی مشابه زیر را دریافت کنید:

[
  {
    "timecode": "00:00",
    "chapterSummary": "The video opens with scenic views of Rio de Janeiro, introducing the \"Marvelous City\" and its famous beaches like Ipanema and Copacabana, before pivoting to the existence of the favelas."
  },
  {
    "timecode": "00:20",
    "chapterSummary": "The narrator describes the favelas, home to one in five Rio residents, highlighting that while often associated with crime and poverty, this is only a small part of their story."
  },
  {
    "timecode": "00:36",
    "chapterSummary": "Google introduces its project to map the favelas, emphasizing that providing addresses to these uncharted areas is a crucial step in giving residents an identity."
  },
  {
    "timecode": "00:43",
    "chapterSummary": "The video concludes by focusing on the people of the favelas, inviting viewers to go beyond the map and explore their world through a 360-degree experience."
  }
]

این تنها به لطف پنجره زمانی طولانی Gemini امکان‌پذیر است!

۸. حالت تفکر 🧠

مدل‌های Gemini از یک فرآیند تفکر درونی استفاده می‌کنند که به طور قابل توجهی استدلال آنها را برای کارهای پیچیده بهبود می‌بخشد. سطوح تفکر (Gemini 3) و بودجه‌ها (Gemini 2.5) رفتار تفکر را کنترل می‌کنند. همچنین می‌توانید پرچم include_thoughts را فعال کنید تا افکار خام مدل را ببینید.

برای مشاهده‌ی حالت تفکر در عمل، بیایید Google AI Studio ( ai.dev ) را باز کنیم و یک چت جدید شروع کنیم. در پنل سمت راست، می‌توانید سطح تفکر را تنظیم کنید:

382b0c617ab5940e.png

اگر روی دکمه Get code در بالا سمت راست کلیک کنید، می‌توانید ببینید که چگونه می‌توانید سطح تفکر را در کد تنظیم کنید، چیزی شبیه به این:

response = client.models.generate_content(
    model="gemini-3-pro-preview",
    contents="How does AI work?",
    config=types.GenerateContentConfig(
        thinking_config=types.ThinkingConfig(
          thinking_level="low",
          include_thoughts=True
        )
    ),
)

با دستورالعمل‌های مختلف و سطوح تفکر مختلف بازی کنید تا رفتار مدل را ببینید.

۹. ابزارها 🧰

جمینی (Gemini) با تعدادی ابزار داخلی مانند جستجوی گوگل، نقشه گوگل، اجرای کد، استفاده از کامپیوتر، جستجوی فایل و موارد دیگر ارائه می‌شود. همچنین می‌توانید ابزارهای سفارشی خود را با فراخوانی تابع (Function Calling) تعریف کنید. بیایید به طور خلاصه نحوه استفاده از آنها را بررسی کنیم.

جستجوی گوگل 🔎

شما می‌توانید پاسخ‌های مدل‌سازی شده را در نتایج جستجوی گوگل برای پاسخ‌های دقیق‌تر، به‌روزتر و مرتبط‌تر، پایه‌گذاری کنید.

در Vertex AI Studio ( console.cloud.google.com/vertex-ai/studio ) یا Google AI Studio ( ai.dev )، می‌توانید یک چت جدید شروع کنید و مطمئن شوید که اتصال پایه جستجوی گوگل خاموش است:

fb694a21e7eb7d5a.png

سپس، می‌توانید در مورد آب و هوای امروز مکان خود سؤالی بپرسید. برای مثال:

How's the weather in London today?

شما معمولاً پاسخی برای یک روز گذشته دریافت می‌کنید زیرا مدل به آخرین اطلاعات دسترسی ندارد. برای مثال:

In London today (Friday, May 24, 2025), the weather is a bit of a mixed bag, typical for late May.

حالا، اتصال به زمین در جستجوی گوگل را فعال کنید و همین سوال را بپرسید. شما باید اطلاعات به‌روز آب و هوا را به همراه لینک‌هایی به منابع اتصال به زمین دریافت کنید:

In London today (Wednesday, February 11, 2026), the weather is cool and mostly cloudy with a chance of light rain.

به این ترتیب می‌توانید جستجوی گوگل را در کد خود به صورت پایه قرار دهید. همچنین می‌توانید روی دکمه Code در استودیوی Vertex AI کلیک کنید تا یک نمونه پایه دریافت کنید:

google_search_tool = Tool(google_search=GoogleSearch())
response = client.models.generate_content(
    model="gemini-3-flash-preview",
    contents="How's the weather like today in London?",
    config=GenerateContentConfig(tools=[google_search_tool])
)

نقشه‌های گوگل 🗺️

همچنین می‌توانید پاسخ‌های مدل را با نقشه‌های گوگل، که به اطلاعات بیش از ۲۵۰ میلیون مکان دسترسی دارد، تطبیق دهید.

برای مشاهده‌ی آن در عمل، می‌توانید در بخش grounding تنظیمات مدل در Vertex AI studio، به جای Google Search، Google Maps را انتخاب کنید و سوالی بپرسید که به داده‌های Maps نیاز دارد، مثلاً:

Can you show me some Greek restaurants and their map coordinates near me?

کد مربوط به آن چیزی شبیه به این است:

google_maps_tool = Tool(google_maps=GoogleMaps())
response = client.models.generate_content(
    model="gemini-3-flash-preview",
    contents=""What are the best restaurants near here?",
    config=GenerateContentConfig(tools=[google_maps_tool]),
       # Optional: Provide location context (this is in Los Angeles)
        tool_config=ToolConfig(
          retrieval_config=types.RetrievalConfig(
            lat_lng=types.LatLng(
                latitude=34.050481, longitude=-118.248526))),
)

اجرای کد 🧑‍💻

Gemini می‌تواند کد پایتون را با فهرستی از کتابخانه‌های پشتیبانی‌شده (pandas، numpy، PyPDF2 و غیره) تولید و اجرا کند. این برای برنامه‌هایی که از استدلال مبتنی بر کد بهره می‌برند (مثلاً حل معادلات) مفید است.

برای امتحان کردن این، به Google AI Studio بروید، یک چت جدید شروع کنید و مطمئن شوید که گزینه Code execution روشن است. سپس، سوالی بپرسید که ابزار اجرای کد در چه مواردی ممکن است مفید باشد. برای مثال:

What is the sum of the first 50 prime numbers? 

جمینی باید مقداری کد پایتون تولید و اجرا کند. در نهایت، پاسخ صحیح ۵۱۱۷ است.

شما می‌توانید ابزار اجرای کد را از کد به صورت زیر اجرا کنید:

code_execution_tool = Tool(code_execution=ToolCodeExecution())
response = client.models.generate_content(
  model="gemini-3-flash-preview",
  contents="What is the sum of the first 50 prime numbers?",
  config=GenerateContentConfig(
    tools=[code_execution_tool],
    temperature=0))

استفاده از کامپیوتر 🖥️

مدل Gemini Computer Use (پیش‌نمایش) شما را قادر می‌سازد تا عوامل کنترل مرورگر را برای خودکارسازی وظایف بسازید. این مدل در این حلقه کار می‌کند:

de6edbd0163e6ee3.png

برای مشاهده‌ی آن در عمل، می‌توانید main.py در github.com/google-gemini/computer-use-preview اجرا کنید.

به عنوان مثال، می‌توانید کلید API خود را از Google AI Studio دریافت کنید و از Gemini بخواهید پروازها را برای شما جستجو کند:

export GEMINI_API_KEY=your-api-key

python main.py --query "Find me top 5 fights sorted by price with the following constraints:

Flight site to use: www.google.com/travel/flights
From: London
To: Larnaca
One-way or roundtrip: One way
Date to leave: Sometime next week
Date to return: N/A
Travel preferences:
-Direct flights
-No flights before 10am
-Carry-on luggage"

باید ببینید که Gemini یک مرورگر ناشناس را باز می‌کند و شروع به جستجوی پروازها برای شما می‌کند!

جستجوی فایل 📁

ابزار جستجوی فایل، بازیابی آسان با استفاده از نسل افزوده (RAG) را امکان‌پذیر می‌کند. فقط فایل‌های خود را آپلود کنید و این ابزار تمام جزئیات RAG از جمله قطعه‌بندی، جاسازی و بازیابی را برای شما انجام می‌دهد.

برای مشاهده‌ی آن در عمل، می‌توانید main.py در github.com/meteatamel/genai-beyond-basics/blob/main/samples/grounding/file-search-tool اجرا کنید.

کلید API خود را از Google AI Studio دریافت کنید و یک فروشگاه جستجوی فایل ایجاد کنید:

export GEMINI_API_KEY=your-gemini-api-key

python main.py create_store my-file-search-store

فایل PDF را در فروشگاه بارگذاری کنید:

python main.py upload_to_store fileSearchStores/myfilesearchstore-5a9x71ifjge9 cymbal-starlight-2024.pdf

در مورد فایل PDF که به فروشگاه اشاره می‌کند، سؤالی بپرسید:

python main.py generate_content "What's the cargo capacity of Cymbal Starlight?" fileSearchStores/myfilesearchstore-5a9x71ifjge9

شما باید پاسخی مبتنی بر PDF دریافت کنید:

Generating content with file search store: fileSearchStores/myfilesearchstore-5a9x71ifjge9
Response: The Cymbal Starlight 2024 has a cargo capacity of 13.5 cubic feet, which is located in the trunk of the vehicle. It is important to distribute the weight evenly and not overload the trunk, as this could impact the vehicle's handling and stability. The vehicle can also accommodate up to two suitcases in the trunk, and it is recommended to use soft-sided luggage to maximize space and cargo straps to secure it while driving.
Grounding sources:  cymbal-starlight-2024.pdf

فراخوانی تابع 📲

اگر ابزارهای داخلی کافی نیستند، می‌توانید ابزارها (توابع) خودتان را نیز در Gemini تعریف کنید. شما به سادگی یک تابع پایتون را به عنوان ابزار ارسال می‌کنید (به جای ارسال مشخصات دقیق OpenAPI تابع). این تابع به طور خودکار توسط مدل و SDK به عنوان ابزار استفاده می‌شود.

برای مثال، می‌توانید تابعی داشته باشید که طول و عرض جغرافیایی یک مکان را برگرداند:

def location_to_lat_long(location: str):
    """Given a location, returns the latitude and longitude

    Args:
        location: The location for which to get the weather.

    Returns:
        The latitude and longitude information in JSON.
    """
    logger.info(f"Calling location_to_lat_long({location})")
    url = f"https://geocoding-api.open-meteo.com/v1/search?name={location}&count=1"
    return api_request(url)

همچنین می‌توانید تابعی داشته باشید که اطلاعات آب و هوا را از طول و عرض جغرافیایی برگرداند:

def lat_long_to_weather(latitude: str, longitude: str):
    """Given a latitude and longitude, returns the weather information

    Args:
        latitude: The latitude of a location
        longitude: The longitude of a location

    Returns:
        The weather information for the location in JSON.
    """
    logger.info(f"Calling lat_long_to_weather({latitude}, {longitude})")
    url = (f"https://api.open-meteo.com/v1/forecast?latitude={latitude}&longitude={longitude}&current=temperature_2m,"
           f"relative_humidity_2m,surface_pressure,wind_speed_10m,wind_direction_10m&forecast_days=1")
    return api_request(url)

حالا می‌توانید این دو تابع را به عنوان ابزار به Gemini ارسال کنید و اجازه دهید از آن برای دریافت اطلاعات آب و هوا برای یک مکان استفاده کند:

def generate_content_with_function_calls():
    client = genai.Client(
        vertexai=True,
        project=PROJECT_ID,
        location=LOCATION)

    response = client.models.generate_content(
        model=MODEL_ID,
        contents=PROMPT,
        config=GenerateContentConfig(
            system_instruction=[
                "You are a helpful weather assistant.",
                "Your mission is to provide weather information for different cities."
                "Make sure your responses are in plain text format (no markdown) and include all the cities asked.",
            ],
            tools=[location_to_lat_long, lat_long_to_weather],
            temperature=0),
    )

    print(response.text)
    #print(response.automatic_function_calling_history)

برای مشاهده‌ی آن در عمل، می‌توانید main_genaisdk.py در github.com/meteatamel/genai-beyond-basics/blob/main/samples/function-calling/weather اجرا کنید.

۱۰. نمایندگان

رابط برنامه‌نویسی کاربردی (API) تعاملات (Interactions API) در Gemini برای ساخت و تعامل با عامل‌ها (Agents) طراحی شده است. شما می‌توانید از عامل‌های تخصصی مانند Gemini Deep Research Agent استفاده کنید. Gemini Deep Research Agent به طور خودکار وظایف تحقیقاتی چند مرحله‌ای را برنامه‌ریزی، اجرا و ترکیب می‌کند. این ابزار با استفاده از جستجوی وب و داده‌های شخصی شما، در چشم‌اندازهای اطلاعاتی پیچیده پیمایش می‌کند تا گزارش‌های دقیق و قابل استنادی تولید کند.

در اینجا نحوه استفاده از عامل Deep Research با API تعامل آورده شده است:

interaction = client.interactions.create(
    input="Research the history of the Google TPUs.",
    agent="deep-research-pro-preview-12-2025",
    background=True
)

while True:
    if interaction.status == "completed":
        print("\nFinal Report:\n",
interaction.outputs[-1].text)
        break

برای اجرای این نمونه، می‌توانید main.py در github.com/meteatamel/genai-samples/blob/main/vertexai/interactions-api اجرا کنید.

export GOOGLE_API_KEY=your-api-key
python main.py agent

شما باید بعد از مدتی نتیجه تحقیقات انجام شده را ببینید:

User: Research the history of the Google TPUs with a focus on 2025 and 2026

Status: in_progress
Status: in_progress
Status: in_progress
...
Model Final Report:
 # Architectural Convergence and Commercial Expansion: The History of Google TPUs (2015–2026)

## Key Findings
*   **Strategic Pivot (2025):** Google transitioned the Tensor Processing Unit (TPU) from a primarily internal differentiator to a commercial merchant-silicon competitor, epitomized by the massive "Ironwood" (TPU v7) deployment and external sales strategy.
*   **Technological Leap:** The introduction of TPU v7 "Ironwood" in 2025 marked a paradigm shift, utilizing 3nm process technology to deliver 42.5 exaFLOPS per pod, directly challenging NVIDIA's Blackwell architecture in the high-performance computing (HPC) sector.
...

۱۱. تولید تصویر 📷

نانو موز 🍌 نام قابلیت‌های تولید تصویر بومی Gemini است. Gemini می‌تواند تصاویر را به صورت محاوره‌ای با متن، تصاویر یا ترکیبی از هر دو تولید و پردازش کند. این به شما امکان می‌دهد تا با کنترل بی‌سابقه‌ای، تصاویر را ایجاد، ویرایش و تکرار کنید.

نانو موز به دو مدل مجزای موجود در Gemini API اشاره دارد:

  • نانو موز : مدل Gemini 2.5 Flash Image ( gemini-2.5-flash-image ). این مدل برای سرعت و کارایی طراحی شده و برای کارهای با حجم بالا و تأخیر کم بهینه شده است.
  • نانو موز پرو : مدل پیش‌نمایش تصویر Gemini 3 Pro ( gemini-3-pro-image-preview ). این مدل برای تولید حرفه‌ای دارایی طراحی شده است و از استدلال پیشرفته برای دنبال کردن دستورالعمل‌های پیچیده و ارائه متن با وضوح بالا استفاده می‌کند.

در اینجا قطعه کدی وجود دارد که می‌توانید با ارسال یک تصویر موجود، از نانو موز بخواهید تصویر را ویرایش کند:

from google import genai
from google.genai import types
from PIL import Image

client = genai.Client()

prompt = (
    "Create a picture of my cat eating a nano-banana in a "
    "fancy restaurant under the Gemini constellation",
)

image = Image.open("/path/to/cat_image.png")

response = client.models.generate_content(
    model="gemini-2.5-flash-image",
    contents=[prompt, image],
)

for part in response.parts:
    if part.text is not None:
        print(part.text)
    elif part.inline_data is not None:
        image = part.as_image()
        image.save("generated_image.png")

نانو موز در برنامه Gemini، AI Studio یا Vertex AI Studio موجود است. ساده‌ترین راه برای امتحان کردن آن در برنامه Gemini است. در برنامه Gemini ( gemini.google.com )، گزینه 🍌 Create images در قسمت Tools انتخاب کنید. سپس، یک تصویر آپلود کنید و یک کار جالب را امتحان کنید. به عنوان مثال، می‌توانید بگویید:

Can you transform this picture of mine to a nice beach on a tropical island?

41a830bea8cf3c9f.png2fc9ac5b7008aafb.png

۱۲. تولید متن به گفتار 🎶

جمینی می‌تواند با استفاده از قابلیت‌های تولید متن به گفتار (TTS) جمینی، ورودی متن را به صدای تک‌سخنران یا چندسخنران تبدیل کند. تولید TTS قابل کنترل است، به این معنی که می‌توانید از زبان طبیعی برای ساختاردهی تعاملات و هدایت سبک، لهجه، سرعت و لحن صدا استفاده کنید.

دو مدل وجود دارد که از TTS پشتیبانی می‌کنند:

قابلیت TTS با تولید گفتار ارائه شده از طریق Live API که برای ورودی‌ها و خروجی‌های تعاملی، بدون ساختار و چندوجهی طراحی شده است، متفاوت است. در حالی که Live API در زمینه‌های مکالمه پویا برتری دارد، TTS از طریق Gemini API برای سناریوهایی که نیاز به قرائت دقیق متن با کنترل دقیق بر سبک و صدا دارند، مانند تولید پادکست یا کتاب صوتی، مناسب است.

در اینجا قطعه کدی برای TTS تک‌بلوری آمده است:

from google import genai
from google.genai import types
import wave

# Set up the wave file to save the output:
def wave_file(filename, pcm, channels=1, rate=24000, sample_width=2):
   with wave.open(filename, "wb") as wf:
      wf.setnchannels(channels)
      wf.setsampwidth(sample_width)
      wf.setframerate(rate)
      wf.writeframes(pcm)

client = genai.Client()

response = client.models.generate_content(
   model="gemini-2.5-flash-preview-tts",
   contents="Say cheerfully: Have a wonderful day!",
   config=types.GenerateContentConfig(
      response_modalities=["AUDIO"],
      speech_config=types.SpeechConfig(
         voice_config=types.VoiceConfig(
            prebuilt_voice_config=types.PrebuiltVoiceConfig(
               voice_name='Kore',
            )
         )
      ),
   )
)

data = response.candidates[0].content.parts[0].inline_data.data

file_name='out.wav'
wave_file(file_name, data) # Saves the file to current directory

می‌توانید نمونه‌های بیشتری را در مستندات تولید متن به گفتار (TTS) مشاهده کنید.

همچنین می‌توانید تولید گفتار را در Google AI Studio امتحان کنید. با دستورات مختلف در برنامه generate-speech بازی کنید:

6eb20d8a20e571fb.png

۱۳. درک فضایی 🌐

جمینی از تشخیص اشیاء و درک فضایی پیشرفته‌ای برخوردار است.

ساده‌ترین راه برای درک این موضوع، مشاهده‌ی آن در عمل است. به برنامه‌ی Spatial Understanding Starter در AI Studio بروید. چند تصویر انتخاب کنید و سعی کنید با استفاده از Gemini برخی از موارد موجود در تصویر را تشخیص دهید.

برای مثال، می‌توانید «سایه‌ها» یا «میوه‌ها» را در تصاویر مختلف تشخیص دهید:

6a521c961664339.png۲۲۶۰ab81a8c9a5e8.png

با تصاویر مختلف بازی کنید و ببینید که Gemini چقدر خوب اشیاء مختلف را تشخیص داده و برچسب گذاری می کند.

۱۴. رابط برنامه‌نویسی کاربردی زنده 🎤

رابط برنامه‌نویسی کاربردی زنده (Live API) امکان تعاملات صوتی و تصویری با تأخیر کم و به‌صورت بلادرنگ را با Gemini فراهم می‌کند. این رابط، جریان‌های مداوم صدا، تصویر یا متن را پردازش می‌کند تا پاسخ‌های گفتاری فوری و شبیه به انسان ارائه دهد و یک تجربه مکالمه طبیعی را برای کاربران شما ایجاد کند.

9ada309ba0cd0888.png

می‌توانید Live API را در Google AI Studio یا Live API را در Vertex AI Studio امتحان کنید. در هر دو برنامه، می‌توانید صدا، ویدیو و صفحه نمایش خود را به اشتراک بگذارید و با Gemini مکالمه زنده داشته باشید.

8b4901d2aecc5b62.png

شروع به اشتراک‌گذاری ویدیو یا صفحه نمایش خود کنید و از Gemini سوالات عمومی را از طریق صدا بپرسید. برای مثال:

Can you describe what you see on the screen?

از اینکه پاسخ‌های Gemini چقدر طبیعی به نظر می‌رسند، شگفت‌زده خواهید شد.

۱۵. نتیجه‌گیری

در این آزمایشگاه کد، ما اکوسیستم Gemini را پوشش دادیم و با خانواده محصولات Gemini شروع کردیم و یاد گرفتیم که چگونه مدل‌ها را با استفاده از SDK یکپارچه هوش مصنوعی گوگل Gen AI در برنامه‌های خود ادغام کنیم. ما ویژگی‌های پیشرفته Gemini، از جمله Long Context Window، Thinking Mode، ابزارهای پایه داخلی، Live API و Spatial Understanding را بررسی کردیم. ما شما را تشویق می‌کنیم که عمیق‌تر به اسناد مرجع بپردازید و به آزمایش با پتانسیل کامل Gemini ادامه دهید.

منابع