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