async function ragRetrieve(query) {
const response = await fetch('https://api-talk.saninternet.com/v1/api/rag/retrieve', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.SANTALK_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
queryText: query,
filters: { sourceTypes: ['document'], audience: 'ai_agent' },
scoreThreshold: 0.7,
returnMode: 'ai_generated_answer'
})
});
if (!response.ok) {
const error = await response.json();
switch (response.status) {
case 401: throw new Error(`Autenticação falhou: ${error.message}`);
case 403: throw new Error(`Assinatura inativa: ${error.subscriptionStatus}`);
case 422: throw new Error(`Validação: ${error.message}`);
default: throw new Error(`Erro ${response.status}: ${error.message}`);
}
}
return response.json();
}