richard-su's picture
Upload folder using huggingface_hub
b5df735 verified
raw
history blame
3.6 kB
"""
MCP Tools using the new service architecture
"""
from typing import Dict, Any
from .transcription_tools import transcribe_audio_file_tool
from .download_tools import (
download_apple_podcast_tool,
download_xyz_podcast_tool,
get_mp3_files_tool,
get_file_info_tool,
read_text_file_segments_tool
)
# ==================== Transcription Tools ====================
async def transcribe_audio_file(
audio_file_path: str,
model_size: str = "turbo",
language: str = None,
output_format: str = "srt",
enable_speaker_diarization: bool = False
) -> Dict[str, Any]:
"""
Transcribe audio files to text using Whisper model with new service architecture
Args:
audio_file_path: Complete path to audio file
model_size: Whisper model size (tiny, base, small, medium, large, turbo)
language: Audio language code (e.g. "zh" for Chinese, "en" for English)
output_format: Output format (srt, txt, json)
enable_speaker_diarization: Whether to enable speaker identification
Returns:
Transcription result dictionary with file paths and metadata
"""
return await transcribe_audio_file_tool(
audio_file_path=audio_file_path,
model_size=model_size,
language=language,
output_format=output_format,
enable_speaker_diarization=enable_speaker_diarization
)
# ==================== Download Tools ====================
async def download_apple_podcast(url: str) -> Dict[str, Any]:
"""
Download Apple Podcast audio files using new service architecture
Args:
url: Complete URL of Apple Podcast page
Returns:
Download result dictionary with file path and metadata
"""
return await download_apple_podcast_tool(url)
async def download_xyz_podcast(url: str) -> Dict[str, Any]:
"""
Download XiaoYuZhou podcast audio files using new service architecture
Args:
url: Complete URL of XiaoYuZhou podcast page
Returns:
Download result dictionary with file path and metadata
"""
return await download_xyz_podcast_tool(url)
# ==================== File Management Tools ====================
async def get_mp3_files(directory: str) -> Dict[str, Any]:
"""
Scan directory to get detailed information list of all MP3 audio files
Args:
directory: Absolute or relative path of directory to scan
Returns:
MP3 file information dictionary with detailed file list
"""
return await get_mp3_files_tool(directory)
async def get_file_info(file_path: str) -> Dict[str, Any]:
"""
Get basic file information including size, modification time, etc.
Args:
file_path: File path to query
Returns:
File information dictionary with detailed metadata
"""
return await get_file_info_tool(file_path)
async def read_text_file_segments(
file_path: str,
chunk_size: int = 65536,
start_position: int = 0
) -> Dict[str, Any]:
"""
Read text file content in segments with intelligent boundary detection
Args:
file_path: Path to file to read (supports TXT, SRT and other text files)
chunk_size: Byte size to read each time (default 64KB)
start_position: Starting position to read from (byte offset, default 0)
Returns:
Read result dictionary with content and metadata
"""
return await read_text_file_segments_tool(
file_path=file_path,
chunk_size=chunk_size,
start_position=start_position
)