Lời nhắc AI kết hợp bằng Logic AI của Firebase

Xuất bản: Ngày 20 tháng 5 năm 2025

Để đáp ứng nhu cầu của người dùng, bất kể họ sử dụng nền tảng hay phần cứng nào, bạn có thể thiết lập một phương án dự phòng cho đám mây bằng Firebase AI Logic cho Prompt API tích hợp.

Xây dựng trải nghiệm AI kết hợp

AI tích hợp sẵn mang lại nhiều lợi ích, đáng chú ý nhất là:

  • Xử lý dữ liệu nhạy cảm tại địa phương: Nếu làm việc với dữ liệu nhạy cảm, bạn có thể cung cấp các tính năng AI cho người dùng bằng tính năng mã hoá hai đầu.
  • Sử dụng AI khi không có mạng: Người dùng có thể truy cập vào các tính năng AI, ngay cả khi họ không có mạng hoặc kết nối bị gián đoạn

Mặc dù những lợi ích này không áp dụng cho các ứng dụng đám mây, nhưng bạn có thể đảm bảo trải nghiệm liền mạch cho những người không thể truy cập vào AI tích hợp.

Bắt đầu sử dụng Firebase

Tìm hiểu cách tạo dự án Firebase và thêm Firebase vào ứng dụng web của bạn.

Dự án Firebase là dự án Google Cloud, có các cấu hình và dịch vụ dành riêng cho Firebase. Tìm hiểu thêm về Google Cloud và Firebase.

Cài đặt SDK

Quy trình công việc này sử dụng npm và yêu cầu các trình đóng gói mô-đun hoặc công cụ khung JavaScript. Firebase AI Logic được tối ưu hoá để hoạt động với các trình kết hợp mô-đun nhằm loại bỏ mã không dùng đến và giảm kích thước SDK.

  1. Cài đặt Firebase JS SDK:

    npm install firebase
    
  2. Khởi động Firebase trong ứng dụng của bạn.

Thiết lập và bảo mật Firebase AI Logic

  1. Trong bảng điều khiển Firebase, hãy chuyển đến Dịch vụ AI > AI Logic.

  2. Nhấp vào Bắt đầu để khởi chạy quy trình thiết lập.

  3. Khi được yêu cầu chọn "nhà cung cấp Gemini API", bạn nên chọn Gemini Developer API để bắt đầu nhanh chóng mà không mất phí.

    Bất cứ lúc nào sau đó, bạn đều có thể thiết lập Vertex AI Gemini API (và yêu cầu về thông tin thanh toán).

  4. Tiếp tục quy trình công việc trong bảng điều khiển để thiết lập các API bắt buộc và các dịch vụ liên kết cho Firebase AI Logic.

    Kể từ đầu tháng 7 năm 2026, giai đoạn này của quy trình làm việc sẽ tự động thực thi tính năng App Check của Firebase cho Logic AI. Đây là một dịch vụ quan trọng giúp bảo vệ Gemini API khi được truy cập trực tiếp từ ứng dụng của bạn. Trong quá trình bắt đầu (xem các bước sau trong hướng dẫn này), bạn sẽ cần định cấu hình trình cung cấp gỡ lỗi App Check cho quá trình phát triển cục bộ khi App Check được thực thi.

  5. Tiếp tục xem các phần tiếp theo trong hướng dẫn này để định cấu hình trình gỡ lỗi App Check cho quá trình phát triển cục bộ, sau đó gửi yêu cầu đầu tiên đến Gemini API.

Định cấu hình trình cung cấp gỡ lỗi App Check để phát triển cục bộ

Sau đây là cách sử dụng trình cung cấp gỡ lỗi trong khi chạy ứng dụng từ localhost một cách tương tác (ví dụ: trong quá trình phát triển cục bộ):

  1. Trong bản gỡ lỗi, hãy bật chế độ gỡ lỗi bằng cách đặt self.FIREBASE_APPCHECK_DEBUG_TOKEN thành true trước khi bạn khởi chạy App Check. Ví dụ:

    self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
    initializeAppCheck(app, { /* App Check options */ });
    
  2. Truy cập vào ứng dụng web của bạn trên thiết bị và mở công cụ dành cho nhà phát triển của trình duyệt. Trong bảng điều khiển gỡ lỗi, bạn sẽ thấy một mã gỡ lỗi:

    AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678".
    You will need to safelist it in the Firebase console for it to work.
    
  3. Đăng ký mã thông báo gỡ lỗi với App Check:

    1. Trong bảng điều khiển Firebase, hãy chuyển đến thẻ Bảo mật > App Check > Ứng dụng.

    2. Tìm ứng dụng của bạn, nhấp vào trình đơn tràn (), rồi chọn Quản lý mã gỡ lỗi.

    3. Làm theo hướng dẫn trên màn hình để đăng ký mã gỡ lỗi.

Để biết thông tin chi tiết về trình cung cấp gỡ lỗi (bao gồm cả cách lấy mã gỡ lỗi mới), hãy xem tài liệu chính thức về App Check.

