> For the complete documentation index, see [llms.txt](https://docs.aisuru.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aisuru.com/avanzate/integrazioni/funzioni/funzioni-avanzate/funzioni-avanzate-best-practice-e-casi-duso/dati-live-da-web.md).

# Caso d'uso - Recupero di dati in tempo reale da un servizio esterno

In questa guida, vedremo un altro esempio concreto di funzione: dare al tuo Agente la capacità di recuperare dati meteorologici in tempo reale.

### Implementare una funzione per i dati meteorologici

Ora puoi creare passo dopo passo una funzione che recupera dati meteorologici da un servizio esterno.

#### Configurazione della funzione

1. **Crea una nuova funzione**:
   * Apri il pannello di gestione del tuo Agente;
   * Vai alla sezione "Funzioni";
   * Seleziona la scheda "Funzioni avanzate";
   * Premi "Nuova funzione".
2. **Compila i campi della funzione**:
   * **Nome**: inserisci "weather\_info";
   * **Descrizione**: "Questa funzione recupera dati meteorologici in tempo reale per una città specifica. Fornisce informazioni su temperatura, condizioni generali e probabilità di pioggia. Usala quando un utente chiede informazioni sul meteo attuale di una località.";
   * **Webhook**: inserisci il link del tuo servizio meteorologico (ad esempio, "<https://api.openweathermap.org/data/2.5/weather>");
   * **Metodo HTTP**: seleziona GET;
   * **Modello di query string**: location={city}\&units=metric\&lang=en\&appid=your\_OpenWeatherMap\_key.
   * **Crea un nuovo parametro e imposta**:
     * **Nome**: "city" (corrispondente alla parola tra parentesi graffe);
     * **Descrizione**: "Nome della città per la quale recuperare i dati meteorologici";
     * **Tipo**: seleziona "string";
     * Imposta il parametro come **obbligatorio.**

{% hint style="danger" %} <mark style="color:red;">Ricorda che le chiavi API devono essere inviate nell'header HTTP, non nella query string. In questo caso, tuttavia, il nostro servizio richiede di inviare la chiave nel campo "Modello di query string".</mark>
{% endhint %}

La query string ti consente di definire parametri dinamici (ovvero variabili) come {city}, che verranno sostituiti con il valore effettivo quando viene chiamata la funzione:

3. Testa la funzione:
   1. Usa la sezione "Test" per verificare che funzioni;
   2. Inserisci una città di esempio (ad esempio, "London");
   3. Controlla che la risposta contenga i dati meteorologici corretti.

#### Integrazione nelle istruzioni dell'Agente

Ora che la funzione è pronta, aggiungiamola alle istruzioni dell'Agente:

1. Vai alle **Impostazioni del tuo Agente;**
2. Vai a IA > Istruzioni;
3. Aggiungi queste istruzioni.

```
When a user asks about the weather for a specific city:
1. Use the weather_info function with the city name as a parameter
2. Interpret the received data and provide a clear, concise response
3. Include temperature, general conditions, and chance of rain
```

### Esempio di utilizzo

Ecco come potrebbe svolgersi una conversazione che utilizza questa funzione:

> **Utente**: Che tempo fa oggi a Londra?
>
> \[L'Agente utilizza la funzione weather\_info con il parametro city="London"]
>
> **Agente**: Certamente! Lasciami controllare le ultime informazioni meteorologiche per Londra.
>
> In base ai dati che ho appena ricevuto, posso dirti che oggi a Londra la temperatura è di 14°C con cielo parzialmente nuvoloso. C'è una probabilità del 20% di pioggia nel pomeriggio. L'umidità è al 70% e la velocità del vento è di 15 km/h da sud-ovest.
>
> Vuoi conoscere le previsioni per i prossimi giorni o hai altre domande sul meteo a Londra?

Con questa implementazione, **il tuo Agente diventa una fonte affidabile di informazioni in tempo reale**. Questa funzione per i dati meteo è solo l'inizio: puoi applicare lo stesso approccio per integrare altri tipi di dati esterni, espandendo ulteriormente le capacità del tuo Agente!
