<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://aidealist.pl/feed.xml" rel="self" type="application/atom+xml" /><link href="https://aidealist.pl/" rel="alternate" type="text/html" /><updated>2026-09-11T10:23:53+00:00</updated><id>https://aidealist.pl/feed.xml</id><title type="html">AIdealist</title><subtitle>In data I trust. Data science, machine learning, automatyzacja, programowanie w języku Python. </subtitle><author><name>Maciej Michałek AIdealist</name><email>maciej.michalek@aidealist.pl</email></author><entry><title type="html">Adaptacja treści marketingowych w branży farmaceutycznej</title><link href="https://aidealist.pl/kariera/2026/09/09/adaptacji-tresci-marketingowych.html" rel="alternate" type="text/html" title="Adaptacja treści marketingowych w branży farmaceutycznej" /><published>2026-09-09T09:00:00+00:00</published><updated>2026-09-09T09:00:00+00:00</updated><id>https://aidealist.pl/kariera/2026/09/09/adaptacji-tresci-marketingowych</id><content type="html" xml:base="https://aidealist.pl/kariera/2026/09/09/adaptacji-tresci-marketingowych.html"><![CDATA[<p>Demo przygotowane dla globalnego koncernu farmaceutycznego. Problem dotyczy tego, co dzieje się już po zatwierdzeniu kreacji: agencja tworzy materiał wzorcowy, przechodzi on globalną akceptację, a następnie rynki lokalne adaptują go do własnych wymogów regulacyjnych, języka i odbiorcy. Każda adaptacja staje się osobną wersją z własnym identyfikatorem, poza polem widzenia zespołu globalnego, a autonomia rynków sprawia, że efekty potrafią mocno rozjechać się z materiałem źródłowym.</p>

<p>Mnożnik jest tu bezlitosny: jeden zatwierdzony materiał globalny razy liczba rynków, języków, grup odbiorców, kanałów i formatów. Przy czym każdy wariant musi nadal nieść wszystkie elementy obowiązkowe — informacje bezpieczeństwa, równowagę przekazu, odnośniki do charakterystyki produktu i kody zadań. To nie jest zadanie, które można oddać generatorowi treści i sprawdzić wyrywkowo.</p>

<p>Odpowiadałem za architekturę techniczną rozwiązania. Zaprojektowałem ją wokół jednego środowiska Azure Container Apps, obejmującego aplikację frontendową, API, UI dla HITL oraz samych agentów.</p>

<p>Sam przepływ jest wieloetapowy. Zadania adaptacyjne wykonują się równolegle, korzystając z dynamicznych baz wiedzy opisujących markę, kanał i rynek. Po wygenerowaniu materiał przechodzi przez warstwę walidacji i krytyki z iteracją — model ocenia i poprawia własny wynik, zanim cokolwiek trafi do człowieka. Dopiero potem wchodzi przegląd z udziałem recenzenta, który może wprowadzić poprawki poleceniem w języku naturalnym. Osobnym, niełatwym wymaganiem była izolacja między markami: pełne oddzielenie kontekstu i danych, zrealizowane przez wydzielone kontenery, kontrolę dostępu opartą na rolach i prywatne punkty końcowe.</p>

<p>Technologie: Azure Container Apps, Python, agenci LLM, Azure AI Search, zewnętrzne API generatywne</p>

<p>Wartość demo polegała na pokazaniu zwielokrotnienia liczby wariantów przy zachowaniu elementów obowiązkowych i wyjściu w postaci plików warstwowych, edytowalnych, a nie zamkniętych artefaktów wygenerowanych przez model.</p>

<p>W treściach regulowanych warstwa walidacji jest ważniejsza od warstwy generującej. Model, który tworzy dwadzieścia wariantów, jest tani. Model, który potrafi udowodnić, że wszystkie dwadzieścia niesie komplet wymaganych elementów, jest tym, za co klient faktycznie płaci.</p>]]></content><author><name>Maciej Michałek</name></author><category term="kariera" /><category term="kariera" /><category term="cv" /><category term="genai" /><category term="architektura" /><category term="agenty" /><summary type="html"><![CDATA[Demo przygotowane dla globalnego koncernu farmaceutycznego. Problem dotyczy tego, co dzieje się już po zatwierdzeniu kreacji: agencja tworzy materiał wzorcowy, przechodzi on globalną akceptację, a następnie rynki lokalne adaptują go do własnych wymogów regulacyjnych, języka i odbiorcy. Każda adaptacja staje się osobną wersją z własnym identyfikatorem, poza polem widzenia zespołu globalnego, a autonomia rynków sprawia, że efekty potrafią mocno rozjechać się z materiałem źródłowym.]]></summary></entry><entry><title type="html">Agentowa platforma AI dla przedsiębiorstwa</title><link href="https://aidealist.pl/kariera/2026/08/28/agentowa-platforma-ai-dla-przedsiebiorstwa.html" rel="alternate" type="text/html" title="Agentowa platforma AI dla przedsiębiorstwa" /><published>2026-08-28T07:50:00+00:00</published><updated>2026-08-28T07:50:00+00:00</updated><id>https://aidealist.pl/kariera/2026/08/28/agentowa-platforma-ai-dla-przedsiebiorstwa</id><content type="html" xml:base="https://aidealist.pl/kariera/2026/08/28/agentowa-platforma-ai-dla-przedsiebiorstwa.html"><![CDATA[<p>Organizacje, z którymi pracowałem, przeszły w ostatnich latach ten sam cykl. Najpierw jeden chatbot oparty o RAG. Potem drugi. Potem dziesięć — każdy z własnym uwierzytelnianiem, własnym dostawcą modeli i własnym pomysłem na logowanie. Koszt utrzymania zaczął rosnąć szybciej niż dostarczana wartość.</p>

