1. Genel Bakış
Bir web uygulamasını ilk kez dağıtmak korkutucu olabilir. İlk dağıtımdan sonra bile, süreç çok fazla iş gerektiriyorsa uygulamanızın yeni sürümlerini dağıtmaktan kaçınabilirsiniz. Sürekli dağıtım sayesinde, uygulamanızdaki değişiklikleri otomatik olarak kolayca dağıtabilirsiniz.
Bu laboratuvarda bir web uygulaması yazar ve uygulamanızın kaynak kodunda değişiklik yapıldığında uygulamanızı otomatik olarak dağıtacak şekilde Cloud Run'u yapılandırırsınız. Ardından, uygulamanızı değiştirip tekrar dağıtın.
Öğrenecekleriniz
- Cloud Shell Düzenleyici ile web uygulaması yazma
- Uygulama kodunuzu GitHub'da depolama
- Uygulamanızı Cloud Run'a otomatik olarak dağıtma
- Genkit'i kullanarak üretken yapay zekayı uygulamanıza ekleme
- dotprompt kitaplığını kullanarak LLM istemlerini yönetme
2. Ön koşullar
- Google Hesabınız yoksa Google Hesabı oluşturmanız gerekir.
- İş veya okul hesabı yerine kişisel hesap kullanıyorsanız. İş ve okul hesaplarında, bu laboratuvar için gereken API'leri etkinleştirmenizi engelleyen kısıtlamalar olabilir.
- GitHub hesabınız yoksa GitHub hesabı oluşturmanız gerekir
- Varsa mevcut bir GitHub hesabı kullanın. GitHub'ın yeni bir hesabı spam olarak engelleme olasılığı daha yüksektir.
- Hesabınızın spam olarak işaretlenme olasılığını azaltmak için GitHub hesabınızda iki faktörlü kimlik doğrulamayı yapılandırın.
3. Proje ayarlama
- Google Cloud Console'da oturum açın.
- Cloud Console'da faturalandırmayı etkinleştirin.
- Bu laboratuvarı tamamlamak, bulut kaynaklarında 1 ABD dolarından az maliyete mal olur.
- Daha fazla ödeme alınmaması için bu laboratuvarın sonundaki adımları uygulayarak kaynakları silebilirsiniz.
- Yeni kullanıcılar 300 ABD doları tutarındaki ücretsiz denemeden yararlanabilir.
- Geliştiriciler için Üretken Yapay Zeka etkinliğine mi katılıyorsunuz? 1 ABD doları kredi alabilirsiniz.
- Yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanmayı seçin.
- Cloud Faturalandırma'daki Projelerim bölümünde faturalandırmanın etkinleştirildiğini onaylayın
- Yeni projenizin
Billing account
sütunundaBilling is disabled
yazıyorsa:Actions
sütunundaki üç noktayı tıklayın.- Faturalandırmayı değiştir'i tıklayın.
- Kullanmak istediğiniz faturalandırma hesabını seçin
- Geliştiriciler için Üretken Yapay Zeka etkinliğine katılıyorsanız hesabın adı büyük olasılıkla Google Cloud Platform Deneme Sürümü Faturalandırma Hesabı olacaktır.
- Yeni projenizin
4. Cloud Shell Düzenleyici'yi açma
- Cloud Shell Düzenleyici'ye gidin
- Terminal ekranın alt kısmında görünmüyorsa açın:
- Hamburger menüsünü
tıklayın.
- Terminal'i tıklayın.
- Yeni Terminal'i tıklayın
- Hamburger menüsünü
- Terminalde projenizi şu komutla ayarlayın:
- Biçim:
gcloud config set project [PROJECT_ID]
- Örnek:
gcloud config set project lab-project-id-example
- Proje kimliğinizi hatırlamıyorsanız:
- Tüm proje kimliklerinizi şu komutla listeleyebilirsiniz:
gcloud projects list | awk '/PROJECT_ID/{print $2}'
- Tüm proje kimliklerinizi şu komutla listeleyebilirsiniz:
- Biçim:
- Yetkilendirme isteğinde bulunulursa devam etmek için Yetkilendir'i tıklayın.
- Aşağıdaki mesajı görürsünüz:
Updated property [core/project].
WARNING
görüyorsanız veDo you want to continue (Y/N)?
soruyorsanız proje kimliğini yanlış girdiğiniz muhtemeldir.N
,Enter
tuşlarına basın vegcloud config set project
komutunu tekrar çalıştırmayı deneyin.
5. API'leri etkinleştir
Terminalde API'leri etkinleştirin:
gcloud services enable \
run.googleapis.com \
cloudbuild.googleapis.com \
aiplatform.googleapis.com
Bu komutun tamamlanması birkaç dakika sürebilir ancak sonunda şuna benzer bir başarılı mesaj gösterilir:
Operation "operations/acf.p2-73d90d00-47ee-447a-b600" finished successfully.
6. Git'i yapılandırma
- Global git kullanıcı e-postanızı ayarlayın:
git config --global user.email "you@example.com"
- Global git kullanıcı adınızı ayarlayın:
git config --global user.name "Your Name"
- Global git varsayılan dalınızı
main
olarak ayarlayın:git config --global init.defaultBranch main
7. Kodunuzu yazın
Node.js'de uygulama yazmak için:
- Ana dizine gidin:
cd ~
codelab-genai
dizinini oluşturun:mkdir codelab-genai
codelab-genai
dizinine gidin:cd codelab-genai
index.js
dosyası oluşturun:touch index.js
package.json
dosyasını oluşturun:npm init es6 -y
- Bağımlılık olarak
express
eklemenpm install express
node_modules
dosyasını kaydetmemeyi önlemek için.gitignore
dosyası eklemeecho node_modules/ >> .gitignore
index.js
dosyasını Cloud Shell Düzenleyici'de açın: Ekranın üst kısmında boş bir dosya görünür. Bucloudshell edit index.js
index.js
dosyasını buradan düzenleyebilirsiniz.- Aşağıdaki kodu kopyalayıp açılan
index.js
dosyasına yapıştırın: Cloud Shell Düzenleyici, birkaç saniye sonra kodunuzu otomatik olarak kaydeder. Bu kod, http isteklerine "Merhaba dünya!" karşılama mesajıyla yanıt verir.import express from 'express'; const app = express(); app.get('/', async (req, res) => { res.send('Hello world!'); }); const port = process.env.PORT || 8080; app.listen(port, () => { console.log(`codelab-genai: listening on port ${port}`); });
Uygulamanız için ilk kodunuz tamamlandı ve sürüm kontrolünde depolanmaya hazır.
8. Kod deposu oluştur
- Ekranınızın alt kısmındaki Cloud Shell terminaline dönün.
- Doğru dizinde olduğunuzdan emin olun:
cd ~/codelab-genai
- Git deponuzu başlatma
git init -b main
- GitHub CLI'ye giriş yapma
Varsayılan seçenekleri kabul etmek içingh auth login
Enter
tuşuna basın ve GitHub CLI aracındaki talimatları uygulayın. Örneğin:- Hangi hesaba giriş yapmak istiyorsunuz?
GitHub.com
- Bu ana makinede Git işlemleri için tercih ettiğiniz protokol nedir?
HTTPS
- Git'in kimliğini GitHub kimlik bilgilerinizle doğrulama
Y
(Bu görünmüyorsa atlayın.) - GitHub CLI'yi nasıl doğrulamak istersiniz?
Login with a web browser
- Tek seferlik kodunuzu kopyalama
- https://github.com/login/device adresini açın
- Tek seferlik kodunuzu yapıştırın
- GitHub'ı yetkilendir'i tıklayın.
- Girişinizi tamamlayın
- Hangi hesaba giriş yapmak istiyorsunuz?
- Giriş yaptığınızdan emin olun:
Girişiniz başarılı olduysa GitHub kullanıcı adınız gösterilir.gh api user -q ".login"
GITHUB_USERNAME
değişkeni oluşturmaGITHUB_USERNAME=$(gh api user -q ".login")
- Ortam değişkenini oluşturduğunuzu onaylayın:
Değişkeni başarıyla oluşturduysanız bu komut GitHub kullanıcı adınızı döndürür.echo ${GITHUB_USERNAME}
codelab-genai
adlı boş bir GitHub deposu oluşturun: Aşağıdaki hatayı alırsanız:gh repo create codelab-genai --private
GraphQL: Name already exists on this account (createRepository)
codelab-genai
adlı bir deponuz varsa Bu eğitime devam etmek için iki seçeneğiniz vardır:- Mevcut GitHub deposunu silin
- Farklı bir ada sahip bir depo oluşturun ve aşağıdaki komutlarda bu adı değiştirmeyi unutmayın.
codelab-genai
deposunu uzakorigin
olarak ekleyin:git remote add origin https://github.com/${GITHUB_USERNAME}/codelab-genai
9. Kodunuzu paylaşma
- Doğru dizinde olduğunuzu onaylayın:
cd ~/codelab-genai
- Geçerli dizindeki tüm dosyaları bu kayda ekleyin:
git add .
- İlk kaydetmeyi oluşturun:
git commit -m "add http server"
- Kaydı,
origin
deposununmain
dalına aktarın:git push -u origin main
Bu komutu çalıştırıp uygulamanızın kodunu GitHub'da görüntülemek için ortaya çıkan URL'yi ziyaret edebilirsiniz:
echo -e "\n\nTo see your code, visit this URL:\n \
https://github.com/${GITHUB_USERNAME}/codelab-genai/blob/main/index.js \n\n"
10. Otomatik dağıtımlar oluşturma
- Cloud Shell Düzenleyici sekmesini açık bırakın. Bu sekmeye daha sonra geri döneceğiz.
- Yeni bir sekmede Cloud Run sayfasını ziyaret edin.
- Console'da doğru Google Cloud projesini seçin
- REPOYU BAĞLA'yı tıklayın.
- CLOUD BUILD İLE KUR'u tıklayın
- Depo Sağlayıcı olarak GitHub'ı seçin
- Tarayıcıda GitHub hesabınıza giriş yapmadıysanız kimlik bilgilerinizle giriş yapın.
- Kimlik doğrulama'yı, ardından Devam'ı tıklayın.
- Giriş yaptıktan sonra Cloud Run sayfasında GitHub Uygulaması, hiçbir deponuzda kurulu değil yazan bir mesaj görürsünüz.
- GOOGLE CLOUD BUILD'İ YÜKLE düğmesini tıklayın.
- Kurulum Ayarları sayfasında Yalnızca belirli depoları seç'i ve CLI üzerinden oluşturduğunuz codelab-genai deposunu seçin.
- Yükle'yi tıklayın.
- Not: Çok sayıda GitHub deponuz varsa bu işlemin yüklenmesi birkaç dakika sürebilir.
- Depo olarak
your-user-name/codelab-genai
'ü seçin- Depo mevcut değilse Bağlı Depoları Yönet bağlantısını tıklayın.
- Branch değerini
^main$
olarak bırakın. - Google Cloud'ın Buildpacks'i aracılığıyla Go, Node.js, Python, Java, .NET Core, Ruby veya PHP'yi tıklayın
- Diğer alanları (
Build context directory
,Entrypoint
veFunction target
) olduğu gibi bırakın.
- Diğer alanları (
- Kaydet'i tıklayın
- Depo Sağlayıcı olarak GitHub'ı seçin
- Kimlik doğrulama'ya gidin.
- Kimliği doğrulanmayan çağrılara izin ver'i tıklayın.
- OLUŞTUR'u tıklayın.
Derleme işlemi tamamlandıktan sonra (bu işlem birkaç dakika sürer) bu komutu çalıştırın ve çalışan uygulamanızı görüntülemek için oluşturulan URL'yi ziyaret edin:
echo -e "\n\nOnce the build finishes, visit your live application:\n \
"$( \
gcloud run services list | \
grep codelab-genai | \
awk '/URL/{print $2}' | \
head -1 \
)" \n\n"
11. Kodunuzu değiştirme
Cloud Shell Düzenleyici'ye dönme
Cloud Shell Düzenleyici hâlâ açıksa bu adımları atlayabilirsiniz.
- Cloud Shell Düzenleyici'ye gidin
- Terminal ekranın alt kısmında görünmüyorsa açın:
- Hamburger menüsünü
tıklayın.
- Terminal'i tıklayın.
- Yeni Terminal'i tıklayın
- Hamburger menüsünü
- Terminalde projenizi şu komutla ayarlayın:
- Biçim:
gcloud config set project [PROJECT_ID]
- Örnek:
gcloud config set project lab-project-id-example
- Proje kimliğinizi hatırlamıyorsanız:
- Tüm proje kimliklerinizi şu komutla listeleyebilirsiniz:
gcloud projects list | awk '/PROJECT_ID/{print $2}'
- Tüm proje kimliklerinizi şu komutla listeleyebilirsiniz:
- Biçim:
- Yetkilendirme isteğinde bulunulursa devam etmek için Yetkilendir'i tıklayın.
- Aşağıdaki mesajı görürsünüz:
Updated property [core/project].
WARNING
görüyorsanız veDo you want to continue (Y/N)?
soruyorsanız proje kimliğini yanlış girdiğiniz muhtemeldir.N
,Enter
tuşlarına basın vegcloud config set project
komutunu tekrar çalıştırmayı deneyin.
Uygulamanıza Genkit ve Vertex AI ekleme
- Ekranınızın alt kısmındaki Cloud Shell terminaline dönün.
- Doğru dizinde olduğunuzdan emin olun:
cd ~/codelab-genai
- Node.js Genkit SDK'sını yükleyin:
npm install @genkit-ai/ai
- Vertex AI için Node.js Genkit SDK'sını yükleyin:
npm install @genkit-ai/vertexai
index.js
dosyasını Cloud Shell Düzenleyici'de yeniden açmacloudshell edit ~/codelab-genai/index.js
index.js
dosyanızın kodunu şu kodla değiştirin:import express from 'express'; const app = express(); import { genkit } from 'genkit'; import { gemini15Flash, vertexAI } from '@genkit-ai/vertexai'; const ai = genkit({ plugins: [ vertexAI({ location: 'us-central1' }), ], }); app.get('/', async (req, res) => { const animal = req.query.animal || 'dog'; const prompt = `Give me 10 fun facts about ${animal}. Return this as html without backticks.` const llmResponse = await ai.generate({ model: gemini15Flash, prompt: prompt, }); const html = llmResponse.text; res.send(html); }); const port = process.env.PORT || 8080; app.listen(port, () => { console.log(`codelab-genai: listening on port ${port}`); });
- Cloud Shell'de hâlâ doğru dizinde olduğunuzdan emin olun:
cd ~/codelab-genai
- Uygulamanızın yeni bir sürümünü yerel git deponuza kaydetmek için şu komutları çalıştırın:
git add . git commit -m "add latest changes"
- Değişiklikleri GitHub'a gönderin:
git push
- Derleme tamamlandıktan sonra şu komutu çalıştırın ve dağıtılan uygulamanızı ziyaret edin:
echo -e "\n\nOnce the build finishes, visit your live application:\n \ "$( \ gcloud run services list | \ grep codelab-genai | \ awk '/URL/{print $2}' | \ head -1 \ )" \n\n"
Değişikliklerinizi görebilmeniz için derlemenin tamamlanması birkaç dakika sürebilir.
Tüm düzeltmelerin geçmişini burada görebilirsiniz: https://console.cloud.google.com/run/detail/us-central1/codelab-genai/revisions
12. (İsteğe bağlı) Genkit ile .prompt dosyalarını kullanma
- Ekranınızın alt kısmındaki Cloud Shell terminaline dönün.
- Doğru dizinde olduğunuzdan emin olun:
cd ~/codelab-genai
- İstemlerinizi depolamak için bir
prompts
klasörü oluşturun:mkdir prompts
- İlk isteminizi oluşturmak için bir
animal-facts.prompt
dosyası oluşturun:touch prompts/animal-facts.prompt
animal-facts.prompt
dosyasını Cloud Shell Düzenleyici'de açın:cloudshell edit ~/codelab-genai/prompts/animal-facts.prompt
animal-facts.prompt
dosyasını düzenleyin ve aşağıdaki kodu yapıştırın:--- model: vertexai/gemini-1.5-flash input: schema: animal: string --- Give me 10 fun facts about {{animal}}. Return the results as HTML without markdown backticks.
index.js
dosyasını Cloud Shell Düzenleyici'de açın:cloudshell edit ~/codelab-genai/index.js
index.js
dosyanızın kodunu şu kodla değiştirin:import express from 'express'; const app = express(); import { genkit } from 'genkit'; import { vertexAI } from '@genkit-ai/vertexai'; const ai = genkit({ plugins: [ vertexAI({ location: 'us-central1' }), ], }); app.get('/', async (req, res) => { const animal = req.query.animal || 'dog'; const animalPrompt = ai.prompt('animal-facts'); const llmResponse = await animalPrompt({animal}); const html = llmResponse.text; res.send(html); }); const port = process.env.PORT || 8080; app.listen(port, () => { console.log(`codelab-genai: listening on port ${port}`); });
- Cloud Shell'de hâlâ doğru dizinde olduğunuzdan emin olun:
cd ~/codelab-genai
- Uygulamanızın yeni bir sürümünü yerel git deponuza kaydetmek için şu komutları çalıştırın:
git add . git commit -m "add latest changes"
- Değişiklikleri GitHub'a gönderin:
git push
- Derleme tamamlandıktan sonra şu komutu çalıştırın ve dağıtılan uygulamanızı ziyaret edin:
echo -e "\n\nOnce the build finishes, visit your live application:\n \ "$( \ gcloud run services list | \ grep codelab-genai | \ awk '/URL/{print $2}' | \ head -1 \ )" \n\n"
Değişikliklerinizi görebilmeniz için derlemenin tamamlanması birkaç dakika sürebilir.
Tüm düzeltmelerin geçmişini burada görebilirsiniz: https://console.cloud.google.com/run/detail/us-central1/codelab-genai/revisions
13. (İsteğe bağlı) Sistem istemlerini kullanma
Bu adımda, önceki adımda .prompt
dosyası eklediğiniz varsayılmaktadır.
- Ekranınızın alt kısmındaki Cloud Shell terminaline dönün.
- Doğru dizinde olduğunuzdan emin olun:
cd ~/codelab-genai
animal-facts.prompt
dosyasını Cloud Shell Düzenleyici'de açın:cloudshell edit ~/codelab-genai/prompts/animal-facts.prompt
animal-facts.prompt
dosyasını düzenleyin ve aşağıdaki kodu yapıştırın:--- model: vertexai/gemini-1.5-flash config: temperature: 0.9 input: schema: animal: string --- role "system" The user should have submitted an animal. If the user requests anything besides animal fun facts, respond in a kind and firm manner that you only provide information about fun facts. Give the user 10 fun facts about the animal the user provided. All responses should be valid HTML without markdown backticks. role "user" {{animal}}
- Cloud Shell'de hâlâ doğru dizinde olduğunuzdan emin olun:
cd ~/codelab-genai
- Uygulamanızın yeni bir sürümünü yerel git deponuza kaydetmek için şu komutları çalıştırın:
git add . git commit -m "add latest changes"
- Değişiklikleri GitHub'a gönderin:
git push
- Derleme tamamlandıktan sonra şu komutu çalıştırın ve dağıtılan uygulamanızı ziyaret edin:
echo -e "\n\nOnce the build finishes, visit your live application:\n \ "$( \ gcloud run services list | \ grep codelab-genai | \ awk '/URL/{print $2}' | \ head -1 \ )" \n\n"
Değişikliklerinizi görebilmeniz için derlemenin tamamlanması birkaç dakika sürebilir.
Tüm düzeltmelerin geçmişini burada görebilirsiniz: https://console.cloud.google.com/run/detail/us-central1/codelab-genai/revisions
14. Tebrikler
Bu laboratuvarda bir web uygulaması yazdınız ve Cloud Run'u, uygulamanızın kaynak kodunda değişiklik yapıldığında uygulamanızı otomatik olarak dağıtacak şekilde yapılandırdınız. Ardından uygulamanızı değiştirip tekrar dağıttınız.
Bu laboratuvarı beğendiyseniz başka bir kodlama dilinde veya çerçevede tekrar deneyebilirsiniz:
Öğrenmeye devam etmek için kullanabileceğiniz bazı seçenekler:
- Genkit Dokümanları: Başlayın
- Node.js uygulamanıza gözlenebilirlik eklemek için Codelab: JavaScript'te üretken yapay zeka uygulamaları için pratik gözlenebilirlik teknikleri
- Next.js ile uygulamanıza ön uç eklemek için Codelab: Üretken yapay zeka Next.js web uygulamasını sürüm kontrolünden Cloud Run'a otomatik olarak dağıtma
- İşlev çağrısının nasıl kullanılacağını gösteren Codelab: Cloud Run ile Gemini işlev çağrısını kullanma
- Video içeriğini işlemek için yapay zekayı kullanmaya yönelik Codelab: Videoyu sahne sahne işlemek için Cloud Run Jobs Video Intelligence API'yi kullanma