Consigli su un bot di supporto per un forum di supporto tecnico (Discourse AI vs Discourse Chatbot)

Con nascosto intendo una categoria che non è visibile alla maggior parte degli utenti. Non deve essere nascosta, ma avere una categoria con solo i PDF da utilizzare come conoscenza accessibile da RAG potrebbe diventare disordinata per altri utenti.

Ho usato i PDF come esempio poiché molti manuali probabilmente esistono già come PDF e ho notato di nasconderli in una categoria poiché è più facile da comprendere. Per altre possibilità che non richiederebbero una categoria nascosta, Langchain Retrieval è un buon punto di partenza.

Non ho problemi con questo, l’idea di ciò che deve essere fatto si muove nella giusta direzione.

Tuttavia, la parola assistente sembra perdere terreno in certi contesti a favore del nuovo arrivato GPTs. I GPT sembrano anche sostituire i plugin di ChatGPT, ma non uso un plugin di ChatGPT da mesi, quindi in realtà non me ne accorgo, vedo solo chiacchiere al riguardo nei forum.

1 Mi Piace

Ma aspetta -

  • l’API Assistant e i GPT non sono stati introdotti lo stesso giorno?
  • un GPT non è forse solo un frontend no-code più (per l)utente dei modelli Assistant, privo della possibilità di essere richiamato tramite API?
2 Mi Piace

https://platform.openai.com/docs/assistants/overview

C’eri? Io no.

So che uno dello staff di Discourse c’era.

Devo essere onesto. Non ne sapevo abbastanza per rispondere, quindi ho guardato questo video.

Per quanto riguarda Assistant, sembra che i GPT ti diano

  • Navigazione Web
  • Generazione di immagini DALL*E
  • Interprete di codice

Concordo con la maggior parte di quanto hai notato.

Avendo appena imparato molto di più sui GPT guardando il video, dirò che è impressionante, ma non soddisferà comunque le esigenze della maggior parte delle persone, anche se sta facendo progressi. È stato anche interessante vedere parte del JSON che è uguale/simile ai plugin di ChatGPT.

Per quanto riguarda questo argomento, noterò che molti sul forum di OpenAI cercano di caricare file da utilizzare con RAG e scoprono rapidamente che c’è un limite di 10 file. È anche possibile condividere un link al GPT, ma l’altro utente deve essere anche un abbonato a ChatGPT Plus, quindi questa è molto probabilmente un’opzione senza sbocco per molti con un’iniziativa commerciale.

1 Mi Piace

L’API Open AI Assistant è ancora nelle sue fasi iniziali per essere adottata ed è effettivamente in anteprima:

  • Si dice che sia proibitivamente costosa (riempie il contesto disponibile ad ogni iterazione indipendentemente dal fatto che ne abbia bisogno o meno e paghi per questo, che tu ne abbia bisogno o meno)
  • Apparentemente soffre di un problema di “loop infinito” in cui occasionalmente si ritrova a iterare indefinitamente. Questo è un problema sorprendente data l’apparente competenza dell’azienda perché è molto semplice progettare una mitigazione per questo.

Sospetto che abbia bisogno di più tempo per maturare e che debba incorporare il feedback dei primi adottanti.

Come potenziale futura semplificazione per i consumatori a valle dei servizi AI, come Chatbot, la accolgo con favore.

In ogni caso, è necessaria un’interfaccia con Discourse.

Chatbot fornisce già la stessa potenza dell’API Assistant senza nessuno dei suoi problemi e, inoltre, fornisce l’interfaccia con Discourse. È fondamentalmente agnostico rispetto alle iterazioni API e si evolverà con i servizi disponibili ed è molto possibile che in futuro possa offrire un’opzione API Assistant, ma attualmente non vi è alcun vantaggio nel farlo perché creerebbe solo problemi (inclusi quelli sopra delineati).

3 Mi Piace

Non fisicamente :confused:

20, ma sì, una quantità molto limitata - che può essere in qualche modo aggirata allegando tutti i file necessari in un unico file di grandi dimensioni (che tende a diventare piuttosto costoso rapidamente)

e la grande sorpresa è che non sai quanto costa fino a più tardi…

