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
deploy / deploy (push) Successful in 30s
This commit was merged in pull request #7.
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