Pular para o conteúdo

Bases de Conhecimento

Esses endpoints permitem que você liste as bases de conhecimento da sua organização, gerencie os itens de texto de cada base e execute buscas semânticas (RAG) diretamente via API.

Base URL: https://api.squados.io/v1

Toda requisição exige o header Authorization: Bearer pk_.... Requisições com corpo precisam também de Content-Type: application/json. Consulte Autenticação para detalhes sobre como gerar e usar tokens.


Lista todas as bases de conhecimento da organização.

Parâmetros de query

ParâmetroTipoPadrãoDescrição
limitinteger50Número de registros por página. Máximo: 100.
offsetinteger0Posição inicial para paginação.
Terminal window
curl https://api.squados.io/v1/bases \
-H "Authorization: Bearer pk_sua_chave_aqui"

Resposta — 200 OK

{
"bases": [
{
"id": "BASE_ID",
"name": "Documentação de Produto",
"description": "Base com manuais e FAQs",
"item_count": 42,
"created_at": "2025-03-10T14:22:00Z",
"updated_at": "2025-06-01T09:45:00Z"
}
],
"total": 3,
"limit": 50,
"offset": 0
}

Retorna os detalhes de uma base de conhecimento específica.

Parâmetros de caminho

ParâmetroTipoDescrição
baseIduuidID da base de conhecimento.
Terminal window
curl https://api.squados.io/v1/bases/BASE_ID \
-H "Authorization: Bearer pk_sua_chave_aqui"

Resposta — 200 OK

{
"id": "BASE_ID",
"name": "Documentação de Produto",
"description": "Base com manuais e FAQs",
"item_count": 42,
"created_at": "2025-03-10T14:22:00Z",
"updated_at": "2025-06-01T09:45:00Z"
}

Erros: 404 se a base não for encontrada.


Lista os itens de uma base de conhecimento com suporte a filtro por status.

Parâmetros de caminho

ParâmetroTipoDescrição
baseIduuidID da base de conhecimento.

Parâmetros de query

ParâmetroTipoPadrãoDescrição
limitinteger50Número de registros por página. Máximo: 100.
offsetinteger0Posição inicial para paginação.
statusstringFiltra por status: pending, processing, processed ou error.
Terminal window
curl "https://api.squados.io/v1/bases/BASE_ID/items?status=processed&limit=20" \
-H "Authorization: Bearer pk_sua_chave_aqui"

Resposta — 200 OK

{
"base_id": "BASE_ID",
"items": [
{
"id": "ITEM_ID",
"name": "Política de Devolução",
"type": "text",
"source": "text",
"status": "processed",
"chunk_count": 4,
"token_count": 812,
"content_preview": "Nossa política de devolução permite a troca ou estorno de qualquer produto em até 30 dias…",
"created_at": "2025-05-20T11:00:00Z"
}
],
"total": 18,
"limit": 20,
"offset": 0
}

Insere um novo item de texto na base de conhecimento.

Parâmetros de caminho

ParâmetroTipoDescrição
baseIduuidID da base de conhecimento.

Corpo da requisição

CampoTipoObrigatórioDescrição
namestringSimTítulo do item. Mínimo: 1 caractere.
contentstringSimConteúdo textual completo. Máximo: 100.000 caracteres.
Terminal window
curl -X POST https://api.squados.io/v1/bases/BASE_ID/items \
-H "Authorization: Bearer pk_sua_chave_aqui" \
-H "Content-Type: application/json" \
-d '{
"name": "Política de Devolução",
"content": "Nossa política permite a troca ou estorno de qualquer produto em até 30 dias após a compra..."
}'

Resposta — 201 Created

{
"id": "ITEM_ID",
"base_id": "BASE_ID",
"name": "Política de Devolução",
"type": "text",
"status": "pending",
"created_at": "2025-06-08T12:00:00Z"
}

Erros: 400 se o corpo for inválido ou o content ultrapassar 100.000 caracteres; 404 se a base não for encontrada.


Retorna o detalhe completo de um item, incluindo o conteúdo integral.

Parâmetros de caminho

ParâmetroTipoDescrição
baseIduuidID da base de conhecimento.
itemIduuidID do item.
Terminal window
curl https://api.squados.io/v1/bases/BASE_ID/items/ITEM_ID \
-H "Authorization: Bearer pk_sua_chave_aqui"

Resposta — 200 OK

