Conselho sobre um bot de suporte para um fórum de suporte técnico (Discourse AI vs Discourse Chatbot)

Por oculto, quero dizer uma categoria que não é visível para a maioria dos usuários. Não precisa ser oculta, mas ter uma categoria apenas com os PDFs para serem usados como conhecimento acessível por RAG pode ficar confusa com outros usuários.

Usei PDFs como exemplo, pois muitos manuais provavelmente já existem como PDFs e anotei para ocultá-los em uma categoria, pois isso é mais fácil de compreender. Para outras possibilidades que não exigiriam uma categoria oculta, Langchain Retrieval é um bom lugar para começar.

Não tenho problemas com isso, isso faz com que a ideia do que precisa ser feito avance na direção correta.

No entanto, a palavra assistente parece estar perdendo terreno em certos contextos para o novo garoto do pedaço GPTs. Os GPTs também parecem estar substituindo os plugins do ChatGPT, mas não uso um plugin do ChatGPT há meses, então realmente não estou percebendo, apenas vendo conversas sobre isso nos fóruns.

1 curtida

Mas espere -

  • a API do Assistente e os GPTs não foram introduzidos no mesmo dia?
  • um GPT não é apenas um front-end mais amigável (para o usuário final) e sem código de um Assistente, faltando a possibilidade de ser chamado via API?
2 curtidas

Sim

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

Você estava lá? Eu não.

Eu sei que um dos funcionários do Discourse estava lá.

Tenho que ser honesto. Eu não sabia o suficiente para responder, então assisti a este vídeo.

Com relação ao Assistant, parece que os GPTs oferecem a você

  • Navegação na Web
  • Geração de Imagens DALL*E
  • Interpretador de Código

Concordo com a maior parte do que você observou.

Também, tendo acabado de aprender muito mais sobre GPTs assistindo ao vídeo, direi que é impressionante, ainda assim não atenderá às necessidades da maioria das pessoas, mas está progredindo. Também foi interessante ver parte do JSON que é o mesmo/semelhante aos plugins do ChatGPT.

Com relação a este tópico, observarei que muitos no fórum da OpenAI tentam fazer upload de arquivos para uso com RAG e rapidamente descobrem que há um limite de 10 arquivos. Também é possível compartilhar um link para o GPT, mas o outro usuário também precisa ser um assinante do ChatGPT Plus, então esta é muito provavelmente uma opção sem saída para muitos com um empreendimento comercial.

1 curtida

A API do Assistente da OpenAI está um pouco no início de sua vida para ser adotada e está efetivamente em pré-visualização:

  • É relatado que é proibitivamente caro (ele preenche o contexto disponível a cada iteração, independentemente de precisar ou não, e você paga por isso, quer precise ou não)
  • Aparentemente, sofre de um problema de “loop infinito”, onde ocasionalmente se encontra iterando indefinidamente. Esta é uma questão surpreendente, dada a aparente expertise da empresa, pois é muito simples projetar uma mitigação para isso.

Suspeito que precise de mais tempo para amadurecer e incorporar o feedback dos primeiros usuários.

Como uma potencial simplificação futura para consumidores de serviços de IA, como o Chatbot, eu o saúdo.

Em qualquer caso, você precisa de uma interface com o Discourse.

O Chatbot já oferece o mesmo poder da API do Assistente sem nenhum de seus problemas e, além disso, fornece a interface com o Discourse. Ele é, em última análise, agnóstico em relação à iteração da API e evoluirá com os serviços disponíveis, e é muito possível que ofereça uma opção de API do Assistente no futuro, mas atualmente não há benefício em fazer isso, pois isso só criará problemas (incluindo os descritos acima).

3 curtidas

Não fisicamente :confused:

20, mas sim, uma quantidade muito limitada - que pode ser contornada anexando todos os arquivos que você precisa em um único arquivo grande (que tende a se tornar bem caro rapidamente)

