berkbirkan/weather-tool-calling-agent
Weather Tool Calling Agent
Bu Space, bir dil modelinin kullanıcı sorusuna göre araç seçmesini, açık bir API'den veri almasını ve araç sonuçlarından nihai yanıt üretmesini gösterir.
Akış
- Model şehir başına
get_weatherçağırır. - Fonksiyon, Open-Meteo Geocoding ve Forecast API'lerinden güncel veriyi alır.
- Kullanıcı Fahrenheit isterse model her sıcaklık için
convert_temperatureçağırır. - Arayüz model turlarını, argümanları ve araç çıktılarını açıkça gösterir.
- Model, araç sonuçlarına dayanarak Türkçe nihai yanıtı üretir.
Tool JSON şemaları
Uygulamadaki TOOLS sabiti iki function definition içerir:
get_weather(city: string)convert_temperature(value: number, from_unit: "C"|"F", to_unit: "C"|"F")
Her ikisi de strict JSON Schema kullanır.
Teknolojiler
- Gradio
- OpenAI Responses API
- OpenRouter Chat Completions API
- Open-Meteo (ücretsiz, API anahtarı gerektirmez)
httpx
Hugging Face Spaces kurulumu
- Yeni bir Gradio Space açın.
- Bu klasördeki
app.py,requirements.txtveREADME.mddosyalarını Space'e yükleyin. - Space → Settings → Variables and secrets → New secret bölümünde:
- Ad:
OPENAI_API_KEY - Değer: OpenAI API anahtarınız
- OpenRouter'ı Space anahtarıyla sunmak isterseniz
OPENROUTER_API_KEYSecret'ını ekleyin. - İsteğe bağlı variable:
OPENAI_MODEL=gpt-5.6-sol - Space yeniden başladıktan sonra örnek sorguyla test edin.
API anahtarları Secret olarak tanımlanmazsa kullanıcı arayüzde kendi OpenAI veya OpenRouter anahtarını geçici olarak girebilir. Anahtar loglanmaz veya diske yazılmaz.
OpenRouter model listesi canlı katalogdan alınır ve yalnızca tools desteğini ilan eden modeller gösterilir.
Yerelde çalıştırma
pip install -r requirements.txt
export OPENAI_API_KEY="..."
python app.pyÖrnek
Ankara mı daha sıcak Londra mı, ve bu değerler Fahrenheit olarak kaç eder?
İz panelinde önce iki get_weather, ardından gerekli convert_temperature çağrıları görünür; son panelde karşılaştırmalı yanıt yer alır.
Veri ve güvenilirlik notu
Hava durumu Open-Meteo'dan çalışma anında alınır. Şehir bulunamazsa veya dış servis erişilemezse uygulama veri uydurmak yerine hata bilgisini modele geri verir.
