Firebase AI Logic ile karma yapay zeka istemi

Yayınlanma tarihi: 20 Mayıs 2025

Yerleşik Prompt API, Chrome 138 kararlı sürümünden itibaren Windows, macOS ve Linux'ta Chrome uzantılarında kullanılabilir. API, yakında Chrome'da bir kaynak denemesinde kullanıma sunulacaktır.

API, diğer tarayıcılar, ChromeOS veya mobil işletim sistemleri (Android ya da iOS gibi) tarafından desteklenmez. Tarayıcı bu API'yi desteklese bile karşılanmayan donanım koşulları nedeniyle çalıştırılmayabilir.

Kullanıcıların ihtiyaçlarını karşılamak için kullandıkları platform veya donanım ne olursa olsun Firebase AI Logic ile buluta yedekleme ayarlayabilirsiniz.

Karma yapay zeka deneyimi oluşturma

Yerleşik yapay zeka, bir dizi avantaj sunar. Bunlardan en önemlileri şunlardır:

  • Hassas verilerin yerel olarak işlenmesi: Hassas verilerle çalışıyorsanız uçtan uca şifreleme özelliğine sahip kullanıcılara yapay zeka özellikleri sunabilirsiniz.
  • Çevrimdışı yapay zeka kullanımı: Kullanıcılarınız çevrimdışıyken veya bağlantıları kesildiğinde bile yapay zeka özelliklerine erişebilir.

Bu avantajlar bulut uygulamaları için geçerli olmasa da yerleşik yapay zekaya erişemeyen kullanıcılara sorunsuz bir deneyim sunabilirsiniz.

Firebase'i kullanmaya başlama

Öncelikle bir Firebase projesi oluşturun ve web uygulamanızı kaydedin. Firebase dokümanlarını inceleyerek Firebase JavaScript SDK'sını ayarlamaya devam edin.

SDK'yı yükleme

Bu iş akışında npm kullanılır ve modül paketleyiciler veya JavaScript çerçevesi araçları gerekir. Firebase AI Logic, kullanılmayan kodları (ağaç sallama) ortadan kaldırmak ve SDK boyutunu azaltmak için modül birleştiricilerle çalışacak şekilde optimize edilmiştir.

npm install firebase@eap-ai-hybridinference

Firebase AI Logic'i kullanma

Firebase yüklendikten sonra Firebase hizmetlerini kullanmaya başlamak için SDK'yı başlatırsınız.

Firebase uygulamanızı yapılandırma ve başlatma

Bir Firebase projesinde birden fazla Firebase uygulaması olabilir. Firebase uygulaması, ortak yapılandırmayı depolayan ve kimlik doğrulamayı Firebase hizmetleri arasında paylaşan kapsayıcı benzeri bir nesnedir.

Firebase uygulamanız, karma yapay zeka özelliğinizin bulut kısmı olarak işlev görür.

import { initializeApp } from 'firebase/app';
import { getAI, getGenerativeModel } from 'firebase/vertexai';

// TODO: Replace the following with your app's Firebase project configuration.
const firebaseConfig = {
  apiKey: '',
  authDomain: '',
  projectId: '',
  storageBucket: '',
  messagingSenderId: '',
  appId: '',
};

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

Modele istem gönderme

Başlatıldıktan sonra modeli metin veya çoklu biçimli girişle isteyebilirsiniz.

Metin istemleri

Modele vereceğiniz talimatlar için düz metin kullanabilirsiniz. Örneğin, modelden size şaka anlatmasını isteyebilirsiniz.

getGenerativeModel işlevinde kullanılabilir olduğunda yerleşik yapay zekanın kullanılmasını sağlamak için mode değerini prefer_on_device olarak ayarlayın.

// 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);

Çok formatlı istemler

Metnin yanı sıra resim veya sesle de istem gönderebilirsiniz. Modele bir resmin içeriğini tanımlamasını veya ses dosyasını metne dönüştürmesini söyleyebilirsiniz.

Resimlerin, Firebase FileDataPart nesnesi olarak base64 kodlu bir dize olarak iletilmesi gerekir. Bunu fileToGenerativePart() yardımcı işleviyle yapabilirsiniz.

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

Demo

Farklı cihaz ve tarayıcılarda Firebase AI Logic demosunu ziyaret edin. Model yanıtının yerleşik yapay zeka modelinden mi yoksa buluttan mı geldiğini görebilirsiniz.

Chrome'da desteklenen donanımlarda demo, Prompt API ve Gemini Nano'yu kullanır. Ana doküman, JavaScript dosyası ve CSS dosyası için yalnızca 3 istek gönderilir.

Yerleşik yapay zeka API'lerini kullanarak Chrome'da çalışan Firebase AI mantığı.

Yerleşik yapay zeka desteği olmayan başka bir tarayıcıda veya işletim sistemindeyken https://firebasevertexai.googleapis.com Firebase uç noktasına ek bir istek gönderilir.

Safari'de çalışan ve Firebase sunucularına istek gönderen Firebase AI Logic.

Katılma ve geri bildirim paylaşma

Firebase AI Logic, yapay zeka özelliklerini web uygulamalarınıza entegre etmek için mükemmel bir seçenek olabilir. SDK, Prompt API kullanılamadığında buluta yedek sunarak yapay zeka özelliklerinin daha geniş kapsamlı erişilebilirliğini ve güvenilirliğini sağlar.

Bulut uygulamalarının gizlilik ve işlevsellik açısından yeni beklentiler oluşturduğunu unutmayın. Bu nedenle, kullanıcılarınızı verilerinin nerede işlendiği konusunda bilgilendirmeniz önemlidir.