SmartSplit
Divida conteúdos longos em blocos temáticos prontos para processamento individual por IA
Use o SmartSplit quando precisar processar um documento longo que não cabe em uma única chamada de IA. Ele divide o conteúdo em blocos temáticos coerentes e autocontidos — cada bloco pode ser enviado para uma IA separadamente, sem perder contexto.
O SmartSplit cobre pelo menos 90% do texto original. Nenhuma parte relevante do conteúdo é descartada.
Quando usar
| Situação | Ferramenta |
|---|---|
| Manter só o trecho relevante de um texto | SmartCut |
| Processar um documento inteiro em partes | SmartSplit |
| Conteúdo longo demais para uma única chamada de IA | SmartSplit |
| Precisar que todo o conteúdo seja coberto, sem perdas | SmartSplit |
Exemplo
const { smartSplit } = require('@/app/v4/smartSplit');
const globalDataHelper = require('@/app/v2/src/globalData');
const result = await smartSplit({
text: 'Conteúdo longo com múltiplos tópicos...',
globalData: new globalDataHelper(),
hostId: 'uuid-do-host',
avatarId: 'uuid-do-avatar',
options: {
generalInstructions: 'Agrupe por tópico. Repita títulos e cabeçalhos nos blocos onde forem relevantes.',
},
});
if (result.success) {
for (const block of result.blocks) {
console.log(`[${block.label}] ${block.text}`);
}
}
Parâmetros
Texto a ser dividido em blocos
Instância de GlobalData
ID do host
ID do avatar
Instruções para a IA sobre como agrupar os blocos. Exemplos: "agrupe por tópico", "repita cabeçalhos nos blocos onde forem relevantes"
Modelo LLM para o particionamento
Provedor do modelo LLM
Resposta
{
"success": true,
"blocks": [
{
"lines": [0, 1, 2, 3, 4, 5],
"text": "Título do documento\nIntrodução ao tema...\nContexto geral...",
"label": "Introdução"
},
{
"lines": [0, 6, 7, 8, 9, 10],
"text": "Título do documento\nDetalhes do produto X...\nEspecificações técnicas...",
"label": "Produto X"
},
{
"lines": [0, 11, 12, 13, 14],
"text": "Título do documento\nPolítica de preços...\nCondições comerciais...",
"label": "Preços e condições"
}
],
"coverage": 0.97,
"totalLines": 15,
"sessionsUsed": 1
}
Campos da Resposta
true quando o particionamento foi concluído com cobertura suficiente
Blocos resultantes do particionamento
Fração do texto original coberta pelos blocos (0–1). Ex: 0.97 = 97%
Total de linhas no texto original
Número de chamadas de IA realizadas
Erros
| Código | Descrição |
|---|---|
success: false, reason: coverage_below_threshold | A IA não cobriu pelo menos 90% do texto. Os blocos parciais ainda são retornados |
success: false, reason: error | Erro interno durante o processamento |