<p>Potrzebny był fundament pozwalający zespołom budować agentów bez powtarzania tej samej pracy: wspólne uwierzytelnianie, wspólny routing do modeli, wspólna obserwowalność i jasne granice odpowiedzialności między agentem, narzędziem a danymi.</p>

<p>Zaprojektowałem platformę opartą o wzorzec backend-for-frontend. Aplikacja SPA nigdy nie przechowuje tokenów, sesja żyje po stronie backendu, a dostęp do modeli prowadzi przez jedno proxy z limitami i rozliczaniem kosztów w podziale na zespoły. Agenci są budowani w LangGraph i wystawiani przez ustandaryzowane protokoły, dzięki czemu jeden agent może być narzędziem dla drugiego bez pisania integracji od zera. Całość działa na Azure Container Apps, z infrastrukturą opisaną deklaratywnie i pełnym śladem wykonania zbieranym w Langfuse.</p>

<p>Technologie: Python, LangGraph, FastAPI, Azure Container Apps, Entra ID, LiteLLM, Langfuse, Docker, Terraform.</p>

<p>Nowy agent startuje z gotowym uwierzytelnianiem, obserwowalnością i politykami bezpieczeństwa, zamiast budować je od podstaw. Koszt inferencji stał się mierzalny i przypisany do konkretnego zespołu, a nie do jednej wspólnej faktury na koniec miesiąca.</p>

<p>Najdroższym elementem platformy agentowej nie jest model. Są nim granice: kto ma dostęp do jakich danych, kto ponosi koszt i kto odpowiada za treść odpowiedzi. Jeżeli nie rozstrzygnie się tego w architekturze, orkiestrator jedynie rozprowadzi ten problem na większą powierzchnię.</p>]]></content><author><name>Maciej Michałek</name></author><category term="kariera" /><category term="kariera" /><category term="cv" /><category term="genai" /><category term="agenty" /><category term="architektura" /><summary type="html"><![CDATA[Organizacje, z którymi pracowałem, przeszły w ostatnich latach ten sam cykl. Najpierw jeden chatbot oparty o RAG. Potem drugi. Potem dziesięć — każdy z własnym uwierzytelnianiem, własnym dostawcą modeli i własnym pomysłem na logowanie. Koszt utrzymania zaczął rosnąć szybciej niż dostarczana wartość.]]></summary></entry><entry><title type="html">Hackathon AI dla koncernu spożywczego w Azji Południowo-Wschodniej</title><link href="https://aidealist.pl/kariera/2026/08/20/hackathon-ai-dla-koncernu-spozywczego-w-azji-poludniowo-wschodniej.html" rel="alternate" type="text/html" title="Hackathon AI dla koncernu spożywczego w Azji Południowo-Wschodniej" /><published>2026-08-20T07:00:00+00:00</published><updated>2026-08-20T07:00:00+00:00</updated><id>https://aidealist.pl/kariera/2026/08/20/hackathon-ai-dla-koncernu-spozywczego-w-azji-poludniowo-wschodniej</id><content type="html" xml:base="https://aidealist.pl/kariera/2026/08/20/hackathon-ai-dla-koncernu-spozywczego-w-azji-poludniowo-wschodniej.html"><![CDATA[<p>Celem projektu było przeprowadzenie firmowego programu otwartej innowacji, którego tegoroczna edycja została w całości poświęcona sztucznej inteligencji. Klient — wiodący koncern spożywczo-napojowy działający w kilku krajach Azji Południowo-Wschodniej — organizuje ten program cyklicznie, ale po raz pierwszy potrzebował partnera technologicznego, który wprowadzi uczestników w temat AI i pomoże im dojść od pomysłu do koncepcji gotowej do wyceny.</p>

<p>Zakres obejmował całość: przygotowanie przed wydarzeniem, dwudniowe warsztaty stacjonarne, dziesięć zdalnych sesji mentoringowych w trakcie dwutygodniowego sprintu prototypowania oraz udział w finałowej prezentacji. Byłem odpowiedzialny za projekt merytoryczny programu, przygotowanie wszystkich materiałów i prowadzenie warsztatów na miejscu, a następnie za mentoring zespołów. Uczestnikami było około pięćdziesięciu osób z ról biznesowych, nie technicznych — z obszarów HR, sprzedaży, łańcucha dostaw, produkcji i rozwoju produktu, z kilku krajów regionu.</p>

<h2 id="problem-który-trzeba-było-rozwiązać-zanim-zaczął-się-hackathon">Problem, który trzeba było rozwiązać zanim zaczął się hackathon</h2>
<p>Hackathony AI dla osób nietechnicznych mają jedną charakterystyczną przypadłość: kończą się zestawem pomysłów na chatbota. Uczestnik, który zna AI wyłącznie z asystenta w przeglądarce, będzie proponował warianty tego, co zna. Efektem jest dzień dobrej energii i portfel koncepcji, których nikt nie sfinansuje, bo żadna nie została połączona z konkretnym procesem, konkretnym użytkownikiem i konkretną liczbą.</p>

<p>Drugi problem to rozrzut wiedzy. W sali siedzą obok siebie ludzie, dla których GenAI to codzienne narzędzie, i tacy, którzy nie używali go nigdy. Warsztat prowadzony na uśrednionym poziomie zanudzi jednych i zgubi drugich.</p>

<h2 id="rozwiązanie">Rozwiązanie</h2>

