💻

Melhor experiência no computador

Esta aplicação foi desenvolvida para uso em desktop ou notebook. Em dispositivos móveis ela funciona na maioria das vezes, mas alguns elementos podem não se comportar como esperado.

💡 Para a melhor experiência na validação do fluxo conversacional, acesse pelo computador.

Medyclean Sales AI

Assistente de vendas inteligente

💬{{ conversationId }}
⚠️ Aplicação em versão de testes — somente para validação do fluxo conversacional. Não redireciona para atendente e não efetua compra diretamente.

Carregando conversa…

🤖

Olá! Como posso ajudar?

Sou o assistente de vendas da Medyclean. Pergunte sobre produtos, indicações de uso ou tire dúvidas técnicas.

Índice vetorial

Gera e mantém em dia os vetores usados na busca semântica do catálogo. Cada operação roda em lotes pequenos, em paralelo, até não faltar nada.

Configuração ativa

Informações do provider que o backend está usando agora.

Provider{{ aiProvider.provider }}
Modelo chat{{ aiProvider.model }}
Modelo embedding{{ aiProvider.embeddingModel }}
Dimensões{{ aiProvider.embeddingDimensions }}
Base URL{{ aiProvider.baseUrl }}

Lote & paralelismo

Tamanho de cada chamada e quantas rodam ao mesmo tempo. Vale para as três operações abaixo.

Produtos & documentos técnicos

Embeddings de products.embedding e technical_documents.embedding, usados na busca vetorial direta do catálogo.

{{ pillText('embeddings') }}
{{ Math.min(ops.embeddings.processed, ops.embeddings.total) }} / {{ ops.embeddings.total }} · {{ opsProgressPct('embeddings') }}%

{{ ragStatus.embeddingsSkippedReason }}

Profiles do catálogo — criar faltantes

Gera o profile normalizado (função, ambientes, princípio ativo…) dos produtos que ainda não têm nenhuma linha em product_profiles. Chama a LLM de enriquecimento.

{{ pillText('profilesBuild') }}
{{ Math.min(ops.profilesBuild.processed, ops.profilesBuild.total) }} / {{ ops.profilesBuild.total }} · {{ opsProgressPct('profilesBuild') }}%

{{ ragStatus.profilesSkippedReason }}

Profiles do catálogo — vetor faltante

Calcula o embedding de profiles que já têm texto (resumo_curto) mas ficaram sem vetor — caso típico depois de popular o catálogo via seed SQL. Sem chamada de LLM, só o modelo de embedding.

{{ pillText('profilesEmbeddings') }}
{{ Math.min(ops.profilesEmbeddings.processed, ops.profilesEmbeddings.total) }} / {{ ops.profilesEmbeddings.total }} · {{ opsProgressPct('profilesEmbeddings') }}%

{{ ragStatus.profilesSkippedReason }}

Zona de risco

Apaga todos os vetores de produtos e documentos técnicos. Depois é preciso rodar a indexação de novo — o assistente perde a busca semântica até lá.

⚠️{{ error }}
💬