Cập nhật linh động AI Vertex trong ứng dụng Firebase bằng Cấu hình từ xa Firebase

Khi gọi Gemini API từ ứng dụng bằng SDK Vertex AI in Firebase, yêu cầu của bạn sẽ chứa một số thông số kiểm soát phản hồi AI tạo sinh. Các thông số này thường bao gồm tên mô hình, cấu hình tạo mô hình (mã thông báo tối đa, nhiệt độ, v.v.), chế độ cài đặt an toàn, hướng dẫn hệ thống và dữ liệu lời nhắc.

Trong hầu hết các trường hợp, bạn nên thay đổi các giá trị này theo yêu cầu hoặc khi cần trong một số trường hợp:

  • Cập nhật mô hình AI tạo sinh mà không cần phát hành ứng dụng mới. Bạn có thể nâng cấp lên các phiên bản mô hình mới hơn, ổn định hơn trước khi các phiên bản cũ ngừng hoạt động, chuyển sang các mô hình có chi phí thấp hơn hoặc hiệu suất cao hơn dựa trên nhu cầu và thuộc tính của người dùng, hoặc triển khai có điều kiện các mô hình mới nhất và tốt nhất cho các phân khúc người dùng cụ thể (chẳng hạn như người kiểm thử beta).
  • Đặt vị trí truy cập mô hình để mô hình đó gần với người dùng hơn.
  • Thử nghiệm A/B nhiều hướng dẫn và lời nhắc của hệ thống, sau đó từng bước triển khai các giá trị thử nghiệm hiệu quả nhất cho người dùng.
  • Sử dụng cờ tính năng để nhanh chóng hiển thị hoặc ẩn các tính năng AI tạo sinh trong ứng dụng.

Firebase Remote Config thực hiện tất cả những việc này và nhiều việc khác, cho phép bạn cập nhật các giá trị tham số khi cần và có điều kiện cho các phiên bản ứng dụng khớp với các đặc điểm mà bạn đặt trong bảng điều khiển Firebase mà không cần phát hành phiên bản mới của ứng dụng.

Hướng dẫn giải pháp này cung cấp các trường hợp sử dụng cụ thể được đề xuất và mô tả cách thêm Remote Config vào ứng dụng AI tạo sinh.

Chuyển đến phần triển khai mã

Tại sao nên sử dụng Firebase Remote Config với ứng dụng của bạn?

Firebase Remote Config cho phép bạn tự động điều chỉnh hành vi của ứng dụng mà không cần cập nhật ứng dụng. Điều này đặc biệt hữu ích đối với các ứng dụng sử dụng AI tạo sinh, trong đó việc lặp lại nhanh chóng và tinh chỉnh là rất quan trọng.

Các trường hợp sử dụng thiết yếu của Remote Config với ứng dụng AI tạo sinh

Bạn nên sử dụng Remote Config với Vertex AI in Firebase cho các trường hợp sử dụng thiết yếu sau:

  • Nâng cấp lên phiên bản mô hình mới nhất mà không cần cập nhật ứng dụng: Sử dụng các tham số Remote Config để thay đổi tên mô hình nếu cần, nhờ đó bạn có thể nâng cấp lên phiên bản mới nhất của mô hình Gemini mà bạn muốn ngay khi có.
  • Cập nhật hướng dẫn hệ thống và chế độ cài đặt an toàn mà không cần cập nhật ứng dụng: Lưu trữ hướng dẫn hệ thống và chế độ cài đặt an toàn bên trong các tham số Remote Config để đảm bảo rằng bạn có thể thay đổi các chế độ cài đặt đó theo yêu cầu nếu phát hiện vấn đề sau khi triển khai.
  • Giảm rủi ro và thực thi tính an toàn của AI: Sử dụng tính năng Phát hành Remote Config để phát hành các thay đổi về AI tạo sinh một cách an toàn và dần dần cho người dùng iOS và Android.

Các trường hợp sử dụng nâng cao và được đề xuất cho Remote Config với các ứng dụng AI tạo sinh