Quasi: l’API Assistant ha la capacità di includere conoscenze private, personalizzate ed esterne a Discourse.

Sono contento che non sia solo io :wink:

1 Mi Piace

In che modo ciò è diverso dall’utilizzo dei dati caricati su Discourse o dall’uso di prompt privati?

Naturalmente i dati vengono caricati sui loro servizi.

Vedi l’esempio sopra: se hai dei PDF contenenti manuali utente e questi vengono caricati su Discourse, non verranno elaborati e indicizzati. Dovresti convertirli in markdown. Questo non è solo noioso, ma richiederebbe automazione e conversioni aggiuntive.

Chi ti obbliga a caricare in PDF antichi?

Immagino che sarebbe meglio convertire una volta e poter modificare localmente.

Comunque, tieni d’occhio questo spazio, ci saranno altre novità per Chatbot…

1 Mi Piace

La realtà forse?
La verità è che la maggior parte della conoscenza del dominio non è facilmente disponibile in markdown.

Di nuovo, prendi l’esempio dato sopra. Hanno bei manuali utente PDF che sono creati da una divisione completamente diversa. Convertire una volta e modificare localmente non funzionerà.

:fire: :fire:

1 Mi Piace

Una PR per un lettore PDF è benvenuta Richard!

Ma sospetto che la capacità markdown sia più che sufficiente per il momento.

di nuovo a Eric

Aspetteremo finché gli assistenti non diventeranno un po’ meno costosi. E sì, nel frattempo il markdown andrà benissimo!

1 Mi Piace

Sono lieto che altri si stiano unendo a questo e spero che questo sia di beneficio per Ryan.

Forse @37Rb (Ryan) può fornire maggiori informazioni

  1. Prevedi di utilizzare manuali da utilizzare con RAG per un bot di intelligenza artificiale di Discourse sul sito di Discourse?
    a. Qual è il formato attuale di tali manuali? Cartaceo, PDF, sito web, altro?
    b. Con quale frequenza la knowledge base verrà aggiornata con manuali nuovi o versioni di manuali?
    c. I manuali saranno resi pubblici sul sito?
  2. Quali altre informazioni oltre al forum di Discourse potrebbero essere di valore per un’intelligenza artificiale per rispondere sul sito di supporto?
  3. Quando si crea un bot di intelligenza artificiale di Discourse, prevedi altre esigenze per il bot? Lo chiedo perché se leggi la cronologia di Discourse relativa alla creazione del bot di intelligenza artificiale, vedrai che ha subito molte modifiche, non era il bot perfetto con le prime creazioni e sta ancora subendo molte modifiche.
  4. Puoi creare alcuni esempi di come vedi l’utilizzo del bot o degli agenti? Ad esempio, mostra alcuni casi diversi di un utente che chatta con il bot.
    Nota: uso la parola agente in modo simile a un agente Langchain e non da confondere con un assistente OpenAI.
2 Mi Piace

Cosa significa?

Non public information only the bot sees directly (but ultimately affects the way it communicates with the user)

@37Rb

Ho avuto un’idea ora che ho visto OpenAI GPT essere creato in una demo di YouTube.

Potresti creare un OpenAI GPT, che richiede un abbonamento a ChatGPT Plus e probabilmente l’accesso dopo essere stato in una lista d’attesa, simile a ciò che cerchi di imparare sui pro e contro di tale tecnologia e che può essere sfruttato per creare un bot AI per Discourse. Non sto suggerendo di creare il bot, ma avresti una migliore comprensione di ciò che l’IA può fare e dove fallirà miseramente.

2 Mi Piace

Sì.

PDF o HTML (ospitato online), ma sono a mio agio nel convertirli in testo/markdown e mantenerli come post di Discourse. Possiamo scrivere uno script per facilitare le cose.

I manuali dei prodotti non verranno aggiornati frequentemente, ma altri contenuti nella knowledge base sì. Cose come FAQ, problemi frequenti/di tendenza, ecc. verrebbero aggiornate più spesso. Pubblichiamo il più possibile pubblicamente, ma alcuni avrebbero senso mantenerli privati, non perché siano informazioni sensibili, ma perché potrebbero apparire strani e confusi come post pubblici.

