Construindo um chatbot de suporte técnico

,

Adicionar um chatbot de IA ao Discourse é fácil (graças a 2 excelentes plugins). Adicionar um chatbot que realize suporte técnico é muito mais difícil! Este post compartilha nossa experiência na configuração de um chatbot de suporte técnico para support.suretyhome.com — o que queríamos, problemas que enfrentamos, como os resolvemos e para onde vamos a partir daqui.

Nossa equipe de suporte está disponível apenas durante o horário comercial, mas os clientes desejam ajuda 24 horas por dia, 7 dias por semana. Não estamos tentando substituir a equipe de suporte. Nosso objetivo é aumentar a capacidade da equipe de suporte com um bot que seja:

  • Disponível 24/7, incluindo noites e fins de semana, assim como nosso fórum
  • Responda imediatamente, enquanto nossa equipe de suporte humana leva um pouco mais de tempo
  • Possa responder a perguntas que os usuários não conseguiram resolver com uma busca no fórum

Aqui está nossa experiência.

Escolhendo um Plugin

Existem dois plugins realmente bons que fornecem um Chatbot de IA.

  1. Discourse AI
  2. Discourse Chatbot

O plugin Discourse AI é o plugin oficial de IA da equipe de desenvolvimento do Discourse. Ele inclui um chatbot, além de outros recursos de IA. O plugin Discourse Chatbot é apenas um chatbot. Ele foi criado antes do Discourse AI e foca em fazer essa única coisa bem feita.

Inicialmente, não tínhamos ideia de qual usar, então fiz a pergunta aqui para obter algumas orientações.

Recebemos muita ajuda valiosa. Acabamos optando pelo Discourse Chatbot porque ele é mais flexível como chatbot, com mais recursos e opções para personalização. Nosso caso de uso tinha algumas demandas específicas que ainda não pareciam viáveis com o Discourse AI. Ambos podem ser uma ótima escolha. Qual é o ideal para você depende das necessidades específicas do seu fórum.

Configuração Inicial

A configuração inicial do Discourse Chatbot pode ser um projeto, pois há muitas opções para escolher e personalizações que você pode fazer. Siga as instruções de configuração cuidadosamente e certifique-se de verificar todas as configurações.

Nosso objetivo era fornecer uma experiência semelhante a um chat, então queríamos que o bot funcionasse apenas no Discourse Chat, não em tópicos públicos ou mensagens privadas (MPs). As primeiras etapas que tivemos que dar foram:

  • Configurar o Discourse Chat (o Discourse Chatbot depende dele)
  • Nas configurações do Discourse Chatbot, chatbot permitido no chat: ativado

Engenharia de Prompt

O Discourse Chatbot é incrivelmente personalizável. Tudo que não é uma configuração é personalizado em Discourse > Personalizar > Texto. É aqui que você faz toda a sua engenharia de prompt. Em Personalizar > Texto, pesquise por chatbot.prompt para filtrar todo o texto de prompt personalizável.

Para fazer o bot se comportar da maneira que queremos, precisaremos editar o prompt do sistema. Mas existem 2 deles: um para discussões públicas e outro para discussões privadas. Como estamos usando o bot apenas em canais de chat privados, precisávamos editar chatbot.prompt.system.rag.private.

Como um bot de suporte técnico, precisamos que ele seja mais conservador e preciso do que os LLMs tendem a ser de imediato. Nosso prompt do sistema precisava ser relativamente longo para alcançar isso. No prompt do sistema, dê instruções e contexto ao LLM que respondam a perguntas como:

  • Quem é seu bot? Que papel ele deve desempenhar?
  • Quais informações de fundo ou contexto ele precisa conhecer?
  • Quais tópicos ele deve discutir? Quais tópicos ele nunca deve discutir?
  • Qual estilo de escrita ou tom ele deve usar?
  • O que ele deve fazer quando o usuário estiver frustrado?

Além dessa engenharia de prompt geral, o prompt do sistema também é um lugar onde você pode tentar resolver problemas que descobrir durante os testes. Se você encontrar um erro grave cometido pelo bot, talvez consiga corrigi-lo adicionando instruções ao prompt do sistema. Mas cuidado: a programação por prompt é apenas uma sugestão para o LLM. Você não o está programando. Você apenas o está pedindo para se comportar de certa maneira. Ele pode não ouvir.

Temperatura e Top P

Outra ferramenta para tornar o bot mais conservador e menos propenso a inventar coisas é a configuração de temperatura. Por padrão, a configuração de temperatura é 100, que é 50% da temperatura máxima. Você pode reduzi-la ainda mais para tornar o bot mais conservador ou determinístico e menos propenso a cometer erros. Mas quando a temperatura é definida muito baixa (como 0), o LLM não soa tão impressionante. É uma decisão de trade-off que você terá que tomar.

Além da temperatura, há a configuração Top P. Você provavelmente não precisará disso, mas está lá caso precise. Consulte a documentação da OpenAI para mais informações.

As configurações do Discourse Chatbot para esta seção são:

  • chatbot request temperature
  • chatbot request top p

Problema: LLM Inexato e Desatualizado

O LLM foi treinado em uma vasta quantidade de dados gerais, algum tempo atrás. Precisamos que ele tenha as informações mais atualizadas e específicas sobre nosso fórum e seja o mais preciso possível. A solução é a Geração Aumentada por Recuperação (RAG).

O RAG buscará informações adicionais no fórum antes de responder ao usuário. Como um bot de suporte técnico, não podemos depender apenas do conhecimento treinado do LLM; precisamos que o bot pesquise nosso fórum por informações técnicas antes de responder.

Para fazer o RAG, o Discourse Chatbot precisa criar um banco de dados de „embeddings

14 curtidas

FYI isso será implementado no Discourse AI conforme:

Concordo que este é um recurso bastante importante para RAGs, LLMs são preguiçosos e muitas vezes se recusam a pesquisar.

6 curtidas