<p>Przed wydarzeniem przygotowałem kwestionariusz oceny wiedzy o AI, GenAI, agentach, RAG, gotowości danych i odpowiedzialnym stosowaniu AI. Wypełniło go czterdzieści osób na pięćdziesiąt cztery, a wyniki posłużyły mi do skalibrowania modułu wprowadzającego — przygotowałem materiał z nadmiarem, żeby mieć co przycinać, zamiast improwizować w trakcie. Ten sam kwestionariusz, w wersji powtórzonej po wydarzeniu, pozwolił zmierzyć faktyczny przyrost wiedzy, a nie tylko zadowolenie uczestników.</p>

<p>Program został zbudowany według jasnej logiki. Dzień pierwszy to inspiracja i nauka: wspólny słownik pojęć, przegląd realnych zastosowań AI w branży FMCG i w operacjach, praktyczny tutorial promptowania, zasady bezpiecznego i zgodnego z regulacjami korzystania z narzędzi oraz — co uważam za najważniejszy moduł całego dnia — sesja o tym, jak przejść od generycznego pomysłu na chatbota do rozwiązania powiązanego z wartością biznesową, zmianą procesu i konkretnym użytkownikiem. Domknąłem to blokiem o adopcji i fazie RUN, bo zespoły z reguły kończą myślenie na dniu wdrożenia.</p>

<p>Dzień drugi to warsztat pracy własnej zespołów: kwestionowanie ambicji pomysłu, ramowanie problemu, mapa beneficjentów, projekt koncepcji rozwiązania, reality check dotyczący danych i wykonalności, przygotowanie makiety lub przykładowego wyniku oraz szkielet pitcha. Mentorzy i wyznaczeni przez klienta AI Champions mieli w tym dniu jedną wyraźną zasadę: nie rozwiązują problemów biznesowych za zespoły i nie podsuwają rozwiązań. Naprawadzają celnymi pytaniami.</p>

<p>Narzędziowo oparliśmy program o wewnętrzne, agentyczne rozwiazanie Lingaro, uruchomione jako dedykowana instancja na naszej infrastrukturze, z osobnymi kluczami dostępowymi dla pięciu zespołów. Przygotowałem dwa szablony pracy: jeden do indywidualnego kształtowania pomysłu przed pracą zespołową, drugi jako główny szablon prowadzący zespół od wybranego kierunku do udokumentowanej koncepcji. Narzędzie nie generuje pomysłów za uczestników — zadaje pytania, które zadałby dobry facylitator: kto dokładnie skorzysta, jakie dowody potwierdzają problem, co musi być prawdą, żeby to zadziałało, jakie dane są potrzebne i jak wyglądałby wiarygodny MVP. Przy okazji zapisuje tok myślenia zespołu i zamienia go w ustrukturyzowaną, porównywalną dokumentację.</p>

<p>Osobnym zadaniem było uporządkowanie kryteriów oceny. W poprzedniej edycji każde wyzwanie biznesowe miało odrębne zasady, co uniemożliwiało porównywanie zespołów między sobą. Przygotowałem jednen, wspólny arkusz ocen, obejmujący dopasowanie strategiczne, wartość dla użytkownika i biznesu, wykonalność, sensowność zastosowania AI oraz gotowość do przejścia poza pilotaż, z dodatkową premią za siłę narracji. Do arkusza dopisałem reguły pomocne dla sędziów,np. która że premii za prezentację nie wolno używać do kompensowania słabej treści. Kryteria zamieniłem następnie w dedykowany szablon w naszym agentycznym rozwiązaniu, którr dzięki temu potrafiło wygenerować zestaw prawdopodobnych pytań od jury na podstawie materiałów zespołu i pomóc się przygotować do ostatecznej prezentacji.</p>

<h2 id="efekt">Efekt</h2>

<p>Pięć koncepcji gotowych do prototypowania, z udokumentowanym problemem, beneficjentami, założeniami co do danych, hipotezą wartości i planem MVP. Łączna pula wartości zidentyfikowana przez zespoły przekroczyła 6 mln EUR rocznie — w wariancie kierunkowym, wymagającym walidacji po stronie klienta, co konsekwentnie komunikowaliśmy, żeby nikt nie pomylił projekcji z potwierdzoną oszczędnością.</p>

<p>Zwycięski projekt wyszedł z obszaru łańcucha dostaw i produkcji: platforma decyzyjna dla zakładów produkcyjnych, przewidująca odchylenia procesu, optymalizująca parametry pracy dla danej partii, podpowiadająca operatorom działania korygujące i ucząca się z kolejnych cykli. Zespół zaadresował nim realne straty — wydajność fermentacji poniżej celu, zmienność uzysku, utracone partie i czas reakcji na odchylenie sięgający dobę. Uważam to za najlepszy przykład tego, co chciałem osiągnąć programem: AI wpływająca bezpośrednio na wskaźniki operacyjne i rentowność produkcji, a nie kolejne usprawnienie pracy biurowej.</p>

<p>Satysfakcja uczestników wyniosła 4,5 na 5, a NPS po dniu otwierającym przekroczył +70.</p>

<h2 id="czego-się-nauczyłem">Czego się nauczyłem</h2>

<p>Po pierwsze, kwestionariusz przed wydarzeniem był najtańszym elementem programu i jednym z najbardziej wartościowych. Kilka godzin pracy dało mi konkretną wiedzę o tym, co przyciąć, a co rozwinąć — zamiast zgadywania na sali.</p>

<p>Po drugie, gotowość techniczna po stronie klienta to ryzyko, które trzeba testować, a nie deklarować. Drugiego dnia okazało się, że firewall przepuszcza do narzędzia wyłącznie pliki markdown i CSV, blokując PDF-y i obrazy. Lokalny zespół IT odblokował to w trakcie, ale kilkadziesiąt minut pracy zespołów zostało straconych. Przy kolejnych edycjach test end-to-end z udziałem IT klienta wchodzi do zakresu obowiązkowo.</p>

