feat: новая функция
This commit is contained in:
@@ -395,6 +395,15 @@ async function generateLLMResponse({
|
||||
const ollamaUrl = ollamaConfig.getBaseUrl();
|
||||
const timeouts = ollamaConfig.getTimeouts();
|
||||
|
||||
// Логируем размер промпта для отладки
|
||||
const promptSize = JSON.stringify(messages).length;
|
||||
console.log(`[RAG] Отправка запроса в Ollama. Размер промпта: ${promptSize} символов, таймаут: ${timeouts.ollamaChat/1000}с`);
|
||||
|
||||
// Проверяем размер промпта и предупреждаем, если он большой
|
||||
if (promptSize > 10000) {
|
||||
console.warn(`[RAG] ⚠️ Большой промпт (${promptSize} символов). Возможны проблемы с производительностью.`);
|
||||
}
|
||||
|
||||
const response = await axios.post(`${ollamaUrl}/api/chat`, {
|
||||
model: model || ollamaConfig.getDefaultModel(),
|
||||
messages: messages,
|
||||
@@ -406,7 +415,17 @@ async function generateLLMResponse({
|
||||
llmResponse = response.data.message.content;
|
||||
|
||||
} catch (error) {
|
||||
console.error(`[RAG] Error in Ollama call:`, error.message);
|
||||
const isTimeout = error.message && (
|
||||
error.message.includes('timeout') ||
|
||||
error.message.includes('ETIMEDOUT') ||
|
||||
error.message.includes('ECONNABORTED')
|
||||
);
|
||||
|
||||
if (isTimeout) {
|
||||
console.warn(`[RAG] Ollama timeout после ${timeouts.ollamaChat/1000}с. Возможно, модель перегружена или контекст слишком большой.`);
|
||||
} else {
|
||||
console.error(`[RAG] Error in Ollama call:`, error.message);
|
||||
}
|
||||
|
||||
// Финальный fallback - возврат ответа из RAG
|
||||
if (answer) {
|
||||
@@ -414,6 +433,11 @@ async function generateLLMResponse({
|
||||
return answer;
|
||||
}
|
||||
|
||||
// Если был таймаут и нет ответа из RAG - возвращаем более информативное сообщение
|
||||
if (isTimeout) {
|
||||
return 'Извините, обработка запроса заняла слишком много времени. Пожалуйста, попробуйте упростить ваш вопрос или повторите попытку позже.';
|
||||
}
|
||||
|
||||
return 'Извините, произошла ошибка при генерации ответа.';
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user