功能亮点:命令行界面 (CLI) 集成¶
献给我非常重要的朋友 Lub。
新的基于 FastAPI 的命令行界面 (CLI) 提供了一种干净、同步的方式,可以从任何本地或远程 shell 与我们正在运行的核心文本处理服务进行交互。这是一个强大的解决方案,旨在将核心逻辑集成到 shell 环境中。
1. 架构和同步 CLI 概念¶
该服务由 Uvicorn/FastAPI 服务器提供支持,并使用自定义端点 (/process_cli) 从本质上异步的、基于文件的后台进程传递同步(阻塞)结果。
等待并阅读轮询策略¶
唯一输出覆盖: API 为每个请求创建一个唯一的临时目录。
进程启动: 它调用“process_text_in_background”在非阻塞线程中运行核心逻辑,将结果写入该唯一文件夹中的“tts_output_*.txt”文件。
同步等待: API 函数随后阻止并轮询唯一文件夹,直到创建输出文件或达到超时。
结果传递: API 读取文件的内容,执行必要的清理(删除文件和临时目录),并在 JSON 响应的
result_text字段中返回最终处理的文本。
这可确保 CLI 客户端仅在文本处理完成后才收到响应,从而保证可靠的 shell 体验。
2. 远程访问和网络端口映射¶
为了允许像 Lub 终端这样的远程客户端进行访问,需要进行以下网络配置,以解决外部端口可用性有限的常见限制:
解决方案:外部端口映射¶
由于该服务在 端口 8000 上运行,并且我们的网络环境限制对特定端口范围(例如“88__-8831”)的外部访问,因此我们在路由器 (Fritz!Box) 上实现了 端口映射。
端点 |
协议 |
港口 |
描述 |
|---|---|---|---|
外部/公共 |
TCP |
|
客户端 (Lub) 必须使用的端口。 |
内部/本地 |
TCP |
|
FastAPI 服务实际侦听的端口( |
路由器将外部端口(“88__”)上的任何传入连接转换为主机的内部端口(“8000”),使服务可以全局访问,而无需更改核心服务器配置。
3. CLI 客户端使用¶
客户端必须配置公共 IP 地址、外部端口和正确的 API-Key。
最终命令语法¶
代码_块_0