Prezentacja funkcji: Integracja z interfejsem wiersza poleceń (CLI).

Dedykowane mojemu bardzo ważnemu przyjacielowi, Lub.

Nowy interfejs wiersza poleceń (CLI) oparty na FastAPI zapewnia czysty, synchroniczny sposób interakcji z naszą działającą podstawową usługą przetwarzania tekstu z dowolnej powłoki lokalnej lub zdalnej. Jest to solidne rozwiązanie zaprojektowane w celu integracji podstawowej logiki ze środowiskami powłoki.


1. Architektura i koncepcja synchronicznego CLI

Usługa jest obsługiwana przez serwer Uvicorn/FastAPI i wykorzystuje niestandardowy punkt końcowy („/process_cli”) w celu dostarczania synchronicznych (blokujących) wyników z z natury asynchronicznego procesu w tle opartego na plikach.

Strategia odpytywania „poczekaj i przeczytaj”.

  1. Unikalne zastąpienie danych wyjściowych: Interfejs API tworzy unikalny katalog tymczasowy dla każdego żądania.

  2. Rozpoczęcie procesu: Wywołuje process_text_in_background, aby uruchomić podstawową logikę w nieblokującym wątku, zapisując wynik do pliku tts_output_*.txt w tym unikalnym folderze.

  3. Oczekiwanie synchroniczne: Funkcja API następnie blokuje i odpytuje unikalny folder do czasu utworzenia pliku wyjściowego lub przekroczenia limitu czasu.

  4. Dostarczanie wyników: API odczytuje zawartość pliku, przeprowadza niezbędne czyszczenie (usuwa plik i katalog tymczasowy) i zwraca ostatecznie przetworzony tekst w polu result_text odpowiedzi JSON.

Dzięki temu klient CLI otrzyma odpowiedź dopiero po zakończeniu przetwarzania tekstu, co gwarantuje niezawodne działanie powłoki.

2. Dostęp zdalny i mapowanie portów sieciowych

Aby umożliwić dostęp ze zdalnych klientów, takich jak terminal Lub, wymagana była następująca konfiguracja sieci, uwzględniająca powszechne ograniczenie ograniczonej dostępności portów zewnętrznych:

Rozwiązanie: mapowanie portów zewnętrznych

Ponieważ usługa działa wewnętrznie na Port 8000, a nasze środowisko sieciowe ogranicza dostęp zewnętrzny do określonego zakresu portów (np. 88__-8831), wdrożyliśmy Mapowanie portów na routerze (Fritz!Box).

Punkt końcowy

Protokół

Port

Opis

Zewnętrzne/Publiczne

TCP

88__ (Przykład)

Port, z którego musi korzystać klient (Lub).

Wewnętrzne/lokalne

TCP

8000

Port, na którym faktycznie nasłuchuje usługa FastAPI (--port 8000).

Router tłumaczy każde połączenie przychodzące na porcie zewnętrznym („88__”) na port wewnętrzny („8000”) hosta, dzięki czemu usługa jest dostępna globalnie bez zmiany konfiguracji serwera podstawowego.

3. Użycie klienta CLI

Klient musi mieć skonfigurowany publiczny adres IP, port zewnętrzny i prawidłowy klucz API.

Składnia końcowego polecenia

KOD_BLOKU_0