e a grande surpresa é que você não sabe o quão caro é até mais tarde…

Quase - a API do assistente tem a capacidade de incluir conhecimento privado, personalizado e externo ao Discourse.

Ainda bem que não sou só eu :wink:

1 curtida

Como isso difere do uso de dados carregados no Discourse ou do uso de prompts privados?

Claro que os dados são carregados em seus serviços.

Veja o exemplo acima - se você tiver PDFs contendo manuais do usuário e eles forem carregados no Discourse, eles não serão processados e indexados. Você precisaria convertê-los para markdown. Isso não é apenas tedioso, mas conteria automação e conversões adicionais.

Quem está forçando você a fazer upload em PDF antigo?

Imagino que seria melhor converter uma vez e poder editar localmente.

De qualquer forma, fique de olho neste espaço, pois há mais por vir para o Chatbot…

1 curtida

A realidade, talvez?
A verdade é que a maior parte do conhecimento de domínio não está prontamente disponível em markdown.

Novamente, pegue o exemplo dado acima. Eles têm manuais de usuário em PDF agradáveis que são criados por uma divisão totalmente diferente. Converter uma vez e editar localmente não funcionará.

:fire: :fire:

1 curtida

Um PR de leitor de PDF é bem-vindo, Richard!

Mas suspeito que a capacidade de markdown é mais do que suficiente por enquanto.

voltando para Eric

Vamos apenas esperar até que os assistentes se tornem um pouco menos caros. E sim, enquanto isso, o markdown funcionará bem!

1 curtida

Fico feliz que outros estejam participando disso e espero que isso seja benéfico para o Ryan.

Talvez o @37Rb (Ryan) possa fornecer mais informações.

  1. Você prevê o uso de manuais para usar com RAG para um bot de IA do Discourse no site do Discourse?
    a. Qual é o formato atual de tais manuais? Cópia física, PDF, site, outro?
    b. Com que frequência a base de conhecimento será atualizada com novos manuais ou versões?
    c. Os manuais serão tornados públicos no site?
  2. Que outras informações além do fórum do Discourse podem ser valiosas para uma IA responder no site de suporte?
  3. Ao criar um bot de IA do Discourse, você prevê outras necessidades para o bot? Pergunto isso porque, se você ler o histórico da criação do bot de IA do Discourse, verá que ele passou por muitas mudanças, não foi o bot perfeito nas primeiras criações e ainda está passando por muitas mudanças.
  4. Você pode criar alguns exemplos de como você vê o bot ou os agentes sendo usados? Por exemplo, mostre alguns casos diferentes de um usuário conversando com o bot.
    Observação: uso a palavra agente de forma semelhante a um agente Langchain e não para ser confundido com um assistente OpenAI.
2 curtidas

O que isso significa?

Informações não públicas que apenas o bot vê diretamente (mas que afetam a forma como ele se comunica com o usuário)

@37Rb

Tive uma ideia agora que vi o OpenAI GPT sendo criado em uma demonstração no YouTube.

Você poderia criar um OpenAI GPT, que requer uma assinatura do ChatGPT Plus e provavelmente acesso após entrar em uma lista de espera, semelhante ao que você busca para aprender sobre os prós e contras de tal tecnologia e que pode ser aproveitado para criar um bot de IA para Discourse. Não estou sugerindo que você crie o bot, mas teria uma melhor compreensão do que a IA pode fazer e onde ela falhará miseravelmente.

2 curtidas

Sim.

PDF ou HTML (hospedado online), mas não me importo em convertê-los para texto/markdown e mantê-los como posts do Discourse. Podemos escrever um script para facilitar.

Manuais de produtos não serão atualizados com frequência, mas outro conteúdo na base de conhecimento será. Coisas como FAQs, problemas frequentes/tendências, etc., seriam atualizadas com mais frequência. Postamos o máximo possível publicamente, mas alguns fariam sentido manter privados - não porque sejam informações sensíveis, mas porque podem parecer estranhos e confusos como um post público.

