Przejdź do treści

Pakiet robota

Pakiet robota to komplet plików, które trafiają na maszynę agenta i stanowią kod Twojej automatyzacji: skrypt główny, moduły pomocnicze, pliki konfiguracyjne, szablony i manifest zależności. Pakietem zarządzasz w zakładce Pliki automatyzacji w widoku automatyzacji.

Zakładka Pliki automatyzacji z wgranym pakietem


1. Co wchodzi w skład pakietu

Pakiet odwzorowuje strukturę katalogów jeden do jednego - to, co widzisz na liście, zobaczy też skrypt w swoim katalogu roboczym.

main.py                  ← punkt wejścia
requirements.txt         ← manifest zależności
lib/
    klient_erp.py        ← moduł pomocniczy
    modele.py
config/
    ustawienia.json
szablony/
    faktura.html

Dzięki temu importy sąsiedzkie i pakietowe działają dokładnie tak, jak lokalnie na Twoim komputerze:

from lib.klient_erp import KlientERP

Na liście każdy katalog jest osobną, zwijaną grupą z licznikiem plików - ./ (katalog główny pakietu), ./config/, ./lib/, ./szablony/. Licznik przy nazwie zakładki pokazuje łączną liczbę plików w pakiecie.


2. Wgrywanie plików

W zakładce Pliki automatyzacji możesz:

  • przeciągnąć pojedyncze pliki na obszar wgrywania,
  • przeciągnąć cały katalog - struktura zostanie zachowana,
  • wybrać wiele pozycji naraz przez okno wyboru plików.

Wybór katalogu do wgrania

2.1. Pliki pomijane automatycznie

Platforma odsiewa artefakty budowania i pliki systemowe, żeby nie zaśmiecały pakietu - katalogi __pycache__, pliki .pyc, metadane systemu plików. Po wgraniu zobaczysz komunikat informujący, ile pozycji pominięto.

Wgrywaj katalog projektu bez sprzątania

Nie musisz ręcznie czyścić katalogu przed wgraniem. Jeśli jednak wszystkie wybrane pliki zostaną odsiane, platforma powie o tym wprost - to zwykle znak, że wskazano katalog build zamiast źródeł.


3. Punkt wejścia

Punkt wejścia to plik .py, od którego zaczyna się wykonanie.

W automatyzacji utworzonej od zera punkt wejścia jest już ustawiony na main.py z pakietu startowego. Zmieniasz go wtedy, gdy wgrywasz własny pakiet o innej strukturze:

  1. Kliknij menu (⋮) przy pliku .py.
  2. Wybierz Ustaw jako punkt wejścia.

Oznaczony plik jest wyróżniony na liście etykietą PUNKT WEJŚCIA - widać ją przy main.py na zrzucie w punkcie 1.

Dopóki żaden plik nie jest oznaczony, nad listą wisi ostrzeżenie, a uruchomienie jest zablokowane:

⚠️ Nie ustawiono punktu wejścia. Oznacz plik .py jako punkt wejścia przed uruchomieniem.

Ostrzeżenie o braku punktu wejścia

Etykieta przenosi się, plik zostaje

Wskazanie innego pliku przenosi etykietę - poprzedni punkt wejścia zostaje w pakiecie i przestaje być plikiem startowym. Nie jest kasowany.

3.1. Punkt wejścia w podkatalogu

Punkt wejścia nie musi leżeć w katalogu głównym pakietu. Skrypt uruchamiany jest w miejscu, więc jego importy sąsiedzkie zachowują się tak samo jak podczas pracy lokalnej.

3.2. Skrypt musi coś wywołać

Plik zawierający wyłącznie definicje funkcji zakończyłby się kodem 0, czyli formalnym sukcesem, mimo że nic nie zrobił. Dlatego agent analizuje punkt wejścia przed startem i odmawia uruchomienia takiego pakietu - zamiast raportować sukces procesu, który nic nie wykonał, kończy przebieg niepowodzeniem i podaje powód w opisie.

Pamiętaj więc o wywołaniu:

if __name__ == "__main__":
    main()

Domyślny main.py kończy się wywołaniem sys.exit(main()) obudowanym w try/except, więc podmieniając wyłącznie treść funkcji main() spełniasz ten warunek automatycznie.


4. Zależności

Zależności instalowane są przed startem skryptu, na podstawie jednego pliku z katalogu głównego pakietu.

