modify: ip音柱插件
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
"""Ip_sound_column RPC 端点"""
|
||||
|
||||
from . import tts
|
||||
|
||||
__all__ = ['tts']
|
||||
@@ -0,0 +1,41 @@
|
||||
"""RPC 端点: ip_sound_column.ping
|
||||
|
||||
模型由 gen_models 生成(编辑 config/workers/ip_sound_column/ping.toml 后重新生成)。
|
||||
"""
|
||||
import httpx
|
||||
|
||||
from chongming_worker.decorators import rpc_method
|
||||
|
||||
from ..models.pydantic import TtsPostRequest, TtsPostResponse
|
||||
from ..global_var import require
|
||||
|
||||
|
||||
@rpc_method(
|
||||
subject="ip_sound_column.tts",
|
||||
method="POST",
|
||||
summary="tts 操作",
|
||||
response_model=TtsPostResponse,
|
||||
)
|
||||
async def tts(request: TtsPostRequest) -> TtsPostResponse:
|
||||
"""业务逻辑实现。"""
|
||||
|
||||
ip_addr: str = require("ip")
|
||||
if ip_addr == "unknown":
|
||||
raise RuntimeError("ip_sound_column: 未初始化 ip 地址,请检查配置")
|
||||
|
||||
tts_url = f"http://{ip_addr}/v1/api"
|
||||
try:
|
||||
async with httpx.AsyncClient() as client:
|
||||
resp = await client.post(
|
||||
tts_url,
|
||||
json=request.model_dump(),
|
||||
headers={"Content-Type": "application/json"},
|
||||
)
|
||||
if resp.is_success:
|
||||
return TtsPostResponse(**resp.json())
|
||||
else:
|
||||
raise RuntimeError(
|
||||
f"ip_sound_column: tts 请求失败,状态码 {resp.status_code},响应内容: {resp.text}"
|
||||
)
|
||||
except httpx.RequestError as e:
|
||||
raise RuntimeError(f"ip_sound_column: tts 请求异常: {str(e)}") from e
|
||||
Reference in New Issue
Block a user