Sim, manuais oficiais de produtos geralmente são PDFs. Por exemplo…

Por enquanto, provavelmente nada. Há muito risco em deixá-lo pesquisar na internet e obter resultados que não são verdadeiros para nós.

No futuro, eu poderia ver valor em dar ao bot contexto adicional sobre o próprio sistema de segurança do cliente, mas isso pode nunca ser possível devido a questões de privacidade.

Parece-me que, como tudo é baseado em RAG, o mais importante é nos dar controle granular sobre como o bot pesquisa o fórum e solicita a IA. Pelo que li, parece que o Discourse Chatbot de merefield faz isso melhor hoje. Espero testar essa teoria esta semana.

Para nós, é sempre fornecer suporte ao usuário/cliente respondendo às suas perguntas ou resolvendo seus problemas. Por exemplo:

  1. Ajudá-los a descobrir o que comprar para proteger sua casa específica, às vezes levando em consideração equipamentos de segurança doméstica que eles já possuem.
  2. Ajudá-los a instalar e usar seu sistema.
  3. Ajudá-los a solucionar problemas quando eles têm problemas.
  4. Responder a perguntas de curiosidade que eles têm sobre como as coisas funcionam, o que pode estar disponível no futuro, etc…

Os melhores exemplos são os reais que são postados todos os dias e nossa equipe de suporte (ou às vezes membros da comunidade) responde.

4 curtidas

Obrigado!

Eu sei que este é apenas um link simples para você compartilhar, mas para muitos outros que estão seguindo seus passos de obter um site de suporte para ter um bot de IA respondendo e permitindo que outros vejam a troca de ideias em um fórum público, isso é de ponta. Eu sei que as empresas estão fazendo isso em particular, mas você está fazendo isso publicamente. :slightly_smiling_face:

Também fiquei feliz em ver os diagramas, pois isso reafirmou o que eu pensava estar correto.

Eu não faria isso.

O bot não pesquisará o fórum de fato, de uma maneira semelhante à forma como o texto é pesquisado em uma postagem. A palavra-chave e a tecnologia relacionada que você precisa aprender para isso são Banco de Dados Vetorial e Busca do vizinho mais próximo.

Para ver exemplos de código de como isso é usado, confira

Desejo-lhe tudo de bom com isso!

1 curtida

Normalmente eu não recomendaria um produto pelo qual se tem que pagar, no entanto, anos atrás, fiquei sabendo de

ao responder a esta pergunta do StackExchange pergunta.

Usei a versão online gratuita algumas vezes e, como observei em minha resposta, não vi nada tão bom e procurei muito ao longo dos anos por maneiras de extrair texto e outras informações de um PDF.

Quero adicionar mais algumas informações sobre isso, pois alguns podem pensar que a referência (nome do manual, data de publicação, seção e parágrafo) faz parte das informações usadas com RAG e eu não imaginei dessa forma e não forneci alguns dos detalhes necessários. Eu imaginei usar metadados; para mim, dados e metadados têm significados e usos muito diferentes.

Quando perguntei ao ChatGPT sobre isso, ele deu uma resposta que estava alinhada com o que eu imaginava, mas com alguns detalhes a mais, como Elasticsearch.

Prompt

Como se pode usar RAG (Retrieval Augmented Generation) com um manual em PDF para um produto e obter o título, data de publicação, página e número do parágrafo do manual como referência com as informações anotadas?

Conclusão

