Gemini API ব্যবহার করে মাল্টি-টার্ন কথোপকথন (চ্যাট) তৈরি করুন৷

Gemini API ব্যবহার করে, আপনি একাধিক বাঁক জুড়ে ফ্রিফর্ম কথোপকথন তৈরি করতে পারেন। Firebase AI লজিক SDK কথোপকথনের অবস্থা পরিচালনা করে প্রক্রিয়াটিকে সহজ করে, তাই generateContent() (বা generateContentStream() ) এর বিপরীতে, আপনাকে কথোপকথনের ইতিহাস নিজেকে সংরক্ষণ করতে হবে না।

আপনি শুরু করার আগে

এই পৃষ্ঠায় প্রদানকারী-নির্দিষ্ট সামগ্রী এবং কোড দেখতে আপনার Gemini API প্রদানকারীতে ক্লিক করুন।

যদি আপনি ইতিমধ্যে না করে থাকেন, শুরু করার নির্দেশিকাটি সম্পূর্ণ করুন, যা বর্ণনা করে যে কীভাবে আপনার Firebase প্রকল্প সেট আপ করবেন, আপনার অ্যাপকে Firebase-এ সংযুক্ত করবেন, SDK যোগ করবেন, আপনার নির্বাচিত Gemini API প্রদানকারীর জন্য ব্যাকএন্ড পরিষেবা শুরু করবেন এবং একটি GenerativeModel উদাহরণ তৈরি করবেন।

আপনার প্রম্পটে পরীক্ষা এবং পুনরাবৃত্তি করার জন্য এবং এমনকি একটি জেনারেট করা কোড স্নিপেট পাওয়ার জন্য, আমরা Google AI Studio ব্যবহার করার পরামর্শ দিই।

একটি চ্যাট প্রম্পট অনুরোধ পাঠান

এই নমুনাটি চেষ্টা করার আগে, আপনার প্রকল্প এবং অ্যাপ সেট আপ করতে এই গাইডের শুরু করার আগে বিভাগটি সম্পূর্ণ করুন।
সেই বিভাগে, আপনি আপনার নির্বাচিত Gemini API প্রদানকারীর জন্য একটি বোতামে ক্লিক করবেন যাতে আপনি এই পৃষ্ঠায় প্রদানকারী-নির্দিষ্ট সামগ্রী দেখতে পান

একটি মাল্টি-টার্ন কথোপকথন তৈরি করতে (চ্যাটের মতো), startChat() কল করে চ্যাট শুরু করে শুরু করুন। তারপর একটি নতুন ব্যবহারকারীর বার্তা পাঠাতে sendMessage() ব্যবহার করুন, যা চ্যাট ইতিহাসে বার্তা এবং প্রতিক্রিয়াও যুক্ত করবে।

কথোপকথনে বিষয়বস্তুর সাথে যুক্ত role জন্য দুটি সম্ভাব্য বিকল্প রয়েছে:

  • user : ভূমিকা যা প্রম্পট প্রদান করে। এই মানটি sendMessage() এ কলের জন্য ডিফল্ট, এবং ভিন্ন ভূমিকা পাস করা হলে ফাংশনটি একটি ব্যতিক্রম থ্রো করে।

  • model : ভূমিকা যা প্রতিক্রিয়া প্রদান করে। বিদ্যমান history সহ startChat() কল করার সময় এই ভূমিকাটি ব্যবহার করা যেতে পারে।

সুইফট

আপনি একটি নতুন ব্যবহারকারী বার্তা পাঠাতে startChat() এবং sendMessage() কল করতে পারেন:


import FirebaseAI

// Initialize the Gemini Developer API backend service
let ai = FirebaseAI.firebaseAI(backend: .googleAI())

// Create a `GenerativeModel` instance with a model that supports your use case
let model = ai.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.")

Kotlin

আপনি একটি নতুন ব্যবহারকারী বার্তা পাঠাতে startChat() এবং sendMessage() কল করতে পারেন:

কোটলিনের জন্য, এই SDK-এর পদ্ধতিগুলি হল সাসপেন্ড ফাংশন এবং একটি Coroutine স্কোপ থেকে কল করা প্রয়োজন৷

// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a model that supports your use case
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
                        .generativeModel("gemini-2.0-flash")


// Initialize the chat
val chat = generativeModel.startChat(
  history = listOf(
    content(role = "user") { text("Hello, I have 2 dogs in my house.") },
    content(role = "model") { text("Great to meet you. What would you like to know?") }
  )
)

val response = chat.sendMessage("How many paws are in my house?")
print(response.text)

Java

আপনি একটি নতুন ব্যবহারকারী বার্তা পাঠাতে startChat() এবং sendMessage() কল করতে পারেন:

জাভার জন্য, এই SDK-এর পদ্ধতিগুলি একটি ListenableFuture প্রদান করে।

// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a model that supports your use case
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
        .generativeModel("gemini-2.0-flash");

// Use the GenerativeModelFutures Java compatibility layer which offers
// support for ListenableFuture and Publisher APIs
GenerativeModelFutures model = GenerativeModelFutures.from(ai);


// (optional) Create previous chat history for context
Content.Builder userContentBuilder = new Content.Builder();
userContentBuilder.setRole("user");
userContentBuilder.addText("Hello, I have 2 dogs in my house.");
Content userContent = userContentBuilder.build();

Content.Builder modelContentBuilder = new Content.Builder();
modelContentBuilder.setRole("model");
modelContentBuilder.addText("Great to meet you. What would you like to know?");
Content modelContent = userContentBuilder.build();

List<Content> history = Arrays.asList(userContent, modelContent);

// Initialize the chat
ChatFutures chat = model.startChat(history);