<p>Po trzecie, jestem mocno zorientowany na pracę i przy planowaniu drugiego dnia nie zaplanowałem żadnych aktywności rozluźniających. Zwrócili mi na to uwagę koledzy z zespołu i mieli rację — dołożone ćwiczenia przełamujące rytm wyraźnie poprawiły energię grupy po przerwie obiadowej. Warsztat to nie tylko agenda merytoryczna.</p>

<p>Na koniec kwestia, która w tego typu wydarzeniach bywa pomijana: dane. Po finale klient otrzymał komplet materiałów wejściowych i wyjściowych wytworzonych w narzędziu, a instancja została wyłączona i skasowana wraz z potwierdzeniem, że nie zostały na niej żadne pliki. Warto mieć to zaplanowane od początku, a nie ustalać po fakcie.</p>]]></content><author><name>Maciej Michałek</name></author><category term="kariera" /><category term="kariera" /><category term="cv" /><category term="genai" /><category term="hackathon" /><category term="facylitacja" /><summary type="html"><![CDATA[Celem projektu było przeprowadzenie firmowego programu otwartej innowacji, którego tegoroczna edycja została w całości poświęcona sztucznej inteligencji. Klient — wiodący koncern spożywczo-napojowy działający w kilku krajach Azji Południowo-Wschodniej — organizuje ten program cyklicznie, ale po raz pierwszy potrzebował partnera technologicznego, który wprowadzi uczestników w temat AI i pomoże im dojść od pomysłu do koncepcji gotowej do wyceny.]]></summary></entry><entry><title type="html">Zgodność z AI Act jako element procesu wytwórczego</title><link href="https://aidealist.pl/kariera/2026/07/15/zgodnosc-z-ai-act-jako-element-procesu-wytworczego.html" rel="alternate" type="text/html" title="Zgodność z AI Act jako element procesu wytwórczego" /><published>2026-07-15T08:20:00+00:00</published><updated>2026-07-15T08:20:00+00:00</updated><id>https://aidealist.pl/kariera/2026/07/15/zgodnosc-z-ai-act-jako-element-procesu-wytworczego</id><content type="html" xml:base="https://aidealist.pl/kariera/2026/07/15/zgodnosc-z-ai-act-jako-element-procesu-wytworczego.html"><![CDATA[<p>AI Act przestał być tematem przyszłościowym — część terminów już minęła, a sankcje sięgają 35 mln EUR lub 7% globalnego obrotu. Jednocześnie większość zespołów inżynierskich nadal traktowała regulację jako sprawę działu prawnego, czyli jako coś, co dzieje się gdzie indziej i po fakcie.</p>

<p>Zadanie, które sobie postawiłem, brzmiało: przełożyć akt prawny na decyzje podejmowane przez programistę w piątek po południu. Czy ten commit zmienia klasę ryzyka systemu? Czy ten model wymaga dokumentacji technicznej? Czy to jeszcze wsparcie decyzji, czy już decyzja automatyczna?</p>

<p>Przygotowałem praktyczny przewodnik dla inżynierów — nie wykład prawniczy, lecz ścieżkę decyzyjną z checklistami i jasno wyznaczonym momentem eskalacji do prawnika. Do tego narzędzie wstępnej oceny poziomu ryzyka wpięte w moment rozpoczęcia projektu oraz zestaw zasad dotyczących oznaczania treści generowanych przez AI i zachowania śladu audytowego. Materiał dostarczyłem w formie szkolenia dla społeczności deweloperskiej, współtworzonego z zespołem prawnym i compliance.</p>

<p>Efektem jest przeniesienie oceny ryzyka z kategorii dokumentu tworzonego po fakcie do kategorii standardowego kroku uruchamiającego projekt. Zespoły wiedzą, kiedy mogą działać samodzielnie, a kiedy muszą podnieść rękę.</p>

<p>„Nie wiedziałem” nie jest linią obrony, tylko przyznaniem się. Zgodność da się zoperacjonalizować wyłącznie wtedy, gdy jej koszt dla pojedynczego inżyniera spadnie do kilku minut.</p>]]></content><author><name>Maciej Michałek</name></author><category term="kariera" /><category term="kariera" /><category term="cv" /><category term="ai-act" /><category term="compliance" /><summary type="html"><![CDATA[AI Act przestał być tematem przyszłościowym — część terminów już minęła, a sankcje sięgają 35 mln EUR lub 7% globalnego obrotu. Jednocześnie większość zespołów inżynierskich nadal traktowała regulację jako sprawę działu prawnego, czyli jako coś, co dzieje się gdzie indziej i po fakcie.]]></summary></entry><entry><title type="html">Voiceboty zamiast GPS — śledzenie ciężarówek bez trackerów</title><link href="https://aidealist.pl/kariera/2026/06/24/voiceboty-zamiast-gps.html" rel="alternate" type="text/html" title="Voiceboty zamiast GPS — śledzenie ciężarówek bez trackerów" /><published>2026-06-24T08:10:00+00:00</published><updated>2026-06-24T08:10:00+00:00</updated><id>https://aidealist.pl/kariera/2026/06/24/voiceboty-zamiast-gps</id><content type="html" xml:base="https://aidealist.pl/kariera/2026/06/24/voiceboty-zamiast-gps.html"><![CDATA[<p>Klient — duży koncern spożywczy działający na Filipinach — realizuje transport wyłącznie przez zakontraktowanych przewoźników zewnętrznych o bardzo różnym poziomie dojrzałości cyfrowej. Znaczna część floty jest wynajmowana i nie ma zainstalowanych nadajników GPS, z których dałoby się korzystać. Skutek jest taki, że nie istnieje jedno źródło prawdy o postępie dostawy: statusy aktualizowane są ręcznie, terminy wyjazdu i przyjazdu są niedokładne, a opóźnienia rozpoznaje się dopiero po fakcie. Planiści spędzają istotną część dnia na dzwonieniu do przewoźników po informację o statusie — praca, która nie skaluje się w żadnym kierunku.</p>

