این راهنما به شما نشان می دهد که چگونه می توانید با استفاده از Vertex AI SDK برای Firebase مستقیماً از برنامه خود تماس با Gemini API را شروع کنید.
پیش نیازها
این راهنما فرض میکند که با استفاده از Android Studio برای توسعه برنامهها برای Android آشنا هستید.
اطمینان حاصل کنید که محیط توسعه و برنامه Android شما شرایط زیر را برآورده می کند:
- اندروید استودیو (آخرین نسخه)
- برنامه Android شما باید سطح API 21 یا بالاتر را هدف قرار دهد.
(اختیاری) برنامه نمونه را بررسی کنید.
میتوانید SDK را به سرعت امتحان کنید، اجرای کامل موارد استفاده مختلف را مشاهده کنید، یا اگر برنامه اندرویدی خود را ندارید از برنامه نمونه استفاده کنید. برای استفاده از برنامه نمونه، باید آن را به پروژه Firebase متصل کنید .
مرحله 1 : یک پروژه Firebase راه اندازی کنید و برنامه خود را به Firebase متصل کنید
اگر قبلاً یک پروژه Firebase و یک برنامه متصل به Firebase دارید
در کنسول Firebase، به صفحه Build with Gemini بروید و سپس روی کارت دوم کلیک کنید تا یک گردش کاری راه اندازی شود که به شما در انجام کارهای زیر کمک می کند. اگر طرح کارت را نمیبینید، این کارها کامل شدهاند.
پروژه خود را ارتقا دهید تا از طرح قیمت گذاری پرداختی Blaze استفاده کنید.
دو API زیر را برای پروژه خود فعال کنید:
aiplatform.googleapis.com
وfirebaseml.googleapis.com
.
برای افزودن SDK به برنامه خود، مرحله بعدی این راهنما را ادامه دهید.
اگر قبلاً یک پروژه Firebase و یک برنامه متصل به Firebase ندارید
وارد کنسول Firebase شوید.
روی ایجاد پروژه کلیک کنید و سپس از یکی از گزینه های زیر استفاده کنید:
گزینه 1 : با وارد کردن نام پروژه جدید در اولین مرحله از گردش کار «ایجاد پروژه»، یک پروژه کاملاً جدید Firebase (و پروژه Google Cloud زیربنایی آن به صورت خودکار) ایجاد کنید.
گزینه 2 : «افزودن Firebase» به پروژه Google Cloud موجود با انتخاب نام پروژه Google Cloud خود از منوی کشویی در مرحله اول گردش کار «ایجاد پروژه».
توجه داشته باشید که وقتی از شما خواسته شد، برای استفاده از Vertex AI SDKs برای Firebase نیازی به تنظیم Google Analytics ندارید .
در کنسول Firebase، به صفحه Build with Gemini بروید و سپس روی کارت دوم کلیک کنید تا یک گردش کاری راه اندازی شود که به شما در انجام کارهای زیر کمک می کند. اگر طرح کارت را نمیبینید، این کارها کامل شدهاند.
پروژه خود را ارتقا دهید تا از طرح قیمت گذاری پرداختی Blaze استفاده کنید.
دو API زیر را برای پروژه خود فعال کنید:
aiplatform.googleapis.com
وfirebaseml.googleapis.com
.
برای اتصال برنامه خود به Firebase، که شامل این وظایف است، به گردش کار AI مولد کنسول ادامه دهید:
ثبت برنامه خود در پروژه Firebase
افزودن فایل پیکربندی Firebase شما (
google-services.json
) وپلاگین google-services
Gradle به برنامه شما.
در مراحل بعدی این راهنما، Vertex AI SDK for Firebase را به برنامه خود اضافه میکنید و مقدار اولیه مورد نیاز را برای استفاده از SDK و Gemini API تکمیل میکنید.
مرحله 2 : SDK را اضافه کنید
با راه اندازی پروژه Firebase و اتصال برنامه به Firebase (مرحله قبل را ببینید)، اکنون می توانید Vertex AI SDK for Firebase را به برنامه خود اضافه کنید.
Vertex AI SDK for Android ( firebase-vertexai
) دسترسی به Gemini API را فراهم می کند.
در فایل پیکربندی Gradle ماژول (سطح برنامه) خود (مانند <project>/<app-module>/build.gradle.kts
)، وابستگی را برای Vertex AI SDK برای Android اضافه کنید:
Kotlin+KTX
dependencies {
// ... other androidx dependencies
// add the dependency for the Vertex AI SDK for Android
implementation("com.google.firebase:firebase-vertexai:16.0.0-alpha02")
}
Java
برای جاوا، باید دو کتابخانه اضافی اضافه کنید.
dependencies {
// ... other androidx dependencies
// add the dependency for the Vertex AI SDK for Android
implementation("com.google.firebase:firebase-vertexai:16.0.0-alpha02")
// Required for one-shot operations (to use `ListenableFuture` from Guava Android)
implementation("com.google.guava:guava:31.0.1-android")
// Required for streaming operations (to use `Publisher` from Reactive Streams)
implementation("org.reactivestreams:reactive-streams:1.0.4")
}
مرحله 3 : سرویس Vertex AI و مدل مولد را راه اندازی کنید
قبل از اینکه بتوانید تماس API برقرار کنید، باید سرویس Vertex AI و مدل تولیدی را مقداردهی اولیه کنید.
Kotlin+KTX
// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 Pro is versatile and can accept both text-only and multimodal prompt inputs
val generativeModel = Firebase.vertexAI.generativeModel("gemini-1.5-pro-preview-0409")
برای Kotlin، روشهای موجود در این SDK توابع تعلیق هستند و باید از یک محدوده Coroutine فراخوانی شوند. اگر با Coroutines آشنا نیستید، Kotlin Coroutines را در Android بخوانید. Java
// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 Pro is versatile and can accept both text-only and multimodal prompt inputs
GenerativeModel gm = FirebaseVertexAI.getInstance()
.generativeModel("gemini-1.5-pro-preview-0409");
// Use the GenerativeModelFutures Java compatibility layer which offers
// support for ListenableFuture and Publisher APIs
GenerativeModelFutures model = GenerativeModelFutures.from(gm);
برای جاوا، روشهای جریان در این SDK یک نوع Publisher
را از کتابخانه جریانهای واکنشی برمیگرداند.وقتی راهنمای شروع کار را به پایان رساندید، یاد بگیرید که چگونه یک مدل Gemini مناسب برای مورد استفاده خود انتخاب کنید.
مرحله 4 : با Gemini API تماس بگیرید
اکنون که برنامه خود را به Firebase متصل کرده اید، SDK را اضافه کرده اید و سرویس Vertex AI و مدل تولیدی را راه اندازی کرده اید، آماده فراخوانی Gemini API هستید.
انتخاب کنید که آیا میخواهید پاسخ را پخش جریانی کنید ( generateContentStream
) یا منتظر پاسخ باشید تا کل نتیجه تولید شود ( generateContent
).
جریان
بهطور پیشفرض، مدل پس از تکمیل کل فرآیند تولید، پاسخی را برمیگرداند. با این حال، میتوانید با منتظر ماندن برای کل نتیجه، به تعاملات سریعتری دست پیدا کنید و در عوض از جریان برای رسیدگی به نتایج جزئی استفاده کنید.
شما می توانید از generateContentStream()
برای پخش متن تولید شده از یک درخواست سریع که فقط شامل متن است استفاده کنید:
Kotlin+KTX
// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 Pro is versatile and can accept both text-only and multimodal prompt inputs
val generativeModel = Firebase.vertexAI.generativeModel("gemini-1.5-pro-preview-0409")
// Provide a prompt that includes only text
val prompt = "Write a story about a magic backpack."
// To stream generated text output, call generateContentStream and pass in the prompt
var response = ""
generativeModel.generateContentStream(prompt).collect { chunk ->
print(chunk.text)
response += chunk.text
}
برای Kotlin، روشهای موجود در این SDK توابع تعلیق هستند و باید از یک محدوده Coroutine فراخوانی شوند. اگر با Coroutines آشنا نیستید، Kotlin Coroutines را در Android بخوانید.Java
// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 Pro is versatile and can accept both text-only and multimodal prompt inputs
GenerativeModel gm = FirebaseVertexAI.getInstance()
.generativeModel("gemini-1.5-pro-preview-0409");
GenerativeModelFutures model = GenerativeModelFutures.from(gm);
// Provide a prompt that contains text
Content prompt = new Content.Builder()
.addText("Write a story about a magic backpack.")
.build();
// To stream generated text output, call generateContentStream with the text input
Publisher<GenerateContentResponse> streamingResponse =
model.generateContentStream(prompt);
// Subscribe to partial results from the response
final String[] fullResponse = {""};
streamingResponse.subscribe(new Subscriber<GenerateContentResponse>() {
@Override
public void onNext(GenerateContentResponse generateContentResponse) {
String chunk = generateContentResponse.getText();
fullResponse[0] += chunk;
}
@Override
public void onComplete() {
System.out.println(fullResponse[0]);
}
@Override
public void onError(Throwable t) {
t.printStackTrace();
}
@Override
public void onSubscribe(Subscription s) { }
});
برای جاوا، روشهای جریان در این SDK یک نوع Publisher
را از کتابخانه Reactive Streams برمیگرداند.بدون پخش جریانی
از طرف دیگر، می توانید به جای پخش جریانی، منتظر کل نتیجه باشید. نتیجه تنها پس از تکمیل مدل کل فرآیند تولید برگردانده می شود.
میتوانید از generateContent()
برای تولید متن از یک درخواست سریع که فقط شامل متن است استفاده کنید:
Kotlin+KTX
// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 Pro is versatile and can accept both text-only and multimodal prompt inputs
val generativeModel = Firebase.vertexAI.generativeModel("gemini-1.5-pro-preview-0409")
// Provide a prompt that contains text
val prompt = "Write a story about a magic backpack."
// To generate text output, call generateContent with the text input
val response = generativeModel.generateContent(prompt)
print(response.text)
برای Kotlin، روشهای موجود در این SDK توابع تعلیق هستند و باید از یک محدوده Coroutine فراخوانی شوند. اگر با Coroutines آشنا نیستید، Kotlin Coroutines را در Android بخوانید. Java
// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 Pro is versatile and can accept both text-only and multimodal prompt inputs
GenerativeModel gm = FirebaseVertexAI.getInstance()
.generativeModel("gemini-1.5-pro-preview-0409");
GenerativeModelFutures model = GenerativeModelFutures.from(gm);
// Provide a prompt that contains text
Content prompt = new Content.Builder()
.addText("Write a story about a magic backpack.")
.build();
// To generate text output, call generateContent with the text input
ListenableFuture<GenerateContentResponse> response = model.generateContent(prompt);
Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() {
@Override
public void onSuccess(GenerateContentResponse result) {
String resultText = result.getText();
System.out.println(resultText);
}
@Override
public void onFailure(Throwable t) {
t.printStackTrace();
}
}, executor);
برای جاوا، روشهای موجود در این SDK یک ListenableFuture
برمیگردانند. اگر با این API آشنا نیستید، به مستندات Android درباره استفاده از ListenableFuture
مراجعه کنید.شما چه کار دیگه ای میتوانید انجام دهید.
در مورد مدل های جمینی بیشتر بدانید
در مورد مدل های موجود برای موارد استفاده مختلف و سهمیه ها و قیمت آنها اطلاعات کسب کنید.
سایر قابلیت های Gemini API را امتحان کنید
- درباره ارسال پیامهای متنی بیشتر بیاموزید.
- درخواستهای فوری چندوجهی را با اعلانهای متنی و رسانهای (از جمله تصاویر، فایلهای PDF، ویدئو و صدا) ارسال کنید.
- مکالمات چند نوبتی (چت) بسازید.
یاد بگیرید چگونه تولید محتوا را کنترل کنید
- طراحی سریع، از جمله بهترین شیوهها، استراتژیها و درخواستهای نمونه را درک کنید .
- پارامترهای مدل مانند دما و حداکثر نشانه های خروجی را پیکربندی کنید .
- از تنظیمات ایمنی برای تنظیم احتمال دریافت پاسخ هایی که ممکن است مضر تلقی شوند استفاده کنید .
همچنین میتوانید با استفاده از Vertex AI Studio، دستورات و پیکربندیهای مدل را آزمایش کنید.
درباره تجربه خود با Vertex AI SDKs برای Firebase بازخورد بدهید