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.
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