Arricchire le chiamate API del plugin AI?

Ciao a tutti,

Sto lavorando in un ambiente aziendale e stiamo utilizzando Discourse come bacheca per il supporto di una piattaforma cloud.
Vogliamo utilizzare il plugin Discourse AI per diversi casi d’uso e persino disporre di endpoint AI interni compatibili con OpenAI.

Il fatto è che le richieste in uscita verso questi endpoint devono includere un header di autenticazione con un token oauth2 proveniente da un endpoint di autenticazione m2m interno che deve essere recuperato in anticipo.

Ho pensato a diversi approcci, come un proxy locale sull’istanza ec2 che ospita Discourse, che potrebbe arricchire la richiesta con tali informazioni di autenticazione.
Un altro approccio è un API gateway con una lambda autorizzatrice che ottiene il token.

Ciò che non ho ancora capito sono gli strumenti che si possono aggiungere all’interno del plugin Discourse AI stesso.
Potrebbe essere utilizzato per ottenere ciò che ho in mente?

Grazie mille per il vostro supporto e buona giornata!

Saluti,

WS

Questa è difficile.

Generalmente non ci piace aggiungere troppi controlli perché confondono le persone, ma capisco che questo sia difficile da risolvere ora, potremmo aver bisogno di un altro controllo.

Un’opzione sarebbe consentire al compatibile con OpenAI di avere una sezione “header personalizzati”.

Gli strumenti non potrebbero risolvere facilmente questo problema perché creerebbe un flusso di lavoro incredibilmente complesso e non abbiamo la capacità di passare facilmente tutte le informazioni di cui lo strumento ha bisogno.

@Falco pensieri?

Sposto questo su funzionalità, perché è una richiesta di funzionalità.

1 Mi Piace

Ciao @sam,

grazie per la tua risposta e per le tue riflessioni in merito.

Un campo per gli header personalizzati non sarebbe sufficiente, perché il token deve essere recuperato dinamicamente prima di ogni chiamata API.

Forse piuttosto un tipo di pipeline/middleware, dove qualcuno può trasmutare l’intera chiamata in uscita con codice proprio prima che venga inviata?

Molte grazie ragazzi e buona giornata!

Saluti,

WS

Accidenti, questo è davvero piuttosto avanzato.

Suppongo che se gli strumenti personalizzati avessero abbastanza ricchezza, potrebbero realizzare questo… sembra un po’ una macchina di Rube Goldberg, ma immagina.

  1. SE una configurazione con una persona:
    1. Forza le chiamate agli strumenti
    2. Ha uno strumento personalizzato forzato e NON ha parametri
  2. ALLORA non invochiamo alcun LLM e passiamo semplicemente il controllo allo strumento
  3. ALLORA diamo allo strumento abbastanza infrastruttura per inviare i risultati in streaming all’app tramite inversione di controllo in qualche modo

È una quantità di cambiamenti piuttosto sbalorditiva e sarebbe un vero incubo da mantenere.

Suppongo che un’alternativa sia definire un nuovo plugin personalizzato che dipenda da Discourse-AI e definisca il tuo dialetto e endpoint: è certamente il modo più semplice per procedere.

È così tanto più facile risolvere questa specifica esigenza tramite un proxy leggero, come Nginx con scripting LUA, che penso che @Wurzelseppi farà meglio a seguire quella strada.

1 Mi Piace

Ciao ragazzi,

siete fantastici nel discutere seriamente la necessità di un piccolo utente come me. Sono sempre colpito dalla vostra dedizione, e lo dico sul serio (non scherzo :slight_smile: )

Sì, dato che tutto funziona su un’istanza ec2 e ho già deciso di percorrere la strada API Gateway AWS → Lambda → endpoint LLM …

Sarebbe più bello integrarlo in discourse, ma capisco la complessità che ciò comporterebbe, ovviamente …

Grazie mille per il vostro tempo e per il tempo che dedicate ad aiutare tutti gli utenti qui!

Non potrei pensare a un software di bacheca migliore, non solo per la maturità del software, ma anche per le persone che offrono supporto.

Buona settimana, ragazzi … e rimanete come siete!

Saluti,

WS

1 Mi Piace