feat(ai): add rolling conversation summary memory
This commit is contained in:
@@ -292,7 +292,7 @@ def spawn_service(spec: dict[str, Any], runtime_dir: Path, data_dir: Path, base_
|
||||
env["AI_TIMEOUT_SECONDS"] = env.get("AI_TIMEOUT_SECONDS", "20")
|
||||
env["AI_TELEGRAM_ENABLED"] = env.get("AI_TELEGRAM_ENABLED", "0")
|
||||
env["AI_TELEGRAM_ALWAYS_REPLY"] = env.get("AI_TELEGRAM_ALWAYS_REPLY", "0")
|
||||
env["AI_TELEGRAM_MAX_CONTEXT_MESSAGES"] = env.get("AI_TELEGRAM_MAX_CONTEXT_MESSAGES", "20")
|
||||
env["AI_TELEGRAM_MAX_CONTEXT_MESSAGES"] = env.get("AI_TELEGRAM_MAX_CONTEXT_MESSAGES", "12")
|
||||
env["AI_TELEGRAM_MAX_KB_RESULTS"] = env.get("AI_TELEGRAM_MAX_KB_RESULTS", "3")
|
||||
env["AI_TELEGRAM_CONFIDENCE_HANDOFF_THRESHOLD"] = env.get(
|
||||
"AI_TELEGRAM_CONFIDENCE_HANDOFF_THRESHOLD",
|
||||
@@ -300,7 +300,7 @@ def spawn_service(spec: dict[str, Any], runtime_dir: Path, data_dir: Path, base_
|
||||
)
|
||||
env["AI_WHATSAPP_ENABLED"] = env.get("AI_WHATSAPP_ENABLED", "0")
|
||||
env["AI_WHATSAPP_ALWAYS_REPLY"] = env.get("AI_WHATSAPP_ALWAYS_REPLY", "0")
|
||||
env["AI_WHATSAPP_MAX_CONTEXT_MESSAGES"] = env.get("AI_WHATSAPP_MAX_CONTEXT_MESSAGES", "20")
|
||||
env["AI_WHATSAPP_MAX_CONTEXT_MESSAGES"] = env.get("AI_WHATSAPP_MAX_CONTEXT_MESSAGES", "12")
|
||||
env["AI_WHATSAPP_MAX_KB_RESULTS"] = env.get("AI_WHATSAPP_MAX_KB_RESULTS", "3")
|
||||
env["AI_WHATSAPP_CONFIDENCE_HANDOFF_THRESHOLD"] = env.get(
|
||||
"AI_WHATSAPP_CONFIDENCE_HANDOFF_THRESHOLD",
|
||||
@@ -330,7 +330,7 @@ def spawn_service(spec: dict[str, Any], runtime_dir: Path, data_dir: Path, base_
|
||||
env["AI_VOICE_V2_PARTIAL_ASR"] = env.get("AI_VOICE_V2_PARTIAL_ASR", "1")
|
||||
env["AI_VOICE_V2_EMOTIVE_ACK_ENABLED"] = env.get("AI_VOICE_V2_EMOTIVE_ACK_ENABLED", "1")
|
||||
env["AI_VOICE_V2_EMOTIVE_ACK_RU_ONLY"] = env.get("AI_VOICE_V2_EMOTIVE_ACK_RU_ONLY", "1")
|
||||
env["AI_VOICE_MAX_CONTEXT_SEGMENTS"] = env.get("AI_VOICE_MAX_CONTEXT_SEGMENTS", "8")
|
||||
env["AI_VOICE_MAX_CONTEXT_SEGMENTS"] = env.get("AI_VOICE_MAX_CONTEXT_SEGMENTS", "12")
|
||||
env["AI_VOICE_HANDOFF_TIMEOUT_SECONDS"] = env.get("AI_VOICE_HANDOFF_TIMEOUT_SECONDS", "8")
|
||||
env["AI_VOICE_VAD_TRAILING_SILENCE_MS"] = env.get("AI_VOICE_VAD_TRAILING_SILENCE_MS", "400")
|
||||
env["AI_VOICE_RUNTIME_TRUSTED_SERVICE_SUBJECTS"] = env.get(
|
||||
|
||||
@@ -23,7 +23,7 @@ from services.ai_voice_runtime_service.providers.tts import build_tts_provider
|
||||
|
||||
|
||||
def _default_provider_name() -> str:
|
||||
return os.getenv("AI_VOICE_TTS_PROVIDER", "openai").strip() or "openai"
|
||||
return os.getenv("AI_VOICE_TTS_PROVIDER", "yandex").strip() or "yandex"
|
||||
|
||||
|
||||
def _parse_args() -> argparse.Namespace:
|
||||
@@ -39,7 +39,7 @@ def _parse_args() -> argparse.Namespace:
|
||||
parser.add_argument(
|
||||
"--provider",
|
||||
default=_default_provider_name(),
|
||||
help="TTS provider name. Defaults to AI_VOICE_TTS_PROVIDER or openai.",
|
||||
help="TTS provider name. Defaults to AI_VOICE_TTS_PROVIDER or yandex.",
|
||||
)
|
||||
parser.add_argument("--sample-rate", type=int, default=8000, help="Target WAV sample rate. Defaults to 8000.")
|
||||
parser.add_argument("--default-language", default="ru", help="Fallback language for ambiguous prompts. Defaults to ru.")
|
||||
|
||||
@@ -16,7 +16,7 @@ from services.ai_voice_runtime_service.providers.tts import build_tts_provider
|
||||
|
||||
|
||||
def _parse_args() -> argparse.Namespace:
|
||||
default_provider = os.getenv("AI_VOICE_TTS_PROVIDER", "openai").strip() or "openai"
|
||||
default_provider = os.getenv("AI_VOICE_TTS_PROVIDER", "yandex").strip() or "yandex"
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Generate TTS once, cache it on the server, and materialize a WAV prompt file.",
|
||||
)
|
||||
@@ -26,7 +26,7 @@ def _parse_args() -> argparse.Namespace:
|
||||
parser.add_argument(
|
||||
"--provider",
|
||||
default=default_provider,
|
||||
help="TTS provider name. Defaults to AI_VOICE_TTS_PROVIDER or openai.",
|
||||
help="TTS provider name. Defaults to AI_VOICE_TTS_PROVIDER or yandex.",
|
||||
)
|
||||
parser.add_argument("--sample-rate", type=int, default=8000, help="Target WAV sample rate. Defaults to 8000.")
|
||||
return parser.parse_args()
|
||||
|
||||
Reference in New Issue
Block a user