4.1. requirements.txt

Domyślny i najprostszy wariant - zwykły plik pip:

requests==2.32.3
playwright==1.62.0

4.2. Manifest conda

Alternatywnie możesz użyć manifestu conda o jednej z nazw: conda.yaml, conda.yml, environment.yml albo environment.yaml.

dependencies:
  - python=3.11
  - pip
  - pip:
      - requests==2.32.3
      - playwright==1.62.0

Agent webowy instaluje wyłącznie blok pip:

Z manifestu conda brana jest tylko zawartość bloku pip:. Pozycje wypisane bezpośrednio pod dependencies: to pakiety conda-native - agent webowy ich nie stawia i pomija je z ostrzeżeniem w dzienniku. Manifest bez bloku pip: jest poprawnym plikiem YAML, po którym środowisko zostaje puste.

4.3. Pierwszeństwo i brak manifestu

Sytuacja Zachowanie
Tylko requirements.txt Instalacja z requirements.txt.
Tylko manifest conda Instalacja z bloku pip: manifestu.
Oba pliki naraz Wygrywa manifest conda, requirements.txt jest pomijany. Platforma pokazuje o tym ostrzeżenie.
Żaden z nich Skrypt startuje na samym obrazie bazowym - nic nie jest doinstalowywane.

Nieudana instalacja jest odróżnialna od błędu skryptu

Jeśli zależności nie dadzą się zainstalować, uruchomienie kończy się osobnym komunikatem, innym niż awaria samego robota. Dzięki temu od razu wiadomo, czy problem leży w manifeście, czy w kodzie.

Nazwy plików są zamknięte

Rozpoznawane są wyłącznie requirements.txt, conda.yaml, conda.yml, environment.yml i environment.yaml. Plik nazwany inaczej - na przykład wymagania.txt albo deps.txt - trafi do pakietu i zostanie pominięty bez ostrzeżenia, a skrypt wystartuje bez zależności.

Gdy w pakiecie nie ma żadnego manifestu, platforma mówi o tym wprost nad listą plików:

ⓘ W pakiecie nie ma pliku z zależnościami - agent webowy instaluje je z requirements.txt albo z manifestu conda (conda.yaml, conda.yml, environment.yml, environment.yaml). Bez żadnego z nich skrypt rusza na samym obrazie bazowym.

Komunikat o braku manifestu zależności


5. Operacje na plikach

Menu kontekstowe (⋮) każdego pliku udostępnia zestaw operacji.

Operacja Opis
Podgląd Otwiera zawartość pliku tekstowego bez pobierania go na dysk.
Pobierz Zapisuje plik lokalnie.
Edytuj Pozwala poprawić plik bezpośrednio w przeglądarce - wygodne przy drobnych korektach parametru albo literówki.
Ustaw jako punkt wejścia Dostępne dla plików .py.
Usuń Trwale usuwa plik z pakietu.

Menu kontekstowe pliku

Przy strojeniu automatyzacji poprawka wprost w przeglądarce i ponowne uruchomienie są dużo szybsze niż zmiana lokalna, ponowne wgranie i uruchomienie. Do większych zmian wracaj jednak do swojego repozytorium - pakiet w platformie nie zastępuje kontroli wersji.


6. Ograniczenia

Ograniczenie Wartość
Maksymalny rozmiar pojedynczego wgrywanego pliku ok. 1 MB
Liczba plików w jednym pakiecie bez ustalonego limitu
Struktura katalogów zachowywana bez ograniczenia głębokości

Duże pliki dziel albo pobieraj w trakcie pracy

Plik przekraczający limit zostanie odrzucony. Jeśli automatyzacja potrzebuje dużego zbioru danych, lepszym rozwiązaniem jest pobranie go przez skrypt w trakcie pracy - z magazynu obiektów albo z systemu źródłowego - niż trzymanie go w pakiecie.


7. Pakiet a wersje automatyzacji

Pakiet należy do konkretnej wersji automatyzacji. Po opublikowaniu wersji jej pliki stają się niezmienne - to gwarantuje, że opublikowany proces zachowa się jutro tak samo jak dziś.

Aby zmienić kod opublikowanej automatyzacji, utwórz z niej nową wersję roboczą. Szczegóły opisuje strona Zarządzanie automatyzacjami.