// Create a new user message
Content.Builder messageBuilder = new Content.Builder();
messageBuilder.setRole("user");
messageBuilder.addText("How many paws are in my house?");

Content message = messageBuilder.build();

// Send the message
ListenableFuture<GenerateContentResponse> response = chat.sendMessage(message);
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);

Web

আপনি একটি নতুন ব্যবহারকারী বার্তা পাঠাতে startChat() এবং sendMessage() কল করতে পারেন:


import { initializeApp } from "firebase/app";
import { getAI, getGenerativeModel, GoogleAIBackend } from "firebase/ai";

// TODO(developer) Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);

// Initialize the Gemini Developer API backend service
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });

// Create a `GenerativeModel` instance with a model that supports your use case
const model = getGenerativeModel(ai, { model: "gemini-2.0-flash" });


async function run() {
  const chat = model.startChat({
    history: [
      {
        role: "user",
        parts: [{ text: "Hello, I have 2 dogs in my house." }],
      },
      {
        role: "model",
        parts: [{ text: "Great to meet you. What would you like to know?" }],
      },
    ],
    generationConfig: {
      maxOutputTokens: 100,
    },
  });

  const msg = "How many paws are in my house?";

  const result = await chat.sendMessage(msg);

  const response = await result.response;
  const text = response.text();
  console.log(text);
}

run();

Dart

আপনি একটি নতুন ব্যবহারকারী বার্তা পাঠাতে startChat() এবং sendMessage() কল করতে পারেন:


import 'package:firebase_ai/firebase_ai.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';

// Initialize FirebaseApp
await Firebase.initializeApp(
  options: DefaultFirebaseOptions.currentPlatform,
);

// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a model that supports your use case
final model =
      FirebaseAI.googleAI().generativeModel(model: 'gemini-2.0-flash');


final chat = model.startChat();
// Provide a prompt that contains text
final prompt = [Content.text('Write a story about a magic backpack.')];

final response = await chat.sendMessage(prompt);
print(response.text);

ঐক্য

আপনি একটি নতুন ব্যবহারকারী বার্তা পাঠাতে StartChat() এবং SendMessageAsync() কল করতে পারেন:


using Firebase;
using Firebase.AI;

// Initialize the Gemini Developer API backend service
var ai = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI());

// Create a `GenerativeModel` instance with a model that supports your use case
var model = ai.GetGenerativeModel(modelName: "gemini-2.0-flash");


// Optionally specify existing chat history
var history = new [] {
  ModelContent.Text("Hello, I have 2 dogs in my house."),
  new ModelContent("model", new ModelContent.TextPart("Great to meet you. What would you like to know?")),
};

// Initialize the chat with optional chat history
var chat = model.StartChat(history);

// To generate text output, call SendMessageAsync and pass in the message
var response = await chat.SendMessageAsync("How many paws are in my house?");
UnityEngine.Debug.Log(response.Text ?? "No text in response.");

আপনার ব্যবহারের ক্ষেত্রে এবং অ্যাপের জন্য উপযুক্ত একটি মডেল কীভাবে চয়ন করবেন তা শিখুন।

প্রতিক্রিয়া স্ট্রীম

এই নমুনাটি চেষ্টা করার আগে, আপনার প্রকল্প এবং অ্যাপ সেট আপ করতে এই গাইডের শুরু করার আগে বিভাগটি সম্পূর্ণ করুন।
সেই বিভাগে, আপনি আপনার নির্বাচিত Gemini API প্রদানকারীর জন্য একটি বোতামে ক্লিক করবেন যাতে আপনি এই পৃষ্ঠায় প্রদানকারী-নির্দিষ্ট সামগ্রী দেখতে পান

আপনি মডেল জেনারেশন থেকে সম্পূর্ণ ফলাফলের জন্য অপেক্ষা না করে দ্রুত মিথস্ক্রিয়া অর্জন করতে পারেন এবং পরিবর্তে আংশিক ফলাফল পরিচালনা করতে স্ট্রিমিং ব্যবহার করতে পারেন। প্রতিক্রিয়া স্ট্রিম করতে, sendMessageStream() কল করুন।



আপনি আর কি করতে পারেন?

  • মডেলে দীর্ঘ প্রম্পট পাঠানোর আগে কীভাবে টোকেন গণনা করবেন তা শিখুন।
  • Cloud Storage for Firebase সেট আপ করুন যাতে আপনি আপনার মাল্টিমোডাল অনুরোধগুলিতে বড় ফাইলগুলি অন্তর্ভুক্ত করতে পারেন এবং প্রম্পটে ফাইলগুলি সরবরাহ করার জন্য আরও পরিচালিত সমাধান পেতে পারেন৷ ফাইলগুলিতে ছবি, পিডিএফ, ভিডিও এবং অডিও অন্তর্ভুক্ত থাকতে পারে।
  • উত্পাদনের জন্য প্রস্তুতির বিষয়ে চিন্তা করা শুরু করুন ( উৎপাদন চেকলিস্ট দেখুন), সহ:

অন্যান্য ক্ষমতা ব্যবহার করে দেখুন

বিষয়বস্তু তৈরি নিয়ন্ত্রণ কিভাবে শিখুন

আপনি প্রম্পট এবং মডেল কনফিগারেশন নিয়ে পরীক্ষা করতে পারেন এবং এমনকি Google AI Studio ব্যবহার করে একটি জেনারেট করা কোড স্নিপেট পেতে পারেন।

সমর্থিত মডেল সম্পর্কে আরও জানুন

বিভিন্ন ব্যবহারের ক্ষেত্রে উপলব্ধ মডেল এবং তাদের কোটা এবং মূল্য সম্পর্কে জানুন।


Firebase AI লজিকের সাথে আপনার অভিজ্ঞতা সম্পর্কে মতামত দিন