Salta ai contenuti

Architettura

Kisuno gira in container su una macchina Linux. Questa pagina mostra la struttura a grandi linee. Descrive quale percorso prenda una richiesta e quali decisioni ci stiano dietro, ma non la messa in opera nel dettaglio.

Il percorso di una richiestaDall’alto verso il basso: il browser raggiunge un unico punto di ingresso in cui termina il TLS. Dietro di esso funziona l’applicazione, LibreChat, con l’archivio dei dati per account e conversazioni. Per le risposte del modello l’applicazione si rivolge al fornitore di modelli all’esterno del server.AccessoBrowserIl suo serverPunto di ingressoqui termina il TLSApplicazionechat, agenti, fileArchivio dei datiaccount e conversazioniAll’esternoFornitore di modellilì vengono calcolate le risposte del modello

Due cose sono essenziali. Primo, ogni via dall’esterno passa dal reverse proxy; gli altri servizi non accettano connessioni dalla rete. Secondo, account, conversazioni e file restano sul Suo server, mentre per le risposte dei modelli stesse viene interpellato il fornitore.

Reverse proxy. L’unico ingresso dall’esterno. Termina il TLS, si occupa del certificato e distribuisce le richieste ai servizi dietro di esso.

Applicazione. È LibreChat. Il servizio consegna l’interfaccia, interpella i fornitori di modelli, esegue gli agenti ed elabora i file caricati.

Gestione dei dati. Account, conversazioni, messaggi, agenti e registri risiedono nel database dell’istanza, cui si aggiungono un indice di ricerca sulle proprie chat e i file caricati sullo stesso server. Il database è la fonte della verità, l’indice di ricerca si può ricostruire da lì in qualsiasi momento.

Le aggiunte di Kisuno. Attorno a LibreChat stanno servizi propri per amministrazione, gestione dei diritti e panoramica del consumo, oltre al collegamento ai sistemi di terzi. Sono raggiungibili soltanto all’interno dell’istanza e non stanno in rete.

Fuori dall’istanza. Per le risposte dei modelli viene interpellato il fornitore di inferenza, per la ricerca web i motori di ricerca esterni. Se l’esecuzione di codice viene attivata, gira in un ambiente proprio e separato accanto all’applicazione.

LibreChat non conosce i tenant. La separazione si colloca perciò al di sotto dell’applicazione: un cliente è un’istanza propria, con database proprio, indice di ricerca proprio, file propri, configurazione propria e chiave di inferenza propria. Se poi due istanze condividano una macchina è una pura questione di costi e di rischio.

Condivisi possono essere tutt’al più mezzi d’esercizio senza riferimento al cliente. Separati devono restare in ogni caso la gestione dei dati, la configurazione con tutte le chiavi e l’ambiente dell’esecuzione di codice. Altrimenti né i dati né i costi si possono distinguere pulitamente per cliente.