Il progetto:
La classe con tutto quel che serve per gestire l’assistente OpenAI

Dal progetto basta chiamare Crea thread e AddMessage le altre funzioni vengono eseguite automaticamente.
Lo sto collaudando.
La classe con tutto quel che serve per gestire l’assistente OpenAI

Dal progetto basta chiamare Crea thread e AddMessage le altre funzioni vengono eseguite automaticamente.
Lo sto collaudando.
molto interessante, tale componente
@poidomani47 sei veramente infaticabile e direi che la cosa ti appassiona molto, facci sapere gli esiti del collaudo che stai svolgendo.
L’A.I. è la più importante novità informatica dopo l’ENIAC. Fino ad oggi non c’era stato nulla di nuovo sotto il sole.
Devo completare il collaudo, poi devo provocare appositamente tutti i possibili errori e migliorare il log.
Il collaudo procede bene,
Non ho ancora capito come fargli leggere sul web:
Ecco ho trovato come chiedere all’assistente di utilizzare il browser (che meraviglia poter parlare con l’I.A. ed essere capiti, con una documentazione non posso dialogare, questo è un suggerimento per Progamma):
Ho chiesto: "ho un caso in cui devo usare contemporaneamente una funzione “ModificaTemperatura(“zona giorno”, “21°”) e mostrami il meteo a Milano”
browser e una funzione personalizzataQuando crei l’assistente, oltre ad abilitare il browser, definisci anche la tua funzione personalizzata (ModificaTemperatura). Ecco un esempio di richiesta curl per configurarlo:
bash
Copia codice
curl "https://api.openai.com/v1/assistants" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "OpenAI-Beta: assistants=v2" \
-d '{
"instructions": "You are a smart home assistant. You can adjust home temperature and check the weather.",
"name": "SmartHome Assistant",
"tools": [
{"type": "browser"}
],
"functions": [
{
"name": "ModificaTemperatura",
"description": "Adjusts the temperature in a specified area of the home.",
"parameters": {
"type": "object",
"properties": {
"area": {"type": "string", "description": "The area of the home to adjust, e.g., 'zona giorno'"},
"temperature": {"type": "string", "description": "Desired temperature, e.g., '21°'"}
},
"required": ["area", "temperature"]
}
}
],
"model": "gpt-4"
}'
In questo modo, l’assistente potrà utilizzare sia il tool di browsing che la tua funzione ModificaTemperatura.
Dopo aver creato l’assistente e ottenuto l’assistant_id, puoi fare una richiesta all’assistente per usare entrambi i tool. Ecco come potrebbe apparire la richiesta:
bash
Copia codice
curl "https://api.openai.com/v1/assistants/{assistant_id}/messages" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"messages": [
{"role": "user", "content": "Modifica la temperatura della zona giorno a 21° e mostrami il meteo a Milano"}
],
"functions": [
{"name": "ModificaTemperatura", "parameters": {"area": "zona giorno", "temperature": "21°"}},
{"name": "browser"}
],
"function_call": "auto"
}'
"functions": Qui definisci le due funzioni che vuoi utilizzare. La ModificaTemperatura ha già i parametri richiesti impostati. Il browser invece sarà utilizzato automaticamente per rispondere alla richiesta di informazioni meteo."function_call": "auto": Questo consente al modello di decidere quale funzione usare per ogni parte della richiesta, attivando il browsing per il meteo e ModificaTemperatura per l’aggiornamento della temperatura.Con questa configurazione, l’assistente dovrebbe:
ModificaTemperatura per impostare la temperatura.In questo modo ottieni entrambe le azioni in un’unica richiesta!
NOTA: chatGPT mi dice anche che al momento funziona solo con “model”: “gpt-4” e successivi
Mi sono lanciato in un salto mortale carpiato con doppio avvitamento ![]()
Capite che è possibile fargli eseguire del codice che non dobbiamo più scrivere e che non dobbiamo neanche prevedere? Ci pensa il cliente a chiedere quel che gli serve: “cerca tutti gli appartamenti che hanno una temperatura inferiore a 18° e mettili a 18°”.
Io trovo che sia un ottimo argomento di vendita.
Se qualcuno, con più fantasia di me, ha da suggerirmi altre prove…!!!
ecco fatto, invece di sottomettere le risposte della funzione singolarmente le ho messe in un array JSON
Ovviamente se gli appartamenti fossero migliaia questa soluzione sarebbe inadeguata.
Ci vorrebbe una query, ma io ho fornito solo due funzioni ElencaAppartamenti e ModificaTemperatura e quindi più di questo l’assistente non può fare.
E’ molto importante quindi fornire un set completo di funzioni.