Tạo cuộc trò chuyện (trò chuyện) nhiều lượt với Gemini API


Khi sử dụng Gemini API, bạn có thể tạo các cuộc trò chuyện ở dạng tự do qua nhiều lượt. SDK Vertex AI in Firebase đơn giản hoá quy trình này 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ư generateContentStream() hoặc generateContent(), bạn không cần tự lưu trữ nhật ký trò chuyện.

Trước khi bắt đầu

Hãy hoàn tất hướng dẫn bắt đầu sử dụng SDK Vertex AI in Firebase nếu bạn chưa thực hiện. Hãy đảm bảo rằng bạn đã làm tất cả những việc sau:

  1. Thiết lập một dự án Firebase mới hoặc hiện có, bao gồm cả việc sử dụng gói giá Blaze và bật các API bắt buộc.

  2. Kết nối ứng dụng với Firebase, bao gồm cả việc đăng ký ứng dụng và thêm cấu hình Firebase vào ứng dụng.

  3. Thêm SDK và khởi chạy dịch vụ Vertex AI cũng như mô hình tạo sinh trong ứng dụng.

Sau khi kết nối ứng dụng với Firebase, thêm SDK và khởi chạy dịch vụ Vertex AI cũng như mô hình tạo sinh, bạn đã sẵn sàng gọi Gemini API.

Gửi yêu cầu câu lệnh trò chuyện

Để tạo một cuộc trò chuyện nhiều lượt (như cuộc 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 sendMessageStream() (hoặc sendMessage()) để gửi tin nhắn mới của người dùng. Thao tác này cũng sẽ thêm tin nhắn và nội dung trả lời vào nhật ký trò chuyện.

Có hai tuỳ chọn có thể dùng cho role liên kết với nội dung trong một cuộc trò chuyện:

  • user: vai trò cung cấp lời nhắc. Giá trị này là mặc định cho các lệnh gọi đến sendMessageStream() (hoặc sendMessage()) và hàm sẽ gửi một ngoại lệ nếu một vai trò khác được truyền.

  • model: vai trò cung cấp phản hồi. Bạn có thể sử dụng vai trò này khi gọi startChat() bằng history hiện có.

Chọn xem bạn muốn truyền trực tuyến phản hồi (sendMessageStream) hay đợi phản hồi cho đến khi toàn bộ kết quả được tạo (sendMessage).

Bạn có thể đạt được các lượt tương tác nhanh hơn bằng cách không chờ 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ý một phần kết quả.

Ví dụ này cho thấy cách sử dụng startChat()sendMessageStream() để truyền trực tuyến các phản hồi từ mô hình:

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)
  }
}

Ngoài ra, bạn có thể chờ toàn bộ kết quả thay vì truyền trực tuyến; kết quả chỉ được trả về sau khi mô hình hoàn tất toàn bộ quá trình tạo.

Ví dụ này cho thấy cách sử dụng startChat()sendMessage() để gửi thông báo cho người dùng mới:

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.")

Tìm hiểu cách chọn một mô hình và tuỳ chọn vị trí phù hợp với trường hợp sử dụng và ứng dụng của bạn.

Bạn có thể làm gì khác?

Thử các tính năng khác của Gemini API

Tìm hiểu cách kiểm soát việc tạo nội dung

Bạn cũng có thể thử nghiệm với các câu lệnh và cấu hình mô hình bằng cách sử dụng Vertex AI Studio.

Tìm hiểu thêm về các mẫu đượ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, cũng như hạn mứcgiá 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 Vertex AI in Firebase