Sì, i manuali ufficiali dei prodotti sono solitamente PDF. Ad esempio…

Per ora, probabilmente niente. C’è troppo rischio a lasciarlo cercare su Internet e ottenere risultati che non sono veri per noi.

In futuro, potrei vedere un valore nel dare al bot un contesto aggiuntivo sul sistema di sicurezza del cliente, ma ciò potrebbe non essere mai possibile a causa di problemi di privacy.

Mi sembra che, dato che è tutto basato su RAG, la cosa più importante sia darci un controllo granulare su come il bot cerca nel forum e invia prompt all’IA. Da quello che ho letto, sembra che Discourse Chatbot di merefield faccia meglio oggi. Spero di testare questa teoria questa settimana.

Per noi si tratta sempre di fornire supporto agli utenti/clienti rispondendo alle loro domande o risolvendo i loro problemi. Ad esempio:

  1. Aiutarli a capire cosa comprare per mettere in sicurezza la loro casa specifica, a volte tenendo conto delle apparecchiature di sicurezza domestica che già possiedono.
  2. Aiutarli a installare e utilizzare il loro sistema.
  3. Aiutarli a risolvere i problemi quando ne hanno.
  4. Rispondere a domande di curiosità su come funzionano le cose, cosa potrebbe essere disponibile in futuro, ecc.

I migliori esempi sono quelli reali che vengono pubblicati ogni giorno e a cui il nostro team di supporto (o talvolta i membri della community) risponde.

4 Mi Piace

Grazie!

So che questo è solo un semplice link da condividere, ma per molti altri che ti seguono nel tuo percorso per creare un sito di supporto con un bot AI che risponde e permette ad altri di vedere lo scambio di idee in un forum pubblico, questo è all’avanguardia. So che le aziende lo fanno in privato, ma tu lo stai facendo pubblicamente. :slightly_smiling_face:

Sono stato anche felice di vedere i diagrammi, poiché hanno confermato ciò che pensavo fosse corretto.

Non lo farei.

Il bot non cercherà effettivamente nel forum in modo simile a come viene cercato il testo nei post. La parola chiave e la tecnologia correlata che devi imparare per questo è Vector Database e Nearest neighbor search.

Per vedere esempi di codice di questo tipo di utilizzo, controlla

Ti auguro il meglio con questo!

1 Mi Piace

Normalmente non consiglierei un prodotto a pagamento, tuttavia anni fa ho scoperto

quando rispondevo a questa domanda di StackExchange domanda.

Ho usato la versione online gratuita alcune volte e, come ho notato nella mia risposta, non ho trovato nulla di altrettanto valido e ho cercato molto nel corso degli anni modi per estrarre testo e altre informazioni da un PDF.

Voglio aggiungere alcune informazioni su questo poiché alcuni potrebbero pensare che il riferimento (nome del manuale, data di pubblicazione, sezione e paragrafo) faccia parte delle informazioni utilizzate con RAG e io non l’avevo previsto in quel modo e non ho fornito alcuni dei dettagli necessari. Avevo previsto di utilizzare i metadati; per me dati e metadati hanno significati e usi molto diversi.

Quando ho chiesto a ChatGPT in merito, ha fornito una risposta che andava nella direzione che avevo immaginato, ma con alcuni dettagli in più come Elasticsearch.

Prompt

Come si può utilizzare RAG (Retrieval Augmented Generation) con un manuale PDF per un prodotto e ottenere come riferimento il titolo, la data di pubblicazione, la pagina e il numero di paragrafo dal manuale con le informazioni annotate?

Completamento

