tool_calling_demoo / README.md
seali's picture
Upload folder using huggingface_hub
b3196ce verified
|
Raw
History Blame Contribute Delete
2.11 kB
---
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)