با استفاده از Vertex AI SDKs برای Firebase با Gemini API شروع کنید


این راهنما به شما نشان می دهد که چگونه می توانید با استفاده از Vertex AI SDK برای Firebase مستقیماً از برنامه خود تماس با Gemini API را شروع کنید.

پیش نیازها

این راهنما فرض می‌کند که با استفاده از Android Studio برای توسعه برنامه‌ها برای Android آشنا هستید.

  • اطمینان حاصل کنید که محیط توسعه و برنامه Android شما شرایط زیر را برآورده می کند:

    • اندروید استودیو (آخرین نسخه)
    • برنامه Android شما باید سطح API 21 یا بالاتر را هدف قرار دهد.
  • (اختیاری) برنامه نمونه را بررسی کنید.

    نمونه برنامه را دانلود کنید

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

مرحله 1 : یک پروژه Firebase راه اندازی کنید و برنامه خود را به Firebase متصل کنید

اگر قبلاً یک پروژه Firebase و یک برنامه متصل به Firebase دارید

  1. در کنسول Firebase، به صفحه Build with Gemini بروید و سپس روی کارت دوم کلیک کنید تا یک گردش کاری راه اندازی شود که به شما در انجام کارهای زیر کمک می کند. اگر طرح کارت را نمی‌بینید، این کارها کامل شده‌اند.

  2. برای افزودن SDK به برنامه خود، مرحله بعدی این راهنما را ادامه دهید.

اگر قبلاً یک پروژه Firebase و یک برنامه متصل به Firebase ندارید

مرحله 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 را امتحان کنید

یاد بگیرید چگونه تولید محتوا را کنترل کنید

همچنین می‌توانید با استفاده از Vertex AI Studio، دستورات و پیکربندی‌های مدل را آزمایش کنید.


درباره تجربه خود با Vertex AI SDKs برای Firebase بازخورد بدهید