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çok 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ı ortadan kaldırmak (ağaç sallama) ve SDK boyutunu küçültmek için modül paketleyicilerle ç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'yi 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 modlu istemler

Metne ek olarak 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.

Görüntüler, Firebase FileDataPart nesnesi olarak base64 olarak kodlanmış bir dize olarak iletilmelidir. 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 Yapay Zeka Mantığı 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 yapay zeka 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 mantığı.

Katılma ve geri bildirim paylaşma

Firebase Yapay Zeka Mantığı, 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 bir çözüm 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.