Merge pull request 'feat: aimaq voice AI persona Zhanna + language-choice greeting' (#7) from feature/aimaq-zhanna-persona-language-choice into main
deploy / deploy (push) Successful in 30s

This commit was merged in pull request #7.
This commit is contained in:
2026-08-30 07:22:16 +00:00
2 changed files with 47 additions and 13 deletions
+7
View File
@@ -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 или таблицы.
+40 -13
View File
@@ -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="Сәлеметсіз бе. Мен Айнурмын. Қалай көмектесе аламын?",
)