Análise de Chunks
Analisa a qualidade de um chunk específico e retorna uma nota de 0 a 10 baseada nas melhores práticas de chunks e relação com outros chunks similares.
Analisa a qualidade de um chunk específico e retorna uma nota de 0 a 10 baseada nas melhores práticas de chunks e relação com outros chunks similares. O advisor de chunks é responsável por garantir melhores práticas do uso dos blocos de conteúdo, otimizando a qualidade da busca semântica e dos resultados servidos à IA conversacional.
Visão Geral
Quando o usuário cria um novo chunk ou edita um existente, transformamos o conteúdo em embeddings e armazenamos no banco de dados. Quando o usuário faz uma pergunta, criamos os embeddings da pergunta e fazemos uma busca vetorial (cosine similarity) para encontrar os chunks mais relevantes.
O que a análise identifica
- Qualidade do chunk baseado em melhores práticas
- Relação com outros chunks semanticamente similares
- Otimização para busca semântica
- Qualidade dos embeddings gerados
- Recomendações de melhoria (quando score < 5)
Endpoint
POST /api/externalAPIs/public/advisor/chunkAdvisor
Parâmetros
| Parâmetro | Tipo | Descrição | Obrigatório |
|---|---|---|---|
chunkId | string | ID do chunk a ser analisado | Sim |
hostId | string | ID do host | Sim |
model | string | Modelo LLM a ser usado (padrão: gpt-oss-120b) | Não |
provider | string | Provider LLM a ser usado (padrão: cerebras) | Não |
completionTimeoutMs | number | Timeout em milissegundos para chamadas LLM (padrão: 60000) | Não |
Fluxo de Análise
- Buscar informações do chunk: Recupera os dados completos do chunk do banco de dados
- Criar perguntas semânticas: Usa IA para gerar perguntas semânticas sobre o conteúdo do chunk
- Buscar chunks similares: Utiliza as perguntas semânticas para encontrar chunks relacionados
- Avaliar qualidade: Analisa o chunk comparando com chunks similares e retorna nota 0-10
- Recomendar melhorias (se score < 5): Se a nota for menor que 5, executa uma análise adicional para identificar problemas específicos e gerar recomendações
- Salvar issues (se necessário): Se problemas forem identificados, cria registros na tabela
advisor_issuespara rastreamento
Exemplo de Requisição
curl -X POST {{BASE_URL}}/api/externalAPIs/public/advisor/chunkAdvisor \
-H "Authorization: Bearer SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"chunkId": "bf047297-ff98-4b4d-b6b7-07f8f50ca36c",
"hostId": "b302f8ad-991b-411c-beb3-12cd648c95cc"
}'
Exemplo de Resposta
{
"code": 200,
"message": "Success",
"data": {
"score": 7.5,
"fromCache": false,
"cachedAt": "2024-01-15T10:30:00.000Z"
}
}
Campos da Resposta
| Campo | Tipo | Descrição |
|---|---|---|
score | number | Nota de qualidade do chunk (0 a 10) |
fromCache | boolean | Indica se o resultado foi retornado do cache (true) ou processado agora (false) |
cachedAt | string | Data e hora em ISO 8601 de quando o resultado foi cacheado (sempre presente, mesmo quando fromCache é false) |
Sistema de Cache
O endpoint implementa um sistema de cache com TTL de 40 segundos para evitar processamento duplicado. Isso significa que:
- Se você fizer múltiplas requisições para o mesmo
chunkIdehostIddentro de 40 segundos, apenas a primeira será processada - As requisições subsequentes retornarão o resultado em cache com
fromCache: true - O campo
cachedAtsempre indica quando o resultado foi cacheado, mesmo quandofromCacheéfalse - Chave de cache:
chunkAdvisor:{chunkId}:{hostId}
Recomendações de Melhoria
Quando a nota (score) retornada for menor que 5, o sistema automaticamente executa uma análise adicional para identificar problemas específicos e gerar recomendações. Essas recomendações são salvas na tabela advisor_issues para rastreamento e podem ser consultadas posteriormente através do endpoint insightByDemand.
Códigos de Erro
400: Campos obrigatórios ausentes ou inválidos401: Token de autenticação inválido ou ausente404: Chunk não encontrado500: Erro interno do servidor
Exemplos de Uso
Análise básica
curl -X POST {{BASE_URL}}/api/externalAPIs/public/advisor/chunkAdvisor \
-H "Authorization: Bearer SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"chunkId": "bf047297-ff98-4b4d-b6b7-07f8f50ca36c",
"hostId": "b302f8ad-991b-411c-beb3-12cd648c95cc"
}'
Análise com modelo customizado
curl -X POST {{BASE_URL}}/api/externalAPIs/public/advisor/chunkAdvisor \
-H "Authorization: Bearer SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"chunkId": "bf047297-ff98-4b4d-b6b7-07f8f50ca36c",
"hostId": "b302f8ad-991b-411c-beb3-12cd648c95cc",
"model": "gpt-oss-120b",
"provider": "cerebras",
"completionTimeoutMs": 60000
}'