tool_calling_demoo / README.md
seali's picture
Upload folder using huggingface_hub
b3196ce verified
|
Raw
History Blame Contribute Delete
2.11 kB

A newer version of the Gradio SDK is available: 6.24.0

Upgrade
metadata
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 — ücretsiz, API key gerektirmeyen hava durumu + geocoding API'si.
  • LLM Backend: Groqllama-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

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)