Sau khi đo lường ứng dụng bằng Remote ConfigGoogle Analytics, bạn có thể khám phá các trường hợp sử dụng nâng cao:

  • Đặt vị trí dựa trên vị trí của ứng dụng: Sử dụng các điều kiện Remote Config để đặt vị trí của mô hình dựa trên vị trí được phát hiện của ứng dụng.
  • Thử nghiệm với nhiều mô hình: Thử nghiệm và chuyển đổi nhanh chóng giữa nhiều mô hình AI tạo sinh, hoặc thậm chí triển khai nhiều mô hình cho nhiều phân khúc người dùng để tìm ra mô hình phù hợp nhất với trường hợp sử dụng cụ thể của bạn.
  • Tối ưu hoá hiệu suất mô hình: Điều chỉnh các tham số mô hình, chẳng hạn như lời nhắc hệ thống, mã thông báo đầu ra tối đa, nhiệt độ và các chế độ cài đặt khác.
  • Sử dụng nhiều hướng dẫn, lời nhắc và cấu hình mô hình hệ thống dựa trên các thuộc tính của ứng dụng: Khi sử dụng Remote Config với Google Analytics, bạn có thể tạo các điều kiện dựa trên các thuộc tính của ứng dụng hoặc đối tượng tuỳ chỉnh và đặt nhiều thông số dựa trên các thuộc tính này.

    Ví dụ: nếu đang sử dụng AI tạo sinh để hỗ trợ kỹ thuật trong ứng dụng, bạn nên đặt hướng dẫn hệ thống dành riêng cho nền tảng ứng dụng để đảm bảo cung cấp hướng dẫn chính xác cho người dùng nền tảng Android, iOS và web.

  • Cá nhân hoá trải nghiệm cho từng người dùng: Sử dụng tính năng cá nhân hoá Remote Config để tự động xác định chế độ cài đặt AI tạo sinh tối ưu cho từng người dùng.

  • Kiểm soát chi phí: Điều chỉnh từ xa mô hình AI tạo sinh nào được gọi, tần suất sử dụng các mô hình đó và linh động định cấu hình giá trị mã thông báo đầu ra tối đa dựa trên đối tượng người dùng để giảm chi phí không cần thiết.

  • Tối ưu hoá trải nghiệm và kết quả của ứng dụng: Sử dụng A/B Testing với Remote Config cho các ứng dụng iOS, Android và Flutter để kiểm thử các thay đổi đối với các tham số AI tạo sinh trên nhiều phân khúc người dùng nhằm xem những thay đổi đó ảnh hưởng như thế nào đến các chỉ số chính như tỷ lệ giữ chân và doanh thu.

Bằng cách đo lường ứng dụng AI tạo sinh bằng Firebase Remote Config, bạn có thể tạo các ứng dụng dựa trên AI linh hoạt, an toàn và tiết kiệm chi phí, đồng thời tạo trải nghiệm thú vị cho người dùng.

Thêm Firebase Remote Config vào ứng dụng

Trong hướng dẫn giải pháp này, bạn sẽ sử dụng Firebase Remote Config để cập nhật động các tham số trong ứng dụng Android sử dụng SDK Vertex AI in Firebase. Bạn sẽ tìm hiểu cách:

  • Tìm nạp và kích hoạt các tham số như tên mô hình và hướng dẫn hệ thống từ Firebase Remote Config.
  • Cập nhật lệnh gọi Gemini API để sử dụng các thông số được truy xuất động, cho phép bạn chuyển đổi giữa các mô hình hoặc sửa đổi hướng dẫn hệ thống mà không cần cập nhật ứng dụng.
  • Điều khiển các thông số từ xa, điều chỉnh hành vi và chức năng của mô hình nếu cần.

Điều kiện tiên quyết

Hướng dẫn này giả định rằng bạn đã quen thuộc với việc sử dụng Xcode để phát triển ứng dụng cho các nền tảng của Apple (như iOS). Trước khi bắt đầu, hãy đảm bảo rằng bạn đã làm xong những việc sau:

  • Xem hết Hướng dẫn bắt đầu sử dụng SDK Vertex AI in Firebase. 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.
  • Bật Google Analytics trong dự án và thêm SDK của dịch vụ này vào ứng dụng (bắt buộc đối với tính năng nhắm mục tiêu có điều kiện, chẳng hạn như đặt vị trí của dịch vụ và mô hình dựa trên vị trí của thiết bị khách).

Bước 1: Đặt giá trị thông số trong bảng điều khiển Firebase

