Aggiungi {username} come parametro del template nei prompt di sistema della persona AI

È la mia prima volta che contribuisco. Mi scuso se ho sbagliato qualcosa e sono profondamente grato per la pazienza e per qualsiasi consiglio su un modo migliore per fare questo.

Per quello che vale, sono un cliente Pro.

Avevo bisogno di un modo robusto per sapere quale utente sta interagendo con l’agente AI. Questa è la soluzione a cui sono arrivato. Grazie mille per il tempo dedicato a valutarla e per qualsiasi consiglio.

Aggiungi {username} come parametro del template nei prompt di sistema della persona AI

Ho inviato la PR #41446 ( FEATURE: Add {username} template param to BotContext - Pull Request #41446 - discourse/discourse - GitHub ) aggiungendo {username} a BotContext::TEMPLATE_PARAMS.

Il caso d’uso: una persona che funge da ponte verso un servizio esterno ha bisogno che l’identità dell’utente corrente venga risolta lato server, non dedotta dal modello linguistico di grandi dimensioni (LLM) dal testo del post. Al momento non esiste un modo pulito per farlo. {participants} si popola solo per i messaggi privati, e chiedere all’LLM di analizzare il nome utente dai metadati dell’argomento è fragile e presenta una superficie di iniezione.

La modifica è minima (un nuovo metodo, una stringa aggiunta alla lista bianca) e additiva. I prompt esistenti non sono interessati a meno che non contenessero già il letterale {username}.

Grazie ancora!

6 Mi Piace

Ah, ho anche completato il CLA. Credo di aver coperto tutti gli aspetti. Grazie ancora.

2 Mi Piace

Ti scrivo solo per un rapido aggiornamento. Se c’è qualcosa che posso fare per aiutarti, fammelo sapere. Grazie :purple_heart:

1 Mi Piace

Grazie per la PR!

L’ho appena fusa.

6 Mi Piace

Incredibile! Grazie mille :purple_heart:

3 Mi Piace

Ne ho discusso anche con @falco, ma vorrei avvertire che si tratta di uno strumento molto tagliente.

In particolare, includiamo già il nome utente nel messaggio “User”:

Questo è visibile nei log dell’API AI.

Il rischio legato all’inserimento del nome nel prompt di sistema è che, nei casi di interazione multi-utente in una catena, si possa causare un “thrashing” del prompt di sistema, che provoca l’invalidazione della cache. Questo non è ideale e può portare a prestazioni scadenti.

Ora… una cosa che ho notato nei nostri template vllm è che stiamo scartando il nome, il che spiega perché i modelli ospitati da CDCK non dispongono di questa funzionalità. Sto lavorando a una patch per risolvere il problema.

3 Mi Piace