<p>Standardowa odpowiedź na ten problem brzmi: zainstalujcie GPS. Jest kosztowna, wymaga zgody właścicieli wynajmowanej floty i nie obejmie przewoźników, którzy jutro dołączą do sieci. Postawiłem więc pytanie inaczej: skoro kierowca i tak ma telefon, a ręczne dzwonienie działa — tylko nie skaluje się — to co się stanie, jeśli zeskalujemy samo dzwonienie?</p>

<p>Zaprojektowałem rozwiązanie, w którym agent głosowy automatycznie dzwoni do kierowców na trasie i zbiera aktualizację pozycji oraz przewidywanego czasu przyjazdu. Telefony są wyzwalane cyklicznie, według konfigurowalnej reguły, a dodatkowo wtedy, gdy dane śledzenia są nieaktualne lub ich brakuje. Agent prowadzi rozmowę zarówno po angielsku, jak i w języku filipińskim — co w tym kontekście nie jest opcją, tylko warunkiem, żeby kierowca w ogóle odebrał i odpowiedział sensownie. Zebrane dane — pozostały dystans i szacowany czas — trafiają automatycznie do systemu, bez udziału dyspozytora. Warstwa wyznaczania tras oparta jest na usłudze mapowej z routingiem uwzględniającym czas i specyfikę pojazdów ciężarowych, co pozwala porównać deklarację kierowcy z realistycznym oszacowaniem i wykryć ryzyko opóźnienia.</p>

<p>Kluczowa zaleta tego podejścia jest organizacyjna, nie techniczna. Wymagania wobec kierowcy zewnętrznego przewoźnika sprowadzają się do dwóch: mieć naładowany telefon z zasięgiem i odebrać połączenie. Nie trzeba negocjować montażu sprzętu w cudzych pojazdach ani wdrażać aplikacji w firmach, nad którymi nie ma się kontroli. To samo rozwiązanie działa dla floty własnej i obcej.</p>

<p>Zakres rozwiązania objął panel administracyjny do zarządzania kierowcami, centrami dystrybucyjnymi, pojazdami i trasami, wizualizację tras i pojazdów na mapie, silnik reguł biznesowych konfigurowalnych również w języku naturalnym, detekcję ryzyka opóźnienia oraz konfigurowalny wyzwalacz połączeń cyklicznych. Świadomie zostawiłem poza zakresem integrację z systemami ERP i GPS, uwierzytelnianie korporacyjne oraz rozpoznawanie tablic rejestracyjnych z kamer — to są rozszerzenia mające sens dopiero po potwierdzeniu, że sam mechanizm działa.</p>

<p>Technologie: Python, ElevenLabs (agent konwersacyjny), Twilio, HERE Maps (routing dla pojazdów ciężarowych z uwzględnieniem czasu), Azure, PostgreSQL, Azure Static Web Apps.</p>

<p>Zbudowałem działające demo i przedstawiłem je klientowi, a następnie przygotowałem strukturę podziału prac oraz plan czterotygodniowego wdrożenia dowodu koncepcji — od warsztatu dotyczącego polityki AI i konfiguracji środowiska, przez integracje i logikę wyzwalania połączeń, po strojenie agenta głosowego i testy akceptacyjne. Klient potwierdził, że rozwiązanie bezpośrednio adresuje problem ręcznego obdzwaniania dużej liczby kierowców, szczególnie w przypadku floty zewnętrznej.</p>

<p>Wniosek, który uważam za najciekawszy w tym projekcie: najtańsze rozwiązanie problemu widoczności nie polegało na dołożeniu czujników, tylko na zauważeniu, że czujnik już tam jest — siedzi w kieszeni kierowcy i mówi po filipińsku. Rozmowa telefoniczna przestała być wąskim gardłem w momencie, w którym jej koszt krańcowy spadł do pomijalnego poziomu.</p>]]></content><author><name>Maciej Michałek</name></author><category term="kariera" /><category term="kariera" /><category term="cv" /><category term="genai" /><category term="voice-ai" /><category term="logistyka" /><summary type="html"><![CDATA[Klient — duży koncern spożywczy działający na Filipinach — realizuje transport wyłącznie przez zakontraktowanych przewoźników zewnętrznych o bardzo różnym poziomie dojrzałości cyfrowej. Znaczna część floty jest wynajmowana i nie ma zainstalowanych nadajników GPS, z których dałoby się korzystać. Skutek jest taki, że nie istnieje jedno źródło prawdy o postępie dostawy: statusy aktualizowane są ręcznie, terminy wyjazdu i przyjazdu są niedokładne, a opóźnienia rozpoznaje się dopiero po fakcie. Planiści spędzają istotną część dnia na dzwonieniu do przewoźników po informację o statusie — praca, która nie skaluje się w żadnym kierunku.]]></summary></entry><entry><title type="html">Konwersacyjne AI/BI, czyli NL2SQL, który wie czego nie wie</title><link href="https://aidealist.pl/kariera/2026/06/10/konwersacyjne-ai-bi-czyli-nl2sql-ktory-wie-czego-nie-wie.html" rel="alternate" type="text/html" title="Konwersacyjne AI/BI, czyli NL2SQL, który wie czego nie wie" /><published>2026-06-10T07:00:00+00:00</published><updated>2026-06-10T07:00:00+00:00</updated><id>https://aidealist.pl/kariera/2026/06/10/konwersacyjne-ai-bi-czyli-nl2sql-ktory-wie-czego-nie-wie</id><content type="html" xml:base="https://aidealist.pl/kariera/2026/06/10/konwersacyjne-ai-bi-czyli-nl2sql-ktory-wie-czego-nie-wie.html"><![CDATA[<p>Klient, globalny koncern z branży napojów, chciał umożliwić menedżerom w kilkudziesięciu rynkach zadawanie pytań o sprzedaż własnymi słowami i otrzymywanie wiarygodnej liczby — zamiast czekania dwóch dni na dostępność analityka.</p>

