fix(ai): issue #141 — custom OpenAI-compatible providers work + language selection on first start in sleep mode
- callOllama: reasoning_effort only for provider=ollama (others returned 400 -> stub reply) - endpoint normalization: base URL (Groq /openai/v1) -> /chat/completions appended - reasoning block stripping: <thinking>/<think> tags + thinking/response markers (Groq qwen) - handleStart: sleep mode + language_set=0 -> show language selection keyboard first - handleSetLanguage: sleep mode -> AI dialog in chosen language after selection
This commit is contained in:
@@ -128,7 +128,19 @@ ${t('profile.member_since')}: ${new Date(userStats.created_at).toLocaleDateStrin
|
||||
|
||||
// Sleep mode: если магазин на паузе — живой ИИ-диалог вместо каталога
|
||||
if (await chatbotService.isSleepMode()) {
|
||||
const lang = (await UserService.getUserByTelegramId(telegramId))?.language || 'en';
|
||||
const user = await UserService.getUserByTelegramId(telegramId);
|
||||
// Если язык ещё не выбран (первый старт) — сначала выбор языка
|
||||
if (!user?.language_set) {
|
||||
const keyboard = {
|
||||
inline_keyboard: AVAILABLE_LANGUAGES.map(code => [{
|
||||
text: LANGUAGE_NAMES[code],
|
||||
callback_data: `set_language_${code}`
|
||||
}])
|
||||
};
|
||||
await bot.sendMessage(chatId, tForUser('en')('bot.language_select'), { reply_markup: keyboard });
|
||||
return;
|
||||
}
|
||||
const lang = user?.language || 'en';
|
||||
// Приветствие от ИИ-бота (живой диалог, не заглушка)
|
||||
const welcome = await chatbotService.sendToChatbot({
|
||||
sessionId: telegramId,
|
||||
@@ -176,6 +188,23 @@ ${t('profile.member_since')}: ${new Date(userStats.created_at).toLocaleDateStrin
|
||||
|
||||
await bot.answerCallbackQuery(callbackQuery.id);
|
||||
|
||||
// Если магазин на паузе — после выбора языка сразу ИИ-диалог на выбранном языке
|
||||
if (await chatbotService.isSleepMode()) {
|
||||
try { await bot.deleteMessage(chatId, callbackQuery.message.message_id); } catch {}
|
||||
const welcome = await chatbotService.sendToChatbot({
|
||||
sessionId: telegramId,
|
||||
message: '/start',
|
||||
telegramId,
|
||||
language: lang,
|
||||
username: callbackQuery.from?.username,
|
||||
name: callbackQuery.from?.first_name,
|
||||
});
|
||||
await bot.sendMessage(chatId, welcome.reply || await chatbotService.getWelcomeMessage(), {
|
||||
reply_markup: { remove_keyboard: true },
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
const keyboard = {
|
||||
reply_markup: {
|
||||
keyboard: [
|
||||
|
||||
Reference in New Issue
Block a user