Discourse Chatbot 🤖

@merefield Grazie!

Come diavolo hai fatto a fare il debug così velocemente?

Rimoverò Zendesk… semplice :slight_smile:

1 Mi Piace

Esperienza amara :sweat_smile:

3 Mi Piace

Ciao a tutti,

Ho creato un account con OpenAI ora. Dovrei creare un “Assistente”? Mi stavo solo chiedendo se ci sono dei passaggi da seguire per integrare l’IA con il plugin?

Saluti,

No, ti serve solo un token. Potrebbe essere necessario accreditare il tuo account con OpenAI per accedere ai modelli più avanzati e a limiti di frequenza più elevati.

Tutte le cose relative all’API sono gestite dal plugin.

(a proposito, curiosità - Chatbot esplicitamente non supporta l’API Assistants perché implementa il proprio sistema personalizzato di conversazione e “pensiero interiore” utilizzando solo l’API Chat Completions e l’API Embeddings. Questo è ottimo perché l’API Assistants ha la reputazione di essere prodiga di token e di costarti molti soldi - Chatbot è costruito per essere frugale!)

Fa molto più di quanto pensassi.

Potresti spiegarmi cos’è un token nel mondo di ChatGPT? Al momento pago per ChatGPT premium, sono 20 USD/mese. Quello che miravo era permettere ai nostri utenti Discourse di accedere all’IA che sto addestrando, su chatgpt.com.

Spero che questo abbia senso e che il caso d’uso sia chiaro!

È come il denaro. Puoi pensare ai token come parole o parti di parole. Quando chiedi qualcosa, vale un importo X di token. Quando OpenAI elabora la tua domanda, utilizza più token. E infine, quando la tua risposta viene creata, ciò costa una quantità di token.

A seconda del modello utilizzato e della conversazione, devi pagare per l’utilizzo di questi token, a volte di più e a volte di meno.

1 Mi Piace

La capacità di utilizzare o1 è cambiata molto nel mio utilizzo dell’IA (e grazie… non a Dio, ma alle capacità di codifica di Robert posso limitarne l’uso solo a me). Ma la serie o1 non utilizza un prompt di sistema, quindi devo aggiungere tali indicazioni, come mostrare la matematica, ecc., nel mio prompt.

Sarebbe più facile se avessimo un testo standard da aggiungere automaticamente dopo il prompt effettivo, ovvero un post. Discourse ha, in un certo senso, quella capacità, ma o non riesco a usarla o la sto usando male. Dovrebbe apparire in ogni categoria e PM quando il Chatbot viene menzionato o fa parte di un PM. E solo quando viene utilizzato o1 o o1-mini :woozy_face:

La serie o1 non è ancora pronta, quindi potrebbe cambiare in qualche modo il modo in cui può utilizzare gli strumenti, ecc. Quindi, in questo senso, non sto chiedendo una nuova funzionalità, ma forse più una discussione sulle opzioni. E la serie o1 non sarà mai una soluzione di massa, è troppo specializzata (e costosa), quindi la richiesta in cui un utente deve solo ricordarsi di aggiungere quelle regole extra potrebbe essere giustificata.

Fuori tema, ma i modelli GPT hanno imparato la matematica quando è stato pubblicato o1.

1 Mi Piace

Non possiamo concentrarci troppo sulla personalizzazione per compensare le incoerenze di OpenAI.

Sospetto fortemente che strumenti e forse anche funzionalità di prompt di sistema arriveranno quando o1 uscirà dall’anteprima.

Non sono convinto che Chatbot sia il posto giusto per implementare un sistema di “snippet”, anche se ricordo che uno del team lo stava creando, lascia che lo trovi e aggiorni il post…

Ecco:\n\nInsertable, centrally maintained text/markdown snippets - #2 by Johani

4 Mi Piace

Grazie @Jagster per le informazioni molto chiare. Penso che intendessi qualcosa di diverso, forse? Sto cercando di integrare questo plugin con OpenAI usando questo,

. Sto solo cercando di ottenere alcune informazioni di base su come collegare le cose.

2 Mi Piace

Quella è solo una chiave API che genererai per ottenere l’accesso. Nient’altro, la tua password, per così dire.

3 Mi Piace

Ora capisco la confusione.

Sì, c’è un token API (o chiave, che devi ottenere da OpenAI) e ci sono token di testo che rappresentano parti di parole. Questi ultimi vengono elaborati dall’LLM. Il primo serve per l’autenticazione da parte dell’API.

Ecco una guida piuttosto valida alla terminologia da The Verge:

5 Mi Piace

Sto eseguendo Llama localmente e sono molto vicino a far funzionare tutto su un’istanza Discourse locale. La chatbot sta chattando :sunglasses: ma sto avendo difficoltà con l’embedding. Ho il mio utente di riferimento al Livello di Fiducia 1. Il rake task rake chatbot:refresh_embeddings[1] sta fallendo con un problema di autenticazione.

Faraday::UnauthorizedError: the server responded with status 401 (Faraday::UnauthorizedError)

Nel campo del token OpenAI della chatbot, ho incollato l’URL che Llama mi ha fornito

Avresti qualche suggerimento su come dovrei autenticarmi correttamente?

4 Mi Piace

Ottimo che ci hai provato!

Sono contento che stia chattando :smile:
Non so se sia possibile utilizzare il chatbot con gli embedding localmente.
Accetterei una buona PR per aggiungere il supporto.
Ho trovato questo:

