با استفاده از Gemini API ، میتوانید مکالمات آزاد را در چندین نوبت ایجاد کنید. Vertex AI در Firebase SDK فرآیند را با مدیریت وضعیت مکالمه ساده میکند، بنابراین بر خلاف generateContentStream()
یا generateContent()
، مجبور نیستید تاریخچه مکالمه را خودتان ذخیره کنید.
قبل از شروع
اگر قبلاً این کار را نکردهاید، راهنمای شروع به کار برای Vertex AI در Firebase SDK را تکمیل کنید. مطمئن شوید که تمام کارهای زیر را انجام داده اید:
یک پروژه Firebase جدید یا موجود راه اندازی کنید، از جمله استفاده از طرح قیمت گذاری Blaze و فعال کردن API های مورد نیاز.
برنامه خود را به Firebase وصل کنید، از جمله ثبت برنامه خود و افزودن پیکربندی Firebase به برنامه خود.
SDK را اضافه کنید و سرویس Vertex AI و مدل تولیدی را در برنامه خود راه اندازی کنید.
بعد از اینکه برنامه خود را به Firebase متصل کردید، SDK را اضافه کردید و سرویس Vertex AI و مدل تولیدی را راه اندازی کردید، آماده فراخوانی Gemini API هستید.
یک درخواست سریع چت ارسال کنید
برای ایجاد یک مکالمه چند نوبتی (مانند چت)، با فراخوانی startChat()
چت را مقداردهی اولیه کنید. سپس از sendMessageStream()
(یا sendMessage()
) برای ارسال یک پیام کاربر جدید استفاده کنید که پیام و پاسخ را نیز به تاریخچه چت اضافه می کند.
دو گزینه ممکن برای role
مرتبط با محتوا در یک مکالمه وجود دارد:
user
: نقشی که دستورات را ارائه می دهد. این مقدار پیشفرض برای فراخوانی بهsendMessageStream()
(یاsendMessage()
) است و اگر نقش دیگری ارسال شود، تابع یک استثنا ایجاد میکند.model
: نقشی که پاسخ ها را ارائه می دهد. این نقش هنگام فراخوانیstartChat()
باhistory
موجود قابل استفاده است.
انتخاب کنید که آیا میخواهید پاسخ را پخش کنید ( sendMessageStream
) یا منتظر پاسخ باشید تا کل نتیجه تولید شود ( sendMessage
).
پخش جریانی
میتوانید با منتظر ماندن برای کل نتیجه تولید مدل، به تعاملات سریعتری برسید و در عوض از استریم برای مدیریت نتایج جزئی استفاده کنید.
این مثال نحوه استفاده از startChat()
و sendMessageStream()
را برای استریم پاسخ ها از مدل نشان می دهد:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")
// Optionally specify existing chat history
let history = [
ModelContent(role: "user", parts: "Hello, I have 2 dogs in my house."),
ModelContent(role: "model", parts: "Great to meet you. What would you like to know?"),
]
// Initialize the chat with optional chat history
let chat = model.startChat(history: history)
// To stream generated text output, call sendMessageStream and pass in the message
let contentStream = try chat.sendMessageStream("How many paws are in my house?")
for try await chunk in contentStream {
if let text = chunk.text {
print(text)
}
}
بدون پخش جریانی
از طرف دیگر، می توانید به جای پخش جریانی، منتظر کل نتیجه باشید. نتیجه تنها پس از تکمیل مدل کل فرآیند تولید برگردانده می شود.
این مثال نحوه استفاده از startChat()
و sendMessage()
برای ارسال پیام کاربری جدید نشان می دهد:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")
// Optionally specify existing chat history
let history = [
ModelContent(role: "user", parts: "Hello, I have 2 dogs in my house."),
ModelContent(role: "model", parts: "Great to meet you. What would you like to know?"),
]
// Initialize the chat with optional chat history
let chat = model.startChat(history: history)
// To generate text output, call sendMessage and pass in the message
let response = try await chat.sendMessage("How many paws are in my house?")
print(response.text ?? "No text in response.")
نحوه انتخاب یک مدل و به صورت اختیاری مکان مناسب برای مورد استفاده و برنامه خود را بیاموزید.
چه کار دیگری می توانید انجام دهید؟
- قبل از ارسال پیام های طولانی به مدل، نحوه شمارش نشانه ها را بیاموزید.
- Cloud Storage for Firebase راهاندازی کنید تا بتوانید فایلهای حجیم را در درخواستهای چندوجهی خود بگنجانید و راهحل مدیریتشدهتری برای ارائه فایلها در درخواستها داشته باشید. فایلها میتوانند شامل تصاویر، PDF، ویدیو و صدا باشند.
- به فکر آماده شدن برای تولید، از جمله راهاندازی Firebase App Check برای محافظت از Gemini API در برابر سوء استفاده توسط مشتریان غیرمجاز باشید. همچنین، حتماً چک لیست تولید را مرور کنید.
سایر قابلیت های Gemini API را امتحان کنید
- متن را از اعلانهای فقط متنی ایجاد کنید.
- متن را از اعلانهای چندوجهی (شامل متن، تصاویر، PDF، ویدئو و صدا) تولید کنید.
- خروجی ساختاریافته (مانند JSON) را هم از دستورات متنی و هم از چند وجهی ایجاد کنید.
- از فراخوانی تابع برای اتصال مدل های مولد به سیستم ها و اطلاعات خارجی استفاده کنید.
یاد بگیرید چگونه تولید محتوا را کنترل کنید
- طراحی سریع، از جمله بهترین شیوهها، استراتژیها و درخواستهای نمونه را درک کنید .
- پارامترهای مدل مانند دما و نشانههای حداکثر خروجی (برای Gemini ) یا نسبت ابعاد و تولید شخص (برای Imagen ) را پیکربندی کنید.
- از تنظیمات ایمنی برای تنظیم احتمال دریافت پاسخ هایی که ممکن است مضر تلقی شوند استفاده کنید .
درباره مدل های پشتیبانی شده بیشتر بدانید
در مورد مدل های موجود برای موارد استفاده مختلف و سهمیه ها و قیمت آنها اطلاعات کسب کنید.درباره تجربه خود با Vertex AI در Firebase بازخورد بدهید