Tạo mẫu Remote Config của ứng dụng và định cấu hình các thông số và giá trị để tìm nạp và sử dụng trong ứng dụng.

  1. Mở dự án Firebase trong bảng điều khiển Firebase và trong trình đơn điều hướng, hãy mở rộng Run (Chạy) rồi chọn Remote Config.
  2. Đảm bảo rằng bạn đã chọn Client (Ứng dụng) trong bộ chọn Client/Server (Ứng dụng/Máy chủ) ở đầu trang Remote Config.
    • Nếu đây là lần đầu tiên bạn sử dụng mẫu ứng dụng Remote Config, hãy nhấp vào Tạo cấu hình. Ngăn Tạo tham số đầu tiên sẽ xuất hiện.
    • Nếu đây không phải là lần đầu tiên bạn sử dụng mẫu Remote Config, hãy nhấp vào Thêm thông số.
  3. Xác định các tham số Remote Config sau:

    Tên tham số Nội dung mô tả Loại Giá trị mặc định
    model_name Tên mô hình. Để biết danh sách tên mô hình mới nhất để sử dụng trong mã, hãy xem phần Tên mô hình hiện có. Chuỗi gemini-2.0-flash
    system_instructions Hướng dẫn hệ thống giống như một "lời mở đầu" mà bạn thêm vào trước khi mô hình hiển thị bất kỳ hướng dẫn nào khác của người dùng cuối để ảnh hưởng đến hành vi của mô hình, dựa trên các nhu cầu và trường hợp sử dụng cụ thể. Chuỗi You are a helpful assistant who knows everything there is to know about Firebase!
    prompt Lời nhắc mặc định để sử dụng với tính năng AI tạo sinh. Chuỗi I am a developer who wants to know more about Firebase!
    vertex_location Có thể kiểm soát vị trí để chạy dịch vụ Vertex AI và truy cập vào một mô hình. Bạn có thể đặt điều kiện để định cấu hình tuỳ chọn này dựa trên vị trí của ứng dụng do Google Analytics phát hiện. Chuỗi us-central1
  4. Khi bạn thêm xong thông số, hãy nhấp vào Xuất bản thay đổi. Nếu đây không phải là mẫu Remote Config mới, hãy xem lại các thay đổi rồi nhấp lại vào Xuất bản các thay đổi.

Bước 2: Thêm và khởi chạy Remote Config trong ứng dụng

Thêm các phần phụ thuộc Remote Config và thiết lập Remote Config trong ứng dụng. Trong quá trình thiết lập Vertex AI in Firebase, bạn đã thêm SDK Firebase vào ứng dụng, nhưng cũng cần thêm Remote Config.

  1. Trong Xcode, khi dự án đang mở, hãy chuyển đến File > Add Package Dependencies (Tệp > Thêm phần phụ thuộc gói).
  2. Chọn firebase-ios-sdk rồi nhấp vào Thêm gói.
  3. Trong Project navigator (Trình điều hướng dự án), hãy chọn ứng dụng > Targets (Mục tiêu) > ứng dụng.
  4. Trên thẻ General (Chung), hãy di chuyển đến Frameworks, Libraries, and Embedded Content (Khung, Thư viện và Nội dung nhúng).
  5. Nhấp vào + rồi chọn FirebaseRemoteConfig, sau đó nhấp vào Thêm.
  6. Thêm lệnh nhập FirebaseRemoteConfig vào mã:

    import FirebaseRemoteConfig
    
  7. Bên trong lớp thích hợp cho ứng dụng của bạn (trong ứng dụng mẫu, lớp này sẽ nằm bên trong VertexAISampleApp, trong lớp AppDelegate), hãy khởi chạy Firebase và thêm Remote Config vào logic ứng dụng chính.

    Tại đây, bạn sẽ thêm Remote Configtrình nghe theo thời gian thực Remote Config dưới dạng mục nhập để ứng dụng có thể tìm nạp các giá trị mới theo thời gian thực và thêm khoảng thời gian tìm nạp tối thiểu:

    let remoteConfig = RemoteConfig.remoteConfig()
    let settings = RemoteConfigSettings()
    settings.minimumFetchInterval = 3600
    remoteConfig.configSettings = settings
    

Trong ví dụ này, khoảng thời gian tìm nạp mặc định là 3600 giây, nhưng bạn nên đặt khoảng thời gian tìm nạp tối thiểu tương đối thấp trong mã của mình trong quá trình phát triển.

Bước 3: Đặt giá trị thông số trong ứng dụng