<p>Naturalne pytanie jest z definicji wieloznaczne. „Sprzedaż w zeszłym kwartale” oznacza co innego w finansach, co innego w łańcuchu dostaw, a w każdym rynku może mieć jeszcze odrębną definicję lokalną. Model językowy chętnie wygeneruje SQL dla każdego z tych pytań, w tym dla tego źle zrozumianego, i zrobi to z jednakową pewnością siebie.</p>

<p>Punktem ciężkości rozwiązania nie był zatem model, lecz warstwa semantyczna: jedno źródło prawdy dla metryk, joinów, synonimów i wariantów rynkowych. Routing i orkiestracja działają nad nią, a nie zamiast niej. Dołożyliśmy zestaw kontroli: tożsamość użytkownika przenoszona do zapytania, bezpieczeństwo na poziomie wierszy i kolumn, rozróżnienie w odpowiedzi między faktem, wyliczeniem, prognozą i symulacją, a także progi pewności, poniżej których system świadomie odmawia odpowiedzi zamiast zgadywać.</p>

<p>Byłem odpowiedzialny za architekturę rozwiązania oraz za odpowiedzi na pytania architektoniczne stawiane przez architektów klienta — w tym za wyznaczenie granic zastosowania, czyli wskazanie przypadków, w których wzorzec konwersacyjny nie jest właściwym narzędziem i należy sięgnąć po inne.</p>

<p>Odmowa odpowiedzi jest tu funkcją, nie awarią. Każda zwrócona liczba ma pochodzenie, wersję modelu i ślad w logach.</p>

<p>Routing nie zastąpi semantyki. Jeżeli definicje metryk i warianty rynkowe nie są rozstrzygnięte w warstwie semantycznej, orkiestrator jedynie rozprowadzi tę niejednoznaczność po większej liczbie interfejsów.</p>]]></content><author><name>Maciej Michałek</name></author><category term="kariera" /><category term="kariera" /><category term="cv" /><category term="genai" /><category term="nl2sql" /><summary type="html"><![CDATA[Klient, globalny koncern z branży napojów, chciał umożliwić menedżerom w kilkudziesięciu rynkach zadawanie pytań o sprzedaż własnymi słowami i otrzymywanie wiarygodnej liczby — zamiast czekania dwóch dni na dostępność analityka.]]></summary></entry><entry><title type="html">Asystent informacji o lekach dla lekarzy oparty o graf wiedzy</title><link href="https://aidealist.pl/kariera/2026/05/20/asystent-informacji-o-lekach-dla-lekarzy-oparty-o-graf-wiedzy.html" rel="alternate" type="text/html" title="Asystent informacji o lekach dla lekarzy oparty o graf wiedzy" /><published>2026-05-20T08:45:00+00:00</published><updated>2026-05-20T08:45:00+00:00</updated><id>https://aidealist.pl/kariera/2026/05/20/asystent-informacji-o-lekach-dla-lekarzy-oparty-o-graf-wiedzy</id><content type="html" xml:base="https://aidealist.pl/kariera/2026/05/20/asystent-informacji-o-lekach-dla-lekarzy-oparty-o-graf-wiedzy.html"><![CDATA[<p>Projekt realizowany dla wiodącej firmy farmaceutycznej. Lekarze potrzebują szybkiego dostępu do rzetelnej informacji o lekach — dawkowaniu, przeciwwskazaniach, interakcjach — a producent potrzebuje sposobu na wprowadzenie ich w nowe leki i terapie. Rynek jest silnie regulowany, a system w rozumieniu AI Act klasyfikuje się jako średniego ryzyka.</p>

<p>Klasyczny RAG oparty o embeddingi radzi sobie dobrze z pytaniami ogólnymi i zawodzi dokładnie tam, gdzie jest najważniejszy: na nazwach własnych leków, jednostkach dawkowania i relacjach między substancjami. W tej dziedzinie halucynacja nie jest usterką kosmetyczną.</p>

<p>Uporządkowałem wiedzę farmaceutyczną w dedykowaną taksonomię łączącą wiele źródeł danych. Dołożyliśmy wyspecjalizowane rozpoznawanie encji dla terminów medycznych i nazw leków, a retrieval oparliśmy na grafie — model językowy dostaje kontekst wynikający z relacji między bytami, a nie z podobieństwa tekstu. Odpowiedź jest generowana warstwowo i zawsze z cytowaniem źródła, a każde wywołanie modelu jest śledzone w Langfuse, co daje pełną audytowalność rozwiązania.</p>

<p>Osobnym, istotnym obszarem mojej pracy była rama oceny jakości: definicja metryk zrozumiałych dla nietechnicznego interesariusza i kategoryzacja typów błędów. Oceniona trafność odpowiedzi wyniosła około 95%, a w obszarach krytycznych — dawkowanie i przeciwwskazania — około 99%.</p>

<p>Technologie: Python, Azure, LangGraph, Cosmos DB z API Gremlin, Langfuse.</p>

