Rozwiązania zadań z kursu AI_devs 3 Agents, w którym biorę udział w listopadzie 2024 roku.
Back-end pisany w Python. Front-end pisany w Angular, TypeScript.
s01e01
Zaloguj się do systemu robotów pod podanym adresem. Zdobyliśmy login i hasło do systemu. Problemem jednak jest ich system ‘anty-captcha’, którą musisz spróbować obejść.
s01e02
Ostatnio zdobyłeś zrzut pamięci robota patrolującego teren. Użyj wiedzy pozyskanej z tego zrzutu do przygotowania dla nas algorytmu do przechodzenia weryfikacji tożsamości. To niezbędne, aby ludzie mogli podawać się za roboty. Zadanie nie jest skomplikowane i wymaga jedynie odpowiadania na pytania na podstawie narzuconego kontekstu. Tylko uważaj, bo roboty starają się zmylić każdą istotę!
s01e03
Musisz poprawić plik kalibracyjny dla jednego z robotów przemysłowych. To dość popularny w 2024 roku format JSON. Dane testowe zawierają prawdopodobnie błędne obliczenia oraz luki w pytaniach otwartych. Plik w niektórych danych testowych zawiera pole “test” z polami “q” (question/pytanie) oraz “a” (answer/odpowiedź). To LLM powinien udzielić odpowiedzi. Popraw proszę ten plik i prześlij nam go już po poprawkach. Tylko uważaj na rozmiar kontekstu modeli LLM, z którymi pracujesz — plik się w nie zmieści w tym limicie.
s01e04
Dzięki Twojej pomocy w obejściu licznych systemów bezpieczeństwa udało nam się zdobyć dostęp do jednej z fabryk kontrolowanych przez roboty. Mało tego! Mamy także dostęp do robota przemysłowego, którego da się zaprogramować tak, aby wykonał Twoje instrukcje. Przeprogramuj robota w taki sposób, aby dotarł on do celu, jakim jest komputer z danymi fabryki.
Prompt dla Chat GPT4o-mini:
Stwórz STEPS_TABLE robota na mapie, która jest siatką:
1) Każde pole mapy to liczba od 1 do 24. Każdy krok może być jedną z trzech operacji: +1 lub -1 lub +4
2) Dodatkowa zasada: Jeśli (obecny wynik % 4 === 0), nie możesz użyć +1.
3) WAŻNE: Zakazane liczby, których nie możesz krokowo zdobywać to: 5, 6, 8, 14, 15.
4) Cel: Zaczynając od liczby 1 osiągnij krokowo liczbę 21 nie przekraczając jej wartości.
5) Zamień STEPS_TABLE na STEP_SERIE usuwając nawiasy [] i podmień kroki liczbowe na wyrazy bez cudzysłowia oddzielone przecinkami: +1 na UP, +1 na DOWN, +4 na RIGHT
6) Zwróć sam JSON bez znaków markdown:
{ steps”: „STEP_SERIE” }
s01e05
Musisz przygotować system do cenzury danych agentów. Pobierz dane z pliku TXT umieszczonego na serwerze Centrali. Następnie ocenzuruj imię i nazwisko, wiek, miasto i ulicę z numerem domu tak, aby zastąpić je słowem CENZURA. Odpowiedź wyślij z powrotem do Centrali w formacie, który znasz już z poligonu. Uwaga! Dane w pliku TXT zmieniają się co 60 sekund i mogą być różne dla każdego z agentów w tej samej chwili.
s02e01
Pobierz archiwum ZIP i rozpakuj je. W środku znajdziesz pliki MP3 z nagraniami kilku przesłuchań. Za pomocą dowolnego modelu zamieniającego audio na tekst, wygeneruj transkrypcję każdego z nagrań. Z otrzymanych transkryptów zbuduj wspólny kontekst dla swojego prompta. Znajdź odpowiedź na pytanie, na jakiej ulicy znajduje się uczelnia, na której wykłada Andrzej Maj. Pamiętaj, że zeznania świadków mogą być sprzeczne, niektórzy z nich mogą się mylić, a inni odpowiadać w dość dziwaczny sposób. Nazwa ulicy nie pada w treści transkrypcji. Musisz użyć wiedzy wewnętrznej modelu, aby uzyskać odpowiedź. Uzyskaną odpowiedź wyślij z powrotem do Centrali w formacie, który znasz już z poligonu.
s02e02
Na podstawie dostarczonej mapy, określ z jakiego miasta one pochodzą. Pamiętaj, że jeden z fragmentów mapy może być błędny i może pochodzić z innego miasta. Użyj do tego celu modelu zdolnego do rozpoznawania obrazu. Wyślij nam do centrali nazwę tej miejscowości jako flagę.
s02e03
Zebraliśmy zeznania od naszych wysłanników, którzy obserwowali fabrykę. Opisali oni, jak wyglądały roboty, które się tam kręciły. Na podstawie opisu jednego z nich, przygotuj proszę grafikę, która będzie pewnego rodzaju wizualizacją potencjalnego wyglądu tych robotów, a następnie prześlij URL do tej grafiki z powrotem do Centrali w formacie, który znasz już z poligonu. Użyj w tym celu modelu Dall-E w wersji 3. Grafika, której oczekujemy powinna być w formacie PNG o wymiarach 1024x1024px.
s02e04
Zdobyliśmy dostęp do danych z fabryki, którą nam wskazałeś. Są to raporty dzienne kilku działających tam oddziałów. Część z nich to zwykłe raporty techniczne, a część to raporty związane z bezpieczeństwem. Pozyskane dane są w różnych formatach i nie wszystkie zawierają użyteczne dane. Wydobądź dla nas proszę tylko notatki zawierające informacje o schwytanych ludziach lub o śladach ich obecności oraz o naprawionych usterkach hardwarowych (pomiń te związane z softem oraz pomiń katalog z faktami). Raport wyślij do Centrali w formacie, który znasz już z poligonu.
s02e05
Z przechwyconych materiałów interesuje nas tylko jedna z publikacji profesora Maja. Nasza centrala chce pozyskać odpowiedzi na dostarczone przez nią pytania dotyczące tej notatki. Zwróć proszę uwagę, że podlinkowana notatka zawiera treści tekstowe, graficzne i dźwiękowe. Dźwięki i obrazy występują w konkretnym kontekście, który może zmieniać ich odbiór. Istnieje ogromne prawdopodobieństwo, że konieczne będzie wzięcie pod uwagę informacji podanych w każdym formacie. Raport z odpowiedziami na pytania wyślij do Centrali w formacie, który znasz już z poligonu.
s03e01
Twoim zadaniem jest przygotowanie metadanych do 10 raportów dostarczonych w formacie TXT. Dotyczą one wydarzeń związanych z bezpieczeństwem, które zdarzyły się w różnych sektorach wokół fabryki. Metadane powinny ułatwić centrali wyszukiwanie tych raportów za pomocą własnych technologii. Sugerujemy, aby metadane zawierały słowa kluczowe w języku polskim, opisujące dany raport. Bardzo ważne jest przy generowaniu słów kluczowych uwzględnienie całej posiadanej przez nas wiedzy (np. folder z faktami, czy odwołania w innych raportach). Przygotowane dane wyślij do Centrali w formacie, który znasz już z poligonu.
s03e02
Centrala złamała hasło do pliku ZIP, który wysłaliśmy wczoraj. W archiwum znajdziesz raporty z testów nowoczesnej broni. Zaindeksuj je z użyciem dowolnego modelu do embeddingów w swojej bazie wektorowej. Utwórz embedding z pytania: „Którego dnia skradziono prototyp broni?” i odpytaj nim swoją bazę danych, ustawiając limit zwracanych rekordów na 1. Jeśli baza nie będzie zwracać odpowiednich rezultatów, wzbogać raporty o odpowiednie metadane. Odpowiedź wyślij do Centrali w formacie, który znasz już z poligonu.
s03e03
Uzyskaliśmy dostęp do bazy danych firmy BanAN. Centrala wystawiła dla Ciebie specjalne API, które umożliwi Ci wykonanie niemal dowolnych zapytań wyciągających dane ze wspomnianej bazy. Wiemy, że znajdują się tam tabele o nazwach users, datacenters oraz connections. Przekaż ich strukturę do LLM-a i poproś o przygotowanie zapytania SQL, które spełnia nasze wymagania. Twoim zadaniem jest zwrócenie nam numerów ID czynnych datacenter, które zarządzane są przez menadżerów, którzy aktualnie przebywają na urlopie (są nieaktywni). To pozwoli nam lepiej wytypować centra danych bardziej podatne na atak. Odpowiedź (w formie tablicy) wyślij do Centrali w formacie, który znasz już z poligonu.