Spaces:
Running on Zero
Running on Zero
| 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) | |