{"id":903297,"date":"2024-06-12T12:09:43","date_gmt":"2024-06-12T12:09:43","guid":{"rendered":"https:\/\/www.capgemini.com\/pl-pl\/?p=903297"},"modified":"2025-03-11T18:18:24","modified_gmt":"2025-03-11T18:18:24","slug":"budowanie-aplikacji-chmurowych-opartych-na-ai-co-warto-wiedziec","status":"publish","type":"post","link":"https:\/\/www.capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/","title":{"rendered":"Budowanie aplikacji chmurowych opartych na AI: Co warto wiedzie\u0107?"},"content":{"rendered":"\n<header class=\"wp-block-cg-blocks-hero-blogs header-hero-blogs\"><div class=\"container\"><div class=\"hero-blogs\"><div class=\"hero-blogs-content-wrapper\"><div class=\"row\"><div class=\"col-12\"><div class=\"header-title\"><h1>Budowanie aplikacji chmurowych opartych na AI: Co warto wiedzie\u0107?<\/h1><\/div><\/div><\/div><\/div><div class=\"hero-blogs-bottom\"><div class=\"header-author\"><div class=\"author-img\"><img decoding=\"async\" src=\"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2024\/06\/mmatczak.jpeg?w=200&amp;quality=10\" alt=\"\" loading=\"lazy\"\/><\/div><div class=\"author-name-date\"><h5 class=\"author-name\">Marek Matczak<\/h5><h5 class=\"blog-date\">Jun 12, 2024<\/h5><\/div><\/div><div class=\"brand-image\"> <\/div><\/div><\/div><\/div><\/header>\n\n\n\n<section class=\"wp-block-cg-blocks-group undefined section section--article-content\"><div class=\"article-main-content\"><div class=\"container\"><div class=\"row\"><div class=\"col-12 col-md-1\"><nav class=\"article-social\"><ul class=\"social-nav\"><li class=\"ip-order-fb\"><a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https:\/\/www.capgemini.com\/pl-pl\/?p=903297\" target=\"_blank\" rel=\"noopener noreferrer\" title=\"otwiera si\u0119 w nowym oknie\"><i aria-hidden=\"true\" class=\"icon-fb\"><\/i><span class=\"sr-only\">Facebook<\/span><\/a><\/li><li class=\"ip-order-li\"><a href=\"https:\/\/www.linkedin.com\/sharing\/share-offsite\/?url=https:\/\/www.capgemini.com\/pl-pl\/?p=903297\" target=\"_blank\" rel=\"noopener noreferrer\" title=\"otwiera si\u0119 w nowym oknie\"><i aria-hidden=\"true\" class=\"icon-li\"><\/i><span class=\"sr-only\">Linkedin<\/span><\/a><\/li><\/ul><\/nav><\/div><div class=\"col-12 col-md-11 col-lg-10\"><div class=\"article-text article-quote-text\">\n<h3 class=\"wp-block-heading\" id=\"h-w-ostatnim-czasie-zespol-capgemini-mial-okazje-stworzyc-kilka-aplikacji-biznesowych-wykorzystujacych-sztuczna-inteligencje-rowniez-te-generatywna-zawdzieczajaca-swoja-niezwykla-popularnosc-chatowi-gpt-w-tym-artykule-dziele-sie-z-wami-swoimi-spostrzezeniami-ktore-okazaly-sie-niezwykle-istotne-w-trakcie-budowania-takich-rozwiazan\">W ostatnim czasie zesp\u00f3\u0142 Capgemini mia\u0142 okazj\u0119 stworzy\u0107 kilka aplikacji biznesowych wykorzystuj\u0105cych sztuczn\u0105 inteligencj\u0119, r\u00f3wnie\u017c t\u0119 generatywn\u0105 \u2013 zawdzi\u0119czaj\u0105c\u0105 swoj\u0105 niezwyk\u0142\u0105 popularno\u015b\u0107 chatowi GPT. W tym artykule dziel\u0119 si\u0119 z Wami swoimi spostrze\u017ceniami, kt\u00f3re okaza\u0142y si\u0119 niezwykle istotne w trakcie budowania takich rozwi\u0105za\u0144. <\/h3>\n\n\n\n<p>Kiedy m\u00f3wmy o generatywnej sztucznej inteligencji, to niemal od razu my\u015blimy o tzw. du\u017cych modelach j\u0119zykowych (ang. Large Language Models, LLMs), kt\u00f3re s\u0105 wprawdzie jej najbardziej rozpoznawalnym, ale nie jedynym, elementem. Budowanie niezawodnych aplikacji opartych na sztucznej inteligencji wymaga holistycznego podej\u015bcia, w kt\u00f3rym korzystamy z wyspecjalizowanych, najcz\u0119\u015bciej chmurowych, narz\u0119dzi AI. Co wi\u0119cej, u\u017cywamy ich w oparciu o najnowsze wzorce projektowe z obszaru AI, a tak\u017ce stosujemy sprawdzone w wielu projektach techniki in\u017cynierii oprogramowania.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-llmy-zagladamy-do-srodka\">LLMy: zagl\u0105damy do \u015brodka<\/h4>\n\n\n\n<p>Zakres wiedzy LLM\u00f3w jest ograniczony i zale\u017cy od zbioru danych u\u017cytego w trakcie trenowania modeli. Podczas budowania aplikacji biznesowych niesie to ze sob\u0105 dwa podstawowe wyzwania: jak wzbogaci\u0107 du\u017ce modele j\u0119zykowe o wiedz\u0119 specyficzn\u0105 dla danego biznesu, np. o tre\u015bci rozporz\u0105dze\u0144 dla pracownik\u00f3w oraz jak zapewni\u0107, \u017ce zmiany w tych rozporz\u0105dzeniach b\u0119d\u0105 od razu widoczne w trakcie u\u017cywania tych modeli. Pierwszym pomys\u0142em, kt\u00f3ry si\u0119 nasuwa, jest wytrenowanie w\u0142asnego modelu od podstaw, wzgl\u0119dnie dotrenowanie modelu bazowego, z u\u017cyciem swoich danych i powtarzanie tego procesu, gdy konieczna jest ich aktualizacja. Te podej\u015bcia s\u0105 jednak w wi\u0119kszo\u015bci przypadk\u00f3w niepraktyczne ze wzgl\u0119du na ogromne koszty id\u0105ce nawet w setki milion\u00f3w z\u0142otych. Bardziej efektywnym rozwi\u0105zaniem jest metoda uczenia kontekstowego (ang. in-context learning). Polega ona na tym, \u017ce w zapytaniu wysy\u0142anym do modelu, opr\u00f3cz w\u0142a\u015bciwego pytania, np. \u201cJaka jest procedura zg\u0142aszania awarii sprz\u0119tu?\u201d, wysy\u0142amy r\u00f3wnie\u017c tre\u015b\u0107 dokumentu opisuj\u0105cego tre\u015bci procedur, w tym tej, o kt\u00f3r\u0105 pytamy. W metodzie uczenia kontekstowego du\u017ce modele j\u0119zykowe nie wykorzystuj\u0105 zatem wiedzy pozyskanej w trakcie ich trenowania, ale u\u017cywaj\u0105 zdolno\u015bci do znaczeniowej analizy tekstu (zar\u00f3wno dokumentu, jak i w\u0142a\u015bciwego pytania). Co wi\u0119cej, ta analiza odbywa si\u0119 w trakcie generowania odpowiedzi, m\u00f3wi\u0105c kolokwialnie \u201cw locie\u201d. Ta metoda ma jednak r\u00f3wnie\u017c swoje ograniczenie. Jest nim rozmiar zapytania, czyli tzw. promptu, a co za tym idzie ograniczona ilo\u015b\u0107 wiedzy, o jak\u0105 mo\u017cemy rozbudowa\u0107 nasz model. Z tym ograniczeniem mo\u017cna sobie jednak poradzi\u0107. Jednym ze sposob\u00f3w jest zastosowanie popularnego wzorca RAG (ang. Retrieval Augmented Generation), polegaj\u0105cego na umieszczeniu w prompcie tylko tych fragment\u00f3w dokument\u00f3w, kt\u00f3re s\u0105 istotne z punktu widzenia zadawanego pytania. Drugim sposobem jest\u2026 pozbycie si\u0119 tego ograniczenia i u\u017cycie LLMu pozwalaj\u0105cego na ogromny rozmiar promptu id\u0105cy w tysi\u0105ce stron tekstu (np. Gemini 1.5 od Google).<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-rag-inteligentne-wyszukiwanie-mniejszy-rozmiar-promptu\">RAG: inteligentne wyszukiwanie = mniejszy rozmiar promptu<\/h4>\n\n\n\n<p>RAG wykorzystuje mo\u017cliwo\u015bci kolejnych element\u00f3w z obszaru AI: zanurzenie (ang. embeddings) i wektorowe bazy danych (wi\u0119cej o tych elementach w dalszej cz\u0119\u015bci artyku\u0142u). Kombinacja tych element\u00f3w pozwala na znalezienie dopasowania znaczeniowego mi\u0119dzy pytaniem, wracaj\u0105c do naszego przyk\u0142adu: \u201cJaka jest procedura zg\u0142aszania awarii sprz\u0119tu?\u201d, a fragmentami dokument\u00f3w, kt\u00f3re z du\u017cym prawdopodobie\u0144stwem zawieraj\u0105 odpowied\u017a na to pytanie. Dzi\u0119ki technice RAG znacz\u0105co ograniczamy rozmiar promptu oraz zwi\u0119kszamy jako\u015b\u0107 generowanych odpowiedzi, kt\u00f3ra mo\u017ce by\u0107 ni\u017csza, je\u015bli prompt zawiera nieistotne informacje, czyli tzw. \u201cszum\u201d.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">LLMy z rozszerzonym oknem kontekstowym<\/h4>\n\n\n\n<p>Najnowsze LLMy pozwalaj\u0105 na zbudowanie promptu o rozmiarze odpowiadaj\u0105cym nawet ponad tysi\u0105cu stronom tekstu. To sporo. W wielu wypadkach rozmiar ten pozwoli\u0142by na umieszczenie w prompcie np. wszystkich procedur firmy. Nie musimy w\u00f3wczas implementowa\u0107 wzorca RAG. Zaraz, zaraz\u2026 Ale co ze wspomnianym wy\u017cej \u201eszumem\u201d, kt\u00f3ry mo\u017ce przecie\u017c obni\u017cy\u0107 jako\u015b\u0107 generowanych odpowiedzi? Okazuje si\u0119, \u017ce testy przeprowadzone na modelach z du\u017cymi oknami kontekstowymi (inna nazwa na rozmiar promptu), zwane obrazowo szukaniem ig\u0142y w stogu siana, da\u0142y bardzo obiecuj\u0105ce rezultaty i zdaj\u0105 si\u0119 nie potwierdza\u0107 obaw zwi\u0105zanych ze wspomnianym \u201eszumem\u201d: uda\u0142o si\u0119 w wi\u0119kszo\u015bci test\u00f3w znale\u017a\u0107 przys\u0142owiow\u0105 ig\u0142\u0119.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Kt\u00f3re podej\u015bcie wybra\u0107?<\/h4>\n\n\n\n<p>RAG czy LLM z rozszerzonym oknem kontekstowym? W podj\u0119ciu decyzji mo\u017ce pom\u00f3c analiza koszt\u00f3w obu rozwi\u0105za\u0144. Koszt zapytania do LLMu zale\u017cy od wielko\u015bci promptu, ale w przypadku rozwi\u0105zania opartego na RAG musimy doliczy\u0107 koszt wektorowej bazy danych, obliczania zanurze\u0144 oraz rozwi\u0105zania samego w sobie.<\/p>\n\n\n\n<p>Dodatkowym argumentem przy wyborze rozwi\u0105zania powinna by\u0107 ocena jako\u015bci generowanych odpowiedzi. Jak to zrobi\u0107? O tym w dalszej cz\u0119\u015bci artyku\u0142u.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Wykorzystanie kreatywno\u015bci (lub jej ograniczenie)<\/h4>\n\n\n\n<p>Jedn\u0105 z najbardziej spektakularnych cech LLM\u00f3w jest ich kreatywno\u015b\u0107. Szukasz inspiracji, gdzie pojecha\u0107 na wakacje i jak zaplanowa\u0107 tam czas? LLM jest w stanie wygenerowa\u0107 odpowied\u017a w ci\u0105gu kilku sekund! Ale uwaga: ta odpowied\u017a mo\u017ce zawiera\u0107 zmy\u015blone lub nieprawdziwe informacje (halucynacje). Dok\u0142adnego przeciwie\u0144stwa, czyli ograniczenia halucynacji, a zamiast kreatywno\u015bci &#8211; odpowiedzi bazuj\u0105cej na faktycznych dokumentach, oczekiwaliby\u015bmy natomiast od wirtualnego asystenta odpowiadaj\u0105cego na wspomniane wcze\u015bniej pytanie: \u201cJaka jest procedura zg\u0142aszania awarii sprz\u0119tu?\u201d Jak to zrobi\u0107? Okazuje si\u0119, \u017ce LLMy maj\u0105 parametry, takie jak <em>temperatura<\/em> czy <em>top_k<\/em>, kt\u00f3re umo\u017cliwiaj\u0105 kontrolowanie tych aspekt\u00f3w. Na przyk\u0142ad ustawienie <em>temperatury<\/em> na 0 i <em>top_k<\/em> na 1 sprawi, \u017ce odpowiedzi b\u0119d\u0105 bardziej faktyczne.<\/p>\n\n\n\n<p>Aby zwi\u0119kszy\u0107 wiarygodno\u015b\u0107 odpowiedzi, mo\u017cemy doda\u0107 linki do dokument\u00f3w \u017ar\u00f3d\u0142owych, a nawet opatrzy\u0107 odpowied\u017a cytatami z tych \u017ar\u00f3de\u0142. Mo\u017cemy r\u00f3wnie\u017c poinstruowa\u0107 model (o tym jak to zrobi\u0107, w dalszej cz\u0119\u015bci artyku\u0142u), aby w razie, gdy nie mo\u017cna by\u0142o znale\u017a\u0107 odpowiedzi w samym prompcie, nie \u201ehalucynowa\u0142\u201d, ale odpowiedzia\u0142 po prostu \u201enie wiem\u201d. Warto wspomnie\u0107 przy tej okazji, \u017ce ca\u0142kowite wyeliminowanie halucynacji z LLM\u00f3w, kt\u00f3re s\u0105 modelami statystycznymi, a wi\u0119c niedeterministycznymi, nie jest na ten moment mo\u017cliwe. Nale\u017cy ten fakt wzi\u0105\u0107 pod uwag\u0119 projektuj\u0105c rozwi\u0105zanie biznesowe. W niekt\u00f3rych wypadkach nie da si\u0119 zupe\u0142nie wyeliminowa\u0107 cz\u0142owieka w podj\u0119ciu decyzji biznesowej (ang. human in the loop).<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-wektorowe-reprezentacje-cichy-bohater\">Wektorowe reprezentacje: cichy bohater<\/h4>\n\n\n\n<p>Zanurzenia s\u0105 wektorow\u0105 reprezentacj\u0105 znaczenia pojedynczego s\u0142owa czy fragmentu tekstu (ale r\u00f3wnie\u017c obrazu lub d\u017awi\u0119ku). Ta \u201esucha\u201d definicja nie oddaje jednak ogromnych mo\u017cliwo\u015bci zastosowania tego elementu sztucznej inteligencji w budowanych aplikacjach biznesowych. M\u00f3wi\u0105c o znaczeniu mam na my\u015bli jego ca\u0142y kontekst z uwzgl\u0119dnieniem wielu niuans\u00f3w (np. kulturowych). Zreszt\u0105 najlepszym dowodem potwierdzaj\u0105cym te mo\u017cliwo\u015bci jest fakt, \u017ce zanurzenia s\u0105 wykorzystywane w trakcie trenowania samych LLM\u00f3w, a tak\u017ce za ka\u017cdym razem, gdy wysy\u0142amy do nich nasz prompt. Jakie mog\u0105 by\u0107 potencjalne rozwi\u0105zania biznesowe z u\u017cyciem zanurze\u0144? Na przyk\u0142ad wyszukiwanie kontekstowe zamiast tradycyjnego bazuj\u0105cego na s\u0142owach kluczowych albo system rekomendacji produkt\u00f3w w oparciu o aktualny koszyk zam\u00f3wie\u0144.<\/p>\n\n\n\n<p>Buduj\u0105c aplikacje biznesowe z elementami AI najcz\u0119\u015bciej zaczynamy od LLMa, ale mo\u017ce si\u0119 okaza\u0107, \u017ce nie jest on w og\u00f3le potrzebny, bo to w\u0142a\u015bnie wektorowe reprezentacje s\u0105 rozwi\u0105zaniem naszego wyzwania biznesowego. Warto te\u017c sprawdzi\u0107 w dokumentacji technicznej czy wybrany model wektorowych reprezentacji wspiera j\u0119zyk tekst\u00f3w danej aplikacji (np. opisy produkt\u00f3w).<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-wektorowa-baza-danych-znajdz-podobienstwa\">Wektorowa baza danych: znajd\u017a podobie\u0144stwa<\/h4>\n\n\n\n<p>W jaki spos\u00f3b wyszuka\u0107 podobne znaczeniowo fragmenty dokument\u00f3w albo &#8211; jak wspomniano wcze\u015bniej w metodzie RAG &#8211; znale\u017a\u0107 te zawieraj\u0105ce odpowied\u017a na zadane pytanie? Z pomoc\u0105 przychodz\u0105 wektorowe bazy danych, kt\u00f3re umozliwiaj\u0105 przechowywanie wektor\u00f3w, a wraz z nimi np. tekst\u00f3w. Co wi\u0119cej, produkty te umozliwiaj\u0105 efektywne przeszukiwanie wielowymiarowych przestrzeni wektorowych w celu znalezienia tych znajduj\u0105cych si\u0119 blisko siebie, co za tym idzie, odpowiadaj\u0105cych im podobnych znaczeniowo tekst\u00f3w.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Jak\u0105 baz\u0119 wybra\u0107?<\/h4>\n\n\n\n<p>Jaki produkt bazodanowy wybra\u0107? Cho\u0107 na rynku jest sporo specjalizowanych produkt\u00f3w, np. Pinecone, Amazon Kendra albo Azure AI Search, rozwa\u017cy\u0142bym u\u017cycie tradycyjnej, relacyjnej bazy danych z rozszerzeniem wektorowym, np. PostgreSQL i pgvector. Szczeg\u00f3lnie w pocz\u0105tkowej fazie budowania aplikacji, kiedy nie znamy jeszcze dok\u0142adnych wymaga\u0144 wydajno\u015bciowych, warto postawi\u0107 na takie hybrydowe rozwi\u0105zanie, tym bardziej, \u017ce w ten spos\u00f3b znacz\u0105co ograniczymy koszty chmury.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-inzynieria-promptow-jezyk-ai\">In\u017cynieria Prompt\u00f3w: j\u0119zyk AI<\/h4>\n\n\n\n<p>Tre\u015b\u0107, kt\u00f3r\u0105 wysy\u0142amy do LLMa, czli tzw. prompt, mo\u017ce zawiera\u0107 nie tylko samo pytanie, ale r\u00f3wnie\u017c instrukcje wraz dodatkowymi informacjami. Na przyk\u0142ad, w opisywanym wcze\u015bniej podej\u015bciu uczenia kontekstowego, prompt zawiera instrukcj\u0119, aby odpowiedzie\u0107 na pytanie w oparciu o za\u0142\u0105czone fragmenty dokument\u00f3w. Nie jest to niczym innym ni\u017c programowaniem w j\u0119zyku naturalnym! Na potwierdzenie tych s\u0142\u00f3w warto zacytowa\u0107 tutaj Andreja Karpathy\u2019ego, badacza i popularyzatora AI: <em>The hottest new programming language is English<\/em>. Tak jak w tradycyjnym programowaniu pos\u0142ugujemy si\u0119 pewnymi wzorcami, tak i w tym swoistym <em>j\u0119zyku AI<\/em> takich potrzebujemy. Sztuk\u0119 tworzenia prompt\u00f3w okre\u015bla si\u0119 mianem in\u017cynierii prompt\u00f3w. Cho\u0107 ten termin brzmi bardzo powa\u017cnie, nie trzeba by\u0107 tutaj specjalist\u0105. Wed\u0142ug mnie podstawowe techniki in\u017cynierii prompt\u00f3w powinien zna\u0107 ka\u017cdy, a ich nauczanie powinno zacz\u0105\u0107 si\u0119 ju\u017c w szkole podstawowej!<\/p>\n\n\n\n<p>Opr\u00f3cz podstawowych technik mamy r\u00f3wnie\u017c zaawansowane, takie jak Chain-of-Thought czy ReAct. Ta ostatnia pozwala na z\u0142o\u017cone wnioskowanie anga\u017cuj\u0105ce wiele \u017ar\u00f3de\u0142 danych, zar\u00f3wno wewn\u0119trznych w danej organizacji, jak i zwn\u0119trznych, np. Wikipedia.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-jakosc-ma-znaczenie-struktura-ponad-wszystko\">Jako\u015b\u0107 ma znaczenie: struktura ponad wszystko<\/h4>\n\n\n\n<p>Jako\u015b\u0107 wygenerowanych przez LLM odpowiedzi w du\u017cym stopniu zale\u017cy od jako\u015bci danych wej\u015bciowych. Formaty danych, takie jak Markdown, JSON czy HTML s\u0105 ustrukturyzowane, np. s\u0105 podzielone na rozdzia\u0142y, w nich akapity, a w nich z kolei mog\u0105 by\u0107 tekst czy tabele. Prompty tworzone w oparciu o takie ustrukturyzowane dane, u\u0142atwiaj\u0105 LLMom zrozumienie kontekstu, a w konsekwencji generowanie sensownych odpowiedzi.<\/p>\n\n\n\n<p>Dane nieustrukturyzowane, np. pliki w formacie PDF, obrazy czy diagramy, mog\u0105 wymaga\u0107 wst\u0119pnego przetwarzania (tradycyjnie lub z u\u017cyciem sztucznej inteligencji) lub zastosowania multimodalnych LLM\u00f3w (np. akceptuj\u0105cych na wej\u015bciu obrazy), np. Gemini Pro (Vision) czy GPT-4o, aby poprawnie zrozumie\u0107 kontekst. Pos\u0142u\u017cmy si\u0119 przyk\u0142adem. Pewien dokument PDF zawiera, opr\u00f3cz tekstu, z\u0142o\u017cony wykres ilustruj\u0105cy trendy sprzeda\u017cy. Multimodalny LLM potrafi wygenerowa\u0107 s\u0142owny opis tego wykresu, kt\u00f3ry wraz z pozosta\u0142\u0105 cz\u0119\u015bci\u0105 dokumentu mo\u017ce pos\u0142u\u017cy\u0107 do wygenerowania odpowiedzi na pytanie dotycz\u0105ce sprzeda\u017cy.<\/p>\n\n\n\n<p>Aby poprawi\u0107 jako\u015b\u0107, warto pozyska\u0107 od u\u017cytkownik\u00f3w aplikacji informacj\u0119 zwrotn\u0105 dotycz\u0105c\u0105 ich subiektywnej oceny trafno\u015bci odpowiedzi. Przyk\u0142adowa implementacja mo\u017ce mie\u0107 form\u0119 przycisk\u00f3w &#8220;lubi\u0119\/nie lubi\u0119&#8221; czy formularza. Zebrane w ten spos\u00f3b sugestie mog\u0105 pos\u0142u\u017cy\u0107 np. do doprecyzowania instrukcji w prompcie.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Testowanie w erze sztucznej inteligencji<\/h4>\n\n\n\n<p>Niedeterministyczny charakter LLM\u00f3w oznacza, \u017ce powtarzaj\u0105c test dla tego samego wej\u015bcia mo\u017cemy otrzyma\u0107 za ka\u017cdym razem nieco inn\u0105 odpowied\u017a. Jak zatem testowa\u0107 takie aplikacje? Z pomoc\u0105 zn\u00f3w przychodzi nasz &#8220;cichy bohater\u201d &#8211; zanurzenie. Aby por\u00f3wa\u0107 oczekiwane odpowiedzi z tymi wygenerowanymi przez LLMy, wystarczy w obu wypadkach znale\u017a\u0107 wektorowe reprezentacje i por\u00f3wna\u0107 odleg\u0142o\u015bci mi\u0119dzy tymi wektorami. W\u00f3wczas nawet je\u015bli odpowied\u017a wyra\u017cona jest w nieco inny spos\u00f3b, ale nadal jest prawid\u0142owa, mo\u017cna test uzna\u0107 za pozytywny.<\/p>\n\n\n\n<p>W trakcie budowania aplikacji, szczeg\u00f3lnie chatbot\u00f3w, testowanie prompt\u00f3w i ich odpowiedzi jest niezmierne wa\u017cnym elementem. Pami\u0119tajmy, \u017ce prompt jest w zasadzie programem napisanym w j\u0119zyku naturalnym, wi\u0119c konsekwencje braku test\u00f3w s\u0105 podobne do nieprzetestowanego kodu \u017ar\u00f3d\u0142owego. W przypadku niedeterministycznych LLM\u00f3w brak test\u00f3w prompt\u00f3w ma jeszcze wi\u0119kszy negatywny wp\u0142yw na stabilno\u015b\u0107 i niezawodno\u015b\u0107 aplikacji.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Bezpiecze\u0144stwo: Tu nie ma kompromis\u00f3w<\/h4>\n\n\n\n<p>Elementy AI w aplikacjach nie s\u0105 wyj\u0105tkiem I r\u00f3wnie\u017c wymagaj\u0105 dodatkowej uwagi z punktu widzenia bezpiecze\u0144stwa. Je\u015bli do LLMa wysy\u0142amy w prompcie tre\u015bci spoza aplikacji (np. wprowadzone przez u\u017cytkownika albo przys\u0142ane mailem) musimy je sprawdzi\u0107 czy nie zawieraj\u0105 np. instrukcji aby ujawni\u0107 poufne informacje albo kieruj\u0105 rozmow\u0119 na tematy nie zwi\u0105zane z przenaczeniem danej aplikacji (tzw. prompt injection). Podobnie z generowanymi odpowiedziami: nale\u017cy sprawdzi\u0107 czy te nie zawieraj\u0105 tre\u015bci mog\u0105cych wp\u0142yn\u0105\u0107 negatywnie na reputacj\u0119 danej firmy. Na szcz\u0119\u015bcie s\u0105 na rynku narz\u0119dzia, zar\u00f3wno komercyjne, jak i <em>open source<\/em>, kt\u00f3re umo\u017cliwiaj\u0105 skutecznie wdro\u017cy\u0107 te \u015brodki bezpiecze\u0144stwa.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-milego-kodowania\">Mi\u0142ego kodowania! <\/h4>\n\n\n\n<p>Budowanie aplikacji chmurowych opartych na sztucznej inteligencji jest sporym wyzwaniem. Temu wyzwaniu mo\u017cna jednak podo\u0142a\u0107, je\u015bli pozna si\u0119 elementy oraz narz\u0119dzia AI, a tak\u017ce zastosuje wzorce i dobre praktyki z tego obszaru. W\u0142a\u015bnie przybli\u017cenie tych ostatnich by\u0142o celem mojego artyku\u0142u. Mam nadziej\u0119, \u017ce moje spostrze\u017cenia pomog\u0105 w tworzeniu wydajnych, bezpiecznych i innowacyjnych rozwi\u0105za\u0144 opartych na sztucznej inteligencji. Mi\u0142ego kodowania!<\/p>\n<\/div><\/div><\/div><\/div><\/div><\/section>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":413,"featured_media":903307,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"cg_dt_proposed_to":[],"cg_seo_hreflang_relations":"[]","cg_seo_canonical_relation":"","cg_seo_hreflang_x_default_relation":"{\"uuid\":\"a3915d98-220c-4664-ab4c-b25dc77f1ff0\",\"blogId\":\"\",\"domain\":\"\",\"sitePath\":\"\",\"postLink\":\"\",\"postId\":null,\"isSaved\":true,\"isCrossLink\":false,\"hasCrossLink\":false}","cg_dt_approved_content":true,"cg_dt_mandatory_content":false,"cg_dt_notes":"","cg_dg_source_changed":false,"cg_dt_link_disabled":false,"_yoast_wpseo_primary_brand":"430","_jetpack_memberships_contains_paid_content":false,"footnotes":"","featured_focal_points":""},"categories":[1],"tags":[294,255,397],"brand":[430],"service":[204,210],"industry":[],"partners":[],"blog-topic":[],"content-group":[],"class_list":["post-903297","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-capgemini","tag-cloud","tag-data-ai","brand-capgemini","service-cloud","service-data-ai"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v22.8 (Yoast SEO v22.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Budowanie aplikacji chmurowych opartych na AI<\/title>\n<meta name=\"description\" content=\"Marek Matczak, Chief Architect z Capgemini Polska opowiada o budowaniu aplikacji biznesowych z wykorzystaniem sztucznej inteligencji.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Budowanie aplikacji chmurowych opartych na AI: Co warto wiedzie\u0107?\" \/>\n<meta property=\"og:description\" content=\"Marek Matczak, Chief Architect z Capgemini Polska opowiada o budowaniu aplikacji biznesowych z wykorzystaniem sztucznej inteligencji.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/\" \/>\n<meta property=\"og:site_name\" content=\"Capgemini Poland\" \/>\n<meta property=\"article:published_time\" content=\"2024-06-12T12:09:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-11T18:18:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2025\/10\/New-Web-preview-global.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"627\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Marek Matczak\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"shubhimishra\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/\",\"url\":\"https:\/\/www.capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/\",\"name\":\"Budowanie aplikacji chmurowych opartych na AI\",\"isPartOf\":{\"@id\":\"https:\/\/www.capgemini.com\/pl-pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2024\/06\/Nowa-strona-bannery-8.png\",\"datePublished\":\"2024-06-12T12:09:43+00:00\",\"dateModified\":\"2025-03-11T18:18:24+00:00\",\"author\":{\"@id\":\"https:\/\/www.capgemini.com\/pl-pl\/#\/schema\/person\/3b379c2a6a91db9c6813186125835966\"},\"description\":\"Marek Matczak, Chief Architect z Capgemini Polska opowiada o budowaniu aplikacji biznesowych z wykorzystaniem sztucznej inteligencji.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/www.capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/#primaryimage\",\"url\":\"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2024\/06\/Nowa-strona-bannery-8.png\",\"contentUrl\":\"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2024\/06\/Nowa-strona-bannery-8.png\",\"width\":2880,\"height\":1800},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.capgemini.com\/pl-pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Budowanie aplikacji chmurowych opartych na AI: Co warto wiedzie\u0107?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.capgemini.com\/pl-pl\/#website\",\"url\":\"https:\/\/www.capgemini.com\/pl-pl\/\",\"name\":\"Capgemini Polska\",\"description\":\"Capgemini\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.capgemini.com\/pl-pl\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.capgemini.com\/pl-pl\/#\/schema\/person\/3b379c2a6a91db9c6813186125835966\",\"name\":\"shubhimishra\",\"url\":\"https:\/\/www.capgemini.com\/pl-pl\/author\/shubhimishra\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Budowanie aplikacji chmurowych opartych na AI","description":"Marek Matczak, Chief Architect z Capgemini Polska opowiada o budowaniu aplikacji biznesowych z wykorzystaniem sztucznej inteligencji.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/","og_locale":"pl_PL","og_type":"article","og_title":"Budowanie aplikacji chmurowych opartych na AI: Co warto wiedzie\u0107?","og_description":"Marek Matczak, Chief Architect z Capgemini Polska opowiada o budowaniu aplikacji biznesowych z wykorzystaniem sztucznej inteligencji.","og_url":"https:\/\/www.capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/","og_site_name":"Capgemini Poland","article_published_time":"2024-06-12T12:09:43+00:00","article_modified_time":"2025-03-11T18:18:24+00:00","og_image":[{"width":1200,"height":627,"url":"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2025\/10\/New-Web-preview-global.jpg","type":"image\/jpeg"}],"author":"Marek Matczak","twitter_card":"summary_large_image","twitter_misc":{"Written by":"shubhimishra","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/","url":"https:\/\/www.capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/","name":"Budowanie aplikacji chmurowych opartych na AI","isPartOf":{"@id":"https:\/\/www.capgemini.com\/pl-pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/#primaryimage"},"image":{"@id":"https:\/\/www.capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/#primaryimage"},"thumbnailUrl":"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2024\/06\/Nowa-strona-bannery-8.png","datePublished":"2024-06-12T12:09:43+00:00","dateModified":"2025-03-11T18:18:24+00:00","author":{"@id":"https:\/\/www.capgemini.com\/pl-pl\/#\/schema\/person\/3b379c2a6a91db9c6813186125835966"},"description":"Marek Matczak, Chief Architect z Capgemini Polska opowiada o budowaniu aplikacji biznesowych z wykorzystaniem sztucznej inteligencji.","breadcrumb":{"@id":"https:\/\/www.capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/#primaryimage","url":"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2024\/06\/Nowa-strona-bannery-8.png","contentUrl":"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2024\/06\/Nowa-strona-bannery-8.png","width":2880,"height":1800},{"@type":"BreadcrumbList","@id":"https:\/\/www.capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.capgemini.com\/pl-pl\/"},{"@type":"ListItem","position":2,"name":"Budowanie aplikacji chmurowych opartych na AI: Co warto wiedzie\u0107?"}]},{"@type":"WebSite","@id":"https:\/\/www.capgemini.com\/pl-pl\/#website","url":"https:\/\/www.capgemini.com\/pl-pl\/","name":"Capgemini Polska","description":"Capgemini","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.capgemini.com\/pl-pl\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pl-PL"},{"@type":"Person","@id":"https:\/\/www.capgemini.com\/pl-pl\/#\/schema\/person\/3b379c2a6a91db9c6813186125835966","name":"shubhimishra","url":"https:\/\/www.capgemini.com\/pl-pl\/author\/shubhimishra\/"}]}},"blog_topic_info":[],"taxonomy_info":{"category":[{"id":1,"name":"Uncategorized","slug":"uncategorized"}],"post_tag":[{"id":294,"name":"Capgemini","slug":"capgemini"},{"id":255,"name":"cloud","slug":"cloud"},{"id":397,"name":"Data &amp; AI","slug":"data-ai"}],"brand":[{"id":430,"name":"Capgemini","slug":"capgemini"}],"service":[{"id":204,"name":"Cloud","slug":"cloud"},{"id":210,"name":"Data &amp; AI","slug":"data-ai"}],"following_users":[{"id":212,"name":"ajuraszczyk","slug":"ajuraszczyk"},{"id":164,"name":"automator","slug":"automator"}]},"parsely":{"version":"1.1.0","canonical_url":"https:\/\/capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/","smart_links":{"inbound":0,"outbound":0},"traffic_boost_suggestions_count":0,"meta":{"@context":"https:\/\/schema.org","@type":"NewsArticle","headline":"Budowanie aplikacji chmurowych opartych na AI: Co warto wiedzie\u0107?","url":"https:\/\/www.capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/","mainEntityOfPage":{"@type":"WebPage","@id":"https:\/\/www.capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/"},"thumbnailUrl":"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2024\/06\/Nowa-strona-bannery-8.png?w=150&h=150&crop=1","image":{"@type":"ImageObject","url":"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2024\/06\/Nowa-strona-bannery-8.png"},"articleSection":"Uncategorized","author":[],"creator":[],"publisher":{"@type":"Organization","name":"Capgemini Poland","logo":""},"keywords":["capgemini","cloud","data &amp; ai"],"dateCreated":"2024-06-12T12:09:43Z","datePublished":"2024-06-12T12:09:43Z","dateModified":"2025-03-11T18:18:24Z"},"rendered":"<meta name=\"parsely-title\" content=\"Budowanie aplikacji chmurowych opartych na AI: Co warto wiedzie\u0107?\" \/>\n<meta name=\"parsely-link\" content=\"https:\/\/www.capgemini.com\/pl-pl\/insights\/blogi-eksperckie\/aplikacje-chmurowe-oparte-na-ai\/\" \/>\n<meta name=\"parsely-type\" content=\"post\" \/>\n<meta name=\"parsely-image-url\" content=\"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2024\/06\/Nowa-strona-bannery-8.png?w=150&amp;h=150&amp;crop=1\" \/>\n<meta name=\"parsely-pub-date\" content=\"2024-06-12T12:09:43Z\" \/>\n<meta name=\"parsely-section\" content=\"Uncategorized\" \/>\n<meta name=\"parsely-tags\" content=\"capgemini,cloud,data &amp; ai\" \/>","tracker_url":"https:\/\/cdn.parsely.com\/keys\/capgemini.com\/p.js"},"jetpack_featured_media_url":"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2024\/06\/Nowa-strona-bannery-8.png","archive_status":false,"featured_image_src":"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2024\/06\/Nowa-strona-bannery-8.png","featured_image_alt":"","jetpack_sharing_enabled":true,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Capgemini Poland","distributor_original_site_url":"https:\/\/www.capgemini.com\/pl-pl","push-errors":false,"featured_image_url":"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2024\/06\/Nowa-strona-bannery-8.png","_links":{"self":[{"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/posts\/903297","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/users\/413"}],"replies":[{"embeddable":true,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/comments?post=903297"}],"version-history":[{"count":7,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/posts\/903297\/revisions"}],"predecessor-version":[{"id":908721,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/posts\/903297\/revisions\/908721"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/media\/903307"}],"wp:attachment":[{"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/media?parent=903297"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/categories?post=903297"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/tags?post=903297"},{"taxonomy":"brand","embeddable":true,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/brand?post=903297"},{"taxonomy":"service","embeddable":true,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/service?post=903297"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/industry?post=903297"},{"taxonomy":"partners","embeddable":true,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/partners?post=903297"},{"taxonomy":"blog-topic","embeddable":true,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/blog-topic?post=903297"},{"taxonomy":"content-group","embeddable":true,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/content-group?post=903297"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}