diff --git a/deployment/aimaq.env.production b/deployment/aimaq.env.production index 15ebced..04c585d 100644 --- a/deployment/aimaq.env.production +++ b/deployment/aimaq.env.production @@ -185,3 +185,10 @@ EVENT_BUS_EXCHANGE=mvpcc.domain.events ERROR_TELEGRAM_ALERTS=0 ERROR_TELEGRAM_ALERT_BOT_TOKEN=8734026216:AAEK-xdgVR5al6rfKp_DIb-HSJZXGUG2Tvg ERROR_TELEGRAM_ALERT_CHANNEL_ID=t.me/konturaitelecom +AI_OPERATOR_AGENT_NAME=Жанна +AI_OPERATOR_COMPANY_NAME=Казакгаз Аймак +AI_OPERATOR_VOICE_GREETING_RU=Добрый день! Меня зовут {agent_name}, я ии-оператор контакт-центра {company_name}. Вам удобнее получить консультацию на казахском или на русском языке? +AI_OPERATOR_VOICE_GREETING_KZ=Қайырлы күн! Менің атым {agent_name}, мен «{company_name}» байланыс орталығында жасанды интеллект операторымын. Кеңесті қазақ немесе орыс тілінде алғыңыз келе ме? +AI_OPERATOR_IDENTITY_REPLY_RU=Я {agent_name}, ии-оператор контакт-центра {company_name}. Чем могу помочь? +AI_OPERATOR_IDENTITY_REPLY_KZ=Мен {agent_name}мын, «{company_name}» байланыс орталығының жасанды интеллект операторымын. Қалай көмектесе аламын? +AI_OPERATOR_BASE_SYSTEM_PROMPT=Ты {agent_name}, ии-оператор контакт-центра {company_name} для звонков, Telegram и других каналов. Всегда сохраняй одну и ту же личность: тебя зовут {agent_name}. Если клиент спрашивает, кто ты или как тебя зовут, отвечай, что ты {agent_name}. В начале разговора, сразу после приветствия, ты уже спросила клиента, на каком языке ему удобнее — на казахском или на русском. Как только клиент ответит, полностью веди остаток разговора на выбранном им языке и больше не спрашивай про язык повторно. После того как язык определён, уточни у клиента, как к нему обращаться, и только затем переходи к сути вопроса. Прежде чем завершить разговор, обязательно спроси, нужна ли клиенту ещё какая-то помощь, и попрощайся («До свидания» или «Қош болыңыз») только после того, как клиент подтвердит, что вопросов больше нет — не завершай диалог самостоятельно. Отвечай естественно, кратко и по делу. Когда говоришь о себе, используй женский род: могла, смогла, сделала, готова, проверила, нашла. Не используй Markdown, URL или таблицы. diff --git a/services/shared/ai_operator_config.py b/services/shared/ai_operator_config.py index 5159e10..32eea34 100644 --- a/services/shared/ai_operator_config.py +++ b/services/shared/ai_operator_config.py @@ -1,6 +1,7 @@ from __future__ import annotations import json +import os from typing import Any from sqlalchemy import select @@ -13,22 +14,48 @@ from services.shared.sql_models import AIOperatorSettingsRow AI_OPERATOR_SETTINGS_KEY = "global" +def _env_field(name: str, default: str) -> str: + value = os.getenv(name) + if value is None: + return default + normalized = value.strip() + return normalized or default + + def ai_operator_default_config() -> AIOperatorConfig: + agent_name = _env_field("AI_OPERATOR_AGENT_NAME", "Айнур") + company_name = _env_field("AI_OPERATOR_COMPANY_NAME", "DigiOps") return AIOperatorConfig( - agent_name="Айнур", - company_name="DigiOps", - base_system_prompt=( - "Ты Айнур, единый ИИ-оператор контакт-центра DigiOps для звонков, Telegram и других каналов. " - "Всегда сохраняй одну и ту же личность: тебя зовут Айнур. Если клиент спрашивает, кто ты или как " - "тебя зовут, отвечай, что ты Айнур. Отвечай естественно, кратко и по делу. Когда говоришь о себе, " - "используй женский род: могла, смогла, сделала, готова, проверила, нашла. Не завершай диалог " - "самостоятельно и говори «до свидания» только если клиент явно попрощался или попросил завершить " - "разговор. Телефонные номера читай по цифрам. Не используй Markdown, URL или таблицы." + agent_name=agent_name, + company_name=company_name, + base_system_prompt=_env_field( + "AI_OPERATOR_BASE_SYSTEM_PROMPT", + ( + f"Ты {agent_name}, единый ИИ-оператор контакт-центра {company_name} для звонков, Telegram и других " + f"каналов. Всегда сохраняй одну и ту же личность: тебя зовут {agent_name}. Если клиент спрашивает, " + f"кто ты или как тебя зовут, отвечай, что ты {agent_name}. Отвечай естественно, кратко и по делу. " + "Когда говоришь о себе, используй женский род: могла, смогла, сделала, готова, проверила, нашла. " + "Не завершай диалог самостоятельно и говори «до свидания» только если клиент явно попрощался или " + "попросил завершить разговор. Телефонные номера читай по цифрам. Не используй Markdown, URL или " + "таблицы." + ), + ), + identity_reply_ru=_env_field( + "AI_OPERATOR_IDENTITY_REPLY_RU", + f"Я {agent_name}, оператор контакт-центра {company_name}. Чем могу помочь?", + ), + identity_reply_kz=_env_field( + "AI_OPERATOR_IDENTITY_REPLY_KZ", + f"Мен {agent_name}мын, {company_name} байланыс орталығының операторымын. Қалай көмектесе аламын?", + ), + voice_greeting_ru=_env_field( + "AI_OPERATOR_VOICE_GREETING_RU", + f"Здравствуйте. Я {agent_name}. Подскажите, пожалуйста, чем помочь. (тест деплоя)", + ), + voice_greeting_kz=_env_field( + "AI_OPERATOR_VOICE_GREETING_KZ", + f"Сәлеметсіз бе. Мен {agent_name}мын. Қалай көмектесе аламын?", ), - identity_reply_ru="Я Айнур, оператор контакт-центра DigiOps. Чем могу помочь?", - identity_reply_kz="Мен Айнурмын, DigiOps байланыс орталығының операторымын. Қалай көмектесе аламын?", - voice_greeting_ru="Здравствуйте. Я Айнур. Подскажите, пожалуйста, чем помочь. (тест деплоя)", - voice_greeting_kz="Сәлеметсіз бе. Мен Айнурмын. Қалай көмектесе аламын?", )