# Caso d'uso - Prendere dati live da un servizio esterno

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

### Implementazione di una funzione per dati meteo

Seguiamo passo dopo passo la creazione di 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;
   * Naviga alla sezione "Funzioni";
   * Seleziona la scheda "Funzioni avanzate";
   * Premi su "Nuova funzione";
2. **Compila i campi della funzione**:
   * **Nome**: inserisci "info\_meteo";
   * **Descrizione**: "Questa funzione recupera dati meteorologici in tempo reale per una città specifica. Fornisce informazioni su temperatura, condizioni generali e probabilità di pioggia. Utilizzala quando un utente chiede informazioni meteo attuali per una località."
   * **Webhook**: inserisci il link del tuo servizio meteo (es. "<https://api.openweathermap.org/data/2.5/weather>");
   * **Metodo HTTP**: seleziona GET;
   * **Template query string**: luogo={citta}\&units=metric\&lang=it\&appid=tua\_chiave\_OpenWeatherMap
   * **Crea un nuovo parametro e imposta**:
     * **Nome**: "citta" (come la parola tra le parentesi graffe);
     * **Descrizione**: "Nome della città di cui dovrai recuperare i dati meteo";
     * **Tipo**: seleziona "string";
     * Imposta il parametro come **obbligatorio**.

{% hint style="danger" %} <mark style="color:red;">Ricorda che le chiavi API andrebbero inviate all'interno dell'header HTTP, non nella query string. In questo caso, però, il nostro servizio ci richiede di inviare la chiave nel campo "Template query string".</mark>
{% endhint %}

La query string permette di definire parametri dinamici (cioè, variabili) come {citta}, che verrà sostituito con il valore effettivo durante la chiamata:

3. Testa la funzione:
   1. Usa la sezione "Test" per verificare il funzionamento;
   2. Inserisci una città di esempio (es. "Roma");
   3. Controlla che la risposta contenga i dati meteo corretti.

#### Integrazione nelle istruzioni dell'Agente

Ora che la funzione è pronta, integriamola nelle istruzioni dell'Agente:

1. Accedi alle <img src="/files/amu3T8RmvmSvw48RQTc6" alt="" data-size="line"> **Impostazioni** del tuo Agente;
2. Vai alla sezione <img src="/files/a6OmJTuyXF3NViXF0fJU" alt="" data-size="line"> IA > Istruzioni;
3. Aggiungi queste istruzioni:

```
Quando un utente chiede informazioni sul meteo per una specifica città:
1. Usa la funzione info_meteo con il nome della città come parametro;
2. Interpreta i dati ricevuti e fornisci una risposta chiara e concisa;
3. Includi temperatura, condizioni generali e probabilità di pioggia.
```

### Esempio di utilizzo

Ecco come potrebbe svolgersi una conversazione che utilizza questa funzione:

> **Utente**: Che tempo fa oggi a Milano?
>
> \[L'Agente utilizza la funzione info\_meteo con il parametro citta="Milano"]
>
> **Agente**: Certamente! Lasciami controllare le ultime informazioni meteorologiche per Milano.
>
> Basandomi sui dati appena ricevuti, posso dirti che oggi a Milano la temperatura è di 22°C con cielo parzialmente nuvoloso. C'è una probabilità del 20% di pioggia nel pomeriggio. L'umidità è al 65% e la velocità del vento è di 10 km/h da sud-ovest.
>
> Desideri conoscere le previsioni per i prossimi giorni o hai altre domande sul meteo a Milano?

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.aisuru.com/avanzate/integrazioni/funzioni/funzioni-avanzate/funzioni-avanzate-best-practice-e-casi-duso/dati-live-da-web.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
