Khi sử dụng Gemini API, bạn có thể xây dựng các cuộc trò chuyện tự do qua
nhiều lượt. SDK giúp đơn giản hoá quy trình bằng cách quản lý trạng thái của cuộc trò chuyện. Vì vậy, không giống như generateContent()
(hoặc generateContentStream()), bạn không phải tự lưu trữ nhật ký trò chuyện
mình.Firebase AI Logic
Chuyển đến mã cho cuộc trò chuyện chỉ bằng văn bản Chuyển đến mã để chỉnh sửa hình ảnh lặp đi lặp lại Chuyển đến mã cho các câu trả lời được truyền trực tuyến
Trước khi bắt đầu
|
Nhấp vào nhà cung định Gemini API để xem nội dung dành riêng cho nhà cung cấp và mã trên trang này. |
Nếu chưa hoàn tất, hãy làm theo
hướng dẫn bắt đầu. Hướng dẫn này mô tả cách
thiết lập dự án Firebase, kết nối ứng dụng với Firebase, thêm SDK,
khởi chạy dịch vụ phụ trợ cho nhà cung cấp Gemini API mà bạn chọn và
tạo một thực thể GenerativeModel.
Để kiểm thử và lặp lại các câu lệnh, bạn nên sử dụng Google AI Studio.
Xem các tài nguyên hữu ích
Swift
Dùng thử ứng dụng bắt đầu nhanh
Sử dụng ứng dụng bắt đầu nhanh để dùng thử SDK một cách nhanh chóng và xem cách triển khai hoàn chỉnh của nhiều trường hợp sử dụng. Hoặc sử dụng ứng dụng bắt đầu nhanh nếu bạn không có ứng dụng nền tảng Apple của riêng mình. Để sử dụng ứng dụng bắt đầu nhanh, bạn cần kết nối ứng dụng đó với một dự án Firebase.
Chuyển đến ứng dụng bắt đầu nhanh
Xem video hướng dẫn
Video này minh hoạ cách triển khai tính năng trò chuyện bằng Firebase AI Logic bằng cách xây dựng một ứng dụng lập kế hoạch bữa ăn dựa trên AI trong thế giới thực. Ứng dụng này cho phép người dùng trò chuyện với một đầu bếp về bất kỳ công thức nào mà họ muốn chuẩn bị.
Bạn cũng có thể tải xuống và khám phá cơ sở mã cho ứng dụng trong video.
Xem cơ sở mã cho ứng dụng của video
Kotlin
Dùng thử ứng dụng bắt đầu nhanh
Sử dụng ứng dụng bắt đầu nhanh để dùng thử SDK một cách nhanh chóng và xem cách triển khai hoàn chỉnh của nhiều trường hợp sử dụng. Hoặc sử dụng ứng dụng bắt đầu nhanh nếu bạn không có ứng dụng Android của riêng mình. Để sử dụng ứng dụng bắt đầu nhanh, bạn cần kết nối ứng dụng đó với một dự án Firebase.
Java
Dùng thử ứng dụng bắt đầu nhanh
Sử dụng ứng dụng bắt đầu nhanh để dùng thử SDK một cách nhanh chóng và xem cách triển khai hoàn chỉnh của nhiều trường hợp sử dụng. Hoặc sử dụng ứng dụng bắt đầu nhanh nếu bạn không có ứng dụng Android của riêng mình. Để sử dụng ứng dụng bắt đầu nhanh, bạn cần kết nối ứng dụng đó với một dự án Firebase.
Web
Dùng thử ứng dụng bắt đầu nhanh
Sử dụng ứng dụng bắt đầu nhanh để dùng thử SDK một cách nhanh chóng và xem cách triển khai hoàn chỉnh của nhiều trường hợp sử dụng. Hoặc sử dụng ứng dụng bắt đầu nhanh nếu bạn không có ứng dụng web của riêng mình. Để sử dụng ứng dụng bắt đầu nhanh, bạn cần kết nối ứng dụng đó với một dự án Firebase.
Chuyển đến ứng dụng bắt đầu nhanh
Xem video hướng dẫn
Video này minh hoạ cách triển khai tính năng trò chuyện bằng Firebase AI Logic bằng cách xây dựng một ứng dụng lập kế hoạch bữa ăn dựa trên AI trong thế giới thực. Ứng dụng này cho phép người dùng trò chuyện với một đầu bếp về bất kỳ công thức nào mà họ muốn chuẩn bị.
Bạn cũng có thể tải xuống và khám phá cơ sở mã cho ứng dụng trong video.
Xem cơ sở mã cho ứng dụng của video
Dart
Dùng thử ứng dụng bắt đầu nhanh
Sử dụng ứng dụng bắt đầu nhanh để dùng thử SDK một cách nhanh chóng và xem cách triển khai hoàn chỉnh của nhiều trường hợp sử dụng. Hoặc sử dụng ứng dụng bắt đầu nhanh nếu bạn không có ứng dụng Flutter của riêng mình. Để sử dụng ứng dụng bắt đầu nhanh, bạn cần kết nối ứng dụng đó với một dự án Firebase.
Unity
Dùng thử ứng dụng bắt đầu nhanh
Sử dụng ứng dụng bắt đầu nhanh để dùng thử SDK một cách nhanh chóng và xem cách triển khai hoàn chỉnh của nhiều trường hợp sử dụng. Hoặc sử dụng ứng dụng bắt đầu nhanh nếu bạn không có trò chơi Unity của riêng mình. Để sử dụng ứng dụng bắt đầu nhanh, bạn cần kết nối ứng dụng đó với một dự án Firebase.
Xây dựng trải nghiệm trò chuyện chỉ bằng văn bản
|
Trước khi dùng thử mẫu này, hãy hoàn tất phần
Trước khi bắt đầu của hướng dẫn này
để thiết lập dự án và ứng dụng. Trong phần đó, bạn cũng sẽ nhấp vào một nút cho nhà cung cấp Gemini API mà bạn chọn để xem nội dung dành riêng cho nhà cung cấp trên trang này. |
Để xây dựng một cuộc trò chuyện nhiều lượt (như trò chuyện), hãy bắt đầu bằng cách khởi chạy cuộc trò chuyện bằng cách gọi startChat(). Sau đó, hãy sử dụng sendMessage() để gửi một tin nhắn mới của người dùng. Tin nhắn này cũng sẽ nối thêm tin nhắn và câu trả lời vào nhật ký trò chuyện.
Có 2 lựa chọn có thể cho role được liên kết với nội dung trong một cuộc trò chuyện:
user: vai trò cung cấp câu lệnh. Giá trị này là giá trị mặc định cho các lệnh gọi đếnsendMessage(), và hàm sẽ đưa ra một ngoại lệ nếu một vai trò khác được truyền.model: vai trò cung cấp câu trả lời. Bạn có thể sử dụng vai trò này khi gọistartChat()bằnghistoryhiện có.
Swift
Bạn có thể gọi
startChat()
và
sendMessage()
để gửi một tin nhắn mới của người dùng mới:
import FirebaseAILogic
// 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-3-flash-preview")
// 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
Bạn có thể gọi startChat()
và
sendMessage()
để gửi một tin nhắn mới của người dùng mới:
// 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-3-flash-preview")
// Initialize the chat
val chat = model.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
Bạn có thể gọi
startChat()
và
sendMessage()
để gửi một tin nhắn mới của người dùng mới:
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-3-flash-preview");
// 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
Bạn có thể gọi
startChat()
và
sendMessage()
để gửi một tin nhắn mới của người dùng mới:
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-3-flash-preview" });
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 text = result.response.text();
console.log(text);
}
run();
Dart
Bạn có thể gọi
startChat()
và
sendMessage()
để gửi một tin nhắn mới của người dùng:
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-3-flash-preview');
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);
Unity
Bạn có thể gọi
StartChat()
và
SendMessageAsync()
để gửi một tin nhắn mới của người dùng mới:
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-3-flash-preview");
// 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.");
Tìm hiểu cách chọn một mô hình phù hợp với trường hợp sử dụng và ứng dụng của bạn.
Lặp lại và chỉnh sửa hình ảnh bằng tính năng trò chuyện nhiều lượt
|
Trước khi dùng thử mẫu này, hãy hoàn tất phần
Trước khi bắt đầu của hướng dẫn này
để thiết lập dự án và ứng dụng. Trong phần đó, bạn cũng sẽ nhấp vào một nút cho nhà cung cấp Gemini API mà bạn chọn để xem nội dung dành riêng cho nhà cung cấp trên trang này. |
Khi sử dụng tính năng trò chuyện nhiều lượt, bạn có thể lặp lại với một Gemini mô hình trên những hình ảnh mà mô hình đó tạo hoặc bạn cung cấp.
Hãy nhớ tạo một thực thể GenerativeModel, đưa
responseModalities: ["TEXT", "IMAGE"]startChat() và sendMessage() để gửi tin nhắn mới của người dùng.
Swift
import FirebaseAILogic
// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a Gemini model that supports image output
let generativeModel = FirebaseAI.firebaseAI(backend: .googleAI()).generativeModel(
modelName: "gemini-2.5-flash-image",
// Configure the model to respond with text and images (required)
generationConfig: GenerationConfig(responseModalities: [.text, .image])
)
// Initialize the chat
let chat = model.startChat()
guard let image = UIImage(named: "scones") else { fatalError("Image file not found.") }
// Provide an initial text prompt instructing the model to edit the image
let prompt = "Edit this image to make it look like a cartoon"
// To generate an initial response, send a user message with the image and text prompt
let response = try await chat.sendMessage(image, prompt)
// Inspect the generated image
guard let inlineDataPart = response.inlineDataParts.first else {
fatalError("No image data in response.")
}
guard let uiImage = UIImage(data: inlineDataPart.data) else {
fatalError("Failed to convert data to UIImage.")
}
// Follow up requests do not need to specify the image again
let followUpResponse = try await chat.sendMessage("But make it old-school line drawing style")
// Inspect the edited image after the follow up request
guard let followUpInlineDataPart = followUpResponse.inlineDataParts.first else {
fatalError("No image data in response.")
}
guard let followUpUIImage = UIImage(data: followUpInlineDataPart.data) else {
fatalError("Failed to convert data to UIImage.")
}
Kotlin
// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a Gemini model that supports image output
val model = Firebase.ai(backend = GenerativeBackend.googleAI()).generativeModel(
modelName = "gemini-2.5-flash-image",
// Configure the model to respond with text and images (required)
generationConfig = generationConfig {
responseModalities = listOf(ResponseModality.TEXT, ResponseModality.IMAGE) }
)
// Provide an image for the model to edit
val bitmap = BitmapFactory.decodeResource(context.resources, R.drawable.scones)
// Create the initial prompt instructing the model to edit the image
val prompt = content {
image(bitmap)
text("Edit this image to make it look like a cartoon")
}
// Initialize the chat
val chat = model.startChat()
// To generate an initial response, send a user message with the image and text prompt
var response = chat.sendMessage(prompt)
// Inspect the returned image
var generatedImageAsBitmap = response
.candidates.first().content.parts.filterIsInstance<ImagePart>().firstOrNull()?.image
// Follow up requests do not need to specify the image again
response = chat.sendMessage("But make it old-school line drawing style")
generatedImageAsBitmap = response
.candidates.first().content.parts.filterIsInstance<ImagePart>().firstOrNull()?.image
Java
// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a Gemini model that supports image output
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI()).generativeModel(
"gemini-2.5-flash-image",
// Configure the model to respond with text and images (required)
new GenerationConfig.Builder()
.setResponseModalities(Arrays.asList(ResponseModality.TEXT, ResponseModality.IMAGE))
.build()
);
GenerativeModelFutures model = GenerativeModelFutures.from(ai);
// Provide an image for the model to edit
Bitmap bitmap = BitmapFactory.decodeResource(resources, R.drawable.scones);
// Initialize the chat
ChatFutures chat = model.startChat();
// Create the initial prompt instructing the model to edit the image
Content prompt = new Content.Builder()
.setRole("user")
.addImage(bitmap)
.addText("Edit this image to make it look like a cartoon")
.build();
// To generate an initial response, send a user message with the image and text prompt
ListenableFuture<GenerateContentResponse> response = chat.sendMessage(prompt);
// Extract the image from the initial response
ListenableFuture<@Nullable Bitmap> initialRequest = Futures.transform(response, result -> {
for (Part part : result.getCandidates().get(0).getContent().getParts()) {
if (part instanceof ImagePart) {
ImagePart imagePart = (ImagePart) part;
return imagePart.getImage();
}
}
return null;
}, executor);
// Follow up requests do not need to specify the image again
ListenableFuture<GenerateContentResponse> modelResponseFuture = Futures.transformAsync(
initialRequest,
generatedImage -> {
Content followUpPrompt = new Content.Builder()
.addText("But make it old-school line drawing style")
.build();
return chat.sendMessage(followUpPrompt);
},
executor);
// Add a final callback to check the reworked image
Futures.addCallback(modelResponseFuture, new FutureCallback<GenerateContentResponse>() {
@Override
public void onSuccess(GenerateContentResponse result) {
for (Part part : result.getCandidates().get(0).getContent().getParts()) {
if (part instanceof ImagePart) {
ImagePart imagePart = (ImagePart) part;
Bitmap generatedImageAsBitmap = imagePart.getImage();
break;
}
}
}
@Override
public void onFailure(Throwable t) {
t.printStackTrace();
}
}, executor);
Web
import { initializeApp } from "firebase/app";
import { getAI, getGenerativeModel, GoogleAIBackend, ResponseModality } 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.5-flash-image",
// Configure the model to respond with text and images (required)
generationConfig: {
responseModalities: [ResponseModality.TEXT, ResponseModality.IMAGE],
},
});
// Prepare an image for the model to edit
async function fileToGenerativePart(file) {
const base64EncodedDataPromise = new Promise((resolve) => {
const reader = new FileReader();
reader.onloadend = () => resolve(reader.result.split(',')[1]);
reader.readAsDataURL(file);
});
return {
inlineData: { data: await base64EncodedDataPromise, mimeType: file.type },
};
}
const fileInputEl = document.querySelector("input[type=file]");
const imagePart = await fileToGenerativePart(fileInputEl.files[0]);
// Provide an initial text prompt instructing the model to edit the image
const prompt = "Edit this image to make it look like a cartoon";
// Initialize the chat
const chat = model.startChat();
// To generate an initial response, send a user message with the image and text prompt
const result = await chat.sendMessage([prompt, imagePart]);
// Request and inspect the generated image
try {
const inlineDataParts = result.response.inlineDataParts();
if (inlineDataParts?.[0]) {
// Inspect the generated image
const image = inlineDataParts[0].inlineData;
console.log(image.mimeType, image.data);
}
} catch (err) {
console.error('Prompt or candidate was blocked:', err);
}
// Follow up requests do not need to specify the image again
const followUpResult = await chat.sendMessage("But make it old-school line drawing style");
// Request and inspect the returned image
try {
const followUpInlineDataParts = followUpResult.response.inlineDataParts();
if (followUpInlineDataParts?.[0]) {
// Inspect the generated image
const followUpImage = followUpInlineDataParts[0].inlineData;
console.log(followUpImage.mimeType, followUpImage.data);
}
} catch (err) {
console.error('Prompt or candidate was blocked:', err);
}
Dart
import 'package:firebase_ai/firebase_ai.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a Gemini model that supports image output
final model = FirebaseAI.googleAI().generativeModel(
model: 'gemini-2.5-flash-image',
// Configure the model to respond with text and images (required)
generationConfig: GenerationConfig(responseModalities: [ResponseModalities.text, ResponseModalities.image]),
);
// Prepare an image for the model to edit
final image = await File('scones.jpg').readAsBytes();
final imagePart = InlineDataPart('image/jpeg', image);
// Provide an initial text prompt instructing the model to edit the image
final prompt = TextPart("Edit this image to make it look like a cartoon");
// Initialize the chat
final chat = model.startChat();
// To generate an initial response, send a user message with the image and text prompt
final response = await chat.sendMessage([
Content.multi([prompt,imagePart])
]);
// Inspect the returned image
if (response.inlineDataParts.isNotEmpty) {
final imageBytes = response.inlineDataParts[0].bytes;
// Process the image
} else {
// Handle the case where no images were generated
print('Error: No images were generated.');
}
// Follow up requests do not need to specify the image again
final followUpResponse = await chat.sendMessage([
Content.text("But make it old-school line drawing style")
]);
// Inspect the returned image
if (followUpResponse.inlineDataParts.isNotEmpty) {
final followUpImageBytes = response.inlineDataParts[0].bytes;
// Process the image
} else {
// Handle the case where no images were generated
print('Error: No images were generated.');
}
Unity
using Firebase;
using Firebase.AI;
// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a Gemini model that supports image output
var model = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI()).GetGenerativeModel(
modelName: "gemini-2.5-flash-image",
// Configure the model to respond with text and images (required)
generationConfig: new GenerationConfig(
responseModalities: new[] { ResponseModality.Text, ResponseModality.Image })
);
// Prepare an image for the model to edit
var imageFile = System.IO.File.ReadAllBytes(System.IO.Path.Combine(
UnityEngine.Application.streamingAssetsPath, "scones.jpg"));
var image = ModelContent.InlineData("image/jpeg", imageFile);
// Provide an initial text prompt instructing the model to edit the image
var prompt = ModelContent.Text("Edit this image to make it look like a cartoon.");
// Initialize the chat
var chat = model.StartChat();
// To generate an initial response, send a user message with the image and text prompt
var response = await chat.SendMessageAsync(new [] { prompt, image });
// Inspect the returned image
var imageParts = response.Candidates.First().Content.Parts
.OfType<ModelContent.InlineDataPart>()
.Where(part => part.MimeType == "image/png");
// Load the image into a Unity Texture2D object
UnityEngine.Texture2D texture2D = new(2, 2);
if (texture2D.LoadImage(imageParts.First().Data.ToArray())) {
// Do something with the image
}
// Follow up requests do not need to specify the image again
var followUpResponse = await chat.SendMessageAsync("But make it old-school line drawing style");
// Inspect the returned image
var followUpImageParts = followUpResponse.Candidates.First().Content.Parts
.OfType<ModelContent.InlineDataPart>()
.Where(part => part.MimeType == "image/png");
// Load the image into a Unity Texture2D object
UnityEngine.Texture2D followUpTexture2D = new(2, 2);
if (followUpTexture2D.LoadImage(followUpImageParts.First().Data.ToArray())) {
// Do something with the image
}
Truyền trực tuyến câu trả lời
|
Trước khi dùng thử mẫu này, hãy hoàn tất phần
Trước khi bắt đầu của hướng dẫn này
để thiết lập dự án và ứng dụng. Trong phần đó, bạn cũng sẽ nhấp vào một nút cho nhà cung cấp Gemini API mà bạn chọn để xem nội dung dành riêng cho nhà cung cấp trên trang này. |
Bạn có thể tương tác nhanh hơn bằng cách không đợi toàn bộ kết quả từ quá trình tạo mô hình mà thay vào đó, hãy sử dụng tính năng truyền trực tuyến để xử lý kết quả một phần.
Để truyền trực tuyến câu trả lời, hãy gọi sendMessageStream().
Bạn có thể làm gì nữa?
- Tìm hiểu cách đếm mã thông báo trước khi gửi câu lệnh dài đến mô hình.
- Thiết lập Cloud Storage for Firebase để bạn có thể đưa các tệp lớn vào yêu cầu đa phương thức và có một giải pháp được quản lý nhiều hơn để cung cấp tệp trong câu lệnh. Tệp có thể bao gồm hình ảnh, tệp PDF, video và âm thanh.
-
- Bắt đầu nghĩ đến việc chuẩn bị cho quá trình sản xuất (xem danh sách kiểm tra cho khâu sản xuất):
- Thiết lập Firebase App Check càng sớm càng tốt để giúp bảo vệ Gemini API khỏi hành vi lạm dụng của các ứng dụng trái phép.
- Tích hợp Firebase Remote Config để cập nhật các giá trị trong ứng dụng (như tên mô hình) mà không cần phát hành phiên bản ứng dụng mới.
Dùng thử các tính năng khác
- Tạo văn bản từ câu lệnh chỉ bằng văn bản.
- Tạo văn bản bằng cách đưa ra câu lệnh với nhiều loại tệp, như hình ảnh, tệp PDF, video, và âm thanh.
- Tạo đầu ra có cấu trúc (như JSON) từ cả câu lệnh văn bản và câu lệnh đa phương thức.
- Tạo và chỉnh sửa hình ảnh từ cả câu lệnh văn bản và câu lệnh đa phương thức.
- Sử dụng các công cụ (như gọi hàm và Dựa trên kết quả của Google Tìm kiếm) để kết nối mô hình Gemini với các phần khác của ứng dụng, hệ thống bên ngoài và thông tin.
Tìm hiểu cách kiểm soát quá trình tạo nội dung
- Tìm hiểu về thiết kế câu lệnh, bao gồm các phương pháp hay nhất, chiến lược và câu lệnh mẫu.
- Định cấu hình các tham số mô hình như nhiệt độ và số lượng mã thông báo đầu ra tối đa.
- Sử dụng chế độ cài đặt an toàn để điều chỉnh khả năng nhận được các câu trả lời có thể bị coi là gây hại.
Tìm hiểu thêm về các mô hình được hỗ trợ
Tìm hiểu về các mô hình có sẵn cho nhiều trường hợp sử dụng và hạn mức và giá của các mô hình đó.Gửi ý kiến phản hồi về trải nghiệm của bạn với Firebase AI Logic