AI bot - Strumenti personalizzati

:bookmark: Questa guida spiega come creare, configurare e integrare strumenti AI personalizzati all’interno del plugin Discourse AI, consentendo agli amministratori di estendere le capacità del bot con funzioni JavaScript definite dall’utente.

:person_raising_hand: Livello utente richiesto: Amministratore

Gli strumenti sono funzionalità programmabili che possono essere utilizzate dal bot AI per eseguire attività specifiche o recuperare informazioni oltre alle semplici risposte basate su testo. Questi strumenti sono script o integrazioni che consentono al bot di interagire con API esterne, manipolare dati o eseguire funzioni aggiuntive per estendere le proprie capacità.

Riepilogo

Questa documentazione copre:

  • Creazione di un nuovo strumento AI personalizzato
  • Configurazione dei parametri e degli script degli strumenti
  • API disponibili per gli script degli strumenti
  • Integrazione di strumenti personalizzati con le persone AI
  • Test e risoluzione dei problemi degli strumenti personalizzati

Creazione di un nuovo strumento AI personalizzato

Per creare un nuovo strumento AI:

  1. Navigare in Pannello di amministrazione > Plugin > Discourse AI > Strumenti
  2. Fare clic su “Nuovo strumento” (è possibile utilizzare preset esistenti per conoscere le opzioni)
  3. Compilare i seguenti campi:
    • Nome: Il nome dello strumento così come presentato all’LLM
    • Descrizione: La descrizione dello strumento così come presentato all’LLM
    • Riepilogo: Riepilogo di ciò che lo strumento fa per assistere gli utenti (visualizzato nei dettagli)
    • Parametri: Definire gli input di cui il tuo strumento ha bisogno così come presentati all’LLM
    • Script: Il codice JavaScript che alimenta il tuo strumento
  4. Fare clic su “Salva”

Configurazione degli script degli strumenti

API disponibili

I tuoi script degli strumenti hanno accesso alle seguenti API:

  1. Richieste HTTP:

    http.get(url, options)
    http.post(url, options)
    

    Utilizzare queste per interagire con servizi esterni. È possibile utilizzare options per specificare gli header HTTP:

    http.get(url, { headers: { Auth: "some value" } })
    http.post(url, { headers: { Auth: "some value", body: "some body" } })
    http.patch(url, { headers: { Auth: "some value", body: "some body" } })
    http.delete(url, { headers: ...})
    http.put(url, { headers: ... , body: ...})
    
  2. Integrazione LLM (Language Model):

    llm.truncate(text, length)
    

    Ciò consente di manipolare il testo entro i limiti di token del modello AI.

  3. Integrazione di caricamento personalizzato (RAG)

    index.search(query, { filenames: options, limit: max_fragments_optional })
    
  4. Supporto per la creazione di caricamenti

    upload.create(filename, base_64_content)
    
  5. Controllo della catena di esecuzione

    chain.setCustomRaw(raw) - imposta il corpo della richiesta POST nella catena.
    

Funzioni richieste

Il tuo script deve implementare:

  • invoke(params): La funzione principale che viene eseguita quando lo strumento viene chiamato
  • details(): (Opzionale) Fornisce informazioni aggiuntive sull’esecuzione dello strumento

Esempio di script:

function invoke(params) {
  let result = http.get("https://api.example.com/data?query=" + params.query);
  return JSON.parse(result.body);
}

function details() {
  return "Fetched data from Example API";
}

Limitazioni e sicurezza

  • Timeout di esecuzione: gli strumenti hanno un timeout predefinito di 2 secondi
  • Richieste HTTP: Massimo 20 richieste per esecuzione dello strumento
  • Ambiente Sandboxed: Nessun accesso al file system del server o alle librerie Ruby

Test del tuo strumento

Dovresti testare qualsiasi strumento che costruisci per assicurarti che i risultati forniti all’LLM corrispondano alle tue aspettative.

Integrazione di strumenti con persone AI

