--- title: Tool Calling Demo emoji: 🛠️ colorFrom: blue colorTo: green sdk: gradio sdk_version: 6.20.0 app_file: app.py pinned: false --- # Tool Calling / Function Calling Demo Bu proje, bir LLM'in dış veri kaynaklarıyla (Public API) Tool Calling / Function Calling yoluyla etkileşimini gösterir. ## Bileşenler - **Public API:** [Open-Meteo](https://open-meteo.com/) — ücretsiz, API key gerektirmeyen hava durumu + geocoding API'si. - **LLM Backend:** [Groq](https://console.groq.com/) — `llama-3.3-70b-versatile` modeli, OpenAI uyumlu function calling arayüzü ile. Ücretsiz tier mevcut. - **Arayüz:** Gradio `ChatInterface`. ## Tool Tanımları (JSON Schema) ### `get_weather(city: str)` Open-Meteo Geocoding API ile şehri koordinata çevirir, ardından Open-Meteo Forecast API'den güncel hava durumunu (°C, gökyüzü durumu, rüzgar hızı) çeker. ### `convert_temperature(value: float, to_unit: "C" | "F")` Verilen sıcaklık değerini Celsius ↔ Fahrenheit arasında çevirir. ## Çalışma Akışı Kullanıcı sorusuna göre model önce `get_weather` çağırır (gerekirse birden fazla şehir için paralel/ardışık), sonra gerekiyorsa `convert_temperature` çağırır, en son doğal dilde yanıt üretir. Model her turda hangi aracı hangi parametrelerle çağırdığını ve API'den ne döndüğünü **yanıtın üstünde açıkça gösterir** (`[Tur N] Araç Çağrıları: -> tool(args) <- sonuç`). ## Yerelde çalıştırma ```bash pip install -r requirements.txt export GROQ_API_KEY=your_key_here # https://console.groq.com/keys üzerinden ücretsiz alınır python app.py ``` ## Hugging Face Spaces'e deploy 1. HF üzerinde yeni bir **Gradio Space** oluştur. 2. Bu klasördeki `app.py`, `requirements.txt` ve bu `README.md` dosyalarını yükle. 3. Space **Settings → Repository secrets** kısmına `GROQ_API_KEY` ekle. 4. Space otomatik build olup çalışır. ## Dosyalar - `app.py` — Gradio arayüzü + tool calling agent döngüsü - `requirements.txt` — bağımlılıklar - `README.md` — bu dosya (HF Space açıklaması + metadata)