Busca e índice da base
Testa a busca na base de conhecimento e refaz o índice de busca por significado.
A busca da base acha o texto certo para uma pergunta de cliente. Estas rotas servem para testar essa busca e para refazer o índice que a torna inteligente.
Buscar na base
Testa a busca da base com uma frase, do jeito que o assistente faria. Serve para conferir se um texto novo é encontrado.
/api/v1/admin/whatsapp/kb/searchAdminBusca na base de conhecimento
Corpo da requisição
querystringobrigatóriovendor_iduuidtop_kintegerpadrão: 5Exemplo de requisição (Buscar na base)
curl -X POST "$BASE_URL/api/v1/admin/whatsapp/kb/search" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"query": "quanto tempo tenho para trocar",
"top_k": 3
}'Resposta (Buscar na base)
{
"hits": [
{
"entry": {
"id": "6e1b7a54-0c3d-4f29-b8a6-2d9c5e4f1a07",
"vendor_id": "9d9d9d56-eb43-4719-889d-055632f7c7da",
"title": "Política de troca",
"content_text": "Aceitamos troca em até 7 dias corridos após o recebimento, com a etiqueta original e sem sinais de uso.",
"embedding_model": "text-embedding-3-small",
"has_embedding": true,
"tags": [
"troca",
"pós-venda"
],
"status": "A",
"created_at": "2026-10-11T14:02:10.114233Z",
"updated_at": "2026-10-11T14:02:10.114233Z"
},
"similarity": 0.6,
"source": "ilike"
}
]
}Campos da resposta
hitsarrayResultados, do mais ao menos relevante.
entryobjectsimilaritynumberdistancenumbersourcestringvectorilikeErros (Buscar na base)
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo que não é JSON ou query vazia. | {"error":"whatsapp kb: query required"} |
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_settings"} ou {"error":"admin access required"} |
Refazer o índice
Refaz o índice de busca por significado das entradas ativas que ainda não têm índice ou que foram indexadas com outro modelo. Rode depois de ligar a IA na loja ou de trocar o modelo.
/api/v1/admin/whatsapp/kb/regenerateAdminRefaz o índice de busca da base
Corpo da requisição
vendor_iduuididsarrayExemplo de requisição (Refazer o índice)
curl -X POST "$BASE_URL/api/v1/admin/whatsapp/kb/regenerate" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}'Resposta (Refazer o índice)
{
"regenerated": 3
}Campos da resposta
regeneratedintegerErros (Refazer o índice)
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo presente com tipo errado (por exemplo vendor_id numérico). | {"error":"invalid request body: ..."} |
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_settings"} ou {"error":"admin access required"} |
| 500 | Falha ao refazer. | {"error":"Failed to regenerate embeddings: ..."} |
| 503 | A loja não tem IA configurada. | {"error":"OpenAI key not set in module settings"} |
Refazer o índice (alias)
É a mesma operação de /kb/regenerate, com o nome mais explícito. As duas rotas fazem exatamente a mesma coisa.
/api/v1/admin/whatsapp/kb/regenerate-embeddingsAdminRefaz o índice de busca da base (alias)
Corpo da requisição
vendor_iduuididsarrayExemplo de requisição (Refazer o índice (alias))
curl -X POST "$BASE_URL/api/v1/admin/whatsapp/kb/regenerate-embeddings" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}'Resposta (Refazer o índice (alias))
{
"regenerated": 3
}Campos da resposta
regeneratedintegerErros (Refazer o índice (alias))
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo presente com tipo errado (por exemplo vendor_id numérico). | {"error":"invalid request body: ..."} |
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_settings"} ou {"error":"admin access required"} |
| 500 | Falha ao refazer. | {"error":"Failed to regenerate embeddings: ..."} |
| 503 | A loja não tem IA configurada. | {"error":"OpenAI key not set in module settings"} |