message / plugins /audio /mcp.py
hunian
refactor(plugins): 插件短名并统一 MCP tool 为 {plugin}-{tool}
cc826a1
Raw
History Blame Contribute Delete
1.34 kB
from app.mcp.decorators import mcp_tool
from pydantic import BaseModel, Field
from .core import get_transcription_service
class TranscriptionOutput(BaseModel):
success: bool = Field(description="是否成功")
text: str = Field(description="转录文本")
segments: list = Field(default_factory=list, description="分段结果")
error: str | None = Field(default=None, description="错误信息")
@mcp_tool(
name="audio-transcribe",
title="音频转录",
description="将 Base64 音频转录为文本",
annotations={"readOnlyHint": True, "destructiveHint": False},
)
async def transcribe_audio_base64(
audio_base64: str,
suffix: str = ".wav",
language: str | None = None,
) -> TranscriptionOutput:
result = get_transcription_service().transcribe_base64(
audio_base64,
suffix,
language,
)
return TranscriptionOutput(**result)
@mcp_tool(
name="audio-file",
title="音频文件转录",
description="将本地音频文件转录为文本",
annotations={"readOnlyHint": True, "destructiveHint": False},
)
async def transcribe_audio_file(
audio_path: str,
language: str | None = None,
) -> TranscriptionOutput:
result = get_transcription_service().transcribe_file(audio_path, language)
return TranscriptionOutput(**result)