Usar Geração Aumentada por Recuperação (RAG) com um manual em PDF para extrair informações específicas como título, data de publicação, página e número do parágrafo envolve várias etapas. O RAG, desenvolvido pelo Facebook AI, combina o poder da recuperação (buscar documentos ou dados relevantes) com a geração de linguagem, permitindo que o modelo referencie e incorpore conhecimento externo. Aqui está uma abordagem geral para usar RAG com um manual em PDF:

  1. Converter o Manual em PDF para um Formato de Texto:

    • Primeiro, você precisa converter o manual em PDF para um formato de texto que possa ser processado. Ferramentas como Adobe Acrobat, pdftotext (parte do projeto Xpdf) ou bibliotecas Python como PyPDF2 ou PDFMiner podem ser usadas para esse fim.
  2. Pré-processar o Texto:

    • Uma vez que você tenha o texto, pode ser necessário pré-processá-lo. Isso inclui remover formatação desnecessária, lidar com caracteres especiais e possivelmente segmentar o texto em seções, páginas e parágrafos com marcadores identificáveis.
  3. Indexar o Manual:

    • Para que o RAG funcione de forma eficaz, o conteúdo do manual precisa ser indexado. Isso significa criar um banco de dados ou um formato estruturado onde cada pedaço de informação (como um parágrafo ou uma seção) é armazenado com seus metadados correspondentes (número da página, número do parágrafo, etc.). Elasticsearch ou um mecanismo de busca semelhante pode ser usado para esse fim.
  4. Integrar o RAG:

    • Com seu manual indexado, você pode agora integrar o RAG. O RAG geralmente combina um modelo de linguagem baseado em transformador (como BERT ou RoBERTa) para recuperação e um modelo sequence-to-sequence (como BART ou T5) para geração. Você precisará configurar o RAG para consultar seu manual indexado. Isso pode envolver a personalização do componente de recuperação para funcionar com seu mecanismo de busca.
  5. Consultar o Sistema:

    • Quando você consulta o sistema RAG, o componente de recuperação primeiro encontra as seções mais relevantes do manual com base em sua consulta. Essas informações são então passadas para o componente de geração, que formula uma resposta.
  6. Extrair Informações de Referência:

    • Para obter o título, data de publicação, página e número do parágrafo, você precisará garantir que esses detalhes estejam incluídos nos segmentos recuperados ou que o sistema possa referenciar os dados indexados para buscar esses metadados. Isso pode exigir lógica adicional em seu sistema.
  7. Pós-processamento para Referências:

    • Após a geração da resposta, pode ser necessário um passo de pós-processamento para formatar as referências corretamente, garantindo que o título, data de publicação, página e número do parágrafo sejam incluídos com precisão.
  8. Ajuste Fino e Avaliação:

    • Dependendo de seus requisitos específicos e da complexidade do manual, você pode precisar ajustar o modelo RAG em tipos semelhantes de documentos ou consultas. Avalie o desempenho do sistema e ajuste sua abordagem conforme necessário.
  9. Integração com Interface do Usuário:

    • Finalmente, se este sistema for destinado a usuários finais, integre-o a uma interface amigável onde os usuários possam inserir consultas e receber respostas com as informações referenciadas.

Lembre-se que a eficácia dessa abordagem depende muito da qualidade dos dados indexados, das capacidades do modelo de recuperação e de quão bem o modelo de geração foi treinado ou ajustado para seu caso de uso específico.


Nota: Embora eu use o ChatGPT para gerar informações, também não posto informações do ChatGPT se achar que estão erradas. Em outras palavras, o ChatGPT pode ser útil, mas você tem que saber se a informação dada está correta ou não. Embora eu não tenha implementado exatamente o que o ChatGPT anota aqui, tenho experiência suficiente com isso para usar isso ou um desvio disso.

2 curtidas

Criei um fórum de teste para cada plugin, Discourse AI e Discourse Chatbot.

O plugin Discourse Chatbot tem uma etapa onde você cria os embeddings que usa a API de embeddings da OpenAI. O plugin Discourse AI não parece fazer isso (não mostrou nenhuma atividade de embeddings no painel da OpenAI), mas ainda assim encontra posts em nosso fórum. Se ele não gera embeddings para pesquisar semanticamente, como o plugin Discourse AI pesquisa o fórum? Ele usa pesquisa de texto normal? Ele calcula seus próprios embeddings?

1 curtida