{
"id": "ITEM_ID",
"base_id": "BASE_ID",
"name": "Política de Devolução",
"type": "text",
"source": "text",
"status": "processed",
"chunk_count": 4,
"token_count": 812,
"content_preview": "Nossa política de devolução permite a troca ou estorno de qualquer produto em até 30 dias…",
"content": "Nossa política de devolução permite a troca ou estorno de qualquer produto em até 30 dias após a compra. Para solicitar, acesse sua conta e abra um chamado...",
"created_at": "2025-05-20T11:00:00Z"
}

O campo content contém o texto completo (até 100.000 caracteres). Se o item ainda não foi processado, content é null.

Erros: 400 se baseId ou itemId não forem UUIDs válidos; 404 se o item não for encontrado.


Atualiza o nome e/ou conteúdo de um item criado via texto (source: "text").

Parâmetros de caminho

ParâmetroTipoDescrição
baseIduuidID da base de conhecimento.
itemIduuidID do item.

Corpo da requisição — ao menos um campo é obrigatório.

CampoTipoObrigatórioDescrição
namestringNãoNovo título do item.
contentstringNãoNovo conteúdo textual. Máximo: 100.000 caracteres.
Terminal window
curl -X PATCH https://api.squados.io/v1/bases/BASE_ID/items/ITEM_ID \
-H "Authorization: Bearer pk_sua_chave_aqui" \
-H "Content-Type: application/json" \
-d '{
"content": "Texto atualizado com as novas condições de devolução..."
}'

Resposta — 200 OK

Retorna o BaseItemDetail atualizado. Note que status volta para "pending" porque o re-embedding é disparado automaticamente.

{
"id": "ITEM_ID",
"base_id": "BASE_ID",
"name": "Política de Devolução",
"type": "text",
"source": "text",
"status": "pending",
"chunk_count": 0,
"token_count": 0,
"content_preview": null,
"content": "Texto atualizado com as novas condições de devolução...",
"created_at": "2025-05-20T11:00:00Z"
}

Remove um item da base de conhecimento.

Parâmetros de caminho

ParâmetroTipoDescrição
baseIduuidID da base de conhecimento.
itemIduuidID do item.
Terminal window
curl -X DELETE https://api.squados.io/v1/bases/BASE_ID/items/ITEM_ID \
-H "Authorization: Bearer pk_sua_chave_aqui"

Resposta — 204 No Content

Sem corpo. A limpeza dos vetores correspondentes no banco vetorial (Qdrant) é enfileirada automaticamente após a remoção.

Erros: 404 se o item não for encontrado.


Executa uma busca semântica diretamente na base usando embeddings. Útil para integrar RAG em sistemas externos — receba os chunks mais relevantes para uma pergunta e use-os no seu próprio pipeline.

Parâmetros de caminho

ParâmetroTipoDescrição
baseIduuidID da base de conhecimento.

Corpo da requisição

CampoTipoObrigatórioDescrição
querystringSimTexto a ser buscado semanticamente.
limitintegerNãoNúmero máximo de resultados. Padrão: 5. Máximo: 20.
min_scorenumberNãoScore mínimo de similaridade (0 a 1). Padrão: 0.6.

Exemplo simples:

Terminal window
curl -X POST https://api.squados.io/v1/bases/BASE_ID/query \
-H "Authorization: Bearer pk_sua_chave_aqui" \
-H "Content-Type: application/json" \
-d '{
"query": "Qual é a política de devolução?"
}'

Exemplo com filtros:

Terminal window
curl -X POST https://api.squados.io/v1/bases/BASE_ID/query \
-H "Authorization: Bearer pk_sua_chave_aqui" \
-H "Content-Type: application/json" \
-d '{
"query": "Quais são os preços dos produtos?",
"limit": 10,
"min_score": 0.7
}'

Resposta — 200 OK

{
"query": "Qual é a política de devolução?",
"results": [
{
"content": "Nossa política permite a troca ou estorno de qualquer produto em até 30 dias após a compra...",
"score": 0.92,
"item_id": "ITEM_ID",
"item_name": "Política de Devolução",
"chunk_index": 0
},
{
"content": "Para produtos com defeito de fabricação, o prazo é estendido para 90 dias conforme o CDC...",
"score": 0.81,
"item_id": "ITEM_ID",
"item_name": "Política de Devolução",
"chunk_index": 1
}
],
"total_results": 2,
"embedding_model": "text-embedding-3-small"
}

Cada resultado retorna o chunk de texto (content), seu score de similaridade (0 a 1), o item de origem e o índice do chunk dentro do item.

Erros: 400 se query for inválida ou ausente; 404 se a base não for encontrada; 500 se o RAG não estiver configurado para a base.


Para detalhes sobre erros e códigos de status HTTP, consulte Erros.