mirror of
https://github.com/jamiepine/voicebox.git
synced 2026-09-15 04:40:40 -07:00
fix(mcp): preserve speak engine defaults
This commit is contained in:
@@ -75,22 +75,28 @@ def register_tools(mcp: FastMCP) -> None:
|
||||
"Voicebox → Settings → MCP."
|
||||
)
|
||||
|
||||
resolved_personality = personality
|
||||
if resolved_personality is None and client_id:
|
||||
binding = None
|
||||
if client_id:
|
||||
binding = (
|
||||
db.query(MCPClientBinding)
|
||||
.filter(MCPClientBinding.client_id == client_id)
|
||||
.first()
|
||||
)
|
||||
if binding is not None:
|
||||
resolved_personality = bool(binding.default_personality)
|
||||
|
||||
resolved_personality = personality
|
||||
if resolved_personality is None and binding is not None:
|
||||
resolved_personality = bool(binding.default_personality)
|
||||
|
||||
resolved_engine = engine
|
||||
if resolved_engine is None and binding is not None:
|
||||
resolved_engine = binding.default_engine
|
||||
|
||||
use_persona = bool(resolved_personality) and bool(vp.personality)
|
||||
return await _speak(
|
||||
profile_id=vp.id,
|
||||
profile_name=vp.name,
|
||||
text=text,
|
||||
engine=engine,
|
||||
engine=resolved_engine,
|
||||
language=language,
|
||||
personality=use_persona,
|
||||
db=db,
|
||||
@@ -232,7 +238,7 @@ async def _speak(
|
||||
profile_id=profile_id,
|
||||
text=text,
|
||||
language=language or "en",
|
||||
engine=engine or "qwen",
|
||||
engine=engine,
|
||||
personality=personality,
|
||||
)
|
||||
generation = await generate_speech(req, db)
|
||||
|
||||
+12
-6
@@ -52,16 +52,22 @@ async def speak(
|
||||
),
|
||||
)
|
||||
|
||||
# Resolve per-client personality default when the caller didn't pin it.
|
||||
personality_flag = data.personality
|
||||
if personality_flag is None and client_id:
|
||||
binding = None
|
||||
if client_id:
|
||||
binding = (
|
||||
db.query(MCPClientBinding)
|
||||
.filter(MCPClientBinding.client_id == client_id)
|
||||
.first()
|
||||
)
|
||||
if binding is not None:
|
||||
personality_flag = bool(binding.default_personality)
|
||||
|
||||
# Resolve per-client personality default when the caller didn't pin it.
|
||||
personality_flag = data.personality
|
||||
if personality_flag is None and binding is not None:
|
||||
personality_flag = bool(binding.default_personality)
|
||||
|
||||
engine = data.engine
|
||||
if engine is None and binding is not None:
|
||||
engine = binding.default_engine
|
||||
|
||||
from .generations import generate_speech
|
||||
|
||||
@@ -70,7 +76,7 @@ async def speak(
|
||||
profile_id=profile.id,
|
||||
text=data.text,
|
||||
language=data.language or "en",
|
||||
engine=data.engine or "qwen",
|
||||
engine=engine,
|
||||
personality=bool(personality_flag),
|
||||
),
|
||||
db,
|
||||
|
||||
Reference in New Issue
Block a user