chore: ruff lint
This commit is contained in:
@@ -67,18 +67,36 @@ class SessionManagementRoute(Route):
|
||||
"stt_provider_name": None,
|
||||
"tts_provider_id": None,
|
||||
"tts_provider_name": None,
|
||||
"session_enabled": SessionServiceManager.is_session_enabled(session_id),
|
||||
"llm_enabled": SessionServiceManager.is_llm_enabled_for_session(session_id),
|
||||
"tts_enabled": SessionServiceManager.is_tts_enabled_for_session(session_id),
|
||||
"mcp_enabled": SessionServiceManager.is_mcp_enabled_for_session(session_id),
|
||||
"platform": session_id.split(":")[0] if ":" in session_id else "unknown",
|
||||
"message_type": session_id.split(":")[1] if session_id.count(":") >= 1 else "unknown",
|
||||
"session_name": SessionServiceManager.get_session_display_name(session_id),
|
||||
"session_raw_name": session_id.split(":")[2] if session_id.count(":") >= 2 else session_id,
|
||||
"session_enabled": SessionServiceManager.is_session_enabled(
|
||||
session_id
|
||||
),
|
||||
"llm_enabled": SessionServiceManager.is_llm_enabled_for_session(
|
||||
session_id
|
||||
),
|
||||
"tts_enabled": SessionServiceManager.is_tts_enabled_for_session(
|
||||
session_id
|
||||
),
|
||||
"mcp_enabled": SessionServiceManager.is_mcp_enabled_for_session(
|
||||
session_id
|
||||
),
|
||||
"platform": session_id.split(":")[0]
|
||||
if ":" in session_id
|
||||
else "unknown",
|
||||
"message_type": session_id.split(":")[1]
|
||||
if session_id.count(":") >= 1
|
||||
else "unknown",
|
||||
"session_name": SessionServiceManager.get_session_display_name(
|
||||
session_id
|
||||
),
|
||||
"session_raw_name": session_id.split(":")[2]
|
||||
if session_id.count(":") >= 2
|
||||
else session_id,
|
||||
}
|
||||
|
||||
# 获取对话信息
|
||||
conversation = self.db_helper.get_conversation_by_user_id(session_id, conversation_id)
|
||||
conversation = self.db_helper.get_conversation_by_user_id(
|
||||
session_id, conversation_id
|
||||
)
|
||||
if conversation:
|
||||
session_info["persona_id"] = conversation.persona_id
|
||||
# 查找 persona 名称
|
||||
@@ -125,7 +143,9 @@ class SessionManagementRoute(Route):
|
||||
default_stt_provider = provider_manager.curr_stt_provider_inst
|
||||
if default_stt_provider:
|
||||
session_info["stt_provider_id"] = default_stt_provider.meta().id
|
||||
session_info["stt_provider_name"] = default_stt_provider.meta().id
|
||||
session_info["stt_provider_name"] = (
|
||||
default_stt_provider.meta().id
|
||||
)
|
||||
|
||||
# TTS provider
|
||||
tts_provider_id = session_perf.get(ProviderType.TEXT_TO_SPEECH.value)
|
||||
@@ -139,42 +159,52 @@ class SessionManagementRoute(Route):
|
||||
default_tts_provider = provider_manager.curr_tts_provider_inst
|
||||
if default_tts_provider:
|
||||
session_info["tts_provider_id"] = default_tts_provider.meta().id
|
||||
session_info["tts_provider_name"] = default_tts_provider.meta().id
|
||||
session_info["tts_provider_name"] = (
|
||||
default_tts_provider.meta().id
|
||||
)
|
||||
|
||||
sessions.append(session_info)
|
||||
|
||||
# 获取可用的 personas 和 providers 列表
|
||||
available_personas = [{"name": p["name"], "prompt": p.get("prompt", "")} for p in personas]
|
||||
available_personas = [
|
||||
{"name": p["name"], "prompt": p.get("prompt", "")} for p in personas
|
||||
]
|
||||
|
||||
available_chat_providers = []
|
||||
for provider in provider_manager.provider_insts:
|
||||
meta = provider.meta()
|
||||
available_chat_providers.append({
|
||||
available_chat_providers.append(
|
||||
{
|
||||
"id": meta.id,
|
||||
"name": meta.id,
|
||||
"model": meta.model,
|
||||
"type": meta.type,
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
available_stt_providers = []
|
||||
for provider in provider_manager.stt_provider_insts:
|
||||
meta = provider.meta()
|
||||
available_stt_providers.append({
|
||||
available_stt_providers.append(
|
||||
{
|
||||
"id": meta.id,
|
||||
"name": meta.id,
|
||||
"model": meta.model,
|
||||
"type": meta.type,
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
available_tts_providers = []
|
||||
for provider in provider_manager.tts_provider_insts:
|
||||
meta = provider.meta()
|
||||
available_tts_providers.append({
|
||||
available_tts_providers.append(
|
||||
{
|
||||
"id": meta.id,
|
||||
"name": meta.id,
|
||||
"model": meta.model,
|
||||
"type": meta.type,
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
result = {
|
||||
"sessions": sessions,
|
||||
@@ -206,16 +236,26 @@ class SessionManagementRoute(Route):
|
||||
|
||||
# 获取会话当前的对话 ID
|
||||
conversation_manager = self.core_lifecycle.star_context.conversation_manager
|
||||
conversation_id = await conversation_manager.get_curr_conversation_id(session_id)
|
||||
conversation_id = await conversation_manager.get_curr_conversation_id(
|
||||
session_id
|
||||
)
|
||||
|
||||
if not conversation_id:
|
||||
# 如果没有对话,创建一个新的对话
|
||||
conversation_id = await conversation_manager.new_conversation(session_id)
|
||||
conversation_id = await conversation_manager.new_conversation(
|
||||
session_id
|
||||
)
|
||||
|
||||
# 更新 persona
|
||||
await conversation_manager.update_conversation_persona_id(session_id, persona_name)
|
||||
await conversation_manager.update_conversation_persona_id(
|
||||
session_id, persona_name
|
||||
)
|
||||
|
||||
return Response().ok({"message": f"成功更新会话 {session_id} 的人格为 {persona_name}"}).__dict__
|
||||
return (
|
||||
Response()
|
||||
.ok({"message": f"成功更新会话 {session_id} 的人格为 {persona_name}"})
|
||||
.__dict__
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
error_msg = f"更新会话人格失败: {str(e)}\n{traceback.format_exc()}"
|
||||
@@ -228,10 +268,16 @@ class SessionManagementRoute(Route):
|
||||
data = await request.get_json()
|
||||
session_id = data.get("session_id")
|
||||
provider_id = data.get("provider_id")
|
||||
provider_type = data.get("provider_type") # "chat_completion", "speech_to_text", "text_to_speech"
|
||||
provider_type = data.get(
|
||||
"provider_type"
|
||||
) # "chat_completion", "speech_to_text", "text_to_speech"
|
||||
|
||||
if not session_id or not provider_id or not provider_type:
|
||||
return Response().error("缺少必要参数: session_id, provider_id, provider_type").__dict__
|
||||
return (
|
||||
Response()
|
||||
.error("缺少必要参数: session_id, provider_id, provider_type")
|
||||
.__dict__
|
||||
)
|
||||
|
||||
# 转换 provider_type 字符串为枚举
|
||||
try:
|
||||
@@ -242,9 +288,15 @@ class SessionManagementRoute(Route):
|
||||
elif provider_type == "text_to_speech":
|
||||
provider_type_enum = ProviderType.TEXT_TO_SPEECH
|
||||
else:
|
||||
return Response().error(f"不支持的 provider_type: {provider_type}").__dict__
|
||||
return (
|
||||
Response()
|
||||
.error(f"不支持的 provider_type: {provider_type}")
|
||||
.__dict__
|
||||
)
|
||||
except Exception as e:
|
||||
return Response().error(f"无效的 provider_type: {provider_type}").__dict__
|
||||
return (
|
||||
Response().error(f"无效的 provider_type: {provider_type}").__dict__
|
||||
)
|
||||
|
||||
# 设置 provider
|
||||
provider_manager = self.core_lifecycle.star_context.provider_manager
|
||||
@@ -254,9 +306,15 @@ class SessionManagementRoute(Route):
|
||||
umo=session_id,
|
||||
)
|
||||
|
||||
return Response().ok({
|
||||
return (
|
||||
Response()
|
||||
.ok(
|
||||
{
|
||||
"message": f"成功更新会话 {session_id} 的 {provider_type} 提供商为 {provider_id}"
|
||||
}).__dict__
|
||||
}
|
||||
)
|
||||
.__dict__
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
error_msg = f"更新会话提供商失败: {str(e)}\n{traceback.format_exc()}"
|
||||
@@ -289,19 +347,33 @@ class SessionManagementRoute(Route):
|
||||
"stt_provider_name": None,
|
||||
"tts_provider_id": None,
|
||||
"tts_provider_name": None,
|
||||
"llm_enabled": SessionServiceManager.is_llm_enabled_for_session(session_id),
|
||||
"llm_enabled": SessionServiceManager.is_llm_enabled_for_session(
|
||||
session_id
|
||||
),
|
||||
"tts_enabled": None, # 将在下面设置
|
||||
"mcp_enabled": SessionServiceManager.is_mcp_enabled_for_session(session_id),
|
||||
"platform": session_id.split(":")[0] if ":" in session_id else "unknown",
|
||||
"message_type": session_id.split(":")[1] if session_id.count(":") >= 1 else "unknown",
|
||||
"session_name": session_id.split(":")[2] if session_id.count(":") >= 2 else session_id,
|
||||
"mcp_enabled": SessionServiceManager.is_mcp_enabled_for_session(
|
||||
session_id
|
||||
),
|
||||
"platform": session_id.split(":")[0]
|
||||
if ":" in session_id
|
||||
else "unknown",
|
||||
"message_type": session_id.split(":")[1]
|
||||
if session_id.count(":") >= 1
|
||||
else "unknown",
|
||||
"session_name": session_id.split(":")[2]
|
||||
if session_id.count(":") >= 2
|
||||
else session_id,
|
||||
}
|
||||
|
||||
# 获取TTS状态
|
||||
session_info["tts_enabled"] = SessionServiceManager.is_tts_enabled_for_session(session_id)
|
||||
session_info["tts_enabled"] = (
|
||||
SessionServiceManager.is_tts_enabled_for_session(session_id)
|
||||
)
|
||||
|
||||
# 获取对话信息
|
||||
conversation = self.db_helper.get_conversation_by_user_id(session_id, conversation_id)
|
||||
conversation = self.db_helper.get_conversation_by_user_id(
|
||||
session_id, conversation_id
|
||||
)
|
||||
if conversation:
|
||||
session_info["persona_id"] = conversation.persona_id
|
||||
|
||||
@@ -394,19 +466,29 @@ class SessionManagementRoute(Route):
|
||||
for plugin in plugin_manager.context.get_all_stars():
|
||||
# 只显示已激活的插件,不包括保留插件
|
||||
if plugin.activated and not plugin.reserved:
|
||||
plugin_enabled = SessionPluginManager.is_plugin_enabled_for_session(session_id, plugin.name)
|
||||
plugin_enabled = SessionPluginManager.is_plugin_enabled_for_session(
|
||||
session_id, plugin.name
|
||||
)
|
||||
|
||||
all_plugins.append({
|
||||
all_plugins.append(
|
||||
{
|
||||
"name": plugin.name,
|
||||
"author": plugin.author,
|
||||
"desc": plugin.desc,
|
||||
"enabled": plugin_enabled,
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
return Response().ok({
|
||||
return (
|
||||
Response()
|
||||
.ok(
|
||||
{
|
||||
"session_id": session_id,
|
||||
"plugins": all_plugins,
|
||||
}).__dict__
|
||||
}
|
||||
)
|
||||
.__dict__
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
error_msg = f"获取会话插件配置失败: {str(e)}\n{traceback.format_exc()}"
|
||||
@@ -441,17 +523,29 @@ class SessionManagementRoute(Route):
|
||||
return Response().error(f"插件 {plugin_name} 未激活").__dict__
|
||||
|
||||
if plugin.reserved:
|
||||
return Response().error(f"插件 {plugin_name} 是系统保留插件,无法管理").__dict__
|
||||
return (
|
||||
Response()
|
||||
.error(f"插件 {plugin_name} 是系统保留插件,无法管理")
|
||||
.__dict__
|
||||
)
|
||||
|
||||
# 使用 SessionPluginManager 更新插件状态
|
||||
SessionPluginManager.set_plugin_status_for_session(session_id, plugin_name, enabled)
|
||||
SessionPluginManager.set_plugin_status_for_session(
|
||||
session_id, plugin_name, enabled
|
||||
)
|
||||
|
||||
return Response().ok({
|
||||
return (
|
||||
Response()
|
||||
.ok(
|
||||
{
|
||||
"message": f"插件 {plugin_name} 已{'启用' if enabled else '禁用'}",
|
||||
"session_id": session_id,
|
||||
"plugin_name": plugin_name,
|
||||
"enabled": enabled,
|
||||
}).__dict__
|
||||
}
|
||||
)
|
||||
.__dict__
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
error_msg = f"更新会话插件状态失败: {str(e)}\n{traceback.format_exc()}"
|
||||
@@ -474,11 +568,17 @@ class SessionManagementRoute(Route):
|
||||
# 使用 SessionServiceManager 更新LLM状态
|
||||
SessionServiceManager.set_llm_status_for_session(session_id, enabled)
|
||||
|
||||
return Response().ok({
|
||||
return (
|
||||
Response()
|
||||
.ok(
|
||||
{
|
||||
"message": f"LLM已{'启用' if enabled else '禁用'}",
|
||||
"session_id": session_id,
|
||||
"llm_enabled": enabled,
|
||||
}).__dict__
|
||||
}
|
||||
)
|
||||
.__dict__
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
error_msg = f"更新会话LLM状态失败: {str(e)}\n{traceback.format_exc()}"
|
||||
@@ -501,11 +601,17 @@ class SessionManagementRoute(Route):
|
||||
# 使用 SessionServiceManager 更新TTS状态
|
||||
SessionServiceManager.set_tts_status_for_session(session_id, enabled)
|
||||
|
||||
return Response().ok({
|
||||
return (
|
||||
Response()
|
||||
.ok(
|
||||
{
|
||||
"message": f"TTS已{'启用' if enabled else '禁用'}",
|
||||
"session_id": session_id,
|
||||
"tts_enabled": enabled,
|
||||
}).__dict__
|
||||
}
|
||||
)
|
||||
.__dict__
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
error_msg = f"更新会话TTS状态失败: {str(e)}\n{traceback.format_exc()}"
|
||||
@@ -528,11 +634,17 @@ class SessionManagementRoute(Route):
|
||||
# 使用 SessionServiceManager 更新MCP状态
|
||||
SessionServiceManager.set_mcp_status_for_session(session_id, enabled)
|
||||
|
||||
return Response().ok({
|
||||
return (
|
||||
Response()
|
||||
.ok(
|
||||
{
|
||||
"message": f"MCP工具调用已{'启用' if enabled else '禁用'}",
|
||||
"session_id": session_id,
|
||||
"mcp_enabled": enabled,
|
||||
}).__dict__
|
||||
}
|
||||
)
|
||||
.__dict__
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
error_msg = f"更新会话MCP状态失败: {str(e)}\n{traceback.format_exc()}"
|
||||
@@ -552,12 +664,20 @@ class SessionManagementRoute(Route):
|
||||
# 使用 SessionServiceManager 更新会话名称
|
||||
SessionServiceManager.set_session_custom_name(session_id, custom_name)
|
||||
|
||||
return Response().ok({
|
||||
return (
|
||||
Response()
|
||||
.ok(
|
||||
{
|
||||
"message": f"会话名称已更新为: {custom_name if custom_name.strip() else '已清除自定义名称'}",
|
||||
"session_id": session_id,
|
||||
"custom_name": custom_name,
|
||||
"display_name": SessionServiceManager.get_session_display_name(session_id),
|
||||
}).__dict__
|
||||
"display_name": SessionServiceManager.get_session_display_name(
|
||||
session_id
|
||||
),
|
||||
}
|
||||
)
|
||||
.__dict__
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
error_msg = f"更新会话名称失败: {str(e)}\n{traceback.format_exc()}"
|
||||
@@ -580,11 +700,17 @@ class SessionManagementRoute(Route):
|
||||
# 使用 SessionServiceManager 更新会话整体状态
|
||||
SessionServiceManager.set_session_status(session_id, session_enabled)
|
||||
|
||||
return Response().ok({
|
||||
return (
|
||||
Response()
|
||||
.ok(
|
||||
{
|
||||
"message": f"会话整体状态已更新为: {'启用' if session_enabled else '禁用'}",
|
||||
"session_id": session_id,
|
||||
"session_enabled": session_enabled,
|
||||
}).__dict__
|
||||
}
|
||||
)
|
||||
.__dict__
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
error_msg = f"更新会话整体状态失败: {str(e)}\n{traceback.format_exc()}"
|
||||
|
||||
Reference in New Issue
Block a user