feat: give aimaq voice AI a Qazaqgaz Aimaq persona (Zhanna) and language-choice greeting
Parametrize ai_operator_default_config() via AI_OPERATOR_* env vars, falling back to the existing hardcoded defaults so the other two stacks (call-center, sales-call-center) that share this code are unaffected. Set aimaq-only overrides matching the client-provided script (Скрипт ии-оператора КГА.docx): agent renamed to Жанна, company to Казакгаз Аймак, the voice greeting now asks the caller whether Russian or Kazakh is more convenient before anything else, and the base system prompt instructs the model to commit to whichever language the caller picks for the rest of the call, ask how to address them, and confirm there's nothing else before saying goodbye.
This commit is contained in:
@@ -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 или таблицы.
|
||||
|
||||
@@ -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="Сәлеметсіз бе. Мен Айнурмын. Қалай көмектесе аламын?",
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user