Pular para o conteúdo

02// projetos

Balcão: assistente que só responde o que está escrito

Atendimento com IA que responde só com base nos textos da empresa, mostra de onde tirou cada resposta e diz "não sei" quando não está escrito. A busca (BM25) é escrita em C#.

// detalhes

A ideia

Pequenas empresas respondem as mesmas perguntas o dia todo, e um chatbot genérico inventa. O Balcão é um atendente que responde só com o que está nos textos da empresa, cita a fonte de cada resposta e, quando os textos não dizem, manda falar com a equipe.

Como funciona (RAG feito à mão)

  • Os textos da empresa (arquivos Markdown) são divididos em trechos de ~500 caracteres e indexados em memória.
  • A pergunta vira termos (sem acento, sem plural, sem palavras genéricas, com sinônimos) e uma busca BM25 escrita em C#, sem biblioteca, escolhe os 3 melhores trechos.
  • Se nenhum trecho passa da pontuação mínima, a resposta é "não encontrei" sem chamar a IA.
  • A IA recebe só a pergunta e esses trechos e devolve a resposta em JSON, dizendo qual trecho usou.

Como evitei que a IA inventasse

  • O código só aceita fontes que estão entre os trechos enviados.
  • A frase citada é procurada no trecho, e todo número da resposta (preço, horário, prazo) precisa estar escrito nele.
  • Reprovou? A resposta da IA não aparece; o visitante lê os trechos.
  • Cada resposta mostra a fonte com as palavras encontradas em marca-texto, e um painel "como achei isso" com a pontuação de cada trecho.

Como é feito

  • Uma Area do ASP.NET Core MVC com layout e CSS próprios, dentro deste site, sem banco e sem login.
  • IA gratuita (Groq) via IChatProvider, com limite por visitante, cache de respostas e tratamento do erro 429.
  • Busca testada com xUnit: "a pergunta X tem que trazer o trecho Y entre os 3 primeiros".

A demonstração usa um pet shop fictício, com sugestões de perguntas que os textos respondem e que não respondem.

próximo projeto Este site pessoal →