Per aggiungere il tuo strumento personalizzato a una Persona AI:

  1. Vai su Pannello di amministrazione > Plugin > Discourse AI > Persone
  2. Modifica una persona esistente o creane una nuova
  3. Nella sezione “Strumenti”, vedrai i tuoi strumenti personalizzati elencati accanto agli strumenti integrati
  4. Seleziona il tuo strumento personalizzato per aggiungerlo alla persona

Strumenti personalizzati in azione

Una volta fornito lo strumento personalizzato al tuo LLM, questo può utilizzarlo per migliorare la conversazione.

Risoluzione dei problemi

Se il tuo strumento non funziona come previsto:

  1. Utilizza l’interfaccia di test per assicurarti che si comporti come previsto per i tuoi input.
  2. Assicurati che il tuo gruppo sia in ai_bot_debugging_allowed_groups. I membri di questo gruppo hanno pieno accesso alle trascrizioni del bot; puoi visualizzare i log dell’AI lì.
  3. Se sta succedendo qualcosa di inaspettato, visita https://NOME_SITO/logs per verificare la presenza di errori.

Risorse aggiuntive

14 Mi Piace

Mi sto avvicinando alla creazione di strumenti per le persone AI in Discourse, in parte per potermi concentrare davvero su questo; questo sembra molto utile dato quanti API utili e pubblici ci sono!

Ad esempio, sto ottenendo risultati come:

Comprensione del processo decisionale attraverso le strategie del poker AI

maiki:

Crea una scheda informativa per Breath of the Wild.

gpt-4o:

Ecco una scheda informativa per “The Legend of Zelda: Breath of the Wild”:


Titolo: The Legend of Zelda: Breath of the Wild
Sviluppatore: Nintendo
Editore: Nintendo
Data di uscita: 3 marzo 2017
Piattaforme: Nintendo Switch, Wii U
Genere: Avventura d’azione
Modalità: Giocatore singolo

Sinossi:
Ambientato in un vasto mondo aperto, i giocatori controllano Link, che si risveglia da un profondo sonno per sconfiggere Calamity Ganon e salvare il regno di Hyrule. Il gioco è elogiato per il suo ambiente immersivo, che consente ai giocatori di esplorare e interagire liberamente con il mondo e i suoi sistemi.

Premi:
Il gioco ha vinto numerosi premi, tra cui diversi riconoscimenti come Gioco dell’Anno, per il suo design innovativo, il mondo espansivo e il gameplay incantevole.

Maggiori informazioni: Wikidata Entry


“Breath of the Wild” è rinomato per aver ridefinito i giochi open-world e per aver offerto un’esperienza accattivante che incoraggia l’esplorazione e la scoperta.

maiki:

Lo stesso per Animal Crossing: New Horizons.

gpt-4o:

Ecco una scheda informativa per “Animal Crossing: New Horizons”:


Titolo: Animal Crossing: New Horizons
Sviluppatore: Nintendo
Editore: Nintendo
Data di uscita: 20 marzo 2020
Piattaforma: Nintendo Switch
Genere: Simulazione sociale
Modalità: Giocatore singolo, Multigiocatore

Sinossi:
In questo affascinante gioco di simulazione sociale, i giocatori assumono il ruolo di un personaggio personalizzabile che si trasferisce su un’isola deserta dopo aver acquistato un pacchetto da Tom Nook. Il gioco consente l’esplorazione in tempo reale, la raccolta di risorse, la creazione e la personalizzazione, promuovendo un’esperienza di gioco comunitaria e rilassante.

Premi:
Il gioco è stato acclamato per la sua libertà creativa e la tempistica di uscita, ricevendo riconoscimenti come Gioco dell’Anno e per i suoi contributi ai giochi sociali durante la pandemia globale.

Maggiori informazioni: Wikidata Entry


“Animal Crossing: New Horizons” è diventato un fenomeno culturale, celebrato per le sue coinvolgenti funzionalità sociali e il gameplay antistress durante i periodi difficili.

