به Google GenAI SDK مهاجرت کنید، به Google GenAI SDK مهاجرت کنید

با انتشار Gemini 2.0 در اواخر سال 2024، ما مجموعه جدیدی از کتابخانه‌ها به نام Google GenAI SDK را معرفی کردیم. این مجموعه از طریق معماری کلاینت به‌روز شده ، تجربه توسعه‌دهنده بهبود یافته‌ای را ارائه می‌دهد و انتقال بین گردش‌های کاری توسعه‌دهنده و سازمانی را ساده می‌کند .

کیت توسعه نرم‌افزاری GenAI گوگل اکنون در تمام پلتفرم‌های پشتیبانی‌شده در دسترس عموم (GA) قرار دارد. اگر از یکی از کتابخانه‌های قدیمی ما استفاده می‌کنید، اکیداً توصیه می‌کنیم که به آن مهاجرت کنید.

این راهنما نمونه‌هایی از قبل و بعد از کد منتقل شده را ارائه می‌دهد تا به شما در شروع کار کمک کند.

نصب

قبل از

پایتون

pip install -U -q "google-generativeai"

جاوا اسکریپت

npm install @google/generative-ai

برو

go get github.com/google/generative-ai-go

بعد از

پایتون

pip install -U -q "google-genai"

جاوا اسکریپت

npm install @google/genai

برو

go get google.golang.org/genai

دسترسی به API

SDK قدیمی به طور ضمنی کلاینت API را در پشت صحنه با استفاده از روش‌های مختلف و موردی مدیریت می‌کرد. این امر مدیریت کلاینت و اعتبارنامه‌ها را دشوار می‌کرد. اکنون، شما از طریق یک شیء Client مرکزی تعامل می‌کنید. این شیء Client به عنوان یک نقطه ورودی واحد برای سرویس‌های مختلف API (مانند models ، chats ، files ، tunings ) عمل می‌کند و ثبات را ارتقا می‌دهد و مدیریت اعتبارنامه‌ها و پیکربندی را در فراخوانی‌های مختلف API ساده می‌کند.

قبل (دسترسی کمتر متمرکز به API)

پایتون

SDK قدیمی صراحتاً از یک شیء کلاینت سطح بالا برای اکثر فراخوانی‌های API استفاده نمی‌کرد. شما مستقیماً اشیاء GenerativeModel نمونه‌سازی کرده و با آنها تعامل داشتید.

import google.generativeai as genai

# Directly create and use model objects
model = genai.GenerativeModel('gemini-3.7-flash')
response = model.generate_content(...)
chat = model.start_chat(...)

جاوا اسکریپت

در حالی که GoogleGenerativeAI نقطه مرکزی برای مدل‌ها و چت بود، سایر قابلیت‌ها مانند مدیریت فایل و حافظه پنهان اغلب نیاز به وارد کردن و نمونه‌سازی کلاس‌های کلاینت کاملاً جداگانه داشتند.

import { GoogleGenerativeAI } from "@google/generative-ai";
import { GoogleAIFileManager, GoogleAICacheManager } from "@google/generative-ai/server"; // For files/caching

const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const fileManager = new GoogleAIFileManager("GEMINI_API_KEY");
const cacheManager = new GoogleAICacheManager("GEMINI_API_KEY");

// Get a model instance, then call methods on it
const model = genAI.getGenerativeModel({ model: "gemini-3.7-flash" });
const result = await model.generateContent(...);
const chat = model.startChat(...);

// Call methods on separate client objects for other services
const uploadedFile = await fileManager.uploadFile(...);
const cache = await cacheManager.create(...);

برو

تابع genai.NewClient یک کلاینت ایجاد کرد، اما عملیات مدل مولد معمولاً روی یک نمونه GenerativeModel جداگانه که از این کلاینت به دست آمده بود، فراخوانی می‌شدند. ممکن است از طریق بسته‌ها یا الگوهای متمایزی به سرویس‌های دیگر دسترسی پیدا شده باشد.

import (
      "github.com/google/generative-ai-go/genai"
      "github.com/google/generative-ai-go/genai/fileman" // For files
      "google.golang.org/api/option"
)

client, err := genai.NewClient(ctx, option.WithAPIKey("GEMINI_API_KEY"))
fileClient, err := fileman.NewClient(ctx, option.WithAPIKey("GEMINI_API_KEY"))

// Get a model instance, then call methods on it
model := client.GenerativeModel("gemini-3.7-flash")
resp, err := model.GenerateContent(...)
cs := model.StartChat()

// Call methods on separate client objects for other services
uploadedFile, err := fileClient.UploadFile(...)

بعد از (شیء کلاینت متمرکز)

پایتون

from google import genai

# Create a single client object
client = genai.Client()

# Access API methods through services on the client object
response = client.models.generate_content(...)
chat = client.chats.create(...)
my_file = client.files.upload(...)
tuning_job = client.tunings.tune(...)

جاوا اسکریپت

import { GoogleGenAI } from "@google/genai";

// Create a single client object
const ai = new GoogleGenAI({apiKey: "GEMINI_API_KEY"});

// Access API methods through services on the client object
const response = await ai.models.generateContent(...);
const chat = ai.chats.create(...);
const uploadedFile = await ai.files.upload(...);
const cache = await