Utilizzare la Retrieval Augmented Generation (RAG) con un manuale PDF per estrarre informazioni specifiche come titolo, data di pubblicazione, pagina e numero di paragrafo comporta diversi passaggi. RAG, sviluppato da Facebook AI, combina la potenza del recupero (fetching di documenti o dati pertinenti) con la generazione di linguaggio, consentendo al modello di fare riferimento e incorporare conoscenze esterne. Ecco un approccio generale per utilizzare RAG con un manuale PDF:

  1. Convertire il Manuale PDF in un Formato di Testo:

    • Innanzitutto, è necessario convertire il manuale PDF in un formato di testo che possa essere elaborato. Per questo scopo si possono utilizzare strumenti come Adobe Acrobat, pdftotext (parte del progetto Xpdf) o librerie Python come PyPDF2 o PDFMiner.
  2. Pre-elaborare il Testo:

    • Una volta ottenuto il testo, potrebbe essere necessario pre-elaborarlo. Ciò include la rimozione di formattazione non necessaria, la gestione di caratteri speciali e, eventualmente, la segmentazione del testo in sezioni, pagine e paragrafi con marcatori identificabili.
  3. Indicizzare il Manuale:

    • Affinché RAG funzioni in modo efficace, il contenuto del manuale deve essere indicizzato. Ciò significa creare un database o un formato strutturato in cui ogni pezzo di informazione (come un paragrafo o una sezione) viene memorizzato con i relativi metadati (numero di pagina, numero di paragrafo, ecc.). Elasticsearch o un motore di ricerca simile possono essere utilizzati a questo scopo.
  4. Integrare RAG:

    • Con il manuale indicizzato, è ora possibile integrare RAG. RAG combina tipicamente un modello linguistico basato su transformer (come BERT o RoBERTa) per il recupero e un modello sequence-to-sequence (come BART o T5) per la generazione. Sarà necessario configurare RAG per interrogare il manuale indicizzato. Ciò potrebbe comportare la personalizzazione del componente di recupero per funzionare con il motore di ricerca.
  5. Interrogare il Sistema:

    • Quando si interroga il sistema RAG, il componente di recupero trova innanzitutto le sezioni più pertinenti del manuale in base alla query. Queste informazioni vengono quindi passate al componente di generazione, che formula una risposta.
  6. Estrarre le Informazioni di Riferimento:

    • Per ottenere titolo, data di pubblicazione, pagina e numero di paragrafo, è necessario assicurarsi che questi dettagli siano inclusi nei segmenti recuperati o che il sistema possa fare riferimento ai dati indicizzati per recuperare questi metadati. Ciò potrebbe richiedere logica aggiuntiva nel sistema.
  7. Post-elaborazione per i Riferimenti:

    • Dopo che la risposta è stata generata, potrebbe essere necessaria una fase di post-elaborazione per formattare correttamente i riferimenti, assicurando che titolo, data di pubblicazione, pagina e numero di paragrafo siano inclusi in modo accurato.
  8. Fine-Tuning e Valutazione:

    • A seconda dei requisiti specifici e della complessità del manuale, potrebbe essere necessario effettuare il fine-tuning del modello RAG su tipi simili di documenti o query. Valutare le prestazioni del sistema e adattare l’approccio secondo necessità.
  9. Integrazione con l’Interfaccia Utente:

    • Infine, se questo sistema è destinato agli utenti finali, integrarlo con un’interfaccia user-friendly in cui gli utenti possano inserire query e ricevere risposte con le informazioni di riferimento.

Ricorda che l’efficacia di questo approccio dipende fortemente dalla qualità dei dati indicizzati, dalle capacità del modello di recupero e da quanto bene il modello di generazione è stato addestrato o sottoposto a fine-tuning per il tuo caso d’uso specifico.


Nota: Sebbene utilizzi ChatGPT per generare informazioni, non pubblico informazioni da ChatGPT se penso che siano errate. In altre parole, ChatGPT può essere utile, ma devi sapere se le informazioni fornite sono corrette o meno. Sebbene non abbia implementato esattamente ciò che ChatGPT indica qui, ho abbastanza esperienza in questo campo che utilizzerei questo o una sua deviazione.

2 Mi Piace

Ho impostato un forum di prova per ciascun plugin, Discourse AI e Discourse Chatbot.

Il plugin Discourse Chatbot ha un passaggio in cui crei gli embedding che utilizza l’API degli embedding di OpenAI. Il plugin Discourse AI non sembra farlo (non ha mostrato alcuna attività di embedding sulla dashboard di OpenAI) ma trova comunque post sul nostro forum. Se non genera embedding per la ricerca semantica, come fa il plugin Discourse AI a cercare nel forum? Utilizza la ricerca testuale normale? Calcola i propri embedding?

1 Mi Piace