maiki:

A long way from Chicago

gpt-4o:

Ecco una scheda informativa per il libro “A Long Way from Chicago”:


Titolo: A Long Way from Chicago
Autore: Richard Peck
Anno di pubblicazione: 1998
Genere: Narrativa storica, Young Adult
ISBN: 978-0141303529

Sinossi:
Questo romanzo, vincitore del Newbery Honor, è una raccolta di racconti che narrano i viaggi estivi annuali di Joey e sua sorella Mary Alice da Chicago a una città rurale dell’Illinois per visitare la loro esuberante nonna Dowdel alla fine degli anni '20 e '30. Ogni capitolo presenta un episodio divertente e toccante che impartisce lezioni di vita sullo sfondo della Grande Depressione.

Premi:
Il libro è stato insignito del Newbery Honor nel 1999 ed è celebrato per il suo umorismo, la profondità e la rappresentazione della vita rurale americana all’inizio del XX secolo.

Maggiori informazioni: Wikidata Entry


Questo libro è apprezzato per la sua narrazione nostalgica e commovente, che cattura l’essenza dei legami familiari e dei tempi più semplici.

maiki:

Thinking in Bets

gpt-4o:

In precedenza ho trovato la voce Wikidata per “Thinking in Bets”, ma al momento non sono in grado di recuperare ulteriori dettagli specifici direttamente da Wikidata. Tuttavia, ecco una breve scheda basata sulle informazioni disponibili:


Titolo: Thinking in Bets: Making Smarter Decisions When You Don’t Have All the Facts
Autore: Annie Duke
Anno di pubblicazione: 2018
Genere: Saggistica, Processo decisionale, Psicologia
ISBN: 978-0735216358

Sinossi:
Il libro sfrutta le intuizioni del poker per aiutare i lettori a comprendere il processo decisionale in condizioni di incertezza. Annie Duke, unendo le sue esperienze di giocatrice di poker professionista e psicologa cognitiva, offre un quadro per prendere decisioni più intelligenti, valutare i risultati e adottare una mentalità probabilistica.

Maggiori informazioni: Wikidata Entry


Per approfondimenti, potresti considerare di consultare risorse o database aggiuntivi relativi alle pubblicazioni di libri.


Va bene, questo va bene, ma ho notato questa descrizione…

…e mi chiedo: dovrei costruire i miei prompt facendo riferimento diretto a quegli strumenti, per un uso efficiente?

Il mio approccio generale alla scrittura dei prompt è quello di affinare nel tempo e poi concentrarmi su uno schema di comportamento che desidero che gli strumenti AI adottino. Tuttavia, se potessi aggiungere istruzioni specifiche su, ad esempio, quando cercare un’entità Wikidata e quando elencare tutte le affermazioni di una particolare entità (due API diverse), allora sento che potrei affinare l’intero flusso di lavoro come intendo… :star_struck:

3 Mi Piace

Spiegare chiaramente lo strumento e fornire esempi nel prompt di sistema è effettivamente vantaggioso.

2 Mi Piace

È possibile inserire la chiave API e il progetto OpenAI dalle impostazioni dell’amministratore in uno strumento personalizzato?

1 Mi Piace

Puoi effettuare chiamate REST da uno strumento personalizzato e specificare tutte le intestazioni

2 Mi Piace

mi sono appena reso conto che lol… scusa per il lapsus

1 Mi Piace

Ho caricato alcuni documenti su una persona, ha generato gli embedding e ora può eseguire ricerche semantiche su di essi. Ma in alcuni casi, la ricerca semantica non è l’ideale, quindi vorrei migliorarla e avere una ricerca ibrida, ad esempio mantenere ciò che c’è già e aggiungere la ricerca per parole chiave. Al momento, se volessi farlo, dovrei scrivere uno strumento personalizzato, giusto?
So che potrei semplicemente pubblicare i documenti come argomenti e poi funzionerebbe subito con la ricerca nativa di Discourse, ma al momento non è un’opzione.