TgRouting/deamon/utils/llmUtils.js

50 lines
1.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Генерирует системный промт для LLM-роутинга
* @param {Array} bots - [{ name: 'trip_bot', description: '...' }, ...]
* @returns {string}
*/
export function buildRouterPrompt(bots) {
console.log('bots',bots);
// Преобразуем список ботов в текст с описаниями
const botsBlock = bots.map(
b => `- "${b.name}": ${b.description || 'Без описания.'}`
).join('\n')
// Примеры (можно вынести отдельно)
const examples = `
Вход: "Какая погода завтра в Белграде?"
Ответ:
{
"bot": "weather_bot",
"reason": "Запрос прогноза погоды на завтра в конкретном городе"
}
Вход: "Забронируй мне командировку в Москву с понедельника"
Ответ:
{
"bot": "trip_bot",
"reason": "Пользователь оформляет командировку"
}`.trim()
return `
Ты выступаешь в роли маршрутизатора сообщений между различными подботами в Telegram.
На входе ты получаешь только текст сообщения от пользователя.
Твоя задача — определить, какому из подботов следует передать сообщение. Ответ строго в формате JSON:
{
"bot": "название_бота",
"reason": "короткое объяснение маршрута"
}
Вот доступные подботы и их специализация в формаьте (- {name}: {description}):
${botsBlock}
Если сообщение не удаётся однозначно отнести ни к одному боту или нет бота способного обработать это исключение, укажи "bot": "unknown".
`.trim()
}