1. Başlamadan önce
Firebase Extensions, uygulamalarınıza önceden paketlenmiş işlevleri minimum kodla (hatta yapay zeka destekli işlevler) eklemenize olanak tanır. Bu kod laboratuvarında, Gemini API'den yararlanarak sağlanan bağlama ve son kullanıcı girişine göre resim açıklamaları, özetler ve hatta kişiselleştirilmiş öneriler oluşturmak için bir web uygulamasına iki Firebase uzantısının nasıl entegre edileceği gösterilmektedir.
Bu codelab'de, Firebase Extensions ile ilgi çekici kullanıcı deneyimleri sunan yapay zeka destekli bir web uygulaması oluşturmayı öğreneceksiniz.
Ön koşullar
- Node.js, Next.js ve TypeScript hakkında bilgi sahibi olma
Neler öğreneceksiniz?
- Gemini API için Firebase uzantılarını kullanarak dili işleme
- Dil modeliniz için artırılmış bir bağlam oluşturmak üzere Cloud Functions for Firebase'i kullanma
- Firebase Extensions tarafından üretilen çıkışa erişmek için JavaScript'i kullanma.
Gerekenler
- Google Chrome gibi tercih ettiğiniz bir tarayıcı
- Kod düzenleyici ve terminal içeren bir geliştirme ortamı
- Firebase projenizi oluşturmak ve yönetmek için bir Google Hesabı
2. Web uygulamasını, Firebase hizmetlerini ve uzantıları inceleme
Bu bölümde, bu codelab ile oluşturacağınız web uygulamasını inceleyecek ve kullanacağınız Firebase hizmetleri ile Firebase uzantılarını öğreneceksiniz.
Web uygulaması
Bu codelab'de Friendly Conf adlı bir web uygulaması oluşturacaksınız.
Friendly Conference ekibi, katılımcılarına keyifli ve kişiselleştirilmiş bir kullanıcı deneyimi sunmak için yapay zekayı kullanmaya karar verdi. Tamamlanan konferans uygulaması, katılımcılara çok modlu üretken yapay zeka modeli (büyük dil modeli veya LLM olarak da bilinir) tarafından desteklenen bir sohbet yapay zeka botu sunar. Bu bot, konferans programına ve konularına göre uyarlanmış genel konularla ilgili soruları yanıtlayabilir. Chatbot, geçmiş bağlam ve mevcut tarih/saat, Friendly Conf konuları ve programı hakkında bilgi sahibi olduğundan yanıtları tüm bu bağlamı hesaba katabilir.
Firebase hizmetleri
Bu codelab'de birçok Firebase hizmetini ve özelliğini kullanacaksınız. Bu hizmetler ve özelliklerle ilgili başlangıç kodunun çoğu sizin için sağlanmıştır. Aşağıdaki tabloda, kullanacağınız hizmetler ve bunları kullanma nedenleriniz yer almaktadır.
Hizmet | Kullanım nedeni |
Web uygulaması için Google ile oturum açma işlevini kullanıyorsunuz. | |
Metin verilerini Cloud Firestore'da depolarsınız. Bu veriler daha sonra Firebase uzantıları tarafından işlenir. | |
Web uygulamasında resim galerilerini görüntülemek için Cloud Storage'da veri okuma ve yazma işlemleri yaparsınız. | |
Firebase hizmetlerinize erişimi güvence altına almak için güvenlik kurallarını dağıtırsınız. | |
Yapay zeka ile ilgili Firebase Extensions'i yapılandırıp yükler ve sonuçları web uygulamasında gösterirsiniz. | |
Buluttaki birçok canlı Firebase hizmetine bağlanmak yerine, uygulamanızı yerel olarak çalıştırmak için isteğe bağlı olarak Local Emulator Suite'i kullanabilirsiniz. | |
Bonus: Firebase Hosting | İsteğe bağlı olarak web uygulamanızı yayınlamak için Firebase Hosting'i (GitHub deposu olmadan) kullanabilirsiniz. |
Bonus: Firebase App Hosting | İsteğe bağlı olarak, dinamik Next.js web uygulamanızı (GitHub deposuna bağlı) yayınlamak için yeni basitleştirilmiş Firebase App Hosting'i kullanabilirsiniz. |
Firebase Extensions
Bu codelab'de kullanacağınız Firebase uzantıları şunlardır:
Uzantıların yararlı olmasının nedeni, Firebase projenizde gerçekleşen etkinliklere tepki vermesidir. Bu kod laboratuvarının iki uzantısı da Cloud Firestore'da önceden yapılandırılmış koleksiyonlarda yeni dokümanlar oluşturduğunuzda yanıt verir.
3. Geliştirme ortamınızı kurma
Node.js sürümünüzü doğrulama
- Terminalinizde, Node.js 20.0.0 veya sonraki bir sürümün yüklü olduğunu doğrulayın:
node -v
- Node.js 20.0.0 veya daha yeni bir sürümünüz yoksa en son LTS sürümünü indirip yükleyin.
Codelab'in kaynak kodunu alma
GitHub hesabınız varsa:
- github.com/FirebaseExtended/codelab-gemini-api-extensions adresindeki şablonumuzu kullanarak yeni bir depo oluşturun
- Az önce oluşturduğunuz kod alanının GitHub deposunu kopyalayın:
git clone https://github.com/<your-github-handle>/codelab-gemini-api-extensions
Git yüklü değilse veya yeni bir depo oluşturmayı tercih etmiyorsanız:
GitHub deposunu zip dosyası olarak indirin.
Klasör yapısını inceleme
Kök klasörde, basitleştirilmiş talimatlar kullanarak web uygulamasını hızlı bir şekilde çalıştırma olanağı sunan bir README.md
dosyası bulunur. Ancak ilk kez öğreniyorsanız en kapsamlı talimatları içeren bu kod laboratuvarını (hızlı başlangıç yerine) tamamlamanız gerekir.
Bu kod laboratuvarındaki talimatlara uygun şekilde kodu doğru şekilde uygulayıp uygulamadığınızdan emin değilseniz çözüm kodunu end
git dalında bulabilirsiniz.
Firebase CLI'yi yükleme
- Firebase CLI'nin yüklü olduğunu ve 13.6 veya sonraki bir sürüm olduğunu doğrulayın:
firebase --version
- Firebase CLI yüklüyse ancak 13.6 veya daha yeni bir sürüm değilse güncelleyin:
npm update -g firebase-tools
- Firebase CLI yüklü değilse yükleyin:
npm install -g firebase-tools
İzin hataları nedeniyle Firebase CLI'yi güncelleyemiyorsanız veya yükleyemiyorsanız npm belgelerine göz atın ya da başka bir yükleme seçeneği kullanın.
Firebase'e giriş yapma
- Terminalinizde
codelab-gemini-api-extensions
klasörüne gidin ve Firebase'e giriş yapın:cd codelab-gemini-api-extensions firebase login
Terminalinizde Firebase'e zaten giriş yaptığınız belirtiliyorsa bu codelab'in Firebase projenizi ayarlama bölümüne atlayabilirsiniz. - Terminalinizde, Firebase'in veri toplamasını isteyip istemediğinize bağlı olarak
Y
veyaN
yazın. (bu codelab için her iki seçenek de işe yarar) - Tarayıcınızda Google Hesabınızı seçin ve İzin ver'i tıklayın.
4. Firebase projenizi ayarlama
Bu bölümde, bir Firebase projesi oluşturacak ve bu projeye bir Firebase web uygulaması kaydedeceksiniz. Ayrıca, bu codelab'in ilerleyen bölümlerinde örnek web uygulaması tarafından kullanılan birkaç Firebase hizmetini de etkinleştireceksiniz.
Bu bölümdeki tüm adımlar Firebase konsolunda gerçekleştirilir.
Firebase projesi oluşturma
- Google Hesabı kullanarak Firebase konsolunda oturum açın.
- Proje oluştur'u tıklayın ve ardından bir proje adı girin (örneğin,
AI Extensions Codelab
).
Firebase projeniz için otomatik olarak atanan proje kimliğini unutmayın (veya tercih ettiğiniz proje kimliğini ayarlamak için Düzenle simgesini tıklayın). Firebase CLI'de Firebase projenizi tanımlamak için bu kimliğe daha sonra ihtiyacınız olacak. Kimliğinizi unutursanız daha sonra Proje Ayarları'nda bulabilirsiniz. - Devam'ı tıklayın.
- İstenirse Firebase şartlarını inceleyip kabul edin ve Devam'ı tıklayın.
- Bu kod laboratuvarının çalışması için Google Analytics'e ihtiyacınız yoktur. Bu nedenle Google Analytics seçeneğini devre dışı bırakın.
- Proje oluştur'u tıklayın, projenizin temel hazırlığını yapılmasını bekleyin ve ardından Devam'ı tıklayın.
Firebase fiyatlandırma planınızı yükseltme
Firebase Extensions'i (ve temel bulut hizmetlerini) ve Firebase için Cloud Storage'ı kullanmak istiyorsanız Firebase projenizin kullandıkça öde (Blaze) fiyatlandırma planında olması gerekir. Yani projeniz bir Cloud Faturalandırma hesabına bağlı olmalıdır.
- Cloud Billing hesabı için kredi kartı gibi bir ödeme yöntemi gerekir.
- Firebase ve Google Cloud'da yeniyseniz 300 ABD doları kredi ve Ücretsiz Deneme Cloud Faturalandırma hesabı almaya uygun olup olmadığınızı kontrol edin.
- Bu kod laboratuvarını bir etkinlik kapsamında yapıyorsanız düzenleyen kişiye Cloud kredisi olup olmadığını sorun.
Ayrıca, Firebase projenizde faturalandırma etkinleştirildiğinde, uzantının Gemini API'ye yaptığı çağrılar için ücretlendirileceğinizi unutmayın (Google Yapay Zeka veya Vertex AI'yı seçmeniz fark etmez). Google Yapay Zeka ve Vertex AI fiyatlandırması hakkında daha fazla bilgi edinin.
Projenizi Blaze planına yükseltmek için aşağıdaki adımları uygulayın:
- Firebase konsolunda planınızı yükseltmeyi seçin.
- Blaze planını seçin. Projenize bir Cloud Faturalandırma hesabı bağlamak için ekrandaki talimatları uygulayın.
Bu yükseltme kapsamında bir Cloud Faturalandırma hesabı oluşturmanız gerekiyorsa yükseltmeyi tamamlamak için Firebase Console'daki yükseltme akışına geri dönmeniz gerekebilir.
Firebase projenize web uygulaması ekleme
- Firebase projenizdeki Projeye Genel Bakış ekranına gidin ve ardından Web'i tıklayın.
- Uygulama takma adı metin kutusuna akılda kalıcı bir uygulama takma adı (ör.
My AI Extensions
) girin. - Uygulamayı kaydet > İleri > İleri > Konsola devam et'i tıklayın.
Bu codelab'in ilerleyen bölümlerinde isteğe bağlı olarak bir barındırma hizmeti ayarlayacağınız için web uygulaması akışında"barındırma" ile ilgili tüm adımları atlayabilirsiniz.
Güzel! Artık yeni Firebase projenize bir web uygulaması kaydettiniz.
Firebase Authentication'ı ayarlama
- Sol gezinme bölmesini kullanarak Kimlik doğrulama'ya gidin.
- Başlayın'ı tıklayın.
- Ek sağlayıcılar sütununda Google > Etkinleştir'i tıklayın.
- Projenin herkese açık adı metin kutusuna
My AI Extensions Codelab
gibi yararlı bir ad girin. - Proje için destek e-postası menüsünde e-posta adresinizi seçin.
- Kaydet'i tıklayın.
Cloud Firestore'u ayarlama
- Firebase konsolunun sol panelinde Derleme'yi genişletin ve ardından Firestore veritabanı'nı seçin.
- Create database'i (Veritabanı oluştur) tıklayın.
- Veritabanı Kimliği'ni
(default)
olarak bırakın. - Veritabanı için bir konum seçin ve Sonraki'yi tıklayın.
Gerçek bir uygulama için kullanıcılarınıza yakın bir konum seçmeniz gerekir. - Test modunda başlat'ı tıklayın. Güvenlik kurallarıyla ilgili sorumluluk reddi beyanını okuyun.
Bu kod laboratuvarının ilerleyen bölümlerinde, verilerinizin güvenliğini sağlamak için güvenlik kuralları ekleyeceksiniz. Veritabanınıza Güvenlik Kuralları eklemeden bir uygulamayı dağıtmayın veya herkese açık olarak göstermeyin. - Oluştur'u tıklayın.
Cloud Storage for Firebase'ı ayarlama
- Firebase konsolunun sol panelinde Derleme'yi genişletin ve ardından Depolama'yı seçin.
- Başlayın'ı tıklayın.
- Varsayılan Storage paketiniz için bir konum seçin.
US-WEST1
,US-CENTRAL1
veUS-EAST1
'deki paketler, Google Cloud Storage'ın "Daima Ücretsiz" katmanından yararlanabilir. Diğer tüm konumlardaki paketler için Google Cloud Storage fiyatlandırması ve kullanımı geçerlidir. - Test modunda başlat'ı tıklayın. Güvenlik kurallarıyla ilgili sorumluluk reddi beyanını okuyun.
Bu kod laboratuvarının ilerleyen bölümlerinde, verilerinizin güvenliğini sağlamak için güvenlik kuralları ekleyeceksiniz. Depolama alanı paketiniz için Güvenlik Kuralları eklemedenbir uygulamayı dağıtmayın veya herkese açık olarak göstermeyin. - Oluştur'u tıklayın.
Bu codelab'in sonraki bölümünde, bu codelab boyunca web uygulamasında kullanacağınız iki Firebase uzantısını yükleyip yapılandıracaksınız.
5. "Chatbot with the Gemini API" uzantısını ayarlama
"Gemini API ile Chatbot oluşturma" uzantısını yükleme
- "Gemini API ile Chatbot oluşturma" uzantısına gidin.
- Firebase konsoluna yükle'yi tıklayın.
- Firebase projenizi seçin ve İleri'yi tıklayın.
- Etkinleştirilen API'leri ve oluşturulan kaynakları inceleyin bölümünde, size önerilen hizmetlerin yanındaki Etkinleştir'i ve ardından İleri'yi tıklayın.
- Size önerilen tüm izinler için Ver'i seçip Sonraki'yi tıklayın.
- Uzantıyı yapılandırın:
- Gemini API Sağlayıcısı menüsünde, Google AI'ın mı yoksa Vertex AI'ın mı Gemini API'sini kullanmak istediğinizi seçin. Firebase kullanan geliştiricilerin
Vertex AI
kullanmalarını öneririz. - Firestore Koleksiyon Yolu metin kutusuna
users/{uid}/messages
yazın.
Bu codelab'in sonraki adımlarında, bu koleksiyona belge eklemek uzantının Gemini API'yi çağırmasını tetikler. - Cloud Functions konumu menüsünde tercih ettiğiniz konumu (ör.
Iowa (us-central1)
veya Firestore veritabanınız için daha önce belirttiğiniz konum) seçin. - Diğer tüm değerleri varsayılan değerlerinde bırakın.
- Gemini API Sağlayıcısı menüsünde, Google AI'ın mı yoksa Vertex AI'ın mı Gemini API'sini kullanmak istediğinizi seçin. Firebase kullanan geliştiricilerin
- Uzantıyı yükle'yi tıklayın ve uzantının yüklenmesini bekleyin.
"Chatbot with the Gemini API" uzantısını deneyin
Bu codelab'in amacı, "Chatbot with the Gemini API" uzantısını bir web uygulaması üzerinden etkileşime geçirmek olsa da uzantıyı önce Firebase Konsolu'nda deneyerek nasıl çalıştığını öğrenmek faydalı olacaktır.
Uzantı, users/{uid}/discussion/{discussionId}/messages
koleksiyonu altında bir Firestore belgesi oluşturulduğunda tetiklenir. Bu işlemi Firebase konsolunda yapabilirsiniz.
- Firebase konsolunda Firestore'a gidin ve ilk sütunda Koleksiyonu başlat'ı tıklayın.
- Koleksiyon kimliği metin kutusuna
users
yazın ve Sonraki'yi tıklayın. - Doküman kimliği metin kutusunda Otomatik kimlik'i ve ardından Kaydet'i tıklayın.
users
koleksiyonunda Koleksiyonu başlat'ı tıklayın.- Koleksiyon kimliği metin kutusuna
messages
yazın ve Sonraki'yi tıklayın.- Doküman Kimliği metin kutusunda Otomatik Kimlik'i tıklayın.
- Alan metin kutusuna
prompt
yazın - Değer metin kutusuna
Tell me 5 random fruits
yazın
- Kaydet'i tıklayın ve birkaç saniye bekleyin.
Bu dokümanı eklediğinizde uzantı, Gemini API'yi çağırmaya başladı. messages
koleksiyonuna eklediğiniz doküman artık yalnızca prompt
'ınızı değil, sorgunuza modelin response
'ini de içeriyor.
messages
koleksiyonuna başka bir doküman ekleyerek uzantıyı tekrar tetikleyin:
messages
koleksiyonunda Doküman ekle'yi tıklayın.- Doküman Kimliği metin kutusunda Otomatik Kimlik'i tıklayın.
- Alan metin kutusuna
prompt
yazın - Değer metin kutusuna
And now, vegetables
yazın - Kaydet'i tıklayın ve birkaç saniye bekleyin.
messages
koleksiyonuna eklediğiniz belge artık sorgunuza birresponse
içeriyor.
Bu yanıtı oluştururken temel alınan Gemini modeli, önceki sorgunuzdaki geçmiş bilgileri kullandı.
6. Web uygulamasını ayarlama
Web uygulamasını çalıştırmak için terminalinizde komutlar çalıştırmanız ve kod düzenleyicinize kod eklemeniz gerekir.
Firebase CLI'yi Firebase projenizle çalışacak şekilde ayarlama
Terminalinizde aşağıdaki komutu çalıştırarak CLI'ye Firebase projenizi kullanmasını söyleyin:
firebase use YOUR_PROJECT_ID
Firestore ve Cloud Storage için güvenlik kuralları dağıtma
Bu kod laboratuvarının kod tabanında, sizin için yazılmış bir dizi Firestore Güvenlik Kuralı ve Cloud Storage Güvenlik Kuralı bulunmaktadır. Bu güvenlik kurallarını dağıttıktan sonra, Firebase projenizdeki Firebase hizmetleriniz kötüye kullanıma karşı daha iyi korunur.
- Güvenlik kurallarını dağıtmak için terminalinizde şu komutu çalıştırın:
firebase deploy --only firestore:rules,storage
- Hizmetler arası kuralları kullanmak için Cloud Storage'a IAM rolü verilip verilmeyeceği sorulduğunda
Y
veyaN
yazın. (bu codelab için her iki seçenek de işe yarar)
Web uygulamanızı Firebase projenize bağlama
Web uygulamanızın kod tabanının, veritabanı, depolama alanı vb. için hangi Firebase projesini kullanması gerektiğini bilmesi gerekir. Bunu, Firebase yapılandırmanızı uygulamanızın kod tabanına ekleyerek yaparsınız.
- Firebase yapılandırmanızı alın:
- Firebase konsolunda, Firebase projenizdeki Proje ayarları'na gidin.
- Uygulamalarınız bölümüne gidip kayıtlı web uygulamanızı seçin.
- SDK kurulumu ve yapılandırması bölmesinde,
firebaseConfig
const dahil olmak üzereinitializeApp
kodunun tamamını kopyalayın.
- Firebase yapılandırmanızı web uygulamanızın kod tabanına ekleyin:
- Kod düzenleyicinizde
src/app/lib/firebase/firebase.config.js
dosyasını açın. - Dosyadaki her şeyi seçin ve kopyaladığınız kodla değiştirin.
- Dosyayı kaydedin.
- Kod düzenleyicinizde
Web uygulamasını tarayıcınızda önizleme
- Terminalinizde bağımlılıkları yükleyin ve ardından web uygulamasını çalıştırın:
npm install npm run dev
- Web uygulamasını görüntülemek için tarayıcınızda yerel olarak barındırılan barındırma URL'sine gidin. Örneğin, çoğu durumda URL http://localhost:3000/ veya benzer bir URL'dir.
Web uygulamasının chatbot'unu kullanma
- Tarayıcınızda, yerel olarak çalışan Friendly Conf web uygulamasının bulunduğu sekmeye dönün.
- Google ile oturum aç'ı tıklayın ve gerekirse Google Hesabınızı seçin.
- Oturum açtıktan sonra boş bir sohbet penceresi görürsünüz.
- Bir karşılama mesajı yazın (ör.
hi
) ve Gönder'i tıklayın. - Sohbet robotunun yanıt vermesi için birkaç saniye bekleyin.
Uygulamadaki chatbot, genel bir yanıtla yanıt verir.
Chatbot'u uygulama için özelleştirme
Model, uygulamayı kullanan katılımcılar için yanıtlar oluştururken konferansa özgü ayrıntıları öğrenmek için web uygulamanızın sohbet robotu tarafından kullanılan temel Gemini modeline ihtiyacınız vardır. Bu yanıtları kontrol etmenin ve yönlendirmenin birçok yolu vardır. Bu kod laboratuvarının alt bölümünde, ilk istemde yalnızca web uygulaması kullanıcısından gelen giriş yerine "bağlam" sağlayarak size çok temel bir yöntem gösteriyoruz.
- Tarayıcınızdaki web uygulamasında, kırmızı "x" düğmesini (sohbet geçmişindeki mesajın yanında) tıklayarak ileti dizisini temizleyin.
- Kod düzenleyicinizde
src/app/page.tsx
dosyasını açın. - Sayfayı aşağı kaydırın ve 77. satırda veya yakınında bulunan
prompt: userMsg
ifadesini aşağıdaki kodla değiştirin:prompt: preparePrompt(userMsg, messages),
- Dosyayı kaydedin.
- Tarayıcınızda çalışan web uygulamasına geri dönün.
- Tekrar bir selamlama yazın (ör.
hi
) ve Gönder'i tıklayın. - Sohbet robotunun yanıt vermesi için birkaç saniye bekleyin.
Chatbot, src/app/lib/context.md
içinde sağlanan bağlama göre bilgi vererek yanıt verir. Belirli bir istek girmemiş olsanız bile temel alınan Gemini modeli, bu bağlama ve mevcut tarih/saate göre kişiselleştirilmiş bir öneri oluşturur. Artık takip soruları belirleyebilir ve daha ayrıntılı bilgi edinebilirsiniz.
Bu genişletilmiş bağlam, chatbot için önemlidir ancak web uygulamasının kullanıcısına gösterilmemelidir. Bu bağlamı gizlemek için:
- Kod düzenleyicinizde
src/app/page.tsx
dosyasını açın. - Sayfayı aşağı kaydırın ve 56. satırda veya yakınında bulunan
...doc.data(),
kodunun yerine aşağıdaki kodu yazın:...prepareMessage(doc.data()),
- Dosyayı kaydedin.
- Tarayıcınızda çalışan web uygulamasına geri dönün.
- Sayfayı yeniden yükleyin.
Geçmiş bağlamla chatbot ile sohbet etme özelliğini de deneyebilirsiniz:
- Mesaj yazın metin kutusuna aşağıdaki gibi bir soru sorun:
Any other interesting talks about AI?
Chatbot bir yanıt verir. - Mesaj yazın metin kutusuna, önceki soruyla ilgili bir takip sorusu yazın:
Give me a few more details about the last one.
Chatbot, geçmiş bilgilerle yanıt verir. Sohbet geçmişi artık bağlamın bir parçası olduğundan chatbot, takip sorularına yanıt verebilir.
Bonus: Firebase Local Emulator Suite'i kullanarak web uygulamasını çalıştırma
Firebase Local Emulator Suite, web uygulamasının özelliklerinin çoğunu yerel olarak test etmenize olanak tanır.
- Terminalinizde, web uygulamasının kökünde olduğunuzdan emin olun.
- Firebase Local Emulator Suite'i yükleyip çalıştırmak için aşağıdaki komutu çalıştırın:
firebase init emulators firebase emulators:start
7. "Gemini API ile Çoklu Modlu Görevler" uzantısını ayarlama
"Gemini API ile Çoklu Modlu Görevler" uzantısı, Gemini API'yi bir metin istemi ve desteklenen bir dosya URL'si veya Cloud Storage URL'si içeren çoklu modlu istemlerle çağırır (Google AI Gemini API'nin bile temel dosya URL'si altyapısı olarak bir Cloud Storage URL'si kullandığını unutmayın). Uzatma, metin istemini özelleştirmek için Cloud Firestore belgesindeki değerlerin yerine geçmesi amacıyla handlebars değişkenlerini de destekler.
Uygulamanızda, bir Cloud Storage paketine resim yüklediğinizde bir URL oluşturabilir ve bu URL'yi yeni bir Cloud Firestore belgesine ekleyebilirsiniz. Böylece, uzantıyı tetikleyerek çoklu modal istem oluşturabilir ve Gemini API'yi çağırabilirsiniz. Bu kod laboratuvarının kaynak kodunda, resim yükleme ve URL'yi bir Firestore belgesine yazma kodunu zaten sağladık.
"Gemini API ile Çoklu Formatlı Görevler" uzantısını yükleme
- "Gemini API ile Çoklu Modlu Görevler" uzantısına gidin.
- Firebase konsoluna yükle'yi tıklayın.
- Firebase projenizi seçin.
- Uzantıyı yapılandır bölümüne ulaşana kadar İleri > İleri > İleri'yi tıklayın.
- Gemini API Sağlayıcısı menüsünde, Google AI'ın mı yoksa Vertex AI'ın mı Gemini API'sini kullanmak istediğinizi seçin. Firebase kullanan geliştiricilerin
Vertex AI
kullanmalarını öneririz. - Firestore Koleksiyon Yolu metin kutusuna şunları girin:
gallery
- İstem metin kutusuna şunları girin:
Please describe the provided image; if there is no image, say "no image"
- Resim alanı metin kutusuna şunu girin:
image
- Cloud Functions konumu menüsünde tercih ettiğiniz konumu (ör.
Iowa (us-central1)
veya Firestore veritabanınız için daha önce belirttiğiniz konum) seçin. - Diğer tüm değerleri varsayılan değerlerinde bırakın.
- Gemini API Sağlayıcısı menüsünde, Google AI'ın mı yoksa Vertex AI'ın mı Gemini API'sini kullanmak istediğinizi seçin. Firebase kullanan geliştiricilerin
- Uzantıyı yükle'yi tıklayın ve uzantının yüklenmesini bekleyin.
"Gemini API ile Çoklu Formatlı Görevler" uzantısını deneyin
Bu codelab'in amacı, "Gemini API ile Çoklu Modlu Görevler" uzantısını bir web uygulaması üzerinden etkileşime geçirmek olsa da uzantıyı önce Firebase konsolunda deneyerek nasıl çalıştığını öğrenmek faydalı olacaktır.
Uzantı, users/{uid}/gallery
koleksiyonu altında bir Firestore belgesi oluşturulduğunda tetiklenir. Bu işlemi Firebase konsolunda yapabilirsiniz. Ardından uzantı, Cloud Firestore belgesindeki Cloud Storage resim URL'sini alır ve Gemini API'ye yapılan bir çağrıda çoklu modal istemin bir parçası olarak iletir.
Öncelikle bir Cloud Storage paketine resim yükleyin:
- Firebase projenizde Depolama'ya gidin.
- Klasör oluştur'u tıklayın.
- Klasör adı metin kutusuna
gallery
yazın - Klasör ekle'yi tıklayın.
gallery
klasöründe Dosya yükle'yi tıklayın.- Yüklemek için bir JPEG resim dosyası seçin.
Ardından, resmin Cloud Storage URL'sini bir Firestore dokümanına ekleyin (uzantı için tetikleyici budur):
- Firebase projenizde Firestore'a gidin
- İlk sütunda Koleksiyonu başlat'ı tıklayın.
- Koleksiyon kimliği metin kutusuna
gallery
yazın ve Sonraki'yi tıklayın. - Koleksiyona doküman ekleme:
- Doküman Kimliği metin kutusunda Otomatik Kimlik'i tıklayın.
- Alan metin kutusuna:
image
yazın. Değer kutusuna, yüklediğiniz resmin Depolama konumu URI'sini girin.
- Alan Ekle'yi tıklayın.
- Alan metin kutusuna:
published
yazın. Tür kutusunda boolean'u seçin. Değer kutusundatrue
'yi seçin. - Kaydet'i tıklayın ve birkaç saniye bekleyin.
gallery
koleksiyonuna sorgunuza yanıt içeren bir doküman eklendi.
Web uygulamasının resim galerisini kullanma
- Tarayıcınızda, yerel olarak çalışan Friendly Conf web uygulamasının bulunduğu sekmeye dönün.
- Galeri gezinme sekmesini tıklayın.
- Yüklenen resimlerin ve yapay zeka tarafından üretilen açıklamaların yer aldığı bir galeri görürsünüz. Bu klasörde, daha önce Storage paketinizdeki
gallery
klasörüne yüklediğiniz resim yer alır. - "Yükle" düğmesini tıklayın ve başka bir JPEG resim seçin.
- Resmin galeride gösterilmesi için birkaç saniye bekleyin. Birkaç dakika sonra, yeni yüklenen resim için yapay zeka tarafından üretilen açıklama da gösterilir.
Bu özelliğin nasıl uygulandığını anlamak için web uygulamasının kod tabanında src/app/gallery/page.tsx
bölümüne bakın.
8. Bonus: Uygulamanızı dağıtma
Firebase, web uygulamalarını dağıtmanın çeşitli yollarını sunar. Bu kod laboratuvarının çalışması için aşağıdaki seçeneklerden birini belirleyin:
- 1. seçenek: Firebase Hosting: Kendi GitHub deponuzu oluşturmamaya karar verirseniz (ve kaynak kodunuzu yalnızca makinenizde yerel olarak depolamak istiyorsanız) bu seçeneği kullanın.
- 2. seçenek: Firebase Uygulama Barındırma: Kendi GitHub deponuza değişiklik gönderdiğinizde otomatik dağıtım yapmak istiyorsanız bu seçeneği kullanın. Bu yeni Firebase hizmeti, dinamik Next.js ve Angular uygulamalarının ihtiyaçlarına özel olarak tasarlanmıştır.
1. Seçenek: Firebase Hosting'i kullanarak dağıtma
Kendi GitHub deponuzu oluşturmamaya (ve kaynak kodunuzun yalnızca makinenizde yerel olarak depolanmasına) karar verirseniz bu seçeneği kullanın.
- Terminalinizde şu komutları çalıştırarak Firebase Hosting'i başlatın:
firebase experiments:enable webframeworks firebase init hosting
Detected an existing Next.js codebase in your current directory, should we use this?
istemi içinY
tuşuna basın.In which region would you like to host server-side content, if applicable?
istemi için varsayılan konumu veya bu codelab'de daha önce kullandığınız konumu seçin. ArdındanEnter
(veya macOS'tereturn
) tuşuna basın.Set up automatic builds and deploys with GitHub?
istemi içinN
tuşuna basın.- Web uygulamanızı barındırmaya dağıtmak için şu komutu çalıştırın:
firebase deploy --only hosting
Hepsi bu kadar. Uygulamanızı güncelleyip yeni sürümü dağıtmak istiyorsanız firebase deploy --only hosting
komutunu yeniden çalıştırmanız yeterlidir. Firebase Hosting, uygulamanızı oluşturup yeniden dağıtır.
2. Seçenek: Firebase App Hosting'i kullanarak dağıtma
Kendi GitHub deponuza değişiklik aktardığınızda otomatik dağıtım yapmak istiyorsanız bu seçeneği kullanın.
- Değişikliklerinizi GitHub'a kaydedin.
- Firebase konsolunda, Firebase projenizde Uygulama Barındırma'ya gidin.
- Başlayın > GitHub'a bağlan'ı tıklayın.
- GitHub hesabınızı ve kod deponuzu seçin. İleri'yi tıklayın.
- Yayınlama ayarı > Kök dizin bölümünde, kaynak kodunuzun bulunduğu klasörün adını girin (
package.json
, deponuzun kök dizininde değilse). - Canlı şube için GitHub depolarınızın main şubesini seçin. İleri'yi tıklayın.
- Arka uçunuz için bir kimlik girin (örneğin,
chatbot
). - Sonlandır ve Dağıt'ı tıklayın.
Yeni dağıtımınızın hazır olması birkaç dakika sürer. Dağıtım durumunu Firebase konsolunun Uygulama Barındırma bölümünden kontrol edebilirsiniz.
Bu andan itibaren, GitHub deponuza her değişiklik gönderdiğinizde Firebase App Hosting, uygulamanızı otomatik olarak oluşturup dağıtır.
9. Sonuç
Tebrikler! Bu codelab'de çok şey başardınız.
Uzantıları yükleme ve yapılandırma
Üretken yapay zekayı kullanan çeşitli Firebase uzantılarını yapılandırmak ve yüklemek için Firebase konsolunu kullandınız. Firebase uzantılarını kullanmak, Google Cloud hizmetleriyle kimlik doğrulamayı veya Firestore ve Google Cloud hizmetleri ve API'leriyle etkileşime geçmek için arka uç Cloud Functions mantığını öğrenmeniz ve çok fazla standart kod yazmanız gerekmediğinden kullanışlıdır.
Firebase konsolunu kullanarak uzantıları deneme
Doğrudan koda atlamak yerine, Firestore veya Cloud Storage üzerinden sağladığınız bir girişe göre bu yapay zeka uzantılarının nasıl çalıştığını anlamak için zaman ayırdınız. Bu, özellikle bir uzantının çıkışında hata ayıklama yaparken yararlı olabilir.
Yapay zeka destekli web uygulaması oluşturma
Gemini modelinin yalnızca birkaç özelliğine erişmek için Firebase Extensions'i kullanan yapay zeka destekli bir web uygulaması oluşturdunuz.
Web uygulamasında, kullanıcıya sohbetlerde uygulamaya özgü ve geçmiş bağlamı içeren etkileşimli bir sohbet arayüzü sunmak için "Gemini API ile Chatbot" uzantısını kullanırsınız. Bu uzantı, her mesajın belirli bir kullanıcıya yönelik kapsama sahip bir Firestore belgesinde depolandığı sohbetlerde uygulamaya özgü ve geçmiş bağlamı içeren etkileşimli bir sohbet arayüzü sunar.
Web uygulaması, yüklenen resimlerin açıklamalarını otomatik olarak oluşturmak için "Gemini API ile Çoklu Modlu Görevler" uzantısını da kullandı.
Sonraki adımlar
- Google AI Studio veya Vertex AI Studio'da istemleri deneyebilir ve büyük bağlam penceresinden yararlanabilirsiniz.
- Yapay zeka ile almayla artırılmış üretim (RAG) araması hakkında bilgi edinin.
- Yeni bir yapay zeka çerçevesi hizmeti olan Firebase Genkit'i kullanarak mevcut bir Firebase uygulamasına nasıl chatbot ekleneceğini gösteren kendi kendine ilerleyen bir codelab'i deneyin.
- Firestore'daki benzerlik arama özellikleri ve PostgreSQL için Cloud SQL hakkında bilgi edinin.
- İşlev çağrısı özelliğini kullanarak chatbot'unuza mevcut uygulamanızı aramasını öğretin.