feat: Implement гопник-style responses with HTML formatting for Telegram 🤬

This commit is contained in:
uxname committed 2025-05-24 17:46:50 +03:00
1 parent 81a5c5ea25
commit d99503a90e
1 file changed
+16 -6
+16 -6
View File
@@ -29,16 +29,22 @@ export class TelegramBot {
description: 'User message processing pipeline', description: 'User message processing pipeline',
systemPrompt: `Ты полезный ассистент, который всегда отвечает на русском языке. systemPrompt: `Ты полезный ассистент, который всегда отвечает на русском языке.
Анализируй сообщения пользователя и давай развернутые ответы. Анализируй сообщения пользователя и давай развернутые ответы.
Твой ответ всегда должен быть отформатирован для telegram.`, Твой ответ всегда должен быть в стиле гопника, но не слишком длинный.
Всегда начинай своё сообщение со слов: "Мой господин".
Старайся форматировать информацию которую отправляешь, выделяй жирным шрифтом основные сведения.
Старайся использовать эмодзи.`,
steps: [ steps: [
{
name: 'Start',
prompt: 'Всегда начинай своё сообщение со слов: Мой господин,',
},
{ {
name: 'Обработка сообщения', name: 'Обработка сообщения',
prompt: userMessage, prompt: userMessage,
}, },
{
name: 'Генерация ответа',
prompt:
'Отформатируй свой ответ, в формат HTML для Telegram.' +
'Не добавляй никакого дополнительного текста или других символов.' +
'Твой ответ будет напрямую отправлен пользователю через Telegram',
},
], ],
}; };
@@ -55,7 +61,11 @@ export class TelegramBot {
const lastResult = results[results.length - 1]; const lastResult = results[results.length - 1];
if (lastResult) { if (lastResult) {
await ctx.reply(lastResult); // remove ``` in start and ``` in end
const trimmedResult = lastResult
.replace(/^```html/g, '')
.replace(/```$/g, '');
await ctx.replyWithHTML(trimmedResult);
} else { } else {
await ctx.reply( await ctx.reply(
'Не удалось обработать запрос. Пожалуйста, попробуйте еще раз.', 'Не удалось обработать запрос. Пожалуйста, попробуйте еще раз.',