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”.¶
Unikalne zastąpienie danych wyjściowych: Interfejs API tworzy unikalny katalog tymczasowy dla każdego żądania.
Rozpoczęcie procesu: Wywołuje
process_text_in_background, aby uruchomić podstawową logikę w nieblokującym wątku, zapisując wynik do plikutts_output_*.txtw tym unikalnym folderze.Oczekiwanie synchroniczne: Funkcja API następnie blokuje i odpytuje unikalny folder do czasu utworzenia pliku wyjściowego lub przekroczenia limitu czasu.
Dostarczanie wyników: API odczytuje zawartość pliku, przeprowadza niezbędne czyszczenie (usuwa plik i katalog tymczasowy) i zwraca ostatecznie przetworzony tekst w polu
result_textodpowiedzi 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 |
|
Port, z którego musi korzystać klient (Lub). |
Wewnętrzne/lokalne |
TCP |
|
Port, na którym faktycznie nasłuchuje usługa FastAPI ( |
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