mirror of
https://github.com/jamiepine/voicebox.git
synced 2026-10-03 00:55:14 -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."
|
"Voicebox → Settings → MCP."
|
||||||
)
|
)
|
||||||
|
|
||||||
resolved_personality = personality
|
binding = None
|
||||||
if resolved_personality is None and client_id:
|
if client_id:
|
||||||
binding = (
|
binding = (
|
||||||
db.query(MCPClientBinding)
|
db.query(MCPClientBinding)
|
||||||
.filter(MCPClientBinding.client_id == client_id)
|
.filter(MCPClientBinding.client_id == client_id)
|
||||||
.first()
|
.first()
|
||||||
)
|
)
|
||||||
if binding is not None:
|
|
||||||
|
resolved_personality = personality
|
||||||
|
if resolved_personality is None and binding is not None:
|
||||||
resolved_personality = bool(binding.default_personality)
|
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)
|
use_persona = bool(resolved_personality) and bool(vp.personality)
|
||||||
return await _speak(
|
return await _speak(
|
||||||
profile_id=vp.id,
|
profile_id=vp.id,
|
||||||
profile_name=vp.name,
|
profile_name=vp.name,
|
||||||
text=text,
|
text=text,
|
||||||
engine=engine,
|
engine=resolved_engine,
|
||||||
language=language,
|
language=language,
|
||||||
personality=use_persona,
|
personality=use_persona,
|
||||||
db=db,
|
db=db,
|
||||||
@@ -232,7 +238,7 @@ async def _speak(
|
|||||||
profile_id=profile_id,
|
profile_id=profile_id,
|
||||||
text=text,
|
text=text,
|
||||||
language=language or "en",
|
language=language or "en",
|
||||||
engine=engine or "qwen",
|
engine=engine,
|
||||||
personality=personality,
|
personality=personality,
|
||||||
)
|
)
|
||||||
generation = await generate_speech(req, db)
|
generation = await generate_speech(req, db)
|
||||||
|
|||||||
+11
-5
@@ -52,17 +52,23 @@ async def speak(
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
# Resolve per-client personality default when the caller didn't pin it.
|
binding = None
|
||||||
personality_flag = data.personality
|
if client_id:
|
||||||
if personality_flag is None and client_id:
|
|
||||||
binding = (
|
binding = (
|
||||||
db.query(MCPClientBinding)
|
db.query(MCPClientBinding)
|
||||||
.filter(MCPClientBinding.client_id == client_id)
|
.filter(MCPClientBinding.client_id == client_id)
|
||||||
.first()
|
.first()
|
||||||
)
|
)
|
||||||
if binding is not None:
|
|
||||||
|
# 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)
|
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
|
from .generations import generate_speech
|
||||||
|
|
||||||
generation = await generate_speech(
|
generation = await generate_speech(
|
||||||
@@ -70,7 +76,7 @@ async def speak(
|
|||||||
profile_id=profile.id,
|
profile_id=profile.id,
|
||||||
text=data.text,
|
text=data.text,
|
||||||
language=data.language or "en",
|
language=data.language or "en",
|
||||||
engine=data.engine or "qwen",
|
engine=engine,
|
||||||
personality=bool(personality_flag),
|
personality=bool(personality_flag),
|
||||||
),
|
),
|
||||||
db,
|
db,
|
||||||
|
|||||||
Reference in New Issue
Block a user