Bạn nên đặt giá trị tham số mặc định trong ứng dụng trong đối tượng Remote Config để ứng dụng hoạt động trước khi kết nối với phần phụ trợ Remote Config, nếu quyền truy cập mạng của ứng dụng bị gián đoạn và/hoặc nếu không có giá trị nào được định cấu hình trên phần phụ trợ.

  1. Trên bảng điều khiển Firebase, hãy mở Remote Config.
  2. Trong thẻ Parameters (Thông số), hãy mở Menu (Trình đơn) rồi chọn Download default values (Tải giá trị mặc định xuống).
  3. Khi được nhắc, hãy bật .plist cho iOS, sau đó nhấp vào Tải tệp xuống.
  4. Lưu tệp trong thư mục ứng dụng (nếu sử dụng ứng dụng mẫu, hãy lưu trong FirebaseVertexAI/Sample/VertexAISample).
  5. Trong Xcode, hãy nhấp chuột phải vào ứng dụng của bạn rồi chọn Add Files (Thêm tệp) (nếu sử dụng mẫu, hãy nhấp chuột phải vào VertexAISample rồi chọn Add Files to "VertexAISample" (Thêm tệp vào "VertexAISample")).
  6. Chọn remote_config_defaults.plist, sau đó nhấp vào Thêm.
  7. Cập nhật mã ứng dụng để tham chiếu tệp mặc định:

    // Set default values
    remoteConfig.setDefaults(fromPlist: "remote_config_defaults")
    

Bước 4: Tìm nạp và kích hoạt các giá trị

Sau khi đặt giá trị mặc định, hãy thêm nội dung sau để tìm nạp và kích hoạt các giá trị:

// Fetch and activate Remote Config values
remoteConfig.fetchAndActivate { status, error in
  if let error = error {
    print("Error fetching Remote Config: \(error.localizedDescription)")
  }
}

Thao tác này sẽ cập nhật đối tượng Remote Config mỗi khi có mẫu Remote Config mới được phát hành.

Bước 5: Thêm trình nghe Remote Config theo thời gian thực

Thêm trình nghe Remote Config theo thời gian thực để đảm bảo rằng các thay đổi bạn thực hiện đối với mẫu Remote Config sẽ được truyền đến ứng dụng ngay khi được cập nhật.

Mã sau đây sẽ cập nhật đối tượng Remote Config bất cứ khi nào giá trị tham số thay đổi.

// Add real-time Remote Config
remoteConfig.addOnConfigUpdateListener { configUpdate, error in
  guard let configUpdate = configUpdate, error == nil else {
    print("Error listening for config updates: \(error?.localizedDescription ?? "No error available")")
    return
  }

  print("Updated keys: \(configUpdate.updatedKeys)")
  remoteConfig.activate { changed, error in
    guard error == nil else {
      print("Error activating config: \(error?.localizedDescription ?? "No error available")")
      return
    }
    print("Activated config successfully")
  }
}

Thao tác này sẽ cập nhật đối tượng Remote Config mỗi khi có mẫu Remote Config mới được phát hành.

Bước 6: Chỉ định giá trị Remote Config cho biến Vertex AI

Giờ đây, khi Remote Config đã được định cấu hình đầy đủ, hãy cập nhật mã của bạn để thay thế các giá trị được mã hoá cứng bằng các giá trị lấy từ Remote Config.

Tạo giá trị để lưu trữ giá trị của mô hình và lời nhắc của hệ thống. Mã sau đây minh hoạ cách lấy vị trí, tên mô hình, hướng dẫn hệ thống, lời nhắc người dùng và vị trí Vertex AI từ Remote Config:

// Initialize the Vertex AI service
// Optionally specify a location in which to run the service and access the model
let vertexLocation = remoteConfig.configValue(forKey: "vertex_location").stringValue
let vertex = VertexAI.vertexAI(location: vertexLocation)

// Initialize the generative model with a model that supports your use case
// Specify a model that supports system instructions, like a Gemini 1.5 model
let modelName = remoteConfig.configValue(forKey: "model_name").stringValue
let systemInstructions = remoteConfig.configValue(forKey: "system_instructions").stringValue

let model = vertex.generativeModel(
  modelName: modelName,
  systemInstruction: ModelContent(role: "system", parts: systemInstructions)
)

// Provide a prompt that contains text
let userPrompt = remoteConfig.configValue(forKey: "prompt").stringValue

// To generate text output, call generateContent with the text input
let response = try await model.generateContent(userPrompt)
if let text = response.text {
  print(text)
}

Bước 7: Chạy ứng dụng

Tạo bản dựng và chạy ứng dụng của bạn để xác minh rằng ứng dụng đó hoạt động. Chỉnh sửa cấu hình trên trang Remote Config trong bảng điều khiển của bảng điều khiển Firebase, phát hành các thay đổi và xác minh kết quả.

Các bước tiếp theo