<p>Zanim zacznie się mierzyć halucynacje, trzeba zdefiniować, czym jest odpowiedź poprawna. Zbudowanie ramy oceny okazało się trudniejsze niż zbudowanie samego retrievalu.</p>]]></content><author><name>Maciej Michałek</name></author><category term="kariera" /><category term="kariera" /><category term="cv" /><category term="genai" /><category term="rag" /><summary type="html"><![CDATA[Projekt realizowany dla wiodącej firmy farmaceutycznej. Lekarze potrzebują szybkiego dostępu do rzetelnej informacji o lekach — dawkowaniu, przeciwwskazaniach, interakcjach — a producent potrzebuje sposobu na wprowadzenie ich w nowe leki i terapie. Rynek jest silnie regulowany, a system w rozumieniu AI Act klasyfikuje się jako średniego ryzyka.]]></summary></entry><entry><title type="html">PoC dopasowywania SKU w zakupach — od tygodni do godzin</title><link href="https://aidealist.pl/kariera/2026/04/08/poc-dopasowywania-sku-w-zakupach.html" rel="alternate" type="text/html" title="PoC dopasowywania SKU w zakupach — od tygodni do godzin" /><published>2026-04-08T07:45:00+00:00</published><updated>2026-04-08T07:45:00+00:00</updated><id>https://aidealist.pl/kariera/2026/04/08/poc-dopasowywania-sku-w-zakupach</id><content type="html" xml:base="https://aidealist.pl/kariera/2026/04/08/poc-dopasowywania-sku-w-zakupach.html"><![CDATA[<p>Klient, międzynarodowa grupa działająca w obszarze usług gastronomicznych, mierzy się z rosnącą złożonością analizy zakupowej. Katalogi produktowe puchną, a kolejne przejęcia dokładają następne — każde z własnym modelem danych. Menedżerowie kategorii spędzali tygodnie na ręcznym dopasowywaniu i porównywaniu SKU w arkuszach kalkulacyjnych, co opóźniało decyzje o oszczędnościach i wprowadzało niespójność. Dane podstawowe nie były wiarygodne, a między rynkami nie istniał żaden wzorzec złotego rekordu.</p>

<p>Trudność nie polega na tym, że produktów jest dużo. Polega na tym, że ten sam produkt u dwóch dostawców ma inną nazwę, inną jednostkę miary i inną strukturę opisu, a część atrybutów istotnych dla porównania — jak gramatura porcji — w ogóle nie występuje jako pole w danych, tylko siedzi w tekście opisu.</p>

<p>Podejście, które przyjąłem, opiera się na warstwowym dopasowaniu. Najpierw katalog jest dzielony na porównywalne kubełki: częściowo według hierarchii obecnych w danych, częściowo według atrybutów wywnioskowanych przez model z opisu tekstowego. Wołowina to jedna kategoria, ale w jej obrębie liczy się już wielkość opakowania i gramatura — a te trzeba wydobyć z tekstu. Dopiero wewnątrz kubełka działa wyszukiwanie semantyczne oparte na embeddingach, zestawione z porównaniem atrybutów i opatrzone oceną pewności oraz wyjaśnieniem, dlaczego dwa produkty uznano za odpowiedniki. Reguły biznesowe — na przykład zakaz mieszania produktów bio z nie-bio — działają zarówno jako zdefiniowane ograniczenia, jak i jako doprecyzowania wydawane w języku naturalnym. Osobny moduł wydobywa jednostki miary z nazw produktów podejściem hybrydowym, łączącym reguły heurystyczne z modelem językowym tam, gdzie heurystyka zawodzi, i normalizuje ceny do porównywalnej ceny za jednostkę. Na końcu wchodzi solver MILP, który na podstawie uploadowanego planu popytu rekomenduje optymalny miks dostawców z uwzględnieniem minimalnych wielkości zamówienia, czasu dostawy i kosztów transportu.</p>

<p>Prototyp demonstrujący pełny przepływ — od wczytania katalogu, przez wyszukiwanie semantyczne i dopasowanie z wyjaśnieniem, po wykrywanie oszczędności i zoptymalizowany plan zakupowy — zbudowałem w tydzień. To zmieniło trajektorię całej rozmowy z klientem: przestaliśmy dyskutować, czy to zadziała, a zaczęliśmy rozmawiać o tym, jak szybko można to wdrożyć i o ile taniej.</p>

<p>Technologie: Python, embeddingi, wyszukiwanie wektorowe, LLM, MILP (OR-Tools / PuLP), Azure.</p>

<p>Uczestniczyłem w kształtowaniu podejścia technicznego i wycenie prac. Wniosek, który zapamiętałem: działający prototyp jest mocniejszym argumentem handlowym niż najlepiej przygotowana prezentacja, a koszt jego zbudowania dzięki AI Assisted Coding bywa niższy niż koszt jej przygotowania.</p>]]></content><author><name>Maciej Michałek</name></author><category term="kariera" /><category term="kariera" /><category term="cv" /><category term="genai" /><category term="embeddings" /><category term="optymalizacja" /><summary type="html"><![CDATA[Klient, międzynarodowa grupa działająca w obszarze usług gastronomicznych, mierzy się z rosnącą złożonością analizy zakupowej. Katalogi produktowe puchną, a kolejne przejęcia dokładają następne — każde z własnym modelem danych. Menedżerowie kategorii spędzali tygodnie na ręcznym dopasowywaniu i porównywaniu SKU w arkuszach kalkulacyjnych, co opóźniało decyzje o oszczędnościach i wprowadzało niespójność. Dane podstawowe nie były wiarygodne, a między rynkami nie istniał żaden wzorzec złotego rekordu.]]></summary></entry><entry><title type="html">Standardy programowania wspierane przez AI</title><link href="https://aidealist.pl/kariera/2026/03/18/standardy-programowania-wspierane-przez-ai.html" rel="alternate" type="text/html" title="Standardy programowania wspierane przez AI" /><published>2026-03-18T08:30:00+00:00</published><updated>2026-03-18T08:30:00+00:00</updated><id>https://aidealist.pl/kariera/2026/03/18/standardy-programowania-wspierane-przez-ai</id><content type="html" xml:base="https://aidealist.pl/kariera/2026/03/18/standardy-programowania-wspierane-przez-ai.html"><![CDATA[<p>Asystenci kodu weszli do zespołów szybciej, niż powstały zasady ich używania. Efektem był rozjazd: różne konfiguracje lokalne, różni dostawcy modeli, różna jakość tego, co ostatecznie trafiało do repozytorium.</p>