Quindi potrebbe essere possibile con il modello giusto e il codice e le impostazioni aggiuntive pertinenti nel chatbot. Probabilmente avresti bisogno di un’impostazione personalizzata per il modello di embedding che non esiste ancora.

Esiste già questo:
chatbot open ai embeddings model custom url

che è stato implementato principalmente per supportare Azure, ma può essere riutilizzato in modo simile a come le Chat Completions possono puntare al servizio ollama locale.

Apprezzo che ciò limiti attualmente l’utilità del bot a livello locale.

Questo è il token inviato all’endpoint. È semplicemente un campo di testo. Dubito molto che un URL qui funzionerà. Ci sono impostazioni personalizzate per l’URL dell’endpoint delle chat completion più in basso:

ad esempio chatbot open ai model custom url high trust

Se fai un fork e aggiungi le modifiche pertinenti in linea con ciò che esiste già, sfrutti ciò che è già disponibile, ma aggiungi il minimo necessario per ottenere il supporto per gli embedding locali con ollama, mantenendo intatto il comportamento esistente con Open AI e Azure, esaminerei sicuramente una PR con l’obiettivo di unirla.

2 Mi Piace

Prossimamente
Altre funzionalità arriveranno per supportare flussi di lavoro che coinvolgono embedding:

Compatibilità con l’API OpenAI: supporto per l’endpoint /v1/embeddings compatibile con OpenAI

Dato che prossimamente è solitamente molto presto in questo settore in rapida evoluzione, forse vale la pena aspettare per risolvere il mio caso d’uso?

La nostra istanza è una fonte di informazioni che risale a 20 anni fa, ma la dispersione delle informazioni è anche una grande preoccupazione, da cui il desiderio di test locali.

1 Mi Piace

Penso di aver trovato una PR di Ollama che sembra risolvere la compatibilità degli endpoint API. Devo capirci meglio, ma sono sulla strada giusta?

1 Mi Piace

attualmente non c’è un’impostazione per il modello di embedding personalizzato, quindi è un blocco.

quando esegui localmente, potresti provare codificando il modello in quello che hai scaricato per ollama.

pensandoci meglio, l’altro problema che dovrai affrontare è che la definizione della tabella degli embedding ha dimensioni impostate sullo standard del modello piccolo di open AI che è ENORME… forse puoi pensare a come potresti superare questo problema…

1 Mi Piace

Chatbot 1.2. introduce la raccolta dei campi utente basata sull’intelligenza artificiale come funzionalità sperimentale.

Se un utente ha alcuni campi utente opzionali attualmente vuoti, l’attivazione di questa impostazione farà sì che il bot inizi a chiedere all’utente le informazioni. Proseguirà attraverso i campi utente in sospeso fino al loro completamento e quindi tornerà al comportamento normale.

image

(scusate per la lentezza della risposta, questo è stato registrato in dev)

Nota: questa funzionalità supporta solo:

  • Testo
  • Menu a discesa
  • Conferme

La selezione multipla non è ancora supportata.

I campi devono essere opzionali.

L’ordine dei campi utente determina la priorità.

6 Mi Piace

Rilasciato Chatbot 1.3 :tada:

  • NOVITÀ: aggiunta opzione per gestire le quote per token
    • la nuova impostazione chatbot_quota_basis consente di abilitarla, altrimenti rimarrà per numero di query
    • l’unica differenza di default è che la quota conta alla rovescia dalla quota massima iniziale (che è ancora basata sulle stesse impostazioni del livello di fiducia).
  • NOVITÀ: inclusione del costo delle chiamate API come DALL-E nel consumo dell’utente
    • solo base token
    • varie nuove impostazioni da regolare per influenzare il costo in token delle funzionalità API
  • NOVITÀ: aggiunta funzione per consentire all’utente di controllare la propria quota rimanente

Chatbot ha sempre incluso la capacità di applicare una quota di utilizzo.

Oggi questo diventa più sofisticato!

Chatbot ora può tracciare e applicare una quota sull’utilizzo per token.

Puoi mettere a costo le chiamate alle API per scoraggiarne l’uso eccessivo, così potrai preoccuparti meno di dare alle persone l’accesso alla generazione di immagini, ad esempio.

Il tracciamento dei token è opzionale. Se passi al tracciamento dei token, assicurati di aumentare la quota di ogni livello di fiducia, poiché i valori dovranno essere di alcuni ordini di grandezza superiori. Sperimenta.

Tuttavia, il tracciamento per query è leggermente cambiato. Ora si reimposterà al numero massimo di query consentito e conterà alla rovescia fino a zero.

Potresti considerare di eseguire il processo di reimpostazione della quota globale una volta come operazione una tantum per assicurarti che tutti inizino con una quota completa. Questa è un’operazione una tantum!

In sidekiq su /sidekiq/scheduler:

Premi il pulsante trigger.

In entrambi i casi gli utenti possono ora chiedere quanta quota hanno ancora a disposizione:

NB: problema noto: se questa domanda viene posta per la prima volta prima che sia stato eseguito il processo di reimpostazione, la risposta potrebbe essere un po’ strana! Indipendentemente dall’esecuzione del processo di reimpostazione, la seconda volta che viene posta questa domanda dovrebbe funzionare correttamente.

4 Mi Piace

Ciao Robert,

Apprezzo tutto il lavoro che hai fatto per il bot, tuttavia sto riscontrando il seguente errore nei log quando cerco di invocarlo in chat.

image

Hai qualche idea senza dover disinstallare/reinstallare?

1 Mi Piace