Fures Travel AI Companion

Gemini Live API ile Google Maps Platform'u birleştiren, sesli ve yazılı komutlarla kişiselleştirilmiş gezi planları oluşturup fotogerçekçi 3D dünya üzerinde anlık olarak gösteren yeni nesil tur rehberimiz.

Canlı Demoyu Aç

Bölüm 1: Bu Uygulama Nedir ve Ne İşe Yarar?

Kullanıcı gözünden baktığımızda Fures Travel, elinizin altında yaşayan bir gezi planlayıcısıdır. Sesinizle veya yazıyla konuştuğunuzda Gemini, Google Maps'in güncel verileriyle desteklenen öneriler üretir ve önerdiği yerleri Photorealistic 3D haritada işaretleyerek sizi sanal bir şehir turuna çıkarır.

Bu demo, yapay zekânın sadece metin üretmekle kalmayıp, harici servislerle konuşarak zengin ve görsel deneyimler yaratabileceğinin güçlü bir kanıtıdır.

Bölüm 2: Teknik Derinlemesine İnceleme

A. Temel Teknolojiler

Frontend

React + TypeScript ile geliştirilmiş tek sayfa uygulaması.

Yapay Zekâ

Gerçek zamanlı ses ve metin akışı sağlayan Google Gemini Live API.

Harita

Google Maps Photorealistic 3D Maps, Places API ve Geocoding API.

Durum Yönetimi

Zustand ile global sohbet geçmişi, marker listesi ve ayarların takibi.

B. Mimari Katmanlar

C. Veri Akışı

  1. Kullanıcı, ControlTray üzerinden oturumu başlatır; use-live-api hook'u Gemini Live'a bağlanır.
  2. Mikrofon verisi PCM formatına çevrilip anlık olarak gönderilir; yazılı mesajlar sendRealtimeText ile iletilir.
  3. Gemini'den gelen ses veri paketleri AudioStreamer tarafından çalınır; metin transkriptleri StreamingConsole'da gösterilir.
  4. Model bir araç çağırdığında (ör. mapsGrounding), tool-registry fonksiyonları devreye girer ve Google Maps'ten detayları çeker.
  5. Zustand store güncellenir, MapController marker'ları ve kamerayı yeni verilere göre yeniden çerçeveler.
  6. Sonuç modeli besler ve kullanıcıya doğal bir yanıt olarak geri döner.

Bölüm 3: Geliştirme ve Dağıtım

Başlangıç Adımları

  1. Vite + React + TypeScript şablonuyla projeyi başlatın, @google/genai, @vis.gl/react-google-maps ve zustand paketlerini ekleyin.
  2. Statik UI'ı kurun; ControlTray, StreamingConsole ve Map3D bileşenlerini tasarlayın.
  3. Zustand store'larını (UI, sohbet geçmişi, harita) tanımlayın ve App.tsx içinde dinleyin.
  4. Gemini Live entegrasyonu için GenAILiveClient ve use-live-api hook'unu hazırlayın; önce echo bot ile bağlantıyı doğrulayın.
  5. Tool registry'yi oluşturup mapsGrounding, frameLocations gibi fonksiyonları uygulayın; harita state'ini güncelleyin.

Dağıtım Planı (GitHub + Netlify)

  1. Projeyi GitHub deposuna gönderin ve Netlify'da yeni bir site olarak içeri aktarın.
  2. Netlify build ayarlarında komut olarak npm run build kullanın; bu işlem hem ana siteyi hem travel demosunu paketler.
  3. Environment Variables: Netlify ayarlarında GEMINI_API_KEY ve MAPS_API_KEY değerlerini tanımlayın.
  4. Dağıtım tamamlandığında Netlify, /travel altında Vite çıktısını sunar ve public/projeler/travel sayfası projeyi detaylı biçimde anlatır.
API anahtarlarını tarayıcı tarafında kullanırken alan kısıtlamaları ve kota yönetimini unutmayın; Gemini için proxy veya token aracı eklemek isteyebilirsiniz.