Gửi yêu cầu đến Gemini API

  1. Khởi động và tạo một thực thể.

  2. Đưa ra câu lệnh cho mô hình bằng văn bản hoặc dữ liệu đầu vào đa phương thức. Hãy xem ví dụ trong các tiểu mục sau đây của hướng dẫn này.

Câu lệnh văn bản

Bạn có thể sử dụng văn bản thuần tuý cho chỉ dẫn của mình đối với mô hình. Ví dụ: bạn có thể yêu cầu mô hình kể cho bạn một câu chuyện cười.

Bạn có một số lựa chọn về cách định tuyến yêu cầu:

  • Sử dụng AI tích hợp theo mặc định khi có thể bằng cách đặt mode thành 'prefer_on_device' trong hàm getGenerativeModel(). Nếu không có mô hình tích hợp, yêu cầu sẽ chuyển đổi liền mạch để sử dụng mô hình đám mây (nếu bạn đang trực tuyến).

  • Sử dụng mô hình đám mây theo mặc định khi bạn trực tuyến bằng cách đặt mode thành 'prefer_in_cloud' trong hàm getGenerativeModel(). Nếu bạn không có mạng, yêu cầu sẽ chuyển đổi liền mạch để sử dụng AI tích hợp khi có mạng.

// Initialize the Google AI service.
const googleAI = getAI(firebaseApp);

// Create a `GenerativeModel` instance with a model that supports your use case.
const model = getGenerativeModel(googleAI, { mode: 'prefer_on_device' });

const prompt = 'Tell me a joke';

const result = await model.generateContentStream(prompt);

for await (const chunk of result.stream) {
  const chunkText = chunk.text();
  console.log(chunkText);
}
console.log('Complete response', await result.response);

Câu lệnh đa phương thức

Ngoài văn bản, bạn cũng có thể đưa ra câu lệnh bằng hình ảnh hoặc âm thanh. Bạn có thể yêu cầu mô hình mô tả nội dung của một hình ảnh hoặc chép lời một tệp âm thanh.

Bạn cần truyền hình ảnh dưới dạng một chuỗi được mã hoá base64 dưới dạng một đối tượng FileDataPart của Firebase. Bạn có thể thực hiện việc này bằng hàm trợ giúp fileToGenerativePart().

// Converts a File object to a `FileDataPart` object.
// https://firebase.google.com/docs/reference/js/vertexai.filedatapart
async function fileToGenerativePart(file) {
    const base64EncodedDataPromise = new Promise((resolve) => {
      const reader = new FileReader();
      reader.onload = () => resolve(reader.result.split(',')[1]);
      reader.readAsDataURL(file);
    });

    return {
      inlineData: { data: await base64EncodedDataPromise, mimeType: file.type },
    };
  }

  const fileInputEl = document.querySelector('input[type=file]');

  fileInputEl.addEventListener('change', async () => {
    const prompt = 'Describe the contents of this image.';

    const imagePart = await fileToGenerativePart(fileInputEl.files[0]);

    // To generate text output, call generateContent with the text and image
    const result = await model.generateContentStream([prompt, imagePart]);

    for await (const chunk of result.stream) {
      const chunkText = chunk.text();
      console.log(chunkText);
    }
    console.log(Complete response: ', await result.response);
  });

Bản minh hoạ

Truy cập vào bản minh hoạ Firebase AI Logic trên nhiều thiết bị và trình duyệt. Bạn có thể xem câu trả lời của mô hình đến từ mô hình AI tích hợp hoặc đám mây.

Khi chạy trên phần cứng được hỗ trợ trong Chrome, bản minh hoạ sẽ sử dụng Prompt API và Gemini Nano. Chỉ có 3 yêu cầu được thực hiện cho tài liệu chính, tệp JavaScript và tệp CSS.

Logic AI của Firebase chạy trong Chrome, sử dụng các API AI tích hợp sẵn.

Khi ở một trình duyệt khác hoặc một hệ điều hành không có tính năng hỗ trợ AI tích hợp, sẽ có một yêu cầu bổ sung được gửi đến điểm cuối Firebase, https://firebasevertexai.googleapis.com.

Firebase AI Logic chạy trong Safari, đưa ra yêu cầu đến các máy chủ Firebase.

Tham gia và chia sẻ ý kiến phản hồi

Firebase AI Logic có thể là một lựa chọn tuyệt vời để tích hợp các chức năng AI vào ứng dụng web của bạn. Bằng cách cung cấp một giải pháp dự phòng cho đám mây khi Prompt API không hoạt động, SDK đảm bảo khả năng tiếp cận và độ tin cậy rộng hơn của các tính năng AI.

Hãy nhớ rằng các ứng dụng đám mây tạo ra những kỳ vọng mới về quyền riêng tư và chức năng, vì vậy, bạn cần thông báo cho người dùng biết dữ liệu của họ đang được xử lý ở đâu.