<p>Celem było ustandaryzowanie pracy z AI w wytwarzaniu oprogramowania bez spowalniania zespołów i bez zamieniania standardu w dokument, którego nikt nie czyta.</p>

<p>Współtworzyłem firmowe standardy programowania w Pythonie oparte na trzech filarach. Pierwszy to skonteneryzowane środowiska deweloperskie — identyczne u każdego programisty, a także dla agenta kodującego, co eliminuje całą klasę problemów typu „u mnie działa”. Drugi to zarządzanie kontekstem dla asystentów, żeby model pracował na tej samej wiedzy o projekcie co człowiek. Trzeci to automatyczne bramki jakości w CI/CD zamiast ręcznego pilnowania zasad podczas code review.</p>

<p>Osobnym elementem było ujednolicenie nazewnictwa struktury repozytoriów. Wydaje się banalne, dopóki nie okaże się, że folder „infrastructure” oznacza coś zupełnie innego dla architekta pracującego w modelu heksagonalnym, a coś innego dla inżyniera DevOps — i że ta kolizja semantyczna myli nie tylko ludzi, ale też agentów kodujących.</p>

<p>Praktyczne znaczy sprawne, a nie niedbałe. Mnóstwo zysku z AI w kodzie bierze się nie z szybszego pisania, lecz z tego, że nie trzeba pisać rzeczy, które już były rozwiązane.</p>]]></content><author><name>Maciej Michałek</name></author><category term="kariera" /><category term="kariera" /><category term="cv" /><category term="genai" /><category term="standardy" /><summary type="html"><![CDATA[Asystenci kodu weszli do zespołów szybciej, niż powstały zasady ich używania. Efektem był rozjazd: różne konfiguracje lokalne, różni dostawcy modeli, różna jakość tego, co ostatecznie trafiało do repozytorium.]]></summary></entry><entry><title type="html">Produktyzacja i wdrożenie modeli ML na 28 rynkach</title><link href="https://aidealist.pl/kariera/2025/09/24/produktyzacja-i-wdrozenie-modeli-ml-w-28-rynkach.html" rel="alternate" type="text/html" title="Produktyzacja i wdrożenie modeli ML na 28 rynkach" /><published>2025-09-24T09:40:00+00:00</published><updated>2025-09-24T09:40:00+00:00</updated><id>https://aidealist.pl/kariera/2025/09/24/produktyzacja-i-wdrozenie-modeli-ml-w-28-rynkach</id><content type="html" xml:base="https://aidealist.pl/kariera/2025/09/24/produktyzacja-i-wdrozenie-modeli-ml-w-28-rynkach.html"><![CDATA[<p>Klient, jeden z największych rozlewników napojów na świecie, przeprowadził udany PoC modeli optymalizujących kanał detaliczny i działania marketingowe. Następnie potrzebował partnera do produktyzacji i wdrożenia rozwiązania na 28 rynkach — przy bardzo napiętym harmonogramie i równoległej modernizacji architektury danych, co istotnie podnosiło złożoność dostarczania.</p>

<p>Kod z PoC nie jest produktem. Do tego każdy rynek wnosi własne wymagania, a źródła danych migrują w trakcie trwania rolloutu. Wdrażanie sekwencyjne, rynek po rynku, nie mieściło się w żadnym realnym kalendarzu.</p>

<p>Zbudowaliśmy framework techniczny pozwalający prowadzić rollouty równolegle, partiami po trzy do sześciu rynków. Do architektury danych klienta weszły nowe komponenty: biblioteka wejścia i wyjścia danych, rejestr modeli MLflow oraz skalowanie orkiestracji w Azure Data Factory. Wyprodukcjonalizowane zostały cztery moduły ML wraz z licznymi personalizacjami rynkowymi: mikrosegmentacja klientów, rekomendacja asortymentu, potencjał wartości klienta i rekomendowana częstotliwość wizyt handlowych.</p>

<p>Rezultaty: czas wdrożenia pojedynczego rynku spadł z dwóch miesięcy do około półtora tygodnia, koszt przetwarzania zmniejszył się o 50%, a czas przetwarzania o 40%.</p>

<p>Technologie: Azure, Databricks, Python, MLflow, Azure Data Factory.</p>

<p>Przyspieszenie rzędu trzy do pięciu razy nie wzięło się z lepszych modeli. Wzięło się stąd, że personalizacja rynkowa dostała własne, wyraźnie odgraniczone miejsce w strukturze kodu.</p>]]></content><author><name>Maciej Michałek</name></author><category term="kariera" /><category term="kariera" /><category term="cv" /><category term="mlops" /><summary type="html"><![CDATA[Klient, jeden z największych rozlewników napojów na świecie, przeprowadził udany PoC modeli optymalizujących kanał detaliczny i działania marketingowe. Następnie potrzebował partnera do produktyzacji i wdrożenia rozwiązania na 28 rynkach — przy bardzo napiętym harmonogramie i równoległej modernizacji architektury danych, co istotnie podnosiło złożoność dostarczania.]]></summary></entry></feed>