Catatan: Untuk menjalankan Titik Akhir API Gemini secara lokal, pertama-tama siapkan akun google vertex ai Anda https://cloud.google.com/sdk/docs/initializing
Aplikasi Asisten Perjalanan ini dirancang untuk menguji Arsitektur Skalabel Aplikasi AI Generatif yang lengkap.
Kami telah menjelajahi pemanggilan fungsi gemini pro secara ekstensif, dan membuka fitur ai dev day. Layanan ini dikembangkan menggunakan kerangka FastAPI dan Frontend frontier didukung dengan NextJS 14 serta streamlit untuk pengembang python murni.
AI Powered Maps didukung dengan "Google Maps javascript API" untuk NextJS dan "Plotly with MapBox" untuk streamlit.
Dalam video ini saya telah menjelaskan keseluruhan arsitektur dan pipa api streaming gemini pro, serta arsitektur pemanggilan fungsi.
gemmini => fastapi backend => nextjs frontend (respons streaming penuh)
Kloning repositori ke mesin lokal Anda:
Ganti nama .env.template menjadi .env dan tambahkan Kunci API dan URL Basis Data Anda di sana. Buat masalah atau kirimkan pesan kepada saya jika Anda menghadapi masalah apa pun saat menyiapkan aplikasi
Instal paket Python yang diperlukan:
backend -> src
. pip install -r requirements.txt
Mulai server FastAPI dengan menjalankan:
uvicorn main:app
Uji backend secara langsung dengan membuat permintaan POST berikut di PostMan atau perangkat lunak pengujian API apa pun.
http://localhost:8000/travel_assistant?prompt="Share 2 places to visit in UAE"
Pastikan layanan frontend dan backend berjalan secara bersamaan agar aplikasi dapat berfungsi dengan baik.
app.py
. streamlit run app.py
Akses frontend di: http://localhost:8501/
Buka direktori nextjs, jalankan pnpm install dan pnpm dev
Tarik gambar buruh pelabuhan dan jalankan di sana
Dengan layanan frontend dan backend berjalan, akses aplikasi Streamlit di browser web Anda dan berinteraksi dengan fitur asisten perjalanan.
Mari kita buat image buruh pelabuhan terlebih dahulu dan jalankan frontend menggunakan container yang dijalankan dari image ini.
Selanjutnya kita akan mendorong gambar dan menyebarkan backend kita di Google Run
docker build -t travel_ai_service .
Untuk Pengguna Mac M2 gunakan perintah ini sebagai gantinya: docker buildx build --platform linux/amd64 -t <Image Name> .
gambar buruh pelabuhan
docker run --env-file .env -d --name 2bd90a3c026f -p 80:80 travel_ai_assistant
docker tag travel_ai_assistant mjunaidca/travel_ai_assistant:latest
docker push mjunaidca/travel_ai_assistant:latest
Melalui Kli
gcloud run deploy ai-travel-assistant --image mjunaidca/travel_ai_assistant:latest
Lalu Buka Google Cloud dan Klik "Edit & Terapkan Revisi Baru"
Tambahkan Variabel Lingkungan Anda dan ubah port dari 8080 menjadi 80 (ini yang kami konfigurasikan di dockerfile).
Atau Anda bisa langsung mengunjungi Google Run dan klik Create a Service. Isi detail untuk menyebarkan image buruh pelabuhan Anda
Pertama lewati url di browser dan Anda akan melihat teks ""atas di sini"". Selanjutnya ganti dengan streamlit
Dapatkan Kunci API Layanan Proyek Google Cloud Anda. Unduh dalam format json dan simpan di direktori backend.
Kami meneruskannya saat runtime setelah membuat image untuk menjalankan container secara lokal.
Selalu sertakan mereka di .gitignore dan .dockerignore. , Saya tidak sengaja mengeksposnya pada hub buruh pelabuhan sebelum ***
docker build -t travel_ai_service .
Untuk Pengguna Mac M2 gunakan perintah ini sebagai gantinya:
docker buildx build --platform linux/amd64 -t mjunaidca/travel_ai_assistant:v1 .
gambar buruh pelabuhan
docker run --env-file .env -d --name travel_ai_assistant -p 80:80 -v /Users/mjs/Documents/GitHub/genai_fastapi/travel_ai_service/backend/travel-ai-gauth.json:/app/travel-ai-gauth.json -e GOOGLE_APPLICATION_CREDENTIALS=/app/travel-ai-gauth.json mjunaidca/travel_ai_assistant:v1```
4. Test Locally and then Push it on Docker Hub
Is API Working?
http://localhost:80
Are Gemini Endpoints Working?
http://localhost/gemini_streaming_travel_ai/?query=%22hello%22
http://localhost/gemini_streaming_travel_ai/mapstate
For OpenAi it's Post request using postman
http://localhost:80/travel_assistant/?prompt="Share 2 places to visit in UAE"
buruh pelabuhan mendorong mjunaidca/travel_ai_assistant:v1
5. Deply your service on Google Cloud
Through Cli
gcloud jalankan penerapan ai-travel-assistant --image mjunaidca/travel_ai_assistant:latest
Lalu Buka Google Cloud dan Klik "Edit & Terapkan Revisi Baru"
Tambahkan Variabel Lingkungan Anda dan ubah port dari 8080 menjadi 80 (ini yang kami konfigurasikan di dockerfile).
Atau Anda bisa langsung mengunjungi Google Run dan klik Create a Service. Isi detail untuk menyebarkan image buruh pelabuhan Anda
Pertama lewati url di browser dan Anda akan melihat teks ""atas di sini"". Selanjutnya ganti dengan streamlit
Mengapa tidak vercel: Batas waktu inocation default Vercel adalah 10,01 detik. Dengan menggunakan edge kita dapat meningkatkannya menjadi 25 detik dan terlebih lagi dengan menggunakan streaming kita dapat meningkatkannya hingga waktu yang tidak terbatas.
Di sini waktu respons rata-rata dengan pemanggilan fungsi adalah 30-40 detik, jadi rencana saya adalah melakukan dockerisasi dan menerapkan ini di Google cloud juga.
docker buildx build --platform linux/amd64 -t nextjs_travel_ai .
docker images
docker run --env-file .env -d --name 4f04288c45a8 -p 3000:8000 nextjs_travel_ai
verify the containor is running and no error occured
docker ps
docker tag nextjs_travel_ai mjunaidca/nextjs_travel_ai:latest
docker push mjunaidca/nextjs_travel_ai:latest
gcloud run deploy nextjs-travel-ai --image mjunaidca/nextjs_travel_ai:latest
Kontribusi untuk proyek ini sangat diharapkan. Untuk berkontribusi:
git checkout -b feature-branch
).git commit -am 'Add some feature'
).git push origin feature-branch
).Proyek ini dilisensikan di bawah Lisensi MIT - lihat file LICENSE.md untuk detailnya.
Untuk pertanyaan atau komentar tambahan, silakan hubungi pengelola proyek.
Nikmati menjelajahi dunia dengan Aplikasi Travel Assistant!
Nikmati pengalaman asisten perjalanan virtual Anda!