<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>Optymalizacja procesów biznesowych - Inero Software</title>
	<atom:link href="https://inero-software.com/pl/tag/optymalizacja-procesow-biznesowych/feed/" rel="self" type="application/rss+xml" />
	<link>https://inero-software.com/pl/tag/optymalizacja-procesow-biznesowych/</link>
	<description>Tworzymy cyfrowe innowacje</description>
	<lastBuildDate>Mon, 26 May 2025 09:01:23 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://inero-software.com/wp-content/uploads/2018/11/inero-logo-favicon.png</url>
	<title>Optymalizacja procesów biznesowych - Inero Software</title>
	<link>https://inero-software.com/pl/tag/optymalizacja-procesow-biznesowych/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">153509928</site>	<item>
		<title>Gotowość technologiczna przedsiębiorstwa. Jak określić czy Twoja firma jest gotowa na wdrożenie nowej technologii</title>
		<link>https://inero-software.com/pl/gotowosc-technologiczna-przedsiebiorstwa-jak-okreslic-czy-twoja-firma-jest-gotowa-na-wdrozenie-nowej-technologii/</link>
		
		<dc:creator><![CDATA[Marta Kuprasz]]></dc:creator>
		<pubDate>Wed, 21 May 2025 11:48:05 +0000</pubDate>
				<category><![CDATA[Blog_pl]]></category>
		<category><![CDATA[Firma]]></category>
		<category><![CDATA[aplikacja]]></category>
		<category><![CDATA[digitalizacja]]></category>
		<category><![CDATA[duże modele językowe]]></category>
		<category><![CDATA[oprogramowanie]]></category>
		<category><![CDATA[optymalizacja procesów biznesowych]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=8018</guid>

					<description><![CDATA[<p>Gotowość technologiczna przedsiębiorstwa to szerokie pojęcie, obejmujące infrastrukturę IT, kompetencje zespołu, dojrzałość procesów biznesowych, gotowość organizacyjną do zmian oraz zgodność z regulacjami prawnymi i politykami bezpieczeństwa. </p>
<p>Artykuł <a href="https://inero-software.com/pl/gotowosc-technologiczna-przedsiebiorstwa-jak-okreslic-czy-twoja-firma-jest-gotowa-na-wdrozenie-nowej-technologii/">Gotowość technologiczna przedsiębiorstwa. Jak określić czy Twoja firma jest gotowa na wdrożenie nowej technologii</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="8018" class="elementor elementor-8018" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-93f5e59 e-flex e-con-boxed e-con e-parent" data-id="93f5e59" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-771d181 elementor-widget elementor-widget-html" data-id="771d181" data-element_type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
			 		</div>
				</div>
				<div class="elementor-element elementor-element-7af37b7 elementor-widget elementor-widget-text-editor" data-id="7af37b7" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<h4><b><span data-contrast="auto">W publikacji „Intelligent Agents in AI Really Can Work Alone. </span></b><b><span data-contrast="auto">Here’s How.” przygotowanej przez Gartner, autorzy przewidują, że do 2028 roku 33% aplikacji biznesowych będzie wykorzystywać agentyczną sztuczną inteligencję, w porównaniu do mniej niż 1% w roku 2024. Umożliwi to autonomiczne podejmowanie aż 15% codziennych decyzji operacyjnych. Czy Twoja firma jest przygotowana, by z tych zmian skorzystać?</span></b><span data-ccp-props="{}"> </span></h4>						</div>
				</div>
				<div class="elementor-element elementor-element-4cc6de5 elementor-widget elementor-widget-text-editor" data-id="4cc6de5" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW116628205 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW116628205 BCX0">Gotowość technologiczna </span><span class="NormalTextRun SCXW116628205 BCX0">przedsiębiorstwa to </span><span class="NormalTextRun SCXW116628205 BCX0">szer</span><span class="NormalTextRun SCXW116628205 BCX0">okie</span><span class="NormalTextRun SCXW116628205 BCX0"> pojęcie, </span><span class="NormalTextRun SCXW116628205 BCX0">obejmujące</span><span class="NormalTextRun SCXW116628205 BCX0"> infrastrukturę IT, kompetencje zespołu, dojrzałość procesów biznesowych, gotowość organizacyjną do zmian oraz zgodność z regulacjami prawnymi i politykami bezpieczeństwa. Jeśli firma planuje wdrożenie systemu klasy ERP, narzędzia do zarządzania tożsamością (IAM) czy rozwiązań opartych o sztuczną inteligencję, potrzebuje solidnej podstawy technicznej i operacyjnej.</span></span><span class="EOP SCXW116628205 BCX0" data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-a92ded9 elementor-widget elementor-widget-heading" data-id="a92ded9" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Jak ocenić gotowość technologiczną przedsiębiorstwa? </h3>		</div>
				</div>
				<div class="elementor-element elementor-element-d7b7a9d elementor-widget elementor-widget-text-editor" data-id="d7b7a9d" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW137886006 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW137886006 BCX0">Aby rzetelnie określić gotowość technologiczną przedsiębiorstwa, warto przeprowadzić ocenę w kilku kluczowych obszarach. Proces ten przypomina audyt, który pozwala odpowiedzieć na pytanie: czy firma jest przygotowana na skuteczne wdrożenie i wykorzystanie nowej technologi</span><span class="NormalTextRun SCXW137886006 BCX0">i</span><span class="NormalTextRun SCXW137886006 BCX0">. </span></span><span class="EOP SCXW137886006 BCX0" data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-eff7699 elementor-widget elementor-widget-heading" data-id="eff7699" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">Infrastruktura IT </h4>		</div>
				</div>
				<div class="elementor-element elementor-element-57a46ad elementor-widget elementor-widget-text-editor" data-id="57a46ad" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW20367956 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW20367956 BCX0">Ocena infrastruktury IT powinna być poprzedzona dokładnym określeniem wymagań nowej technologii. To one definiują, jakie zasoby będą niezbędne – zarówno pod względem wydajności, jak i architektury, bezpieczeństwa czy dostępności.</span></span><span class="EOP SCXW20367956 BCX0" data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-cb596ae elementor-widget elementor-widget-text-editor" data-id="cb596ae" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW119338481 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW119338481 BCX0">Dopiero mając specyfikację technologiczną, można rzetelnie ocenić, czy obecne środowisko IT jest w stanie spełnić te wymagania. </span><span class="NormalTextRun SCXW119338481 BCX0">Jeśli zastanawiasz</span><span class="NormalTextRun SCXW119338481 BCX0"> nad wprowadzeniem do organizacji narzędzi opartych na sztucznej inteligencji i chcesz wiedzieć dokładnie </span><span class="NormalTextRun SCXW119338481 BCX0">jakie koszty są związane z wdrożeniem i utrzymaniem dużego modelu językowego, to koniecznie poznaj naszą najnowszą analizę. </span></span><span class="EOP SCXW119338481 BCX0" data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-070761f elementor-widget elementor-widget-heading" data-id="070761f" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h5 class="elementor-heading-title elementor-size-default"><a href="https://inero-software.com/pl/ile-kosztuje-wdrozenie-i-utrzymanie-modelu-llm-w-firmie-szczegolowa-analiza/">Ile kosztuje wdrożenie i utrzymanie modelu LLM w firmie? Szczegółowa analiza </a></h5>		</div>
				</div>
				<div class="elementor-element elementor-element-3c405e1 elementor-widget elementor-widget-heading" data-id="3c405e1" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">Zarządzanie i dostępność danych </h4>		</div>
				</div>
				<div class="elementor-element elementor-element-c61aabf elementor-widget elementor-widget-text-editor" data-id="c61aabf" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span data-contrast="auto">Ocena zarządzania danymi powinna rozpocząć się od określenia, jakie dane będą wykorzystywane przez wdrażaną technologię, w jakim formacie, z jaką częstotliwością oraz z jakich źródeł. To wymagania systemu definiują, jakie dane są potrzebne i w jakiej formie muszą być dostępne.</span><span data-ccp-props="{}"> </span></p><p><span data-ccp-props="{}"> </span></p><p><span data-contrast="auto">Dopiero na tej podstawie można stwierdzić, czy dane w organizacji są gotowe do użycia. Należy zweryfikować, czy istnieją techniczne możliwości pobierania danych ze źródeł (np. API, pliki wymiany danych), czy dane mają ujednoliconą strukturę i czy spełniają minimalne kryteria jakościowe. Brak spójności, duplikaty, niepełne rekordy lub niestrukturalne dane mogą wymagać dodatkowego etapu przetwarzania, zanim zostaną wykorzystane.</span><span data-ccp-props="{}"> </span></p><p><span data-ccp-props="{}"> </span></p><p><span data-contrast="auto">Istotna jest również dostępność organizacyjna – dane muszą być dostępne nie tylko technicznie, ale też zgodnie z wewnętrznymi zasadami i przepisami. W przypadku danych wrażliwych należy potwierdzić, że ich udostępnienie jest zgodne z polityką bezpieczeństwa i przepisami takimi jak RODO.</span><span data-ccp-props="{}"> </span></p><p><span data-contrast="auto">Jeśli planowana technologia zakłada integrację wielu źródeł, analizę w czasie rzeczywistym lub przetwarzanie dużych wolumenów danych, konieczne może być przygotowanie osobnej warstwy integracyjnej lub reorganizacja sposobu zarządzania danymi w firmie.</span><span data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-51cd659 elementor-widget elementor-widget-heading" data-id="51cd659" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">Przygotowanie i szkolenie zespołu </h4>		</div>
				</div>
				<div class="elementor-element elementor-element-4b1a7d2 elementor-widget elementor-widget-text-editor" data-id="4b1a7d2" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span data-contrast="auto">Ocena gotowości zespołu powinna być poprzedzona analizą kompetencji wymaganych do obsługi wdrażanej technologii. W zależności od rodzaju rozwiązania może to obejmować zarówno umiejętności techniczne (np. konfiguracja systemów, analiza danych), jak i operacyjne (np. znajomość procesów, interpretacja wyników działania systemu).</span><span data-ccp-props="{}"> </span></p><p><span data-contrast="auto">Dopiero mając zdefiniowany zakres ról i zadań w nowym środowisku, można ocenić, czy zespół posiada odpowiednie kwalifikacje, czy też konieczne będzie uzupełnienie wiedzy. Może to oznaczać przeprowadzenie szkoleń, zaangażowanie zewnętrznych ekspertów lub czasowe wsparcie dostawcy technologii.</span><span data-ccp-props="{}"> </span></p><p><span data-contrast="auto">Szczególną uwagę należy zwrócić na osoby odpowiedzialne za utrzymanie i rozwój systemu – to one powinny z wyprzedzeniem poznać jego architekturę, model danych, scenariusze awaryjne oraz sposób zarządzania dostępem. W przeciwnym razie nowa technologia stanie się tzw. „czarną skrzynką”, co zwiększa ryzyko błędów operacyjnych i utrudnia dalsze usprawnienia.</span><span data-ccp-props="{}"> </span></p><p><span data-contrast="auto">Przygotowanie zespołu nie powinno być działaniem jednorazowym. Warto zaplanować również działania po wdrożeniu – w tym mentoring, dokumentację wewnętrzną oraz systematyczne rozwijanie kompetencji w obszarach, które technologia będzie wspierać.</span><span data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-6538e7d elementor-widget elementor-widget-heading" data-id="6538e7d" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Jak mierzyć gotowość przedsiębiorstwa? </h3>		</div>
				</div>
				<div class="elementor-element elementor-element-972d797 elementor-widget elementor-widget-text-editor" data-id="972d797" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW249918616 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW249918616 BCX0">Ocena gotowości technologicznej powinna być traktowana jako proces</span><span class="NormalTextRun SCXW249918616 BCX0">. </span><span class="NormalTextRun SCXW249918616 BCX0">Najbardziej efektywnym podejściem jest zaplanowanie </span><span class="NormalTextRun SpellingErrorV2Themed SCXW249918616 BCX0">roadmapy</span><span class="NormalTextRun SCXW249918616 BCX0"> działań przygotowawczych, a następnie mierzenie postępów w oparciu o jasno określone etapy i kryteria oceny.</span></span><span class="EOP SCXW249918616 BCX0" data-ccp-props="{&quot;469777462&quot;:[2568],&quot;469777927&quot;:[0],&quot;469777928&quot;:[1]}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-884da4f elementor-widget elementor-widget-image" data-id="884da4f" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img fetchpriority="high" decoding="async" data-attachment-id="8020" data-permalink="https://inero-software.com/pl/gotowosc-technologiczna-przedsiebiorstwa-jak-okreslic-czy-twoja-firma-jest-gotowa-na-wdrozenie-nowej-technologii/output/" data-orig-file="https://inero-software.com/wp-content/uploads/2025/05/output.png" data-orig-size="2379,580" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="output" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2025/05/output-300x73.png" data-large-file="https://inero-software.com/wp-content/uploads/2025/05/output-1030x251.png" tabindex="0" role="button" width="1030" height="251" src="https://inero-software.com/wp-content/uploads/2025/05/output-1030x251.png" class="attachment-large size-large wp-image-8020" alt="" srcset="https://inero-software.com/wp-content/uploads/2025/05/output-1030x251.png 1030w, https://inero-software.com/wp-content/uploads/2025/05/output-300x73.png 300w, https://inero-software.com/wp-content/uploads/2025/05/output-768x187.png 768w, https://inero-software.com/wp-content/uploads/2025/05/output-1536x374.png 1536w, https://inero-software.com/wp-content/uploads/2025/05/output-2048x499.png 2048w, https://inero-software.com/wp-content/uploads/2025/05/output-1231x300.png 1231w" sizes="(max-width: 1030px) 100vw, 1030px" data-attachment-id="8020" data-permalink="https://inero-software.com/pl/gotowosc-technologiczna-przedsiebiorstwa-jak-okreslic-czy-twoja-firma-jest-gotowa-na-wdrozenie-nowej-technologii/output/" data-orig-file="https://inero-software.com/wp-content/uploads/2025/05/output.png" data-orig-size="2379,580" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="output" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2025/05/output-300x73.png" data-large-file="https://inero-software.com/wp-content/uploads/2025/05/output-1030x251.png" role="button" />													</div>
				</div>
				<div class="elementor-element elementor-element-e5c2153 elementor-widget elementor-widget-text-editor" data-id="e5c2153" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW210090867 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW210090867 BCX0">Roadmapa</span><span class="NormalTextRun SCXW210090867 BCX0"> powinna zawierać kluczowe obszary, takie jak: infrastruktura IT, dostępność danych, przygotowanie zespołu, integracja systemów, zarządzanie zmianą i zgodność z regulacjami. Dla każdego z tych obszarów warto określić wymagania docelowe oraz stan obecny. To pozwala nie tylko oszacować poziom gotowości, ale również zidentyfikować konkretne przeszkody i słabe ogniwa, które mogą utrudnić wdrożenie.</span></span><span class="EOP SCXW210090867 BCX0" data-ccp-props="{&quot;469777462&quot;:[2568],&quot;469777927&quot;:[0],&quot;469777928&quot;:[1]}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-e0da900 elementor-widget elementor-widget-text-editor" data-id="e0da900" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span data-contrast="auto">Ocena krok po kroku – na bazie harmonogramu i zadań przypisanych do poszczególnych zespołów – pozwala na bieżąco weryfikować, czy firma przesuwa się w stronę operacyjnej gotowości. Takie podejście minimalizuje ryzyko nieplanowanych opóźnień i kosztów, ponieważ ewentualne problemy są wychwytywane wcześniej, zanim przejdzie się do właściwego etapu wdrożeniowego.</span><span data-ccp-props="{&quot;469777462&quot;:[2568],&quot;469777927&quot;:[0],&quot;469777928&quot;:[1]}"> </span></p><p><span data-contrast="auto">Gotowość technologiczna nie sprowadza się do jednego wyniku końcowego. To suma wielu elementów – technicznych, organizacyjnych i kompetencyjnych – które powinny być oceniane w kontekście konkretnego wdrożenia i jego wymagań.</span><span data-ccp-props="{&quot;469777462&quot;:[2568],&quot;469777927&quot;:[0],&quot;469777928&quot;:[1]}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-019d1a0 elementor-widget elementor-widget-heading" data-id="019d1a0" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Jak my to robimy</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-87f3fac elementor-widget elementor-widget-text-editor" data-id="87f3fac" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span data-contrast="auto">W pracy z klientami przy wdrażaniu nowych aplikacji i systemów zawsze zaczynamy od rozmowy o kontekście biznesowym i rzeczywistych potrzebach organizacji. Nie rekomendujemy gotowych rozwiązań bez analizy – pomagamy zrozumieć, jakie technologie mają szansę realnie usprawnić procesy, a które mogą generować niepotrzebne koszty i komplikacje.</span><span data-ccp-props="{&quot;469777462&quot;:[2568],&quot;469777927&quot;:[0],&quot;469777928&quot;:[1]}"> </span></p><p><span data-contrast="auto">Bazując na naszych doświadczeniach z projektami IT realizowanymi w różnych branżach, doradzamy krok po kroku: od etapu planowania, przez ocenę gotowości, po właściwe wdrożenie i stabilizację. Dbamy o to, aby technologia była dopasowana do możliwości organizacji i rzeczywiście wspierała jej rozwój operacyjny, a nie stawała się dodatkowym obciążeniem.</span><span data-ccp-props="{&quot;469777462&quot;:[2568],&quot;469777927&quot;:[0],&quot;469777928&quot;:[1]}"> </span></p><p><span data-contrast="auto">Dobrze zaplanowane wdrożenie to takie, które kończy się nie tylko uruchomieniem aplikacji, ale przede wszystkim osiągnięciem zakładanych efektów biznesowych.</span><span data-ccp-props="{&quot;469777462&quot;:[2568],&quot;469777927&quot;:[0],&quot;469777928&quot;:[1]}"> </span></p>						</div>
				</div>
					</div>
				</div>
				</div>
		<p>Artykuł <a href="https://inero-software.com/pl/gotowosc-technologiczna-przedsiebiorstwa-jak-okreslic-czy-twoja-firma-jest-gotowa-na-wdrozenie-nowej-technologii/">Gotowość technologiczna przedsiębiorstwa. Jak określić czy Twoja firma jest gotowa na wdrożenie nowej technologii</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8018</post-id>	</item>
		<item>
		<title>Dowiedź się jak skorzystać z bezpłatnych szkoleń prowadzonych przez ekspertów Inero Software w ramach PDiH</title>
		<link>https://inero-software.com/pl/dowiedz-sie-jak-skorzystac-z-bezplatnych-szkolen-prowadzonych-przez-ekspertow-inero/</link>
		
		<dc:creator><![CDATA[Marta Kuprasz]]></dc:creator>
		<pubDate>Mon, 31 Mar 2025 07:43:33 +0000</pubDate>
				<category><![CDATA[Firma]]></category>
		<category><![CDATA[Agenci AI]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[bezpłatne]]></category>
		<category><![CDATA[biznes]]></category>
		<category><![CDATA[digitalizacja]]></category>
		<category><![CDATA[MŚP]]></category>
		<category><![CDATA[oprogramowanie]]></category>
		<category><![CDATA[optymalizacja procesów biznesowych]]></category>
		<category><![CDATA[PDIH]]></category>
		<category><![CDATA[rozwiązania logistyczne]]></category>
		<category><![CDATA[szkolenia]]></category>
		<category><![CDATA[sztuczna inteligencja]]></category>
		<category><![CDATA[współpraca]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=7672</guid>

					<description><![CDATA[<p>Uczestnicy bezpłatnych szkoleń realizowanych w ramach Pomorskiego Hubu Innowacji Cyfrowych (PDiH) zdobędą praktyczną wiedzę, którą będą mogli wykorzystać w swoich firmach — m.in. do usprawnienia procesów, przeprowadzania dokładniejszych analiz oraz automatyzacji rutynowych, czasochłonnych zadań. </p>
<p>Artykuł <a href="https://inero-software.com/pl/dowiedz-sie-jak-skorzystac-z-bezplatnych-szkolen-prowadzonych-przez-ekspertow-inero/">Dowiedź się jak skorzystać z bezpłatnych szkoleń prowadzonych przez ekspertów Inero Software w ramach PDiH</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="7672" class="elementor elementor-7672" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-5e2edbf e-flex e-con-boxed e-con e-parent" data-id="5e2edbf" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-ba2a2a0 elementor-widget elementor-widget-html" data-id="ba2a2a0" data-element_type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
			 		</div>
				</div>
				<div class="elementor-element elementor-element-d4d9ee6 elementor-widget elementor-widget-image" data-id="d4d9ee6" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img decoding="async" data-attachment-id="7608" data-permalink="https://inero-software.com/pl/optymalizacja-procesow-back-office-dzieki-wdrozeniu-agenta-ai-praktyczny-przyklad/pdih-logotypy/" data-orig-file="https://inero-software.com/wp-content/uploads/2025/03/pdih-logotypy.png" data-orig-size="1080,117" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="pdih-logotypy" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2025/03/pdih-logotypy-300x33.png" data-large-file="https://inero-software.com/wp-content/uploads/2025/03/pdih-logotypy-1030x112.png" tabindex="0" role="button" width="1030" height="112" src="https://inero-software.com/wp-content/uploads/2025/03/pdih-logotypy-1030x112.png" class="attachment-large size-large wp-image-7608" alt="" srcset="https://inero-software.com/wp-content/uploads/2025/03/pdih-logotypy-1030x112.png 1030w, https://inero-software.com/wp-content/uploads/2025/03/pdih-logotypy-300x33.png 300w, https://inero-software.com/wp-content/uploads/2025/03/pdih-logotypy-768x83.png 768w, https://inero-software.com/wp-content/uploads/2025/03/pdih-logotypy.png 1080w" sizes="(max-width: 1030px) 100vw, 1030px" data-attachment-id="7608" data-permalink="https://inero-software.com/pl/optymalizacja-procesow-back-office-dzieki-wdrozeniu-agenta-ai-praktyczny-przyklad/pdih-logotypy/" data-orig-file="https://inero-software.com/wp-content/uploads/2025/03/pdih-logotypy.png" data-orig-size="1080,117" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="pdih-logotypy" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2025/03/pdih-logotypy-300x33.png" data-large-file="https://inero-software.com/wp-content/uploads/2025/03/pdih-logotypy-1030x112.png" role="button" />													</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-dada224 e-flex e-con-boxed e-con e-parent" data-id="dada224" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-cd6a075 elementor-widget elementor-widget-text-editor" data-id="cd6a075" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<h4><span class="TextRun SCXW253295989 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW253295989 BCX0">Cyfryzacja i wdrażanie nowoczesnych technologii otwierają przed MŚP wiele możliwości. Uczestnicy bezpłatnych szkoleń realizowanych w ramach Pomorskiego </span><span class="NormalTextRun SpellingErrorV2Themed SCXW253295989 BCX0">Hubu</span><span class="NormalTextRun SCXW253295989 BCX0"> Innowacji Cyfrowych (</span><span class="NormalTextRun SpellingErrorV2Themed SCXW253295989 BCX0">PDiH</span><span class="NormalTextRun SCXW253295989 BCX0">) zdobędą praktyczną wiedzę, którą będą mogli wykorzystać w swoich firmach — m.in. do usprawnienia procesów, przeprowadzania dokładniejszych analiz oraz automatyzacji rutynowych, czasochłonnych zadań.</span></span><span class="EOP SCXW253295989 BCX0" data-ccp-props="{}"> </span></h4>						</div>
				</div>
				<div class="elementor-element elementor-element-7c3c6cd elementor-widget elementor-widget-text-editor" data-id="7c3c6cd" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW115472613 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW115472613 BCX0">PDiH</span><span class="NormalTextRun SCXW115472613 BCX0"> kieruje swoją ofertę do mikro, małych i średnich przedsiębiorstw, oferując bezpłatne usługi w ramach pomocy de </span><span class="NormalTextRun SpellingErrorV2Themed SCXW115472613 BCX0">minimis</span><span class="NormalTextRun SCXW115472613 BCX0">. W katalogu dostępnych jest ponad 80 usług z obszarów takich jak: Przemysł 4.0, robotyzacja, AI, VR/AR oraz </span><span class="NormalTextRun SpellingErrorV2Themed SCXW115472613 BCX0">cyberbezpieczeństwo</span><span class="NormalTextRun SCXW115472613 BCX0">.</span></span><span class="EOP SCXW115472613 BCX0" data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-57f988e elementor-widget elementor-widget-heading" data-id="57f988e" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Szkolenia oferowane przez Inero Software </h3>		</div>
				</div>
				<div class="elementor-element elementor-element-57db23c elementor-widget elementor-widget-text-editor" data-id="57db23c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span data-contrast="auto">W pierwszym etapie proponujemy dwa dwudniowe szkolenia:</span><span data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-8a61934 elementor-widget elementor-widget-text-editor" data-id="8a61934" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ol><li><b><span data-contrast="auto">Usługa edukacyjno-szkoleniowa w zakresie automatyzacji procesów back-office</span></b><span data-contrast="auto"> – obejmuje integrację i wdrożenie narzędzi AI/ML w infrastrukturze chmurowej.</span><span data-ccp-props="{}"> </span></li><li><b><span data-contrast="auto">Warsztaty praktyczne: Demonstrator technologii DeliverM8</span></b><span data-contrast="auto"> – prezentacja platformy do optymalizacji zadań logistycznych w obszarze ostatniej mili.</span><span data-ccp-props="{}"> </span></li></ol>						</div>
				</div>
				<div class="elementor-element elementor-element-6c0d315 elementor-widget elementor-widget-heading" data-id="6c0d315" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Zakres usług i wiedza praktyczna </h3>		</div>
				</div>
				<div class="elementor-element elementor-element-491b292 elementor-widget elementor-widget-text-editor" data-id="491b292" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><strong>Co zyskujesz dzięki udziałowi w szkoleniu? </strong></p><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="6" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Wiedzę praktyczną opartą na realnych wdrożeniach,</span><span data-ccp-props="{}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="6" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">Możliwość pracy z nowoczesnymi narzędziami AI i ML,</span><span data-ccp-props="{}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="6" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><span data-contrast="auto">Praktyczną wiedzę ekspertów, która jest kluczowa podczas wdrażaniu technologii w firmie,</span><span data-ccp-props="{}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="6" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" aria-setsize="-1" data-aria-posinset="4" data-aria-level="1"><span data-contrast="auto">Dostęp do materiałów edukacyjnych po zakończeniu szkolenia</span><span data-ccp-props="{}"> </span></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-eb9300a elementor-widget elementor-widget-text-editor" data-id="eb9300a" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span data-contrast="auto">Nasza firma świadczy usługi doradcze m.in. w zakresie budowy dedykowanych agentów AI do automatyzacji procesów back-office. Uczestnicy szkolenia dowiedzą się, jak stworzyć wirtualnego asystenta głosowego lub tekstowego, który może wspierać firmę m.in. w:</span><span data-ccp-props="{}"> </span></p><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="3" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">przygotowywaniu ofert,</span><span data-ccp-props="{}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="3" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">komunikacji z klientami,</span><span data-ccp-props="{}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="3" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><span data-contrast="auto">analizie i weryfikacji dokumentacji transportowej,</span><span data-ccp-props="{}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="3" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" aria-setsize="-1" data-aria-posinset="4" data-aria-level="1"><span data-contrast="auto">obsłudze zapytań związanych z ubezpieczeniami i polisami.</span><span data-ccp-props="{}"> </span></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-13bab0d elementor-widget elementor-widget-text-editor" data-id="13bab0d" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span data-contrast="auto">Przykłady zastosowań agentów AI opisaliśmy w artykułach:</span><span data-ccp-props="{}"> </span></p><p><a href="https://inero-software.com/pl/optymalizacja-procesow-back-office-dzieki-wdrozeniu-agenta-ai-praktyczny-przyklad/"><i><span data-contrast="auto">Optymalizacja procesów back-office dzięki wdrożeniu agenta AI. Praktyczny przykład</span></i><span data-ccp-props="{}"> </span></a></p><p><a href="https://inero-software.com/pl/poznaj-swojego-osobistego-agenta-ai-case-study-dla-firmy-spedycyjnej/"><i><span data-contrast="auto">Poznaj swojego osobistego Agenta AI: Case study dla firmy spedycyjnej</span></i><span data-ccp-props="{}"> </span></a></p>						</div>
				</div>
				<div class="elementor-element elementor-element-f096f52 elementor-widget elementor-widget-heading" data-id="f096f52" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Czym są Agenci AI? </h3>		</div>
				</div>
				<div class="elementor-element elementor-element-8343c25 elementor-widget elementor-widget-text-editor" data-id="8343c25" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span data-contrast="auto">Agenci AI to inteligentne systemy oparte na algorytmach uczenia maszynowego, przetwarzaniu języka naturalnego (NLP) oraz dużych modelach językowych (LLM). Ich zadaniem jest automatyzacja procesów, wspieranie decyzji oraz prowadzenie naturalnej interakcji z użytkownikami, dostosowanej do kontekstu biznesowego.</span><span data-ccp-props="{}"> </span></p><p><span data-ccp-props="{}"> </span></p><p><span data-contrast="auto">W odróżnieniu od samych modeli językowych, agenci AI są projektowani do wykonywania konkretnych zadań w sposób autonomiczny. Oznacza to, że mogą pobierać informacje, przetwarzać dane w czasie rzeczywistym oraz podejmować decyzje na podstawie zdefiniowanych reguł.</span><span data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-6fa7003 elementor-widget elementor-widget-text-editor" data-id="6fa7003" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW53421105 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW53421105 BCX0">Więcej na ten temat piszemy w artykule:</span> </span><a href="https://inero-software.com/pl/czym-sa-agenci-ai-i-jak-moga-pomoc-w-twojej-firmie/"><span class="TextRun SCXW53421105 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW53421105 BCX0">Czym są Agenci AI i jak mogą pomóc w Twojej firmie?</span></span><span class="EOP SCXW53421105 BCX0" data-ccp-props="{}"> </span></a></p>						</div>
				</div>
				<div class="elementor-element elementor-element-dcd636b elementor-widget elementor-widget-heading" data-id="dcd636b" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Platforma, która wspiera logistykę </h3>		</div>
				</div>
				<div class="elementor-element elementor-element-a29f956 elementor-widget elementor-widget-text-editor" data-id="a29f956" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span data-contrast="auto">Drugie szkolenie obejmuje prezentację platformy umożliwiającej planowanie, monitorowanie i optymalizację zadań transportowych – zarówno w ramach dostaw ostatniej mili, jak i dla transportu międzynarodowego.</span><span data-ccp-props="{}"> </span></p><p><span data-contrast="auto">Rozwiązanie to wykorzystywane jest m.in. w aplikacji </span><a href="https://inero-software.com/pl/goracy-posilek-pomaga-pomagac/"><b><span data-contrast="auto">Gorący Posiłek</span></b></a><span data-contrast="auto">, wspierającej fundacje oraz jednostki pomocy społecznej w realizacji i rozliczaniu dostaw gorących posiłków. Model ten można z powodzeniem wykorzystać w realizacji zadań MŚP, związanych z planowaniem i monitorowaniem dostaw. </span><span data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-93f9aea elementor-widget elementor-widget-text-editor" data-id="93f9aea" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW19566687 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW19566687 BCX0">Uczestnicy szkoleń nie tylko zdobędą praktyczne umiejętności, ale także poznają konkretne narzędzia i przykłady wdrożeń, które mogą zastosować u siebie niemal od razu. Każde szkolenie kończy się podsumowaniem oraz zestawem materiałów do dalszej pracy.</span></span><span class="EOP SCXW19566687 BCX0" data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-ec000fc elementor-widget elementor-widget-heading" data-id="ec000fc" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Kto może wziąć udział i jak wygląda proces zgłoszenia? </h3>		</div>
				</div>
				<div class="elementor-element elementor-element-857503f elementor-widget elementor-widget-text-editor" data-id="857503f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW96146999 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW96146999 BCX0">Z bezpłatnych usług w ramach projektu </span><span class="NormalTextRun SpellingErrorV2Themed SCXW96146999 BCX0">PDiH</span><span class="NormalTextRun SCXW96146999 BCX0"> mogą skorzystać mikro, małe i średnie przedsiębiorstwa z siedzibą w Polsce, prowadzące działalność gospodarczą.</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW96146999 BCX0"><span class="SCXW96146999 BCX0"> </span><br class="SCXW96146999 BCX0" /></span><span class="TextRun SCXW96146999 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW96146999 BCX0">Warunkiem udziału jest kwalifikacja firmy do sektora MŚP oraz spełnienie wymagań pomocy de </span><span class="NormalTextRun SpellingErrorV2Themed SCXW96146999 BCX0">minimis</span><span class="NormalTextRun SCXW96146999 BCX0">.</span></span><span class="EOP SCXW96146999 BCX0" data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-04bc3cd elementor-widget elementor-widget-text-editor" data-id="04bc3cd" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span data-contrast="auto">Proces zgłoszeniowy obejmuje:</span><span data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-d1434db elementor-widget elementor-widget-text-editor" data-id="d1434db" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ol><li><span data-contrast="auto">Wypełnienie formularza zgłoszeniowego.</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Weryfikację kwalifikowalności przedsiębiorstwa.</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Podpisanie umowy świadczenia usługi w ramach pomocy de minimis.</span><span data-ccp-props="{}"> </span></li></ol><p><span data-contrast="auto">Cały proces jest wspierany przez zespół ekspertów GPNT, który pomaga firmom przejść go sprawnie. Dane kontaktowe do ekspertów GPNT, którzy wspierają firmy w procesie rekrutacji, znajdują się tutaj: </span><a href="https://gpnt.pl/kontakt-pdih"><span data-contrast="none">https://gpnt.pl/kontakt-pdih</span></a><span data-contrast="auto">.</span><span data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-3afc987 elementor-widget elementor-widget-text-editor" data-id="3afc987" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW4868182 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW4868182 BCX0">Szczegóły dotyczące zasad udziału i dokumentacji znajdują się w regulaminie projektu </span><span class="NormalTextRun SpellingErrorV2Themed SCXW4868182 BCX0">PDiH</span><span class="NormalTextRun SCXW4868182 BCX0">, dostępnym</span></span> <span class="TextRun SCXW4868182 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW4868182 BCX0">tutaj:</span></span> <a class="Hyperlink SCXW4868182 BCX0" href="https://gpnt.pl/uploads/media/67657983ba862-regulamin-swiadczenia-uslug-w-projekcie-pdih.pdf" target="_blank" rel="noreferrer noopener"><span class="TextRun Underlined SCXW4868182 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="none"><span class="NormalTextRun SCXW4868182 BCX0" data-ccp-charstyle="Hyperlink">Regulamin świadczenia usług w projekcie PDiH (PDF)</span></span></a><span class="EOP SCXW4868182 BCX0" data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-ed5c410 elementor-widget elementor-widget-text-editor" data-id="ed5c410" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW15008491 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW15008491 BCX0">Jeśli chcesz dowiedzieć się, jak w praktyce wdrożyć narzędzia AI i usprawnić działanie swojej firmy — zgłoś się już dziś.</span><span class="NormalTextRun SCXW15008491 BCX0"> Możesz to zrobić za pomocą naszego formularza kontaktowego. Napisz nam, które szkolenie jest dla Ciebie interesujące i pozostaw swoje dane kontaktowe.</span></span><span class="EOP SCXW15008491 BCX0" data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-03fd4c7 elementor-cta--skin-cover elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action" data-id="03fd4c7" data-element_type="widget" data-widget_type="call-to-action.default">
				<div class="elementor-widget-container">
					<div class="elementor-cta">
					<div class="elementor-cta__bg-wrapper">
				<div class="elementor-cta__bg elementor-bg" style="background-image: url(https://inero-software.com/wp-content/uploads/2025/03/cta-1903-1030x579.png);" role="img" aria-label="cta 1903"></div>
				<div class="elementor-cta__bg-overlay"></div>
			</div>
							<div class="elementor-cta__content">
				
									<h2 class="elementor-cta__title elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
						Zapisz się na bezpłatne szkolenie 					</h2>
				
									<div class="elementor-cta__description elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
						Wypełnij formularz, a my skontaktujemy się z Tobą. 					</div>
				
									<div class="elementor-cta__button-wrapper elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
					<a class="elementor-cta__button elementor-button elementor-size-" href="https://inero-software.com/pl/kontakt/">
						Wypełnij formularz 					</a>
					</div>
							</div>
						</div>
				</div>
				</div>
					</div>
				</div>
				</div>
		<p>Artykuł <a href="https://inero-software.com/pl/dowiedz-sie-jak-skorzystac-z-bezplatnych-szkolen-prowadzonych-przez-ekspertow-inero/">Dowiedź się jak skorzystać z bezpłatnych szkoleń prowadzonych przez ekspertów Inero Software w ramach PDiH</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7672</post-id>	</item>
		<item>
		<title>Optymalizacja procesów back – office, dzięki wdrożeniu agenta AI. Praktyczny przykład</title>
		<link>https://inero-software.com/pl/optymalizacja-procesow-back-office-dzieki-wdrozeniu-agenta-ai-praktyczny-przyklad/</link>
		
		<dc:creator><![CDATA[Marta Kuprasz]]></dc:creator>
		<pubDate>Wed, 19 Mar 2025 10:45:43 +0000</pubDate>
				<category><![CDATA[Blog_pl]]></category>
		<category><![CDATA[Firma]]></category>
		<category><![CDATA[NASZE ROZWIĄZANIA]]></category>
		<category><![CDATA[Agenci AI]]></category>
		<category><![CDATA[Agent AI]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[Asystenci AI]]></category>
		<category><![CDATA[Asystent AI]]></category>
		<category><![CDATA[biznes]]></category>
		<category><![CDATA[ChatGPT]]></category>
		<category><![CDATA[Gemini]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[model językowy]]></category>
		<category><![CDATA[OpenAI]]></category>
		<category><![CDATA[optymalizacja procesów biznesowych]]></category>
		<category><![CDATA[Slack]]></category>
		<category><![CDATA[sztuczna inteligencja]]></category>
		<category><![CDATA[uczenie maszynowe]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=7597</guid>

					<description><![CDATA[<p>Przyjrzymy się jak agent oparty na sztucznej inteligencji, może pomóc w działach prawnych, administracyjnych i zarządzających zasobami ludzkimi. Poznaj nasze najnowsze case study.  </p>
<p>Artykuł <a href="https://inero-software.com/pl/optymalizacja-procesow-back-office-dzieki-wdrozeniu-agenta-ai-praktyczny-przyklad/">Optymalizacja procesów back – office, dzięki wdrożeniu agenta AI. Praktyczny przykład</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="7597" class="elementor elementor-7597" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-444dd24 e-flex e-con-boxed e-con e-parent" data-id="444dd24" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-5fb8339 elementor-widget elementor-widget-html" data-id="5fb8339" data-element_type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
			 		</div>
				</div>
				<div class="elementor-element elementor-element-e94ee5e elementor-widget elementor-widget-text-editor" data-id="e94ee5e" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<h4><span class="TextRun SCXW83396614 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW83396614 BCX0">Szukasz praktycznych przykładów wykorzystania agentów AI w przedsiębiorstwie? W poprzednim blogu opisaliśmy możliwość integracji takiego agenta z pocztą email na przykładzie firmy spedycyjnej. <a href="https://inero-software.com/pl/poznaj-swojego-osobistego-agenta-ai-case-study-dla-firmy-spedycyjnej/">Cały tekst znajdziesz tu &gt;&gt; </a>. Tym razem przyjrzymy się jak agent oparty </span><span class="NormalTextRun SCXW83396614 BCX0">na</span><span class="NormalTextRun SCXW83396614 BCX0"> sztuczn</span><span class="NormalTextRun SCXW83396614 BCX0">ej</span><span class="NormalTextRun SCXW83396614 BCX0"> inteligencj</span><span class="NormalTextRun SCXW83396614 BCX0">i</span><span class="NormalTextRun SCXW83396614 BCX0">, może pomóc w działach prawnych, administracyjnych i zarządzających zasobami ludzkimi. Poznaj nasze najnowsze </span><span class="NormalTextRun SpellingErrorV2Themed SCXW83396614 BCX0">case</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW83396614 BCX0">study</span><span class="NormalTextRun SCXW83396614 BCX0">. </span></span><span class="EOP SCXW83396614 BCX0" data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></h4>						</div>
				</div>
				<div class="elementor-element elementor-element-5115ea7 elementor-widget elementor-widget-text-editor" data-id="5115ea7" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW90251178 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="none"><span class="NormalTextRun SCXW90251178 BCX0">„Agenci AI” to inteligentne systemy oparte na algorytmach uczenia maszynowego, <a href="https://inero-software.com/pl/czym-sa-agenci-ai-i-jak-moga-pomoc-w-twojej-firmie/">Dowiesz się o nich więcej z tego tekstu&gt;&gt;</a>.  Mogą zostać zintegrowane z wieloma narzędziami jak poczta email, system ERP czy CRM. W tym przykładzie posłużymy się integracją z platformą do komunikacji </span><span class="NormalTextRun SpellingErrorV2Themed SCXW90251178 BCX0">Slack</span><span class="NormalTextRun SCXW90251178 BCX0">. </span></span><span class="EOP SCXW90251178 BCX0" data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-060d3a6 elementor-widget elementor-widget-text-editor" data-id="060d3a6" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW145712535 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="none"><span class="NormalTextRun SpellingErrorV2Themed SCXW145712535 BCX0">Slack</span><span class="NormalTextRun SCXW145712535 BCX0"> jest wykorzystywany jako </span></span><span class="TextRun SCXW145712535 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW145712535 BCX0">narzędzie do współpracy zespołowej, które umożliwia wymianę wiadomości, organizowanie rozmów w kanałach tematycznych, przesyłanie plików oraz integrację z innymi aplikacjami biznesowymi.</span></span><span class="EOP SCXW145712535 BCX0" data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-3d3ddba elementor-widget elementor-widget-text-editor" data-id="3d3ddba" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW12121196 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW12121196 BCX0">Jedną z możliwości, którą oferuje jest integracja poprzez API z wybranym </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12121196 BCX0">LLMem</span><span class="NormalTextRun SCXW12121196 BCX0"> (</span><span class="NormalTextRun SpellingErrorV2Themed SCXW12121196 BCX0">Large</span><span class="NormalTextRun SCXW12121196 BCX0"> Language </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12121196 BCX0">Models</span><span class="NormalTextRun SCXW12121196 BCX0">) jak </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12121196 BCX0">Gemini</span><span class="NormalTextRun SCXW12121196 BCX0">, Chat GPT czy </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12121196 BCX0">DeepSeek</span><span class="NormalTextRun SCXW12121196 BCX0">. Tym razem jako podstawa dla naszego agenta AI posłużą Chat GPT od </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12121196 BCX0">OpenAI</span><span class="NormalTextRun SCXW12121196 BCX0"> oraz wyszukiwarka Google.&nbsp;</span></span><span class="EOP SCXW12121196 BCX0" data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}">&nbsp;</span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-a8cb6eb elementor-widget elementor-widget-image" data-id="a8cb6eb" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img decoding="async" data-attachment-id="7606" data-permalink="https://inero-software.com/pl/optymalizacja-procesow-back-office-dzieki-wdrozeniu-agenta-ai-praktyczny-przyklad/slack-1903/" data-orig-file="https://inero-software.com/wp-content/uploads/2025/03/slack-1903.png" data-orig-size="2560,1440" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="slack 1903" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2025/03/slack-1903-300x169.png" data-large-file="https://inero-software.com/wp-content/uploads/2025/03/slack-1903-1030x579.png" tabindex="0" role="button" width="1030" height="579" src="https://inero-software.com/wp-content/uploads/2025/03/slack-1903-1030x579.png" class="attachment-large size-large wp-image-7606" alt="" srcset="https://inero-software.com/wp-content/uploads/2025/03/slack-1903-1030x579.png 1030w, https://inero-software.com/wp-content/uploads/2025/03/slack-1903-300x169.png 300w, https://inero-software.com/wp-content/uploads/2025/03/slack-1903-768x432.png 768w, https://inero-software.com/wp-content/uploads/2025/03/slack-1903-1536x864.png 1536w, https://inero-software.com/wp-content/uploads/2025/03/slack-1903-2048x1152.png 2048w, https://inero-software.com/wp-content/uploads/2025/03/slack-1903-533x300.png 533w" sizes="(max-width: 1030px) 100vw, 1030px" data-attachment-id="7606" data-permalink="https://inero-software.com/pl/optymalizacja-procesow-back-office-dzieki-wdrozeniu-agenta-ai-praktyczny-przyklad/slack-1903/" data-orig-file="https://inero-software.com/wp-content/uploads/2025/03/slack-1903.png" data-orig-size="2560,1440" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="slack 1903" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2025/03/slack-1903-300x169.png" data-large-file="https://inero-software.com/wp-content/uploads/2025/03/slack-1903-1030x579.png" role="button" />													</div>
				</div>
				<div class="elementor-element elementor-element-626200b elementor-widget elementor-widget-text-editor" data-id="626200b" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW96187657 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW96187657 BCX0">Na pewno znasz sytuacje, w których należy pilnie przygotować ofertę lub umowę wprowadzając dane do szablonu. </span><span class="NormalTextRun SCXW96187657 BCX0">Każdego dnia pracownicy muszą opracowywać, analizować i negocjować różnorodne dokumenty, obejmujące umowy handlowe, kontrakty z dostawcami, porozumienia o zachowaniu poufności (NDA) czy umowy </span><span class="NormalTextRun SCXW96187657 BCX0">współpracy</span><span class="NormalTextRun SCXW96187657 BCX0">. </span></span><span class="EOP SCXW96187657 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-1afcf3f elementor-widget elementor-widget-text-editor" data-id="1afcf3f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW59818176 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW59818176 BCX0">Wielu managerów zastanawia się jak zastosowanie sztucznej inteligencji może autoratywność i przyspieszyć część</span><span class="NormalTextRun SCXW59818176 BCX0"> tych</span><span class="NormalTextRun SCXW59818176 BCX0"> zadań, nie obniżając jednocześnie wysokiego poziomu realizowanych </span><span class="NormalTextRun SCXW59818176 BCX0">działań</span><span class="NormalTextRun SCXW59818176 BCX0">. Rozwiązaniem ponownie staje się wdrożenie dedykowanego Agenta AI, który wesprze pracowników w wyszukiwaniu i uzupełnianiu informacji na podstawie danych w Krajowym Rejestrze Sądowym. </span></span><span class="EOP SCXW59818176 BCX0" data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-34aab6c elementor-widget elementor-widget-text-editor" data-id="34aab6c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW267098947 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW267098947 BCX0">W naszym przykładzie zaprojektowaliśmy agenta AI tak, aby wydając mu polecenia przez platformę </span><span class="NormalTextRun SpellingErrorV2Themed SCXW267098947 BCX0">Slack</span><span class="NormalTextRun SCXW267098947 BCX0"> uzupełniał dane kontrahenta w otrzymanym wcześniej wzorze umowy NDA. Dzięki integracji z wyszukiwarką Google, Agent przeszukuje sieć w celu pobrania z danych KRS </span><span class="NormalTextRun CommentStart SCXW267098947 BCX0">konkretnych</span><span class="NormalTextRun SCXW267098947 BCX0"> danych. W tym przypadku: </span></span><span class="TextRun SCXW267098947 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW267098947 BCX0">adresu firmy, numerów NIP, Regon</span><span class="NormalTextRun SCXW267098947 BCX0">, KRS</span><span class="NormalTextRun SCXW267098947 BCX0"> i osob</span><span class="NormalTextRun SCXW267098947 BCX0">y</span><span class="NormalTextRun SCXW267098947 BCX0"> do reprezentacji firmy.</span><span class="NormalTextRun SCXW267098947 BCX0">&nbsp;</span></span><span class="EOP SCXW267098947 BCX0" data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}">&nbsp;</span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-ba9da42 elementor-widget__width-initial elementor-widget elementor-widget-video" data-id="ba9da42" data-element_type="widget" data-settings="{&quot;youtube_url&quot;:&quot;https:\/\/youtu.be\/f9cnxiSsCiw&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}" data-widget_type="video.default">
				<div class="elementor-widget-container">
					<div class="elementor-wrapper elementor-open-inline">
			<div class="elementor-video"></div>		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-1d31a86 elementor-widget elementor-widget-text-editor" data-id="1d31a86" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW224946 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW224946 BCX0">Następnie </span><span class="NormalTextRun SCXW224946 BCX0">a</span><span class="NormalTextRun SCXW224946 BCX0">systent prosi nas o weryfikację poprawności znalezionych informacji. Po ich potwierdzeniu pracownik otrzymuje umowę NDA wraz z uzupełnionymi danymi firmy partnerskiej. Uzupełnione miejsca są zaznaczone kolorem żółtym, aby podkreślić widoczność miejsc, w których zostały wprowadzone zmiany. </span></span><span class="EOP SCXW224946 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-d0f4b5f elementor-widget elementor-widget-text-editor" data-id="d0f4b5f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW3319538 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW3319538 BCX0">To tylko jeden z wielu przykładów zastosowania Agenta AI w realizacji zadań, związanych z dokumentacją i procesami front i </span><span class="NormalTextRun SpellingErrorV2Themed SCXW3319538 BCX0">back</span><span class="NormalTextRun SCXW3319538 BCX0"> office. Dzięki opracowanej przez nas metodzie, możemy przygotować narzędzie, które będzie przygotowywało umowy dla firm, które zajmują się na przykład zatrudnianiem pracowników sezonowych lub takich, w których jest duża rotacja personelu. </span></span><span class="EOP SCXW3319538 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-ceb4e6d elementor-widget elementor-widget-image" data-id="ceb4e6d" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" data-attachment-id="7604" data-permalink="https://inero-software.com/pl/optymalizacja-procesow-back-office-dzieki-wdrozeniu-agenta-ai-praktyczny-przyklad/2025-03-191/" data-orig-file="https://inero-software.com/wp-content/uploads/2025/03/2025-03-191.png" data-orig-size="1181,739" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="2025-03-191" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2025/03/2025-03-191-300x188.png" data-large-file="https://inero-software.com/wp-content/uploads/2025/03/2025-03-191-1030x645.png" tabindex="0" role="button" width="1030" height="645" src="https://inero-software.com/wp-content/uploads/2025/03/2025-03-191-1030x645.png" class="attachment-large size-large wp-image-7604" alt="" srcset="https://inero-software.com/wp-content/uploads/2025/03/2025-03-191-1030x645.png 1030w, https://inero-software.com/wp-content/uploads/2025/03/2025-03-191-300x188.png 300w, https://inero-software.com/wp-content/uploads/2025/03/2025-03-191-768x481.png 768w, https://inero-software.com/wp-content/uploads/2025/03/2025-03-191-479x300.png 479w, https://inero-software.com/wp-content/uploads/2025/03/2025-03-191.png 1181w" sizes="(max-width: 1030px) 100vw, 1030px" data-attachment-id="7604" data-permalink="https://inero-software.com/pl/optymalizacja-procesow-back-office-dzieki-wdrozeniu-agenta-ai-praktyczny-przyklad/2025-03-191/" data-orig-file="https://inero-software.com/wp-content/uploads/2025/03/2025-03-191.png" data-orig-size="1181,739" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="2025-03-191" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2025/03/2025-03-191-300x188.png" data-large-file="https://inero-software.com/wp-content/uploads/2025/03/2025-03-191-1030x645.png" role="button" />													</div>
				</div>
				<div class="elementor-element elementor-element-91c9b8b elementor-widget elementor-widget-text-editor" data-id="91c9b8b" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW27557285 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW27557285 BCX0">Agenci </span><span class="NormalTextRun SCXW27557285 BCX0">AI</span><span class="NormalTextRun SCXW27557285 BCX0"> to temat stosunkowo nowy, jednak zyskujący szybko popularność. Wiele firm dostrzega korzyści takie jak: oszczędność czasu przy wykonywaniu powtarzalnych zdań, redukcja kosztów operacyjnych oraz zwiększenie efektywności procesów biznesowych. Dzięki automatyzacji rutynowych zadań, pracownicy mogą skupić się na bardziej strategicznych i kreatywnych aspektach swojej pracy.</span></span><span class="EOP SCXW27557285 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-04301a8 elementor-widget elementor-widget-text-editor" data-id="04301a8" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span data-contrast="auto">Ponadto, Agenci AI mogą działać w trybie całodobowym, eliminując opóźnienia związane z dostępnością personelu. Ich zastosowanie obejmuje różne dziedziny – od obsługi klienta, poprzez analizę dokumentów prawnych, aż po zaawansowane systemy wspomagania decyzji w biznesie.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:240}">&nbsp;</span></p>
<p><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"><br></span></p>
<p><span data-contrast="auto">Firmy coraz częściej wdrażają otwarte modele językowe. co pozwala na większą kontrolę nad danymi i dostosowanie agentów do indywidualnych potrzeb organizacji. Wraz z rozwojem technologii możemy spodziewać się jeszcze większej integracji AI w codziennych procesach, przy jednoczesnym wzroście świadomości dotyczącej etyki i bezpieczeństwa ich wykorzystania.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:240}">&nbsp;</span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-d162a9a elementor-widget elementor-widget-text-editor" data-id="d162a9a" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Jeśli wdrożenie asystenta opartego na sztucznej inteligencji jest dla Ciebie ciekawym tematem, to przypominamy, że w ramach <a class="EUBticDMFgToOWVwLeafeAeKbqukUbAfJxdRQ " tabindex="0" href="https://www.linkedin.com/company/pomeranian-edih/" target="_self" data-test-app-aware-link="">Pomeranian EDIH</a> realizujemy usługi consultingowe IT m.in. w zakresie budowania dedykowanych agentów AI do automatyzacji procesów back-office.</p><p><br></p>
<p>Uczestnicy dowiedzą się m.in. jak stworzyć wirtualnego asystenta głosowego lub tekstowego, którego zadaniem będzie wsparcie firmy w m.in. sporządzaniu ofert, komunikacji z klientami, analizie dokumentacji i jej weryfikacji.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-82743f3 elementor-widget__width-initial elementor-widget elementor-widget-image" data-id="82743f3" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img decoding="async" data-attachment-id="7608" data-permalink="https://inero-software.com/pl/optymalizacja-procesow-back-office-dzieki-wdrozeniu-agenta-ai-praktyczny-przyklad/pdih-logotypy/" data-orig-file="https://inero-software.com/wp-content/uploads/2025/03/pdih-logotypy.png" data-orig-size="1080,117" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="pdih-logotypy" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2025/03/pdih-logotypy-300x33.png" data-large-file="https://inero-software.com/wp-content/uploads/2025/03/pdih-logotypy-1030x112.png" tabindex="0" role="button" width="1030" height="112" src="https://inero-software.com/wp-content/uploads/2025/03/pdih-logotypy-1030x112.png" class="attachment-large size-large wp-image-7608" alt="" srcset="https://inero-software.com/wp-content/uploads/2025/03/pdih-logotypy-1030x112.png 1030w, https://inero-software.com/wp-content/uploads/2025/03/pdih-logotypy-300x33.png 300w, https://inero-software.com/wp-content/uploads/2025/03/pdih-logotypy-768x83.png 768w, https://inero-software.com/wp-content/uploads/2025/03/pdih-logotypy.png 1080w" sizes="(max-width: 1030px) 100vw, 1030px" data-attachment-id="7608" data-permalink="https://inero-software.com/pl/optymalizacja-procesow-back-office-dzieki-wdrozeniu-agenta-ai-praktyczny-przyklad/pdih-logotypy/" data-orig-file="https://inero-software.com/wp-content/uploads/2025/03/pdih-logotypy.png" data-orig-size="1080,117" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="pdih-logotypy" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2025/03/pdih-logotypy-300x33.png" data-large-file="https://inero-software.com/wp-content/uploads/2025/03/pdih-logotypy-1030x112.png" role="button" />													</div>
				</div>
				<div class="elementor-element elementor-element-fb75fff elementor-cta--skin-cover elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action" data-id="fb75fff" data-element_type="widget" data-widget_type="call-to-action.default">
				<div class="elementor-widget-container">
					<div class="elementor-cta">
					<div class="elementor-cta__bg-wrapper">
				<div class="elementor-cta__bg elementor-bg" style="background-image: url(https://inero-software.com/wp-content/uploads/2025/03/cta-1903-1030x579.png);" role="img" aria-label="cta 1903"></div>
				<div class="elementor-cta__bg-overlay"></div>
			</div>
							<div class="elementor-cta__content">
				
									<h2 class="elementor-cta__title elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
						Stwórz z nami agenta AI					</h2>
				
									<div class="elementor-cta__description elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
						Jeśli chcesz skorzystać z proponowanych przez nas szkoleń to skontaktuj się z nami 					</div>
				
									<div class="elementor-cta__button-wrapper elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
					<a class="elementor-cta__button elementor-button elementor-size-" href="https://inero-software.com/pl/kontakt/">
						Kontakt 					</a>
					</div>
							</div>
						</div>
				</div>
				</div>
					</div>
				</div>
				</div>
		<p>Artykuł <a href="https://inero-software.com/pl/optymalizacja-procesow-back-office-dzieki-wdrozeniu-agenta-ai-praktyczny-przyklad/">Optymalizacja procesów back – office, dzięki wdrożeniu agenta AI. Praktyczny przykład</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7597</post-id>	</item>
		<item>
		<title>Czym są Agenci AI i jak mogą pomóc w Twojej firmie?</title>
		<link>https://inero-software.com/pl/czym-sa-agenci-ai-i-jak-moga-pomoc-w-twojej-firmie/</link>
		
		<dc:creator><![CDATA[Marta Kuprasz]]></dc:creator>
		<pubDate>Fri, 28 Feb 2025 09:24:00 +0000</pubDate>
				<category><![CDATA[Blog_pl]]></category>
		<category><![CDATA[Firma]]></category>
		<category><![CDATA[NASZE ROZWIĄZANIA]]></category>
		<category><![CDATA[Agenci AI]]></category>
		<category><![CDATA[Agent AI]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[Asystenci AI]]></category>
		<category><![CDATA[Asystent AI]]></category>
		<category><![CDATA[biznes]]></category>
		<category><![CDATA[digitalizacja]]></category>
		<category><![CDATA[Gemini]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[inero software]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[model językowy]]></category>
		<category><![CDATA[NLP]]></category>
		<category><![CDATA[On-Premise]]></category>
		<category><![CDATA[optymalizacja procesów biznesowych]]></category>
		<category><![CDATA[SaaS]]></category>
		<category><![CDATA[sztuczna inteligencja]]></category>
		<category><![CDATA[uczenie maszynowe]]></category>
		<category><![CDATA[zbiory danych]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=7480</guid>

					<description><![CDATA[<p>W tym tekście przyjrzymy się dokładnie Agentom AI, którzy mogą stanowić cenną pomoc m.in. w procesach back -office.  </p>
<p>Artykuł <a href="https://inero-software.com/pl/czym-sa-agenci-ai-i-jak-moga-pomoc-w-twojej-firmie/">Czym są Agenci AI i jak mogą pomóc w Twojej firmie?</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="7480" class="elementor elementor-7480" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-2ddef76 e-flex e-con-boxed e-con e-parent" data-id="2ddef76" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-e2ded1d elementor-widget elementor-widget-html" data-id="e2ded1d" data-element_type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
			 		</div>
				</div>
				<div class="elementor-element elementor-element-826db69 elementor-widget elementor-widget-text-editor" data-id="826db69" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<h4><span class="TextRun SCXW210529183 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW210529183 BCX0" data-ccp-parastyle="No Spacing">Hasło sztuczna inteligencja pojawia się od pewnego czasu w bardzo wielu </span><span class="NormalTextRun SCXW210529183 BCX0" data-ccp-parastyle="No Spacing">publikacjach</span><span class="NormalTextRun SCXW210529183 BCX0" data-ccp-parastyle="No Spacing"> jako rozwiązanie problemów z wydajnością, organizacją czy kreatywnością.  Wiele firm podąża za tym trendem i stara się dodać do swojej oferty rozwiązania oparte na AI.  Starania te przybierają różną formę. W tym tekście przyjrzymy się dokładnie Agentom AI, którzy mogą stanowić cenną pomoc </span><span class="NormalTextRun SCXW210529183 BCX0" data-ccp-parastyle="No Spacing">m.in. </span><span class="NormalTextRun SCXW210529183 BCX0" data-ccp-parastyle="No Spacing">w procesach </span><span class="NormalTextRun SCXW210529183 BCX0" data-ccp-parastyle="No Spacing">back</span><span class="NormalTextRun SCXW210529183 BCX0" data-ccp-parastyle="No Spacing"> &#8211;</span><span class="NormalTextRun SCXW210529183 BCX0" data-ccp-parastyle="No Spacing">office</span><span class="NormalTextRun SCXW210529183 BCX0" data-ccp-parastyle="No Spacing">. </span></span><span class="EOP SCXW210529183 BCX0" data-ccp-props="{}"> </span></h4>						</div>
				</div>
				<div class="elementor-element elementor-element-76b8aa2 elementor-widget elementor-widget-text-editor" data-id="76b8aa2" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW202921943 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW202921943 BCX0" data-ccp-parastyle="No Spacing">Od pewnego czasu obserwujemy dużą popularyzację haseł, związanych z wykorzystaniem sztucznej inteligencji. Zacznijmy więc od początku. </span></span><span class="EOP SCXW202921943 BCX0" data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-480bc97 elementor-widget elementor-widget-heading" data-id="480bc97" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Czym jest „Sztuczna inteligencja”? </h3>		</div>
				</div>
				<div class="elementor-element elementor-element-3196501 elementor-widget elementor-widget-text-editor" data-id="3196501" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW238692958 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW238692958 BCX0">Pod hasłem „sztuczna inteligencja” kryją się Duże Modele Językowe (Large Language Models – LLMs), systemy przetwarzania języka naturalnego (NLP), algorytmy uczenia maszynowego, sieci neuronowe oraz generatywne modele AI. </span></span><span class="EOP SCXW238692958 BCX0" data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-dec9054 elementor-widget elementor-widget-text-editor" data-id="dec9054" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW146322083 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW146322083 BCX0">LLM-y, takie jak </span><a href="https://chatgpt.com/"><span class="NormalTextRun SCXW146322083 BCX0">Chat </span><span class="NormalTextRun SCXW146322083 BCX0">GPT</span><span class="NormalTextRun SCXW146322083 BCX0"> od OpenAI</span></a><span class="NormalTextRun SCXW146322083 BCX0"> czy<a href="https://gemini.google.com/app?hl=pl"> Gemini</a></span><span class="NormalTextRun SCXW146322083 BCX0"> od Google</span><span class="NormalTextRun SCXW146322083 BCX0">, to modele wytrenowane na ogromnych zbiorach danych, które potrafią analizować, </span><span class="NormalTextRun SCXW146322083 BCX0">przetwarzać</span><span class="NormalTextRun SCXW146322083 BCX0"> i generować tekst w sposób zbliżony do ludzkiego myślenia. Są wykorzystywane w różnych zastosowaniach – od chatbotów i asystentów głosowych po zaawansowane systemy wspierające analizy biznesowe czy automatyzację procesów w firmach.</span></span><span class="EOP SCXW146322083 BCX0" data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-b208bcb elementor-widget elementor-widget-text-editor" data-id="b208bcb" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW46580387 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW46580387 BCX0">Sztuczna inteligencja nie ogranicza się </span><span class="NormalTextRun SCXW46580387 BCX0">wyłącznie </span><span class="NormalTextRun SCXW46580387 BCX0">do języka. Nowoczesne modele mogą także analizować obrazy, dźwięk, wideo oraz dane numeryczne, co czyni je niezwykle wszechstronnymi narzędziami w biznesie. Dzięki AI możliwe jest nie tylko automatyzowanie powtarzalnych zadań, ale także wykrywanie wzorców w dużych zbiorach danych, przewidywanie trendów czy wspomaganie decyzji strategicznych w firmach.</span></span><span class="EOP SCXW46580387 BCX0" data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-3ff848a elementor-widget elementor-widget-heading" data-id="3ff848a" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Kim są agenci AI? </h3>		</div>
				</div>
				<div class="elementor-element elementor-element-ab7f584 elementor-widget elementor-widget-text-editor" data-id="ab7f584" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span data-contrast="auto">„Agenci AI” to inteligentne systemy oparte na algorytmach uczenia maszynowego, modelach przetwarzania języka naturalnego (NLP) oraz Dużych Modelach Językowych (LLMs). Ich zadaniem jest automatyzacja procesów, wspieranie decyzji oraz interakcja z użytkownikami w sposób naturalny i dostosowany do kontekstu.</span><span data-ccp-props="{}">&nbsp;</span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-ceaa7cb elementor-widget elementor-widget-text-editor" data-id="ceaa7cb" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="NormalTextRun SCXW87685098 BCX0">Oznacza to, że </span><span class="NormalTextRun SCXW87685098 BCX0">wirtualni asystenci bazują na znanych i popularnych </span><span class="NormalTextRun SCXW87685098 BCX0">LLM’ach</span><span class="NormalTextRun SCXW87685098 BCX0"> jak na przykład: Chat GPT, </span><span class="NormalTextRun SCXW87685098 BCX0">Gemini</span><span class="NormalTextRun SCXW87685098 BCX0">, Claude, Mistral,</span><span class="NormalTextRun SCXW87685098 BCX0"> czy </span><span class="NormalTextRun SCXW87685098 BCX0">Deep</span> <span class="NormalTextRun SCXW87685098 BCX0">Seek</span><span class="NormalTextRun SCXW87685098 BCX0"> które potrafią generować spójne odpowiedzi, analizować teksty oraz dostosowywać się do kontekstu rozmowy.</span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-fa301d3 elementor-widget elementor-widget-text-editor" data-id="fa301d3" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW232036160 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW232036160 BCX0">Agenci AI różnią się jednak od samych modeli językowych tym, że są zaprojektowani do wykonywania określonych zadań w sposób autonomiczny. W praktyce oznacza to, że są wyposażeni w dodatkowe moduły, które umożliwiają im zdobywanie informacji, przetwarzanie danych w czasie rzeczywistym oraz podejmowanie decyzji na podstawie reguł biznesowych.</span></span><span class="EOP SCXW232036160 BCX0" data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-8bb76b7 elementor-widget elementor-widget-text-editor" data-id="8bb76b7" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW109771413 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW109771413 BCX0">W przeciwieństwie do klasycznych chatbotów, </span><span class="NormalTextRun SCXW109771413 BCX0">a</span><span class="NormalTextRun SCXW109771413 BCX0">genci AI nie tylko odpowiadają na pytania, ale mogą także obsługiwać skomplikowane procesy, integrować się z systemami firmowymi oraz uczyć się na podstawie interakcji z użytkownikami. Dzięki temu są wykorzystywani w wielu obszarach – od wsparcia administracyjnego i analizy dokumentów po automatyzację procesów operacyjnych w przedsiębiorstwach.</span><span class="NormalTextRun SCXW109771413 BCX0"> </span></span><span class="EOP SCXW109771413 BCX0" data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-41b2d06 elementor-widget elementor-widget-heading" data-id="41b2d06" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default"><a href="https://inero-software.com/pl/poznaj-swojego-osobistego-agenta-ai-case-study-dla-firmy-spedycyjnej/">Przeczytaj także: Poznaj swojego osobistego Agenta AI: Case study dla firmy spedycyjnej </a></h4>		</div>
				</div>
				<div class="elementor-element elementor-element-5716208 elementor-widget__width-initial elementor-widget elementor-widget-video" data-id="5716208" data-element_type="widget" data-settings="{&quot;youtube_url&quot;:&quot;https:\/\/youtu.be\/B4VxxjWYzDM&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;play_on_mobile&quot;:&quot;yes&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}" data-widget_type="video.default">
				<div class="elementor-widget-container">
					<div class="elementor-wrapper elementor-open-inline">
			<div class="elementor-video"></div>		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-7f6ac96 elementor-widget elementor-widget-text-editor" data-id="7f6ac96" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span data-contrast="auto">Działanie agentów AI opiera się na kilku kluczowych elementach:</span><span data-ccp-props="{}"> </span></p><p><span data-ccp-props="{}"> </span></p><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="4" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><b><span data-contrast="auto">Interfejs komunikacyjny</span></b><span data-contrast="auto"> – pozwala agentowi na interakcję z użytkownikiem poprzez tekst, mowę lub inne formaty danych.</span><span data-ccp-props="{}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="4" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><b><span data-contrast="auto">Silnik decyzyjny</span></b><span data-contrast="auto"> – oparty na modelach AI i regułach biznesowych, umożliwia analizę sytuacji i wybór optymalnych działań.</span><span data-ccp-props="{}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="4" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><b><span data-contrast="auto">Integracja z zewnętrznymi systemami</span></b><span data-contrast="auto"> – Agenci AI często działają w połączeniu z bazami danych, aplikacjami biznesowymi (ERP, CRM) czy usługami chmurowymi, co pozwala im na dostęp do aktualnych informacji.</span><span data-ccp-props="{}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="4" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" aria-setsize="-1" data-aria-posinset="4" data-aria-level="1"><b><span data-contrast="auto">Automatyzacja działań</span></b><span data-contrast="auto"> – mogą wykonywać konkretne zadania, np. generować raporty, przetwarzać wnioski, wysyłać powiadomienia czy inicjować określone procesy w systemach IT.</span><span data-ccp-props="{}"> </span></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-6a3e88a elementor-widget elementor-widget-heading" data-id="6a3e88a" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Jakie są typy agentów AI? </h3>		</div>
				</div>
				<div class="elementor-element elementor-element-8a579f3 elementor-widget elementor-widget-text-editor" data-id="8a579f3" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW146910221 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW146910221 BCX0">Agenci AI mogą przyjmować różne formy w zależności od ich zastosowania i poziomu autonomii. Dzięki zaawansowanym modelom sztucznej inteligencji potrafią wspierać użytkowników w szerokim zakresie działań – od obsługi klienta po analizę danych i zarządzanie procesami biznesowymi.</span></span><span class="EOP SCXW146910221 BCX0" data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-a062ae8 elementor-widget elementor-widget-text-editor" data-id="a062ae8" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span data-contrast="auto">Możemy wyróżnić kilka głównych typów agentów AI:</span><span data-ccp-props="{}"> </span></p><p><span data-ccp-props="{}"> </span></p><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><b><span data-contrast="auto">Agenci konwersacyjni</span></b><span data-contrast="auto"> – obejmują chatboty i voiceboty, które prowadzą interakcje z użytkownikami za pomocą tekstu lub mowy. Mogą odpowiadać na pytania, obsługiwać zapytania klientów i wspierać procesy sprzedażowe.</span><span data-ccp-props="{}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><b><span data-contrast="auto">Agenci analityczni</span></b><span data-contrast="auto"> – specjalizują się w przetwarzaniu i interpretacji danych. Wykorzystują algorytmy uczenia maszynowego do analizy trendów, wykrywania anomalii oraz generowania raportów.</span><span data-ccp-props="{}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><b><span data-contrast="auto">Agenci operacyjni</span></b><span data-contrast="auto"> – automatyzują zadania biznesowe, integrując się z systemami firmowymi. Mogą zarządzać dokumentacją, przetwarzać dokumenty czy koordynować działania w ramach firmowych procesów.</span><span data-ccp-props="{}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" aria-setsize="-1" data-aria-posinset="4" data-aria-level="1"><b><span data-contrast="auto">Agenci autonomiczni</span></b><span data-contrast="auto"> – działają samodzielnie, podejmując decyzje w oparciu o zgromadzone dane i określone reguły biznesowe. Wykorzystywane są m.in. w logistyce, zarządzaniu zasobami czy dynamicznym planowaniu operacji.</span><span data-ccp-props="{}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}" aria-setsize="-1" data-aria-posinset="5" data-aria-level="1"><b><span data-contrast="auto">Agenci wspierający decyzje</span></b><span data-contrast="auto"> – dostarczają rekomendacje na podstawie zaawansowanej analizy danych, pomagając menedżerom i specjalistom w podejmowaniu strategicznych decyzji.</span><span data-ccp-props="{}"> </span></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-b1010f3 elementor-widget elementor-widget-text-editor" data-id="b1010f3" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW63219307 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW63219307 BCX0">Każdy z tych typów może działać samodzielnie lub współpracować z innymi systemami, tworząc złożone środowisko oparte na sztucznej inteligencji. W kolejnych częściach przyjrzymy się konkretnym zastosowaniom agentów AI oraz ich wpływowi na efektywność operacyjną firm.</span></span><span class="EOP SCXW63219307 BCX0" data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-4104376 elementor-widget elementor-widget-heading" data-id="4104376" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Rozwiązanie chmurowe czy lokalne, czyli jak można wdrożyć agenta AI w środowisko firmowe?  </h3>		</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-2c27fe1 e-flex e-con-boxed e-con e-parent" data-id="2c27fe1" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-7dc1486 elementor-widget elementor-widget-text-editor" data-id="7dc1486" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW119744336 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW119744336 BCX0">Zastosowanie</span><span class="NormalTextRun SCXW119744336 BCX0"> Agenta AI w organizacji wymaga wyboru odpowiedniego modelu wdrożenia, który będzie najlepiej odpowiadał wymaganiom biznesowym, technicznym i regulacyjnym. Firmy mogą zdecydować się na rozwiązanie chmurowe (SaaS) lub lokalne (On-Premise), w zależności od potrzeb w zakresie elastyczności, bezpieczeństwa oraz integracji z istniejącymi systemami.</span></span><span class="EOP SCXW119744336 BCX0" data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-5af4758 elementor-widget elementor-widget-text-editor" data-id="5af4758" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW78515983 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW78515983 BCX0">Wybór odpowiedniego modelu zależy od wielu czynników, które przedstawiamy w poniższej tabeli.</span></span><span class="EOP SCXW78515983 BCX0" data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-d9f8cc1 elementor-widget elementor-widget-html" data-id="d9f8cc1" data-element_type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
			<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Porównanie SaaS vs On-Premise</title>
    <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300&amp;display=swap" rel="stylesheet">
    <style>
        .table-container {
            width: 100%;
            overflow-x: auto; /* Pozwala na przewijanie poziome */
        }
        .custom-table {
            width: 100%;
            min-width: 600px; /* Zapewnia, że tabela nie będzie zbyt mała */
            border-collapse: collapse;
            font-family: 'Roboto', sans-serif;
            font-size: 14px;
            font-weight: 300;
            color: #1C244B;
        }
        .custom-table th, .custom-table td {
            border: 1px solid #000;
            padding: 10px;
            text-align: justify;
        }
        .custom-table th {
            background: #ddd;
            font-weight: bold;
            text-align: center;
        }
        .custom-table tr:nth-child(even) {
            background: #f9f9f9;
        }

        /* Responsywne zmiany dla małych ekranów */
        @media screen and (max-width: 768px) {
            .custom-table th, .custom-table td {
                padding: 8px; /* Zmniejsza padding na małych ekranach */
                font-size: 12px; /* Zmniejsza rozmiar tekstu */
            }
        }
    </style>
</head>
<body>

<div class="table-container">
    <table class="custom-table">
        <tr>
            <th>Kryterium</th>
            <th>SaaS (Chmura)</th>
            <th>On-Premise (Lokalne)</th>
        </tr>
        <tr>
            <td>Model wdrożenia</td>
            <td>Oparty na chmurze (AWS, Azure, Google Cloud)</td>
            <td>Działa na własnej infrastrukturze firmy</td>
        </tr>
        <tr>
            <td>Infrastruktura</td>
            <td>Dostawca usług chmurowych</td>
            <td>Serwery lokalne</td>
        </tr>
        <tr>
            <td>Koszty początkowe</td>
            <td>Niskie</td>
            <td>Wysokie</td>
        </tr>
        <tr>
            <td>Koszty operacyjne</td>
            <td>Abonament/subskrypcja</td>
            <td>Stałe koszty utrzymania i energii</td>
        </tr>
        <tr>
            <td>Skalowalność</td>
            <td>Bardzo wysoka</td>
            <td>Ograniczona (zależna od sprzętu)</td>
        </tr>
        <tr>
            <td>Bezpieczeństwo danych</td>
            <td>Ograniczone (przetwarzanie poza firmą)</td>
            <td>Wysokie (pełna kontrola nad danymi)</td>
        </tr>
        <tr>
            <td>Zgodność z regulacjami</td>
            <td>Może wymagać dodatkowych umów i certyfikacji</td>
            <td>Łatwiejsze spełnienie wymagań regulacyjnych</td>
        </tr>
        <tr>
            <td>Łatwość wdrożenia</td>
            <td>Łatwe i szybkie</td>
            <td>Wymaga zakupu sprzętu i konfiguracji</td>
        </tr>
        <tr>
            <td>Aktualizacje i utrzymanie</td>
            <td>Automatyczne, dostarczane przez dostawcę</td>
            <td>Samodzielne zarządzanie i aktualizacje</td>
        </tr>
        <tr>
            <td>Integracja z systemami firmowymi</td>
            <td>Dobre wsparcie przez API i gotowe integracje</td>
            <td>Pełna kontrola, ale może wymagać dodatkowej integracji</td>
        </tr>
    </table>
</div>

</body>
</html>
		</div>
				</div>
				<div class="elementor-element elementor-element-0ed2afd elementor-widget elementor-widget-text-editor" data-id="0ed2afd" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span data-contrast="auto">Wybór odpowiedniego modelu wdrożenia – chmurowego lub lokalnego– zależy od indywidualnych wymagań przedsiębiorstwa w zakresie bezpieczeństwa, kosztów oraz integracji z istniejącymi systemami. Niezależnie od wybranej strategii, agenci AI mogą znacząco podnieść efektywność operacyjną i umożliwić pracownikom skupienie się na zadaniach wymagających kreatywności i strategicznego myślenia.</span><span data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-b286bc4 elementor-widget elementor-widget-text-editor" data-id="b286bc4" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span data-contrast="auto">Rozwój technologii AI to zdecydowanie jeden z najsilniejszych trendów technologicznych ostatnich lat, dlatego warto już teraz zastanowić się, jak Agenci AI mogą wspierać rozwój Twojej firmy i stać się kluczowym elementem jej cyfrowej transformacji.</span><span data-ccp-props="{}"> </span></p>						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-86316a7 e-flex e-con-boxed e-con e-parent" data-id="86316a7" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-42ec473 elementor-cta--skin-cover elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action" data-id="42ec473" data-element_type="widget" data-widget_type="call-to-action.default">
				<div class="elementor-widget-container">
					<a class="elementor-cta" href="https://inero-software.com/pl/kontakt/">
					<div class="elementor-cta__bg-wrapper">
				<div class="elementor-cta__bg elementor-bg" style="background-image: url(https://inero-software.com/wp-content/uploads/2025/02/cta-AI2-1030x579.png);" role="img" aria-label="cta AI2"></div>
				<div class="elementor-cta__bg-overlay"></div>
			</div>
							<div class="elementor-cta__content">
				
									<h2 class="elementor-cta__title elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
						Stworzymy Agenta AI dla Twojej firmy					</h2>
				
									<div class="elementor-cta__description elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
						Skontaktuj się z nami, aby dowiedzieć się jak możemy pomóc Ci we wdrożeniu nowego rozwiązania na bazie AI. 					</div>
				
									<div class="elementor-cta__button-wrapper elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
					<span class="elementor-cta__button elementor-button elementor-size-">
						Kontakt 					</span>
					</div>
							</div>
						</a>
				</div>
				</div>
					</div>
				</div>
				</div>
		<p>Artykuł <a href="https://inero-software.com/pl/czym-sa-agenci-ai-i-jak-moga-pomoc-w-twojej-firmie/">Czym są Agenci AI i jak mogą pomóc w Twojej firmie?</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7480</post-id>	</item>
		<item>
		<title>Poznaj swojego osobistego Agenta AI: Case study dla firmy spedycyjnej</title>
		<link>https://inero-software.com/pl/poznaj-swojego-osobistego-agenta-ai-case-study-dla-firmy-spedycyjnej/</link>
		
		<dc:creator><![CDATA[Marta Kuprasz]]></dc:creator>
		<pubDate>Fri, 21 Feb 2025 10:33:14 +0000</pubDate>
				<category><![CDATA[Blog_pl]]></category>
		<category><![CDATA[Firma]]></category>
		<category><![CDATA[NASZE ROZWIĄZANIA]]></category>
		<category><![CDATA[Agent AI]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[analiza]]></category>
		<category><![CDATA[Asystent AI]]></category>
		<category><![CDATA[biznes]]></category>
		<category><![CDATA[Case study]]></category>
		<category><![CDATA[digitalizacja]]></category>
		<category><![CDATA[dokumenty]]></category>
		<category><![CDATA[Gemini]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[oprogramowanie]]></category>
		<category><![CDATA[optymalizacja procesów biznesowych]]></category>
		<category><![CDATA[spedycja]]></category>
		<category><![CDATA[sztuczna inteligencja]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=7259</guid>

					<description><![CDATA[<p>Agenci AI mogą znaleźć zastosowanie w wielu branżach jak np. bankowość, sprzedaż czy zarządzanie zasobami ludzkimi. W tym tekście wykorzystamy przykład firmy spedycyjnej, która codziennie obsługuje od kilku do kilkudziesięciu frachtów.  </p>
<p>Artykuł <a href="https://inero-software.com/pl/poznaj-swojego-osobistego-agenta-ai-case-study-dla-firmy-spedycyjnej/">Poznaj swojego osobistego Agenta AI: Case study dla firmy spedycyjnej</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="7259" class="elementor elementor-7259" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-c1e7efe e-flex e-con-boxed e-con e-parent" data-id="c1e7efe" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-a609c1d elementor-widget elementor-widget-html" data-id="a609c1d" data-element_type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
			 		</div>
				</div>
				<div class="elementor-element elementor-element-ff753e4 elementor-widget elementor-widget-text-editor" data-id="ff753e4" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<h5><span class="TextRun SCXW42291576 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW42291576 BCX0">Narzędzia oparte na sztucznej inteligencji znajdują coraz szersze zastosowanie. Od projektowania prostych grafik, tłumaczeń, aż po zaawansowanie analizowanie dokumentów, maili i baz danych. W tym tekście pokażemy jeden z praktycznych przykładów wykorzystania takiego asystenta w praktyce. </span></span><span class="EOP SCXW42291576 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}"> </span></h5>						</div>
				</div>
				<div class="elementor-element elementor-element-ee85ecd elementor-widget elementor-widget-text-editor" data-id="ee85ecd" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW221803130 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW221803130 BCX0">Obszar zastosowania Agentów AI jest bardzo szeroki i wciąż odkrywany jest ich potencjał.  Do największych zalet</span><span class="NormalTextRun SCXW221803130 BCX0"> asystentów opartych na sztucznej inteligencji</span><span class="NormalTextRun SCXW221803130 BCX0"> możemy zaliczyć:</span></span><span class="EOP SCXW221803130 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-06bf962 elementor-widget elementor-widget-text-editor" data-id="06bf962" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><strong>1. Automatyzacja rutynowych procesów</strong></p><p>Agenci AI mogą wykonywać powtarzalne zadania, takie jak obsługa zapytań klientów, analiza dokumentów czy zarządzanie danymi, co redukuje koszty operacyjne i zwiększa efektywność.</p><p><strong> </strong></p><p><strong>2. Personalizacja interakcji z klientem</strong></p><p>Dzięki analizie danych agenci AI mogą dostarczać spersonalizowane rekomendacje i oferty, co zwiększa zaangażowanie klientów i poprawia ich doświadczenia.</p><p><strong> </strong></p><p><strong>3. Szybkość i dostępność</strong></p><p>AI działa 24/7, zapewniając natychmiastowe odpowiedzi i obsługę w czasie rzeczywistym, co jest kluczowe w sektorach wymagających szybkiej reakcji, takich jak e-commerce, finanse czy logistyka.</p><p><strong> </strong></p><p><strong>4. Zaawansowana analiza danych</strong></p><p>Agenci AI mogą przetwarzać duże ilości danych w krótkim czasie, identyfikując wzorce i zależności, co wspiera podejmowanie trafnych decyzji biznesowych.</p><p><strong> </strong></p><p><strong>5. Optymalizacja procesów decyzyjnych</strong></p><p>Dzięki modelom predykcyjnym AI wspiera podejmowanie decyzji w obszarach takich jak prognozowanie popytu, zarządzanie ryzykiem czy optymalizacja łańcucha dostaw.</p><p><strong>6. Integracja z istniejącymi systemami</strong></p><p>Nowoczesne rozwiązania AI można łatwo wdrożyć w ramach istniejących systemów ERP, CRM czy platform analitycznych, co zwiększa ich funkcjonalność.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-11dd40f elementor-widget elementor-widget-heading" data-id="11dd40f" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Praktyczny przykład wykorzystania Agenta AI w branży transportowej </h3>		</div>
				</div>
				<div class="elementor-element elementor-element-49baa37 elementor-widget__width-initial elementor-widget elementor-widget-video" data-id="49baa37" data-element_type="widget" data-settings="{&quot;youtube_url&quot;:&quot;https:\/\/youtu.be\/B4VxxjWYzDM&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}" data-widget_type="video.default">
				<div class="elementor-widget-container">
					<div class="elementor-wrapper elementor-open-inline">
			<div class="elementor-video"></div>		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-a9b9980 elementor-widget elementor-widget-text-editor" data-id="a9b9980" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span data-contrast="auto">Agenci AI mogą znaleźć zastosowanie w wielu branżach jak np. bankowość, sprzedaż czy zarządzanie zasobami ludzkimi. W tym tekście wykorzystamy przykład firmy spedycyjnej, która codziennie obsługuje od kilku do kilkudziesięciu frachtów. </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}">&nbsp;</span></p>
<p><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}">&nbsp;</span></p>
<p><span data-contrast="auto">Praca spedytorów wiąże się z koniecznością ciągłej komunikacji i weryfikacji wielu dokumentów. Każde z tych zadań, wiąże się z czasem, którego często bywa za mało, a wtedy łatwo o błędy.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}">&nbsp;</span></p>
<p><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}">&nbsp;</span></p>
<p><span data-contrast="auto">Jak więc lepiej zarządzać czasem? Automatyzując zadania, które są powtarzalne i przewidywalne. To zadanie dla Agenta AI. Oto przykład stworzonego przez nas asystenta, opartego na Dużym Modelu Językowym Gemini od Google. </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}">&nbsp;</span></p>
<p><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}">&nbsp;</span></p>
<p><span data-contrast="auto">Możemy go wykorzystać na przykład w poniższym scenariuszu:</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}">&nbsp;</span></p>
<p><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}">&nbsp;</span></p>
<p><span data-contrast="auto">Spedytor otrzymuje mail, w którym powinny być polisa ubezpieczeniowa wraz z potwierdzeniem jej opłacenia. Agent AI samodzielnie, bez wywołania sprawdza czy otrzymany mail zawiera wspomniane wcześniej załączniki. Jeśli są dołączone, to w kolejnym kroku sprawdza następujące informacje:</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:0,&quot;335559739&quot;:0}">&nbsp;</span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-d2f738d elementor-widget elementor-widget-text-editor" data-id="d2f738d" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span data-contrast="auto">W polisie ubezpieczeniowej:</span><span data-ccp-props="{}"> </span></p><ul><li style="list-style-type: none;"><ul><li data-leveltext="-" data-font="Aptos" data-listid="3" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Numer polisy</span><span data-ccp-props="{}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="-" data-font="Aptos" data-listid="3" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">Okres ubezpieczenia i czy jest ona aktualnie ważna </span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279,&quot;335559991&quot;:360}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="-" data-font="Aptos" data-listid="3" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><span class="TextRun SCXW205900233 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW205900233 BCX0">Kto jest ubezpieczony, wraz z </span><span class="NormalTextRun SCXW205900233 BCX0">numerem identyfikacji podatkowej</span><span class="NormalTextRun SCXW205900233 BCX0"> i adresem</span></span><span class="EOP SCXW205900233 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279,&quot;335559991&quot;:360}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="-" data-font="Aptos" data-listid="3" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="4" data-aria-level="1"><span data-contrast="auto">Numer konta na jaki należy przelać składkę </span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279,&quot;335559991&quot;:360}"> </span></li></ul></li></ul><p><span data-contrast="auto">W potwierdzeniu przelewu:</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}"> </span></p><ul><li style="list-style-type: none;"><ul><li data-leveltext="-" data-font="Aptos" data-listid="4" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Tytuł przelewu</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="-" data-font="Aptos" data-listid="4" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">Kwota</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="-" data-font="Aptos" data-listid="4" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><span data-contrast="auto">Numer konta</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="-" data-font="Aptos" data-listid="4" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="4" data-aria-level="1"><span data-contrast="auto">Data płatności</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="-" data-font="Aptos" data-listid="4" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="5" data-aria-level="1"><span data-contrast="auto">Czy przelew dotyczy przesłanej polisy (np. na podstawie tytułu, numeru konta)</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}"> </span></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-3edb3a5 elementor-widget elementor-widget-image" data-id="3edb3a5" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" data-attachment-id="7334" data-permalink="https://inero-software.com/pl/poznaj-swojego-osobistego-agenta-ai-case-study-dla-firmy-spedycyjnej/analysis-take1/" data-orig-file="https://inero-software.com/wp-content/uploads/2025/02/analysis-take1.png" data-orig-size="1722,612" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="analysis-take1" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2025/02/analysis-take1-300x107.png" data-large-file="https://inero-software.com/wp-content/uploads/2025/02/analysis-take1-1030x366.png" tabindex="0" role="button" width="1030" height="366" src="https://inero-software.com/wp-content/uploads/2025/02/analysis-take1-1030x366.png" class="attachment-large size-large wp-image-7334" alt="" srcset="https://inero-software.com/wp-content/uploads/2025/02/analysis-take1-1030x366.png 1030w, https://inero-software.com/wp-content/uploads/2025/02/analysis-take1-300x107.png 300w, https://inero-software.com/wp-content/uploads/2025/02/analysis-take1-768x273.png 768w, https://inero-software.com/wp-content/uploads/2025/02/analysis-take1-1536x546.png 1536w, https://inero-software.com/wp-content/uploads/2025/02/analysis-take1-844x300.png 844w, https://inero-software.com/wp-content/uploads/2025/02/analysis-take1.png 1722w" sizes="(max-width: 1030px) 100vw, 1030px" data-attachment-id="7334" data-permalink="https://inero-software.com/pl/poznaj-swojego-osobistego-agenta-ai-case-study-dla-firmy-spedycyjnej/analysis-take1/" data-orig-file="https://inero-software.com/wp-content/uploads/2025/02/analysis-take1.png" data-orig-size="1722,612" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="analysis-take1" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2025/02/analysis-take1-300x107.png" data-large-file="https://inero-software.com/wp-content/uploads/2025/02/analysis-take1-1030x366.png" role="button" />													</div>
				</div>
				<div class="elementor-element elementor-element-a59477b elementor-widget elementor-widget-text-editor" data-id="a59477b" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span data-contrast="auto">Następnie Agent AI przenosi znalezione dane do wskazanego pliku </span><span data-contrast="auto">excel, który jest na bieżąco aktualizowany. Plik z danymi może być formatowany, np. oznaczać kolorem czerwonym wpisy, w których polisa jest nieważna albo nie została zweryfikowana płatność.</span><span data-ccp-props="{}"> </span></p><p><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-ba91f9f elementor-widget elementor-widget-image" data-id="ba91f9f" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" data-attachment-id="7335" data-permalink="https://inero-software.com/pl/poznaj-swojego-osobistego-agenta-ai-case-study-dla-firmy-spedycyjnej/zrzut-ekranu-2025-02-21-112751/" data-orig-file="https://inero-software.com/wp-content/uploads/2025/02/Zrzut-ekranu-2025-02-21-112751.png" data-orig-size="1539,600" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Zrzut ekranu 2025-02-21 112751" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2025/02/Zrzut-ekranu-2025-02-21-112751-300x117.png" data-large-file="https://inero-software.com/wp-content/uploads/2025/02/Zrzut-ekranu-2025-02-21-112751-1030x402.png" tabindex="0" role="button" width="1030" height="402" src="https://inero-software.com/wp-content/uploads/2025/02/Zrzut-ekranu-2025-02-21-112751-1030x402.png" class="attachment-large size-large wp-image-7335" alt="" srcset="https://inero-software.com/wp-content/uploads/2025/02/Zrzut-ekranu-2025-02-21-112751-1030x402.png 1030w, https://inero-software.com/wp-content/uploads/2025/02/Zrzut-ekranu-2025-02-21-112751-300x117.png 300w, https://inero-software.com/wp-content/uploads/2025/02/Zrzut-ekranu-2025-02-21-112751-768x299.png 768w, https://inero-software.com/wp-content/uploads/2025/02/Zrzut-ekranu-2025-02-21-112751-1536x599.png 1536w, https://inero-software.com/wp-content/uploads/2025/02/Zrzut-ekranu-2025-02-21-112751-770x300.png 770w, https://inero-software.com/wp-content/uploads/2025/02/Zrzut-ekranu-2025-02-21-112751.png 1539w" sizes="(max-width: 1030px) 100vw, 1030px" data-attachment-id="7335" data-permalink="https://inero-software.com/pl/poznaj-swojego-osobistego-agenta-ai-case-study-dla-firmy-spedycyjnej/zrzut-ekranu-2025-02-21-112751/" data-orig-file="https://inero-software.com/wp-content/uploads/2025/02/Zrzut-ekranu-2025-02-21-112751.png" data-orig-size="1539,600" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Zrzut ekranu 2025-02-21 112751" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2025/02/Zrzut-ekranu-2025-02-21-112751-300x117.png" data-large-file="https://inero-software.com/wp-content/uploads/2025/02/Zrzut-ekranu-2025-02-21-112751-1030x402.png" role="button" />													</div>
				</div>
				<div class="elementor-element elementor-element-5abc3ea elementor-widget elementor-widget-text-editor" data-id="5abc3ea" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span data-contrast="auto">W ten prosty sposób, zamiast przeglądać skrzynkę mailową w poszukiwaniu właściwych wiadomości, spedytor może sprawdzić w pliku exel czy otrzymał dokumenty od konkretnego nadawcy i czy są one poprawne. To duża oszczędność czasu i pewność, że dane są prawidłowe. </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p><p><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p><p><span data-contrast="auto">Jest wiele możliwości dalej rozbudowy naszego Asystenta AI. Możemy integrować go z innymi narzędziami, jak na przykład Slack lub inny komunikator, by wysłać powiadomienia o brakach w dokumentach albo by generować automatyczne odpowiedzi na wiadomości. Agent oparty na sztucznej inteligencji może być dostosowany do indywidualnych potrzeb danej firmy, jej działu lub indywidualnego stanowiska.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-aee5ea0 elementor-cta--skin-cover elementor-widget__width-inherit elementor-hidden-mobile elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action" data-id="aee5ea0" data-element_type="widget" data-widget_type="call-to-action.default">
				<div class="elementor-widget-container">
					<div class="elementor-cta">
					<div class="elementor-cta__bg-wrapper">
				<div class="elementor-cta__bg elementor-bg" style="background-image: url(https://inero-software.com/wp-content/uploads/2025/02/cta-AI2-1030x579.png);" role="img" aria-label="cta AI2"></div>
				<div class="elementor-cta__bg-overlay"></div>
			</div>
							<div class="elementor-cta__content">
				
									<h2 class="elementor-cta__title elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
						Chcesz poznać możliwości Agentów AI?					</h2>
				
									<div class="elementor-cta__description elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
						Umów spotkanie. Chętnie porozmawiamy o możliwościach.					</div>
				
									<div class="elementor-cta__button-wrapper elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
					<a class="elementor-cta__button elementor-button elementor-size-" href="https://calendar.google.com/calendar/u/0/appointments/schedules/AcZssZ3e3C_1YeBkt1uCr_qfOnG_N298UgLFwORcSTXigrPfOk0ls3ok-Uw_dSeGCoLdtYsN13GMm-n-">
						UMÓW SPOTKANIE 					</a>
					</div>
							</div>
						</div>
				</div>
				</div>
					</div>
				</div>
				</div>
		<p>Artykuł <a href="https://inero-software.com/pl/poznaj-swojego-osobistego-agenta-ai-case-study-dla-firmy-spedycyjnej/">Poznaj swojego osobistego Agenta AI: Case study dla firmy spedycyjnej</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7259</post-id>	</item>
		<item>
		<title>Asystenci AI: Szanse i ograniczenia dla rozwoju przedsiębiorstw</title>
		<link>https://inero-software.com/pl/asystenci-ai-szanse-i-ograniczenia-dla-rozwoju-przedsiebiorstw/</link>
		
		<dc:creator><![CDATA[Marta Kuprasz]]></dc:creator>
		<pubDate>Thu, 23 Jan 2025 12:26:26 +0000</pubDate>
				<category><![CDATA[Firma]]></category>
		<category><![CDATA[Agenci AI]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[Asystenci AI]]></category>
		<category><![CDATA[biznes]]></category>
		<category><![CDATA[dane]]></category>
		<category><![CDATA[digitalizacja]]></category>
		<category><![CDATA[GenAI]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[optymalizacja procesów biznesowych]]></category>
		<category><![CDATA[sztuczna inteligencja]]></category>
		<category><![CDATA[uczenie maszynowe]]></category>
		<category><![CDATA[zbiory danych]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=6766</guid>

					<description><![CDATA[<p>W tym artykule, omawiamy zagadnienia związane z ograniczeniami (zwłaszcza w obszarze EU) oraz skupimy się wyzwaniach związanych z wdrażaniem Agentów AI. </p>
<p>Artykuł <a href="https://inero-software.com/pl/asystenci-ai-szanse-i-ograniczenia-dla-rozwoju-przedsiebiorstw/">Asystenci AI: Szanse i ograniczenia dla rozwoju przedsiębiorstw</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="6766" class="elementor elementor-6766" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-0a072d8 e-flex e-con-boxed e-con e-parent" data-id="0a072d8" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-c4d43ef e-con-full e-flex e-con e-child" data-id="c4d43ef" data-element_type="container">
				</div>
		<div class="elementor-element elementor-element-a23bcad e-con-full e-flex e-con e-child" data-id="a23bcad" data-element_type="container">
				<div class="elementor-element elementor-element-4f67da6 elementor-widget elementor-widget-html" data-id="4f67da6" data-element_type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
			 		</div>
				</div>
				<div class="elementor-element elementor-element-3ecbfd9 elementor-widget elementor-widget-text-editor" data-id="3ecbfd9" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<h4><strong><span class="TextRun SCXW259597014 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW259597014 BCX0">G</span><span class="NormalTextRun SCXW259597014 BCX0">artner</span><span class="NormalTextRun SCXW259597014 BCX0"> przewiduje, że do 2028 roku co najmniej 15% codziennych decyzji zawodowych będzie podejmowanych autonomicznie przez </span><span class="NormalTextRun SpellingErrorV2Themed SCXW259597014 BCX0">agentyczną</span><span class="NormalTextRun SCXW259597014 BCX0"> sztuczną inteligencję. W teorii </span><span class="NormalTextRun SCXW259597014 BCX0">technologia ta pozwoli </span><span class="NormalTextRun SCXW259597014 BCX0">na tworzenie bardziej adaptacyjnych systemów oprogramowania, zdolnych do wykonywania szerokiej gamy zadań.  W praktyce jest wciąż wiele niewiad</span><span class="NormalTextRun SCXW259597014 BCX0">omych, d</span><span class="NormalTextRun SCXW259597014 BCX0">otyczących bezpieczeństwa danych, zgodności z procedurami wewnętrznymi i regulacjami prawnymi. </span><span class="NormalTextRun SCXW259597014 BCX0"> </span><span class="NormalTextRun SCXW259597014 BCX0">W tym artykule</span><span class="NormalTextRun SCXW259597014 BCX0">, omawiamy zagadnienia związane z ograniczeniami (zwłaszcza w obszarze EU) </span><span class="NormalTextRun SCXW259597014 BCX0">oraz</span><span class="NormalTextRun SCXW259597014 BCX0"> skupimy</span><span class="NormalTextRun SCXW259597014 BCX0"> się </span><span class="NormalTextRun SCXW259597014 BCX0">wyzwaniach </span><span class="NormalTextRun SCXW259597014 BCX0">związanych z</span><span class="NormalTextRun SCXW259597014 BCX0"> wdrażaniem</span><span class="NormalTextRun SCXW259597014 BCX0"> Agent</span><span class="NormalTextRun SCXW259597014 BCX0">ów</span><span class="NormalTextRun SCXW259597014 BCX0"> AI.</span></span><span class="EOP SCXW259597014 BCX0" data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></strong></h4>						</div>
				</div>
				<div class="elementor-element elementor-element-3b0c603 elementor-widget elementor-widget-text-editor" data-id="3b0c603" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span data-contrast="auto">Tempo rozwoju narzędzi opartych na AI, pozwala twierdzić, że praktyczne wykorzystanie &#8222;agentowej” / “agentycznej” (ang. Agentic) sztucznej inteligencji do wykonywania czasochłonnych zadań zrewolucjonizuje wiele branż. szczególnie tych, w których automatyzacja i podejmowanie decyzji na podstawie dużych zbiorów danych może znacząco zwiększyć efektywność.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p><p><span data-contrast="auto">Myśląc o możliwościach, należy pamiętać także o ograniczeniach.  </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-d1c849a elementor-widget elementor-widget-heading" data-id="d1c849a" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Ograniczenia związane z wykorzystaniem Agentów AI  </h2>		</div>
				</div>
				<div class="elementor-element elementor-element-de5cf46 elementor-widget elementor-widget-heading" data-id="de5cf46" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">Zależność od jakości danych </h4>		</div>
				</div>
				<div class="elementor-element elementor-element-ea8355c elementor-widget elementor-widget-text-editor" data-id="ea8355c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span data-contrast="auto">AI wymaga dużych zbiorów danych wysokiej jakości do skutecznego działania. Dane błędne, niepełne lub zmanipulowane mogą prowadzić do nieprawidłowych decyzji, co w wielu przypadkach (np. medycyna, finanse) może mieć poważne konsekwencje.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p><p><span data-contrast="auto">W badaniu &#8222;</span><a href="https://arxiv.org/abs/2207.14529?utm_source=chatgpt.com"><span data-contrast="none">The Effects of Data Quality on Machine Learning Performance</span></a><span data-contrast="auto">&#8221; autorzy analizują wpływ sześciu tradycyjnych wymiarów jakości danych na wydajność piętnastu popularnych algorytmów uczenia maszynowego. Wyniki wskazują, że niekompletne, błędne lub nieodpowiednie dane treningowe mogą prowadzić do niepewnych modeli, które podejmują błędne decyzje.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p><p><span data-contrast="auto">Wiarygodne aplikacje AI wymagają wysokiej jakości danych treningowych i testowych w wielu wymiarach jakości, takich jak dokładność, kompletność i spójność.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p><p><span data-contrast="auto">To, co jest napisane powyżej, dla wielu osób zajmujących się AI/ML będzie oczywiste. Jednak ocena jakości danych w danej organizacji nie zawsze jest jednoznaczna. Ważne jest, aby informacje, na których chcemy używać agenta OpenAI, były kompletne i nie zawierały obraźliwych treści. Ocena tego stanu na wczesnym etapie może pomóc wyeliminować potencjalne błędy podczas prac wdrożeniowych.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-f5beab8 elementor-widget elementor-widget-heading" data-id="f5beab8" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">Bezpieczeństwo danych  </h4>		</div>
				</div>
				<div class="elementor-element elementor-element-fccde1c elementor-widget elementor-widget-text-editor" data-id="fccde1c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span data-contrast="auto">Program, który w analizowanym przypadku ma pełnić rolę pomocnika, asystenta ma za zadanie dostarczać nam wiarygodnych i sprawdzonych informacji.  Analizę opiera on na danych, o których pisaliśmy wcześniej. Oczywiście, najlepszymi materiałami do nauki są prawdziwe dokumenty i dane, które są procedowane wewnątrz organizacji. </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p><p><span data-contrast="auto">Wiele wątpliwości i obaw jest związanych z dostarczeniem do Asystenta danych wrażliwych na temat przedsiębiorstwa. </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-2e08c24 elementor-widget elementor-widget-text-editor" data-id="2e08c24" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<blockquote>
<p><i><span data-contrast="auto">Obecny stan przepisów prawnych, niezależnie od naszych opinii, wyznacza ramy działania systemów AI, szczególnie w kontekście zgodności z RODO. Przykładem są agenci oparci na infrastrukturze Azure OpenAI, które dzięki integracji z chmurą zapewniają pełną zgodność z regulacjami, o ile są prawidłowo skonfigurowane przez użytkownika. Warto też wspomnieć o rozwiązaniach takich jak Azure AI Studio, umożliwiających tworzenie agentów w środowisku chmurowym.</span></i><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:708,&quot;335559738&quot;:240,&quot;335559739&quot;:240}">&nbsp;</span></p><p><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:708,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"><br></span></p>
<p><i><span data-contrast="auto">Z drugiej strony, lokalne rozwiązania – oparte na modelach takich jak Llama, Bielik&nbsp;czy inne otwarte modele językowe (np. kontrowersyjny dla niektórych DeppSeek)&nbsp;– dają pełną kontrolę nad danymi i ich przetwarzaniem, choć wymagają większych nakładów technicznych, np. w postaci dedykowanych serwerów. Warto jednak podkreślić, że zarówno w przypadku rozwiązań chmurowych, jak i lokalnych, zgodność z przepisami, w tym z RODO, zależy od odpowiedniej konfiguracji i implementacji systemów przez użytkownika.</span></i><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:708,&quot;335559738&quot;:240,&quot;335559739&quot;:240}">&nbsp;</span></p>
<p><i><span data-contrast="auto">Dynamiczny rozwój tej dziedziny sugeruje, że za kilka miesięcy możliwości te będą jeszcze bardziej rozbudowane, oferując nowe opcje zarówno dla rozwiązań lokalnych, jak i chmurowych- ocenia Andrzej Chybicki, CEO Inero Software&nbsp;</span></i><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:708,&quot;335559738&quot;:240,&quot;335559739&quot;:240}">&nbsp;</span></p>
</blockquote>						</div>
				</div>
				<div class="elementor-element elementor-element-500a771 elementor-cta--skin-cover elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action" data-id="500a771" data-element_type="widget" data-widget_type="call-to-action.default">
				<div class="elementor-widget-container">
					<div class="elementor-cta">
					<div class="elementor-cta__bg-wrapper">
				<div class="elementor-cta__bg elementor-bg" style="background-image: url(https://inero-software.com/wp-content/uploads/2024/11/tlo-popup-keycloak-1030x731.png);" role="img" aria-label="tło popup keycloak"></div>
				<div class="elementor-cta__bg-overlay"></div>
			</div>
							<div class="elementor-cta__content">
				
									<h2 class="elementor-cta__title elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
						Keycloak  - kompleksowo zarządzaj dostępem i uprawnieniami 					</h2>
				
									<div class="elementor-cta__description elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
						Zapewniamy pełne wdrożenie, utrzymanie i szkolenia					</div>
				
									<div class="elementor-cta__button-wrapper elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
					<a class="elementor-cta__button elementor-button elementor-size-" href="https://inero-software.com/pl/keycloak/">
						Dowiedz się więcej 					</a>
					</div>
							</div>
						</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-d0d0f60 elementor-widget elementor-widget-heading" data-id="d0d0f60" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">Cyberbezpieczeństwo i autoryzacja </h4>		</div>
				</div>
				<div class="elementor-element elementor-element-7aeba10 elementor-widget elementor-widget-text-editor" data-id="7aeba10" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW254467642 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW254467642 BCX0">Autentykacja użytkownika to wyzwanie dla systemów AI, które wymaga szczególnej uwagi w kontekście bezpieczeństwa. Choć w większości przypadków autoryzacja odbywa się na wcześniejszych etapach, istnieją sposoby na obejście tego procesu, co naraża systemy na ryzyko manipulacji.</span></span><span class="EOP SCXW254467642 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-2cb6230 elementor-widget elementor-widget-text-editor" data-id="2cb6230" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><b><span data-contrast="auto">Przykład:</span></b><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p><p><span data-contrast="auto">Agent AI, który komunikuje się z użytkownikami, może być podatny na ataki phishingowe, jeśli nie jest odpowiednio zabezpieczony. Na przykład, atakujący może stworzyć zapytanie, które imituje komunikację od autoryzowanego użytkownika. Jeśli agent nie weryfikuje kontekstu lub danych wejściowych, może odpowiedzieć na takie zapytanie, udzielając poufnych informacji lub wykonując nieautoryzowane działania.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p><p><span data-contrast="auto">To pokazuje, że wcześniejsza autoryzacja użytkownika, choć kluczowa, nie zawsze wystarcza do zabezpieczenia systemu. Ważne jest wdrożenie dodatkowych mechanizmów, takich jak analiza kontekstowa, zaawansowane systemy wykrywania nietypowych zachowań, a także odpowiednie zabezpieczenie danych przetwarzanych przez agenta AI. Tylko takie podejście minimalizuje ryzyko związane z atakami phishingowymi i manipulacją agentami AI.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-6a3c2e7 elementor-widget elementor-widget-text-editor" data-id="6a3c2e7" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<blockquote><p><span data-contrast="auto">W praktyce autoryzacja użytkownika powinna zawsze odbywać się przed </span> <span data-contrast="auto">przyznaniem dostępu do asystenta AI. W środowisku chmurowym, np. Azure, można zastosować dodatkowe zabezpieczenia, np korzystając z Active Directory czy Keycloak, aby ograniczyć ryzyko ataków. Jeśli dane nie mogą być przetwarzane poza organizacją, warto korzystać z lokalnych rozwiązań uwierzytelniania i przechowywania danych.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:708,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p><p><span data-contrast="auto">Z perspektywy bezpieczeństwa kluczowe jest jednak rozwijanie mechanizmów odpornych na phishing, ponieważ brak odpowiednich zabezpieczeń w agentach AI może prowadzić do poważnych zagrożeń- dodaje Andrzej Chybicki </span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:708,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p></blockquote>						</div>
				</div>
				<div class="elementor-element elementor-element-60d8844 elementor-widget elementor-widget-text-editor" data-id="60d8844" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW195952358 BCX0" lang="PL-PL" xml:lang="PL-PL" data-contrast="auto"><span class="NormalTextRun SCXW195952358 BCX0">Podsumowując. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW195952358 BCX0">Agentyczna</span><span class="NormalTextRun SCXW195952358 BCX0"> sztuczna inteligencja ma potencjał, by zrewolucjonizować sposób, w jaki podejmowane są decyzje zawodowe, zwłaszcza w zadaniach opartych na analizie dużych zbiorów danych. Jednak możliwości te wiążą się z istotnymi wyzwaniami, takimi jak jakość danych, bezpieczeństwo informacji czy zgodność z regulacjami prawnymi. </span></span><span class="EOP SCXW195952358 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-19a69e4 elementor-cta--skin-cover elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action" data-id="19a69e4" data-element_type="widget" data-widget_type="call-to-action.default">
				<div class="elementor-widget-container">
					<div class="elementor-cta">
					<div class="elementor-cta__bg-wrapper">
				<div class="elementor-cta__bg elementor-bg" style="background-image: url(https://inero-software.com/wp-content/uploads/2024/12/4-1030x1030.png);" role="img" aria-label="4"></div>
				<div class="elementor-cta__bg-overlay"></div>
			</div>
							<div class="elementor-cta__content">
				
									<h2 class="elementor-cta__title elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
						Pomożemy Ci wdrożyć nadzędzia AI w organizacji					</h2>
				
									<div class="elementor-cta__description elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
						Chcesz poznać możliwości?					</div>
				
									<div class="elementor-cta__button-wrapper elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
					<a class="elementor-cta__button elementor-button elementor-size-" href="https://inero-software.com/pl/kontakt/">
						Napisz do nas					</a>
					</div>
							</div>
						</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-dd52ef7 e-con-full e-flex e-con e-child" data-id="dd52ef7" data-element_type="container">
				</div>
					</div>
				</div>
				</div>
		<p>Artykuł <a href="https://inero-software.com/pl/asystenci-ai-szanse-i-ograniczenia-dla-rozwoju-przedsiebiorstw/">Asystenci AI: Szanse i ograniczenia dla rozwoju przedsiębiorstw</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6766</post-id>	</item>
		<item>
		<title>Sieci neuronowe w przeglądarce: Przewodnik na przykładzie customowej sieci YOLO do wykrywania twarzy</title>
		<link>https://inero-software.com/pl/sieci-neuronowe-w-przegladarce-przewodnik-na-przykladzie-customowej-sieci-yolo-do-wykrywania-twarzy/</link>
		
		<dc:creator><![CDATA[Martyna Mul]]></dc:creator>
		<pubDate>Thu, 10 Oct 2024 11:20:57 +0000</pubDate>
				<category><![CDATA[Firma]]></category>
		<category><![CDATA[ML]]></category>
		<category><![CDATA[NLP]]></category>
		<category><![CDATA[oprogramowanie]]></category>
		<category><![CDATA[optymalizacja procesów biznesowych]]></category>
		<category><![CDATA[repozytorium]]></category>
		<category><![CDATA[sieci neuronowe]]></category>
		<category><![CDATA[yolo]]></category>
		<category><![CDATA[zarządzanie danymi]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=6230</guid>

					<description><![CDATA[<p>Wraz z rosnącym zapotrzebowaniem na aplikacje działające w czasie rzeczywistym, uruchamianie modeli głębokiego uczenia w przeglądarce staje się coraz bardziej dostępne i wydajne. W tym artykule pokażemy, jak zaimplementować wykrywanie obiektów bezpośrednio w przeglądarce, wykorzystując YOLO (You Only Look Once) oraz TensorFlow.js. Skoncentrujemy się na zastosowaniu wytrenowanego przez nas niestandardowego&#8230;</p>
<p>Artykuł <a href="https://inero-software.com/pl/sieci-neuronowe-w-przegladarce-przewodnik-na-przykladzie-customowej-sieci-yolo-do-wykrywania-twarzy/">Sieci neuronowe w przeglądarce: Przewodnik na przykładzie customowej sieci YOLO do wykrywania twarzy</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="6230" class="elementor elementor-6230" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-d225397 e-flex e-con-boxed e-con e-parent" data-id="d225397" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-4df78db elementor-widget elementor-widget-html" data-id="4df78db" data-element_type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-0827b19 e-flex e-con-boxed e-con e-parent" data-id="0827b19" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-afa200d e-con-full e-flex e-con e-child" data-id="afa200d" data-element_type="container">
				</div>
		<div class="elementor-element elementor-element-3302212 e-con-full e-flex e-con e-child" data-id="3302212" data-element_type="container">
				<div class="elementor-element elementor-element-640ca1b elementor-widget elementor-widget-text-editor" data-id="640ca1b" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><strong>Wraz z rosnącym zapotrzebowaniem na aplikacje działające w czasie rzeczywistym, uruchamianie modeli głębokiego uczenia w przeglądarce staje się coraz bardziej dostępne i wydajne. W tym artykule pokażemy, jak zaimplementować wykrywanie obiektów bezpośrednio w przeglądarce, wykorzystując YOLO (You Only Look Once) oraz TensorFlow.js. Skoncentrujemy się na zastosowaniu wytrenowanego przez nas niestandardowego modelu YOLOv8 do wykrywania ludzkich twarzy. Na końcu tego przewodnika dowiesz się, jak skonfigurować i uruchomić model YOLO do wykrywania twarzy za pomocą TensorFlow.js, przetworzyć wyniki i zoptymalizować wydajność – wszystko to bez potrzeby korzystania z serwera czy przetwarzania po stronie backendu.</strong></p>						</div>
				</div>
				<div class="elementor-element elementor-element-aed25a2 elementor-widget elementor-widget-heading" data-id="aed25a2" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Dlaczego warto korzystać z sieci neuronowych w przeglądarce?</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-344fad5 elementor-widget elementor-widget-text-editor" data-id="344fad5" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Uruchamianie sieci neuronowych w przeglądarce ma wiele zalet. Najważniejsze z nich to:</p><ol><li><strong>Niskie opóźnienia</strong>: Wszystko odbywa się po stronie klienta, co eliminuje opóźnienia wynikające z przesyłania danych na serwer i oczekiwania na odpowiedź.</li><li><strong>Większa prywatność</strong>: Wrażliwe dane pozostają na urządzeniu użytkownika, co minimalizuje ryzyko ich naruszenia lub ujawnienia.</li><li><strong> Możliwość użycia offline</strong>: Użytkownicy mogą korzystać z funkcji uczenia maszynowego nawet bez stałego połączenia z internetem.</li><li><strong>Kompatybilność między platformami</strong>: Aplikacja działa na każdym urządzeniu z przeglądarką – niezależnie czy to komputer, tablet, czy smartfon.</li></ol>						</div>
				</div>
				<div class="elementor-element elementor-element-9e13d20 elementor-widget elementor-widget-heading" data-id="9e13d20" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Wybór i przygotowanie sieci neuronowej</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-769829b elementor-widget elementor-widget-text-editor" data-id="769829b" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Przy wyborze sieci neuronowej do implementacji w przeglądarce warto uwzględnić takie czynniki jak rozmiar modelu, szybkość działania, zużycie pamięci oraz kompatybilność z technologiami przeglądarkowymi, np. WebGL. Dla optymalnej wydajności na urządzeniach o ograniczonych zasobach zaleca się stosowanie modeli o rozmiarze poniżej 30 MB. Do odpowiednich modeli należą MobileNetV2, SqueezeNet, EfficientNet oraz wybrane warianty YOLO. My zdecydowaliśmy się na wytrenowany przez nas model YOLOv8 do wykrywania ludzkich twarzy na obrazach.</p><p>Jeśli Twój model przekracza zalecany rozmiar, warto rozważyć techniki optymalizacji, takie jak kwantyzacja (quantization) i przycinanie (pruning). Kwantyzacja zmniejsza precyzję wag modelu, zazwyczaj konwertując wartości zmiennoprzecinkowe 32-bitowe na liczby zmiennoprzecinkowe 16-bitowe lub całkowite 8-bitowe. Przycinanie usuwa zbędne połączenia w sieci neuronowej. Obie metody zmniejszają rozmiar modelu i redukują złożoność obliczeniową, co poprawia szybkość inferencji – szczególnie na urządzeniach takich jak smartfony – choć mogą one nieznacznie wpłynąć na dokładność.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-76a71b3 elementor-widget elementor-widget-heading" data-id="76a71b3" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Optymalizacja YOLOv8 do wykrywania twarzy: wyniki naszego niestandardowego modelu
</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-9111e72 elementor-widget elementor-widget-text-editor" data-id="9111e72" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Nasz model YOLOv8 został wytrenowany na niestandardowym zbiorze danych w celu automatycznego sprawdzania, czy załącznik zawiera wyraźne zdjęcie ludzkiej twarzy, skierowanej na wprost i niezasłoniętej, np. przez maskę. Taka funkcjonalność jest szczególnie przydatna w systemach obiegu dokumentów, gdzie weryfikacja tożsamości wymaga widoczności twarzy. Zbiór danych składał się z 1500 obrazów, z czego 1200 wykorzystano do treningu, a 300 do walidacji. Dataset zawierał zdjęcia twarzy fotografowanych z różnych kątów, twarzy częściowo zasłoniętych oraz zdjęcia innych obiektów. Dzięki treningowi model nauczył się skutecznie wykrywać twarze spełniające wymagane kryteria. Poniższe przykłady ilustrują, jak model działa w praktyce. Dwie twarze po lewej stronie zostały poprawnie wykryte, podczas gdy dwie po prawej nie zostały rozpoznane, ponieważ były częściowo zasłonięte:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-fd798a3 elementor-widget elementor-widget-image" data-id="fd798a3" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="934" height="258" src="https://inero-software.com/wp-content/uploads/2024/10/9102024gr1.jpg" class="attachment-large size-large wp-image-6206" alt="" srcset="https://inero-software.com/wp-content/uploads/2024/10/9102024gr1.jpg 934w, https://inero-software.com/wp-content/uploads/2024/10/9102024gr1-300x83.jpg 300w, https://inero-software.com/wp-content/uploads/2024/10/9102024gr1-768x212.jpg 768w" sizes="(max-width: 934px) 100vw, 934px" data-attachment-id="6206" data-permalink="https://inero-software.com/running-ai-in-client-side-real-time-face-detection-in-the-browser-using-yolo-and-tensorflow-js-use-case-study/9102024gr1/" data-orig-file="https://inero-software.com/wp-content/uploads/2024/10/9102024gr1.jpg" data-orig-size="934,258" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="9102024gr1" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2024/10/9102024gr1-300x83.jpg" data-large-file="https://inero-software.com/wp-content/uploads/2024/10/9102024gr1.jpg" role="button" />													</div>
				</div>
				<div class="elementor-element elementor-element-34bbb24 elementor-widget elementor-widget-heading" data-id="34bbb24" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<p class="elementor-heading-title elementor-size-default">(source of images: https://www.kaggle.com/datasets/ashwingupta3012/human-faces, https://www.kaggle.com/datasets/andrewmvd/face-mask-detection) </p>		</div>
				</div>
				<div class="elementor-element elementor-element-12bfcb4 elementor-widget elementor-widget-text-editor" data-id="12bfcb4" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Wyniki wnioskowania na czterech przykładach – dwie twarze po lewej stronie zostały poprawnie wykryte, natomiast dwie po prawej nie, ponieważ były częściowo zasłonięte.</p><p>Jako bazowy model dla naszego projektu wybraliśmy YOLOv8s (small), co dało model o rozmiarze 44 MB, osiągający 99,9% precyzji (ang. precision) oraz 99,1% czułości (ang. recall) na naszym niestandardowym zbiorze danych walidacyjnych. W celu optymalizacji przetestowaliśmy również mniejszy model bazowy, YOLOv8n (nano), oraz przeanalizowaliśmy efekty kwantyzacji. Trening z modelem YOLOv8n dał model o rozmiarze zaledwie 12 MB, przy niemal identycznych wynikach – 99,7% precyzji i 99,1% czułości. Następnie przeprowadziliśmy kwantyzację obu modeli, a ich rozmiary oraz dokładność po kwantyzacji zostały zaprezentowane w poniższej tabeli:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-859298c elementor-widget elementor-widget-text-editor" data-id="859298c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<table class=" aligncenter" style="font-weight: 400;" data-tablestyle="MsoNormalTable" data-tablelook="1568" aria-rowcount="4"><tbody><tr aria-rowindex="1"><td colspan="1" rowspan="2" data-celllook="69905"><p><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td colspan="3" data-celllook="69905"><p><strong>Model bazowy</strong></p><p> </p></td><td colspan="3" data-celllook="69905"><p><strong>Model kwantyzowany 16-bitowy</strong></p><p> </p></td></tr><tr aria-rowindex="2"><td data-celllook="69905"><p><b><span data-contrast="auto">Rozmiar</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><b>Precyzja</b></p></td><td data-celllook="69905"><p><b><span data-contrast="auto">Recall</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><b><span data-contrast="auto">Rozmiar</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><b>Precyzja</b></p></td><td data-celllook="69905"><p><b><span data-contrast="auto">Recall</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td></tr><tr aria-rowindex="3"><td data-celllook="69905"><p><b><span data-contrast="auto">YOLOv8 small</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><b><span data-contrast="auto">44 MB</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><span data-contrast="auto">0.999</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><span data-contrast="auto">0.991</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><span data-contrast="auto">22 MB</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><span data-contrast="auto">0.997</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><span data-contrast="auto">0.991</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td></tr><tr aria-rowindex="4"><td data-celllook="69905"><p><b><span data-contrast="auto">YOLOv8 nano</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><span data-contrast="auto">12 MB</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><span data-contrast="auto">0.997</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><span data-contrast="auto">0.991</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><b><span data-contrast="auto">6 MB</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><span data-contrast="auto">0.989</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><span data-contrast="auto">0.991</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td></tr></tbody></table>						</div>
				</div>
				<div class="elementor-element elementor-element-a7be2ba elementor-widget elementor-widget-text-editor" data-id="a7be2ba" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><strong>Uwaga: </strong>Czułość mierzy, ile rzeczywistych pozytywnych próbek zostało poprawnie zidentyfikowanych (tutaj: ile twarzy zostało poprawnie wykrytych), natomiast precyzja wskazuje, ile próbek zidentyfikowanych przez model jako pozytywne było faktycznie pozytywnych (tutaj: ile obiektów wykrytych przez model to faktycznie ludzkie twarze). W idealnym przypadku oba wskaźniki wynoszą 1.</p><p>W naszym przykładzie, zastosowanie mniejszego modelu bazowego wraz z kwantyzacją zmniejszyło dokładność o mniej niż 1%, jednocześnie redukując rozmiar modelu z 44 MB do zaledwie 6 MB.</p><p>Poniżej przedstawiamy kilka przykładowych zdjęć, które pokazują, jak działają dwa modele: YOLOv8s i YOLOv8n z kwantyzacją.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-ba300a9 elementor-widget elementor-widget-image" data-id="ba300a9" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="934" height="307" src="https://inero-software.com/wp-content/uploads/2024/10/9102024gr2.jpg" class="attachment-large size-large wp-image-6208" alt="" srcset="https://inero-software.com/wp-content/uploads/2024/10/9102024gr2.jpg 934w, https://inero-software.com/wp-content/uploads/2024/10/9102024gr2-300x99.jpg 300w, https://inero-software.com/wp-content/uploads/2024/10/9102024gr2-768x252.jpg 768w, https://inero-software.com/wp-content/uploads/2024/10/9102024gr2-913x300.jpg 913w" sizes="(max-width: 934px) 100vw, 934px" data-attachment-id="6208" data-permalink="https://inero-software.com/running-ai-in-client-side-real-time-face-detection-in-the-browser-using-yolo-and-tensorflow-js-use-case-study/9102024gr2/" data-orig-file="https://inero-software.com/wp-content/uploads/2024/10/9102024gr2.jpg" data-orig-size="934,307" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="9102024gr2" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2024/10/9102024gr2-300x99.jpg" data-large-file="https://inero-software.com/wp-content/uploads/2024/10/9102024gr2.jpg" role="button" />													</div>
				</div>
				<div class="elementor-element elementor-element-3d14285 elementor-widget elementor-widget-text-editor" data-id="3d14285" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Wyniki inferencji z modelem YOLOv8s, bez kwantyzacji (o rozmiarze 44 MB):</p><p><span class="TextRun SCXW46079478 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW46079478 BCX0">(source of images: </span><span class="NormalTextRun SCXW46079478 BCX0">https://www.kaggle.com/datasets/ashwingupta3012/human-faces</span><span class="NormalTextRun SCXW46079478 BCX0">).</span></span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-e4f1955 elementor-widget elementor-widget-image" data-id="e4f1955" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="934" height="313" src="https://inero-software.com/wp-content/uploads/2024/10/9102024gr3.jpg" class="attachment-large size-large wp-image-6207" alt="" srcset="https://inero-software.com/wp-content/uploads/2024/10/9102024gr3.jpg 934w, https://inero-software.com/wp-content/uploads/2024/10/9102024gr3-300x101.jpg 300w, https://inero-software.com/wp-content/uploads/2024/10/9102024gr3-768x257.jpg 768w, https://inero-software.com/wp-content/uploads/2024/10/9102024gr3-895x300.jpg 895w" sizes="(max-width: 934px) 100vw, 934px" data-attachment-id="6207" data-permalink="https://inero-software.com/running-ai-in-client-side-real-time-face-detection-in-the-browser-using-yolo-and-tensorflow-js-use-case-study/9102024gr3/" data-orig-file="https://inero-software.com/wp-content/uploads/2024/10/9102024gr3.jpg" data-orig-size="934,313" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="9102024gr3" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2024/10/9102024gr3-300x101.jpg" data-large-file="https://inero-software.com/wp-content/uploads/2024/10/9102024gr3.jpg" role="button" />													</div>
				</div>
				<div class="elementor-element elementor-element-8185505 elementor-widget elementor-widget-text-editor" data-id="8185505" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Wyniki inferencji z modelem YOLOv8n po kwantyzacji 16-bitowej (o rozmiarze 6 MB). Różnica w poziomie ufności jest minimalna, natomiast położenie wykrytych obiektów pozostało takie samo.</p><p>Przetestowaliśmy wydajność dwóch modeli — YOLOv8s (44 MB) i YOLOv8n po kwantyzacji 16-bitowej (6 MB) — na trzech różnych procesorach. Mniejszy model, YOLOv8n, konsekwentnie przewyższał swój większy odpowiednik pod względem czasu wczytania modelu oraz szybkości pojedynczej inferencji. Szczegółowe dane dotyczące wydajności zostały podsumowane w tabeli poniżej.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-bba7a47 elementor-widget elementor-widget-text-editor" data-id="bba7a47" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<table style="font-weight: 400;" data-tablestyle="MsoTableGrid" data-tablelook="1696" aria-rowcount="5"><tbody><tr aria-rowindex="1"><td colspan="1" rowspan="2" data-celllook="0"><p><span data-ccp-props="{}"> </span></p></td><td colspan="3" data-celllook="0"><p><strong>Ładowanie modelu</strong></p></td><td colspan="3" data-celllook="0"><p><strong>Pojedyncze wnioskowanie</strong></p></td></tr><tr aria-rowindex="2"><td data-celllook="0"><p><b><span data-contrast="auto">CPU 1</span></b><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><b><span data-contrast="auto">CPU 2</span></b><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><b><span data-contrast="auto">CPU 3</span></b><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><b><span data-contrast="auto">CPU 1</span></b><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><b><span data-contrast="auto">CPU 2</span></b><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><b><span data-contrast="auto">CPU 3</span></b><span data-ccp-props="{}"> </span></p></td></tr><tr aria-rowindex="3"><td data-celllook="0"><p><b><span data-contrast="auto">YOLOv8 small</span></b><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">1050 ms</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">3700 ms</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">4200 ms</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">21 ms</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">117.5 ms</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">196.5 ms</span><span data-ccp-props="{}"> </span></p></td></tr><tr aria-rowindex="4"><td data-celllook="0"><p><b><span data-contrast="auto">YOLOv8 nano 16-bit</span></b><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">980 ms</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">3200 ms</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">3700 ms</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">16 ms</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">112.5 ms</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">189 ms</span><span data-ccp-props="{}"> </span></p></td></tr><tr aria-rowindex="5"><td data-celllook="0"><p>Przyspieszenie</p></td><td data-celllook="0"><p><span data-contrast="auto">6.7 %</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">13.5 %</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">11.9 %</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">23.8 %</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">4.2 %</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">3.8 %</span><span data-ccp-props="{}"> </span></p></td></tr></tbody></table>						</div>
				</div>
				<div class="elementor-element elementor-element-cc12989 elementor-widget elementor-widget-text-editor" data-id="cc12989" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Oprócz czasu wczytania modelu i inferencji, istotnym czynnikiem do rozważenia jest również czas pobrania modelu, który nie został uwzględniony w tabeli. Czas ten jest bezpośrednio proporcjonalny do rozmiaru modelu i w znacznym stopniu zależy od prędkości połączenia internetowego użytkownika.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-d6f4734 elementor-widget elementor-widget-heading" data-id="d6f4734" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Praktyczna implementacja krok po kroku</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-e00fb33 elementor-widget elementor-widget-text-editor" data-id="e00fb33" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Aby wdrożyć model uczenia maszynowego w przeglądarce, skorzystamy z TensorFlow.js — popularnej biblioteki, która umożliwia uruchamianie wytrenowanych modeli lub całkowite trenowanie nowych modeli bezpośrednio w przeglądarce. W tym przewodniku skupimy się na wdrożeniu wytrenowanego modelu YOLOv8 do wykrywania twarzy. Poniżej znajdziesz instrukcję, jak krok po kroku skonfigurować środowisko i uruchomić model z TensorFlow.js.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-d18e614 elementor-widget elementor-widget-heading" data-id="d18e614" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">1. Instalacja TensorFlow.js </h4>		</div>
				</div>
				<div class="elementor-element elementor-element-cb9241f elementor-widget elementor-widget-text-editor" data-id="cb9241f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Najłatwiejszą metodą instalacji Tensorflow.js jest użycie npm:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-c5deef0 elementor-widget elementor-widget-text-editor" data-id="c5deef0" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre>npm install @tensorflow/tfjs </pre>						</div>
				</div>
				<div class="elementor-element elementor-element-cd338d1 elementor-widget elementor-widget-heading" data-id="cd338d1" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">2. Wczytanie modelu</h4>		</div>
				</div>
				<div class="elementor-element elementor-element-d54d572 elementor-widget elementor-widget-text-editor" data-id="d54d572" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Ponieważ używamy biblioteki TensorFlow.js, musisz przekonwertować swój model na format TensorFlow.js (Tf.js). W przypadku modeli YOLO, twórcy Ultralytics udostępnili łatwy sposób na dokonanie tego za pomocą prostego polecenia:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-8acf4f8 elementor-widget elementor-widget-text-editor" data-id="8acf4f8" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun Highlight SCXW164933469 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW164933469 BCX0">yolo </span></span><span class="TextRun Highlight SCXW164933469 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW164933469 BCX0">export</span></span><span class="TextRun Highlight SCXW164933469 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW164933469 BCX0"> model=path/to/best.pt format=tfjs</span></span><span class="EOP SCXW164933469 BCX0" data-ccp-props="{&quot;134245417&quot;:false,&quot;201341983&quot;:0,&quot;335559740&quot;:360,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:0,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:0,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:0,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:0,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:0,&quot;469789798&quot;:&quot;nil&quot;,&quot;469789802&quot;:&quot;nil&quot;,&quot;469789806&quot;:&quot;nil&quot;,&quot;469789810&quot;:&quot;nil&quot;,&quot;469789814&quot;:&quot;nil&quot;}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-a9c3625 elementor-widget elementor-widget-text-editor" data-id="a9c3625" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Po konwersji Twój model zostanie zapisany jako pliki binarne wraz z plikiem JSON o nazwie <strong>model.json</strong>. Wówczas możesz wczytać model korzystając z funkcji <strong>tf.loadGraphModel()</strong>. Poniżej znajdziesz przykład implementacji. Zwróć uwagę na dodatkowy etap &#8222;rozgrzewki&#8221; modelu, poprzez wykonanie jednokrotnej inferencji na losowych danych wejściowych. Ten krok poprawi wydajność modelu przy kolejnej inferencji.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-8ae265d elementor-widget elementor-widget-text-editor" data-id="8ae265d" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">export</span></span> <span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">async</span></span> <span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">function</span></span> <span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">loadModel</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">(modelPath) {</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW28304209 BCX0"><span class="SCXW28304209 BCX0"> </span><br class="SCXW28304209 BCX0" /></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">  </span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">try</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0"> {</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW28304209 BCX0"><span class="SCXW28304209 BCX0"> </span><br class="SCXW28304209 BCX0" /></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">    </span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">// Load the model using a URL</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW28304209 BCX0"><span class="SCXW28304209 BCX0"> </span><br class="SCXW28304209 BCX0" /></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">    </span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">const</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0"> model = </span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">await</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0"> tf.loadGraphModel(</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">`${modelPath}/model.json`</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW28304209 BCX0"><span class="SCXW28304209 BCX0"> </span><br class="SCXW28304209 BCX0" /></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">    </span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">// Warm up the model</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW28304209 BCX0"><span class="SCXW28304209 BCX0"> </span><br class="SCXW28304209 BCX0" /></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">    </span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">const</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0"> dummyInput = tf.ones(model.inputs[</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">0</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">].shape);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW28304209 BCX0"><span class="SCXW28304209 BCX0"> </span><br class="SCXW28304209 BCX0" /></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">    </span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">await</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0"> model.execute(dummyInput);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW28304209 BCX0"><span class="SCXW28304209 BCX0"> </span><br class="SCXW28304209 BCX0" /></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">    </span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">return</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0"> model;</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW28304209 BCX0"><span class="SCXW28304209 BCX0"> </span><br class="SCXW28304209 BCX0" /></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">  } </span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">catch</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0"> (error) {</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW28304209 BCX0"><span class="SCXW28304209 BCX0"> </span><br class="SCXW28304209 BCX0" /></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">    </span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">throw</span></span> <span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">new</span></span> <span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">Error</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">(</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">`Failed to load model: ${error.message}`</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW28304209 BCX0"><span class="SCXW28304209 BCX0"> </span><br class="SCXW28304209 BCX0" /></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">  }</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW28304209 BCX0"><span class="SCXW28304209 BCX0"> </span><br class="SCXW28304209 BCX0" /></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">}</span></span><span class="EOP SCXW28304209 BCX0" data-ccp-props="{&quot;134245417&quot;:false,&quot;201341983&quot;:0,&quot;335559740&quot;:360,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:0,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:0,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:0,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:0,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:0,&quot;469789798&quot;:&quot;nil&quot;,&quot;469789802&quot;:&quot;nil&quot;,&quot;469789806&quot;:&quot;nil&quot;,&quot;469789810&quot;:&quot;nil&quot;,&quot;469789814&quot;:&quot;nil&quot;}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-4fb7ba0 elementor-widget elementor-widget-heading" data-id="4fb7ba0" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">3. Przygotowanie danych wejściowych</h4>		</div>
				</div>
				<div class="elementor-element elementor-element-bcd536f elementor-widget elementor-widget-text-editor" data-id="bcd536f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Przed uruchomieniem modelu musimy odpowiednio przygotować obraz wejściowy. Modele YOLO oczekują obrazów o określonym rozmiarze, takim samym jaki został użyty podczas treningu sieci. Zamiast jednak zmieniać rozmiar obrazu (np. funkcją resize()), zalecamy bardziej zaawansowaną metodę przetwarzania obrazu, która zachowuje proporcje i stosuje wypełnienie (letterbox padding). Takie podejście jest zgodne z przetwarzaniem stosowanym przez Ultralytics podczas trenowania modelu YOLO i zapewni najlepszą skuteczność.</p><p>Poniższa funkcja skaluje obraz tak, aby największy jego wymiar zgadzał się z tym oczekiwanym przez model, dodaje wypełnienie aby dopasować drugi wymiar obrazu (jeżeli trzeba) i normalizuje obraz wejściowy:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-dd83945 elementor-widget elementor-widget-text-editor" data-id="dd83945" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">function</span></span> <span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">preprocessImage</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">(base64Image, imgSize) {</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> image = </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">new</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> Image();</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  image.src = base64Image;</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> canvas = </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">document</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">.createElement(</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">'canvas'</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  canvas.width = image.width;</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  canvas.height = image.height;</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> ctx = canvas.getContext(</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">'2d'</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  ctx.drawImage(image, </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">0</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">, </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">0</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">, image.width, image.height);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">// Convert canvas image to a tensor</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">let</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> imgTensor = tf.browser.fromPixels(canvas);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">// Determine rescale factor</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> xFactor = image.width / imgSize;</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> yFactor = image.height / imgSize;</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> factor = </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">Math</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">.max(xFactor, yFactor);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> newWidth = </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">Math</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">.round(image.width / factor);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> newHeight = </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">Math</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">.round(image.height / factor);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">// Resize to expected input shape </span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  imgTensor = tf.image.resizeBilinear(imgTensor, [newHeight, newWidth]);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">// Add padding</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> xPad = (imgSize - newWidth) / </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">2</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">;</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> yPad = (imgSize - newHeight) / </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">2</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">;</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> top = </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">Math</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">.floor(yPad);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">co</span><span class="NormalTextRun SCXW147374849 BCX0">nst</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> bottom = </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">Math</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">.ceil(yPad);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> left = </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">Math</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">.floor(xPad);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> right = </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">Math</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">.ceil(xPad);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  imgTensor = tf.pad(imgTensor, [[top, bottom], [left, right], [</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">0</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">, </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">0</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">]], </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">114</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">// Normalize pixel values</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  imgTensor = imgTensor.div(</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">255.0</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">).expandDims(</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">0</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">); </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">// Add batch dimension</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">return</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> { imgTensor, left, top, factor };</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">}</span></span><span class="EOP SCXW147374849 BCX0" data-ccp-props="{&quot;134245417&quot;:false,&quot;201341983&quot;:0,&quot;335559740&quot;:360,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:0,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:0,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:0,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:0,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:0,&quot;469789798&quot;:&quot;nil&quot;,&quot;469789802&quot;:&quot;nil&quot;,&quot;469789806&quot;:&quot;nil&quot;,&quot;469789810&quot;:&quot;nil&quot;,&quot;469789814&quot;:&quot;nil&quot;}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-183b6cf elementor-widget elementor-widget-heading" data-id="183b6cf" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">4. Uruchom inferencję modelu</h4>		</div>
				</div>
				<div class="elementor-element elementor-element-639b754 elementor-widget elementor-widget-text-editor" data-id="639b754" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Po załadowaniu modelu i przetworzeniu danych wejściowych, wykonanie inferencji odbywa się za pomocą tej linii kodu:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-25f3c6b elementor-widget elementor-widget-text-editor" data-id="25f3c6b" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun Highlight SCXW75192197 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW75192197 BCX0">const</span></span><span class="TextRun Highlight SCXW75192197 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW75192197 BCX0"> prediction = </span></span><span class="TextRun Highlight SCXW75192197 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW75192197 BCX0">await</span></span><span class="TextRun Highlight SCXW75192197 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW75192197 BCX0"> model.execute(inputTensor);</span></span><span class="EOP SCXW75192197 BCX0" data-ccp-props="{&quot;134245417&quot;:false,&quot;201341983&quot;:0,&quot;335559740&quot;:360,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:0,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:0,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:0,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:0,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:0,&quot;469789798&quot;:&quot;nil&quot;,&quot;469789802&quot;:&quot;nil&quot;,&quot;469789806&quot;:&quot;nil&quot;,&quot;469789810&quot;:&quot;nil&quot;,&quot;469789814&quot;:&quot;nil&quot;}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-0830169 elementor-widget elementor-widget-heading" data-id="0830169" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">5. Przetwarzanie wyników modelu</h4>		</div>
				</div>
				<div class="elementor-element elementor-element-aeca953 elementor-widget elementor-widget-text-editor" data-id="aeca953" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Wynik sieci YOLO to tensor, który należy odpowiednio zinterpretować. Poniżej znajdują się kroki w naszej funkcji <span style="color: #008000;">postprocessInferenceResults()</span>, które pozwalają na wyodrębnienie współrzędnych wszystkich wykrytych obiektów:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-04c9010 elementor-widget elementor-widget-text-editor" data-id="04c9010" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre data-ccp-border-bottom="0px none #000000" data-ccp-padding-bottom="0px" data-ccp-border-between="0px none #000000" data-ccp-padding-between="0px"><span data-contrast="none">const</span><span data-contrast="none"> results = prediction.transpose([</span><span data-contrast="none">0</span><span data-contrast="none">, </span><span data-contrast="none">2</span><span data-contrast="none">, </span><span data-contrast="none">1</span><span data-contrast="none">]); </span> <br /><span data-contrast="none">const</span><span data-contrast="none"> numClass = </span><span data-contrast="none">1</span><span data-contrast="none">; </span><span data-contrast="none">// Only one class in our case</span> <br /><span data-contrast="none">const</span><span data-contrast="none"> boxes = tf.tidy(() =&gt; {</span> <br /><span data-contrast="none">const</span><span data-contrast="none"> w = results.slice([</span><span data-contrast="none">0</span><span data-contrast="none">, </span><span data-contrast="none">0</span><span data-contrast="none">, </span><span data-contrast="none">2</span><span data-contrast="none">], [</span><span data-contrast="none">-1</span><span data-contrast="none">, </span><span data-contrast="none">-1</span><span data-contrast="none">, </span><span data-contrast="none">1</span><span data-contrast="none">]); </span><span data-contrast="none">// Get width</span> <br /><span data-contrast="none">const</span><span data-contrast="none"> h = results.slice([</span><span data-contrast="none">0</span><span data-contrast="none">, </span><span data-contrast="none">0</span><span data-contrast="none">, </span><span data-contrast="none">3</span><span data-contrast="none">], [</span><span data-contrast="none">-1</span><span data-contrast="none">, </span><span data-contrast="none">-1</span><span data-contrast="none">, </span><span data-contrast="none">1</span><span data-contrast="none">]); </span><span data-contrast="none">// Get height</span> <br /><span data-contrast="none">const</span><span data-contrast="none"> x1 = tf.sub(results.slice([</span><span data-contrast="none">0</span><span data-contrast="none">, </span><span data-contrast="none">0</span><span data-contrast="none">, </span><span data-contrast="none">0</span><span data-contrast="none">], [</span><span data-contrast="none">-1</span><span data-contrast="none">, </span><span data-contrast="none">-1</span><span data-contrast="none">, </span><span data-contrast="none">1</span><span data-contrast="none">]), tf.div(w, </span><span data-contrast="none">2</span><span data-contrast="none">)); </span><span data-contrast="none">// Get x1</span><span data-ccp-props="{&quot;134245417&quot;:false,&quot;201341983&quot;:0,&quot;335559740&quot;:360,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:0,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:0,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:0,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:0,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:0,&quot;469789798&quot;:&quot;nil&quot;,&quot;469789802&quot;:&quot;nil&quot;,&quot;469789806&quot;:&quot;nil&quot;,&quot;469789810&quot;:&quot;nil&quot;,&quot;469789814&quot;:&quot;nil&quot;}"> </span><br /><br /><span data-contrast="none">const</span><span data-contrast="none"> y1 = tf.sub(results.slice([</span><span data-contrast="none">0</span><span data-contrast="none">, </span><span data-contrast="none">0</span><span data-contrast="none">, </span><span data-contrast="none">1</span><span data-contrast="none">], [</span><span data-contrast="none">-1</span><span data-contrast="none">, </span><span data-contrast="none">-1</span><span data-contrast="none">, </span><span data-contrast="none">1</span><span data-contrast="none">]), tf.div(h, </span><span data-contrast="none">2</span><span data-contrast="none">)); </span><span data-contrast="none">// Get y1</span> <br /><span data-contrast="none">return</span><span data-contrast="none"> tf.concat([y1, x1, y1.add(h), x1.add(w)], </span><span data-contrast="none">2</span><span data-contrast="none">).squeeze();</span> <br /><span data-contrast="none">});</span><span data-ccp-props="{&quot;134245417&quot;:false,&quot;201341983&quot;:0,&quot;335559740&quot;:360,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:0,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:0,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:0,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:0,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:0,&quot;469789798&quot;:&quot;nil&quot;,&quot;469789802&quot;:&quot;nil&quot;,&quot;469789806&quot;:&quot;nil&quot;,&quot;469789810&quot;:&quot;nil&quot;,&quot;469789814&quot;:&quot;nil&quot;}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-70bdd06 elementor-widget elementor-widget-text-editor" data-id="70bdd06" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Aby wyodrębnić klasy i poziomy ufności dla każdego obiektu:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-4e859a7 elementor-widget elementor-widget-text-editor" data-id="4e859a7" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">const</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0"> numClass = labels.length;</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW92870568 BCX0"><span class="SCXW92870568 BCX0"> </span><br class="SCXW92870568 BCX0" /></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">const</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0"> [scores, classes] = tf.tidy(() =&gt; {</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW92870568 BCX0"><span class="SCXW92870568 BCX0"> </span><br class="SCXW92870568 BCX0" /></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">const</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0"> rawData = results.slice([</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">0</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">, </span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">0</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">, </span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">4</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">], [</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">-1</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">, </span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">-1</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">, numClass]).squeeze(</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">0</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW92870568 BCX0"><span class="SCXW92870568 BCX0"> </span><br class="SCXW92870568 BCX0" /></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">  </span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">return</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0"> [rawData.max(</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">1</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">), rawData.argMax(</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">1</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">)];</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW92870568 BCX0"><span class="SCXW92870568 BCX0"> </span><br class="SCXW92870568 BCX0" /></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">});</span></span><span class="EOP SCXW92870568 BCX0" data-ccp-props="{&quot;134245417&quot;:false,&quot;201341983&quot;:0,&quot;335559740&quot;:360,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:0,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:0,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:0,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:0,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:0,&quot;469789798&quot;:&quot;nil&quot;,&quot;469789802&quot;:&quot;nil&quot;,&quot;469789806&quot;:&quot;nil&quot;,&quot;469789810&quot;:&quot;nil&quot;,&quot;469789814&quot;:&quot;nil&quot;}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-c29f2bf elementor-widget elementor-widget-text-editor" data-id="c29f2bf" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Następnie należy pozbyć się wyników z poziomem ufności poniżej ustalonego progu (u nas był to 0.4):</p>						</div>
				</div>
				<div class="elementor-element elementor-element-2bbe314 elementor-widget elementor-widget-text-editor" data-id="2bbe314" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">const</span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0"> array = </span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">await</span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0"> scores.array();</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW227521811 BCX0"><span class="SCXW227521811 BCX0"> </span><br class="SCXW227521811 BCX0" /></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">const</span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0"> highConfidenceIndices = array.reduce((acc, value, index) =&gt; {</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW227521811 BCX0"><span class="SCXW227521811 BCX0"> </span><br class="SCXW227521811 BCX0" /></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">  </span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">if</span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0"> (value &gt; </span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">0.4</span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">) acc.push(index);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW227521811 BCX0"><span class="SCXW227521811 BCX0"> </span><br class="SCXW227521811 BCX0" /></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">  </span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">return</span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0"> acc;</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW227521811 BCX0"><span class="SCXW227521811 BCX0"> </span><br class="SCXW227521811 BCX0" /></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">}, []);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW227521811 BCX0"><span class="SCXW227521811 BCX0"> </span><br class="SCXW227521811 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW227521811 BCX0"><span class="SCXW227521811 BCX0"> </span><br class="SCXW227521811 BCX0" /></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">const</span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0"> highConfidenceBoxes = boxes.gather(highConfidenceIndices);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW227521811 BCX0"><span class="SCXW227521811 BCX0"> </span><br class="SCXW227521811 BCX0" /></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">const</span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0"> highConfidenceScores = scores.gather(highConfidenceIndices);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW227521811 BCX0"><span class="SCXW227521811 BCX0"> </span><br class="SCXW227521811 BCX0" /></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">const</span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0"> highConfidenceClasses = classes.gather(highConfidenceIndices);</span></span><span class="EOP SCXW227521811 BCX0" data-ccp-props="{&quot;134245417&quot;:false,&quot;201341983&quot;:0,&quot;335559740&quot;:360,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:0,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:0,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:0,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:0,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:0,&quot;469789798&quot;:&quot;nil&quot;,&quot;469789802&quot;:&quot;nil&quot;,&quot;469789806&quot;:&quot;nil&quot;,&quot;469789810&quot;:&quot;nil&quot;,&quot;469789814&quot;:&quot;nil&quot;}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-6d455b0 elementor-widget elementor-widget-text-editor" data-id="6d455b0" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Na koniec zastosuj Non-Max Suppression (NMS), aby odfiltrować duplikaty, tzn. wykryte obiekty, które się na siebie nakładają:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-a51ed9c elementor-widget elementor-widget-text-editor" data-id="a51ed9c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">const</span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0"> nms = </span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">await</span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0"> tf.image.nonMaxSuppressionAsync(highConfidenceBoxes, highConfidenceScores, </span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">40</span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">, </span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">0.45</span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">, </span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">0.4</span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">); </span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">// NMS to filter boxes</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW150352841 BCX0"><span class="SCXW150352841 BCX0"> </span><br class="SCXW150352841 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW150352841 BCX0"><span class="SCXW150352841 BCX0"> </span><br class="SCXW150352841 BCX0" /></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">const</span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0"> boxesData = highConfidenceBoxes.gather(nms, </span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">0</span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">); </span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">// Indexing boxes by NMS index</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW150352841 BCX0"><span class="SCXW150352841 BCX0"> </span><br class="SCXW150352841 BCX0" /></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">const</span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0"> scoresData = highConfidenceScores.gather(nms, </span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">0</span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">).dataSync(); </span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">// Indexing scores by</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW150352841 BCX0"><span class="SCXW150352841 BCX0"> </span><br class="SCXW150352841 BCX0" /></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">const</span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0"> classesData = highConfidenceClasses.gather(nms, </span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">0</span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">).dataSync(); </span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">// Indexing classes by NMS index</span></span><span class="EOP SCXW150352841 BCX0" data-ccp-props="{&quot;134245417&quot;:false,&quot;201341983&quot;:0,&quot;335559740&quot;:360,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:0,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:0,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:0,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:0,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:0,&quot;469789798&quot;:&quot;nil&quot;,&quot;469789802&quot;:&quot;nil&quot;,&quot;469789806&quot;:&quot;nil&quot;,&quot;469789810&quot;:&quot;nil&quot;,&quot;469789814&quot;:&quot;nil&quot;}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-a61bead elementor-widget elementor-widget-text-editor" data-id="a61bead" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Ostatnim krokiem jest przeskalowanie współrzędnych, aby dopasować je do kształtu oryginalnego obrazu:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-84b07f0 elementor-widget elementor-widget-text-editor" data-id="84b07f0" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">// Precompute the margins and factors outside the stack</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">const</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0"> yMarginTensor = tf.scalar(yMargin);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">const</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0"> xMarginTensor = tf.scalar(xMargin);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">const</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0"> resizeFactorTensor = tf.scalar(resizeFactor);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">// Slice the boxesData and apply transformations in one step</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">const</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0"> [yCoordinates, xCoordinates, height, width] = </span></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">  [</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">'0'</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">, </span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">'1'</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">, </span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">'2'</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">, </span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">'3'</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">].map((index) =&gt; </span></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">    boxesData.slice([</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">0</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">, </span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">parseInt</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">(index)], [</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">-1</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">, </span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">1</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">]).sub(index % </span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">2</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0"> === </span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">0</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0"> ? yMarginTensor : xMarginTensor).mul(resizeFactorTensor)</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">// Stack the tensors without converting to arrays (unless needed)</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">const</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0"> bbox = tf.stack([yCoordinates, xCoordinates, height, width], </span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">1</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">// Convert to an array only if absolutely necessary</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">const</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0"> bboxArray = bbox.arraySync();</span></span><span class="EOP SCXW260954935 BCX0" data-ccp-props="{&quot;134245417&quot;:false,&quot;201341983&quot;:0,&quot;335559740&quot;:360,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:0,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:0,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:0,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:0,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:0,&quot;469789798&quot;:&quot;nil&quot;,&quot;469789802&quot;:&quot;nil&quot;,&quot;469789806&quot;:&quot;nil&quot;,&quot;469789810&quot;:&quot;nil&quot;,&quot;469789814&quot;:&quot;nil&quot;}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-b542632 elementor-widget elementor-widget-text-editor" data-id="b542632" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Na końcu możemy zdefiniować funkcję <strong>runInference()</strong>, która zawiera cały opisany powyżej proces wykrywania obiektów. Ta funkcja zawiera przygotowanie obrazu, uruchomienie inferencji modelu oraz przetworzenie wyników. Oto jak wygląda:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-d6642ff elementor-widget elementor-widget-text-editor" data-id="d6642ff" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">export</span></span> <span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">async</span></span> <span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">function</span></span> <span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">runInference</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">(model, labels, image, confidenceThreshold = </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">0.4</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">) {</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">  </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">try</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0"> {</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">    </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">// Preprocess the image</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">    </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">const</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0"> imgSize = model.inputs[</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">0</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">].shape[</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">1</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">];</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">    </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">const</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0"> { imgTensor: inputTensor, left: xMargin, top: yMargin, factor: resizeFactor } = preprocessImage(image, imgSize);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">    </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">// Run inference</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">    </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">const</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0"> prediction = </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">await</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0"> model.execute(inputTensor);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">    </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">// Post-process the model output</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">    </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">const</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0"> [boxes, scores, classes] = </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">await</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0"> postprocessInferenceResults(prediction, labels, xMargin, yMargin, resizeFactor, confidenceThreshold);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">    </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">return</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0"> [boxes, scores, classes];</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">  } </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">catch</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0"> (error) {</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">    </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">throw</span></span> <span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">new</span></span> <span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">Error</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">(</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">`Inference failed: ${error.message}`</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">  }</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">}</span></span><span class="EOP SCXW217269171 BCX0" data-ccp-props="{&quot;134245417&quot;:false,&quot;201341983&quot;:0,&quot;335559740&quot;:360,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:0,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:0,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:0,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:0,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:0,&quot;469789798&quot;:&quot;nil&quot;,&quot;469789802&quot;:&quot;nil&quot;,&quot;469789806&quot;:&quot;nil&quot;,&quot;469789810&quot;:&quot;nil&quot;,&quot;469789814&quot;:&quot;nil&quot;}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-d087385 elementor-widget elementor-widget-heading" data-id="d087385" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">6. Wizualizacja wyników </h4>		</div>
				</div>
				<div class="elementor-element elementor-element-84689b0 elementor-widget elementor-widget-text-editor" data-id="84689b0" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Na samym końcu, gdy mamy już gotowe wyniki detekcji, możemy narysować wykryte obiekty na obrazie:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-d769790 elementor-widget elementor-widget-text-editor" data-id="d769790" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">function</span></span> <span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">drawBoxesOnCanvas</span></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">(ctx, boxes, classes, scores, colors) {</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW6384134 BCX0"><span class="SCXW6384134 BCX0"> </span><br class="SCXW6384134 BCX0" /></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">  boxes.forEach((box, i) =&gt; {</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW6384134 BCX0"><span class="SCXW6384134 BCX0"> </span><br class="SCXW6384134 BCX0" /></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">    </span></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">const</span></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0"> [x1, y1, x2, y2] = box;</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW6384134 BCX0"><span class="SCXW6384134 BCX0"> </span><br class="SCXW6384134 BCX0" /></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">    ctx.strokeStyle = colors[classes[i]];</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW6384134 BCX0"><span class="SCXW6384134 BCX0"> </span><br class="SCXW6384134 BCX0" /></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">    ctx.lineWidth = </span></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">2</span></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">;</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW6384134 BCX0"><span class="SCXW6384134 BCX0"> </span><br class="SCXW6384134 BCX0" /></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">    ctx.strokeRect(x1, y1, x2 - x1, y2 - y1);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW6384134 BCX0"><span class="SCXW6384134 BCX0"> </span><br class="SCXW6384134 BCX0" /></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">    ctx.fillStyle = colors[classes[i]];</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW6384134 BCX0"><span class="SCXW6384134 BCX0"> </span><br class="SCXW6384134 BCX0" /></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">    ctx.fillText(</span></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">`${labels[classes[i]]} (${</span></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">Math</span></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">.round(scores[i] * </span></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">100</span></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">)}%)`</span></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">, x1, y1);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW6384134 BCX0"><span class="SCXW6384134 BCX0"> </span><br class="SCXW6384134 BCX0" /></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">  });</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW6384134 BCX0"><span class="SCXW6384134 BCX0"> </span><br class="SCXW6384134 BCX0" /></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">}</span></span><span class="EOP SCXW6384134 BCX0" data-ccp-props="{&quot;134245417&quot;:false,&quot;201341983&quot;:0,&quot;335559740&quot;:360,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:0,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:0,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:0,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:0,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:0,&quot;469789798&quot;:&quot;nil&quot;,&quot;469789802&quot;:&quot;nil&quot;,&quot;469789806&quot;:&quot;nil&quot;,&quot;469789810&quot;:&quot;nil&quot;,&quot;469789814&quot;:&quot;nil&quot;}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-0a7536b elementor-widget elementor-widget-text-editor" data-id="0a7536b" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Podsumowując, uruchamianie modelu YOLO do wykrywania obiektów bezpośrednio w przeglądarce przy użyciu TensorFlow.js otwiera nowe możliwości dla aplikacji real-time. W tym wpisie przedstawiliśmy wszystkie kroki, od konfiguracji TensorFlow.js, przez ładowanie modeli, przetwarzanie obrazów, uruchamianie wnioskowania, aż po wizualizację wyników, wraz ze wskazówkami jak zrobić to efektywnie. W miarę dalszego zgłębiania tej ciekawej technologii, warto eksperymentować z różnymi modelami, technikami optymalizacji oraz przypadkami użycia, aby w pełni wykorzystać potencjał uczenia maszynowego w aplikacjach internetowych.</p>						</div>
				</div>
		<div class="elementor-element elementor-element-b23a8f8 e-grid e-con-full e-con e-child" data-id="b23a8f8" data-element_type="container">
				<div class="elementor-element elementor-element-2e189c2 elementor-widget elementor-widget-heading" data-id="2e189c2" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">Zapraszam do kontaktu, jeśli masz pytania lub chciałbyś podzielić się swoimi implementacjami!</h4>		</div>
				</div>
				<div class="elementor-element elementor-element-a749555 elementor-button-success elementor-align-center elementor-widget elementor-widget-button" data-id="a749555" data-element_type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
							<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://inero-software.com/pl/kontakt/">
						<span class="elementor-button-content-wrapper">
						<span class="elementor-button-icon">
				<svg aria-hidden="true" class="e-font-icon-svg e-fas-envelope" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"></path></svg>			</span>
									<span class="elementor-button-text">KONTAKT</span>
					</span>
					</a>
				</div>
						</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-38cdd54 e-con-full e-flex e-con e-child" data-id="38cdd54" data-element_type="container">
				</div>
					</div>
				</div>
				</div>
		<p>Artykuł <a href="https://inero-software.com/pl/sieci-neuronowe-w-przegladarce-przewodnik-na-przykladzie-customowej-sieci-yolo-do-wykrywania-twarzy/">Sieci neuronowe w przeglądarce: Przewodnik na przykładzie customowej sieci YOLO do wykrywania twarzy</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6230</post-id>	</item>
		<item>
		<title>Konsekwencje finansowe dla zarządów w obliczu rosnących zagrożeń cyberbezpieczeństwa</title>
		<link>https://inero-software.com/pl/zarzad-poniesie-konsekwencje-cyberataku/</link>
		
		<dc:creator><![CDATA[Marta Kuprasz]]></dc:creator>
		<pubDate>Fri, 21 Jun 2024 07:57:24 +0000</pubDate>
				<category><![CDATA[Blog_pl]]></category>
		<category><![CDATA[Firma]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[bezpieczeństwo]]></category>
		<category><![CDATA[cyberbezpieczeństwo]]></category>
		<category><![CDATA[digitalizacja]]></category>
		<category><![CDATA[Dyrektywa NIS2]]></category>
		<category><![CDATA[optymalizacja procesów biznesowych]]></category>
		<category><![CDATA[UE]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=5925</guid>

					<description><![CDATA[<p>Artykuł <a href="https://inero-software.com/pl/zarzad-poniesie-konsekwencje-cyberataku/">Konsekwencje finansowe dla zarządów w obliczu rosnących zagrożeń cyberbezpieczeństwa</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="row"><div class="col-sm-1"></div><div class="col-sm-10">
<p>&nbsp;</p>
<h4>Kto powinien ponieść konsekwencje wycieku danych, spowodowanych cyberatakiem? Te pytanie, każde przedsiębiorstwo rozpatrywało dotąd indywidualnie, jednak nowe dyrektywy międzynarodowe, dokładnie określiły kto musi zadbać o wprowadzenie praktyk bezpieczeństwa, a następnie dbać o ich egzekwowanie. Nowy trend związany z dodatkową odpowiedzialnością finansową zarządu, zapoczątkowany w Stanach Zjednoczonych, ma szansę rozprzestrzenić się na kolejne kraje.</h4>
<p>Średnio 1000 zgłoszeń, dotyczących zagrożeń cyberbezpieczeństwa otrzymuje codziennie Zespół Reagowania na Incydenty Bezpieczeństwa Komputerowego CSIRT GOV prowadzony przez Szefa Agencji Bezpieczeństwa Wewnętrznego. Pokazuje to skalę działalności cyberprzestępców.</p>
<p>Celami ataków są głównie pracownicy, w tym managerowie wysokiego szczebla, którzy mają dostęp do poufnych informacji na temat przedsiębiorstwa. Według raportu „2024 Data Breach Investigations Report”, około 68% naruszeń bezpieczeństwa zawierało element ludzki, taki jak błąd użytkownika lub skuteczne ataki socjotechniczne, co pokazuje, że czynnik ludzki nadal jest kluczowym słabym ogniwem w zabezpieczeniach organizacji​.</p>
<p><a href="https://inero-software.com/pl/doradztwo-it/"><img loading="lazy" decoding="async" data-attachment-id="5827" data-permalink="https://inero-software.com/pl/przewodnik-krok-po-kroku-uwierzytelnianie-wieloskladnikowe-mfa-w-keycloak/1-5/" data-orig-file="https://inero-software.com/wp-content/uploads/2024/06/1-2.png" data-orig-size="1200,100" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="1" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2024/06/1-2-300x25.png" data-large-file="https://inero-software.com/wp-content/uploads/2024/06/1-2-1030x86.png" tabindex="0" role="button" class="alignnone wp-image-5827 size-full" src="https://inero-software.com/wp-content/uploads/2024/06/1-2.png" alt="" width="1200" height="100" srcset="https://inero-software.com/wp-content/uploads/2024/06/1-2.png 1200w, https://inero-software.com/wp-content/uploads/2024/06/1-2-300x25.png 300w, https://inero-software.com/wp-content/uploads/2024/06/1-2-1030x86.png 1030w, https://inero-software.com/wp-content/uploads/2024/06/1-2-768x64.png 768w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></p>
<p>Do tej pory trudno było ocenić, kto powinien ponieść konsekwencje cyberataku. Innowacyjny pomysł zgłosił Brad Smith, wiceprezes Microsoftu, podczas przesłuchania komisji w Izbie Reprezentantów w sprawie kwestii bezpieczeństwa firmy. Koncern stanie się jednym z pierwszych przedsiębiorstw, gdzie cyberbezpieczeństwo będzie bezpośrednio wpływało na premie dla kadry kierowniczej.</p>
<blockquote><p><em>Rozszerzenie zasobów połączyliśmy z ważnymi zmianami w zarządzaniu bezpieczeństwem w firmie. Oprócz kluczowej, długoletniej roli Chief Information Security Officer (CISO), stworzyliśmy Office of the CISO z senior-level Deputy CISOs, aby rozszerzyć nadzór nad różnymi zespołami inżynieryjnymi, oceniać i zapewniać, że bezpieczeństwo jest „wbudowane” w procesy podejmowania decyzji inżynieryjnych.</em></p>
<p><em>Ostatecznie zmiana kultury wymaga odpowiedzialności. Jest to coś, co rozumieją wszyscy nasi senior liderzy, zaczynając od Satyi jako CEO firmy. Zamiast delegować ogólną odpowiedzialność za bezpieczeństwo na kogoś innego, przejął on tę odpowiedzialność osobiście, pełniąc rolę głównego dyrektora z pełną odpowiedzialnością za bezpieczeństwo Microsoftu.</em></p>
<p><em>Dlatego też ogłosiliśmy 3 maja, że część wynagrodzenia zespołu Senior Leadership Team będzie uzależniona od postępów w realizacji naszych planów i celów bezpieczeństwa. Od tego czasu pracowaliśmy nad dopracowaniem tych kroków dotyczących wynagrodzenia i innych środków odpowiedzialności na następny rok fiskalny, który zaczyna się 1 lipca</em><a href="#_ftn1" name="_ftnref1">[1]</a>. – mówił Brad Smith przez Komisją Izby Reprezentantów ds. Bezpieczeństwa Wewnętrznego Stanów Zjednoczonych</p></blockquote>
<p>Działania zapoczątkowane przez Microsoft, mają zdaniem analityków szansę stać się trendem globalnym. Jak sytuacja wygląda w Unii Europejskiej, która zwykle wprowadza zmiany wolniej niż Stany Zjednoczone?</p>
<p>Unijne przepisy dotyczące cyberbezpieczeństwa wprowadzone w 2016 r. zostały zaktualizowane <a href="https://eur-lex.europa.eu/eli/dir/2022/2555/oj">dyrektywą NIS2,</a> która weszła w życie w 2023 r. Zmodernizowano w niej istniejące ramy prawne, aby nadążyć za rosnącą cyfryzacją i zmieniającym się krajobrazem zagrożeń dla cyberbezpieczeństwa. Państwa UE mają obowiązek wdrożyć do 17 października tego roku, nowe wytyczne do krajowego porządku prawnego np. przy pomocy ustawy.</p>
<p><a href="https://inero-software.com/pl/mozliwosci-ktore-niesie-rozwoj-i-popularyzacja-sztucznej-inteligencji-w-zarzadzaniu-przedsiebiorstwami/"><img loading="lazy" decoding="async" data-attachment-id="5928" data-permalink="https://inero-software.com/pl/zarzad-poniesie-konsekwencje-cyberataku/banery-inero/" data-orig-file="https://inero-software.com/wp-content/uploads/2024/06/banery-inero.png" data-orig-size="1200,100" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="banery inero" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2024/06/banery-inero-300x25.png" data-large-file="https://inero-software.com/wp-content/uploads/2024/06/banery-inero-1030x86.png" tabindex="0" role="button" class="alignnone wp-image-5928 size-full" src="https://inero-software.com/wp-content/uploads/2024/06/banery-inero.png" alt="" width="1200" height="100" srcset="https://inero-software.com/wp-content/uploads/2024/06/banery-inero.png 1200w, https://inero-software.com/wp-content/uploads/2024/06/banery-inero-300x25.png 300w, https://inero-software.com/wp-content/uploads/2024/06/banery-inero-1030x86.png 1030w, https://inero-software.com/wp-content/uploads/2024/06/banery-inero-768x64.png 768w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></p>
<p>Według szacunków PwC, nowa dyrektywa obejmie ponad 6000 podmiotów działających w 18 sektorach gospodarki, w Polsce.<a href="#_ftn2" name="_ftnref2">[2]</a></p>
<p>W rozdziale IV <a href="https://eur-lex.europa.eu/eli/dir/2022/2555/oj">dyrektywy</a>, artykuł 20, możemy przeczytać:</p>
<blockquote><p><em>1.   Państwa członkowskie zapewniają, aby organy zarządzające podmiotów kluczowych i ważnych zatwierdzały środki zarządzania ryzykiem w cyberbezpieczeństwie przyjęte przez te podmioty w celu zapewnienia zgodności z art. 21, nadzorowały ich wdrażanie i mogły być pociągnięte do odpowiedzialności za naruszanie przez te podmioty tego artykułu.</em></p>
<p><em>Stosowanie niniejszego ustępu nie narusza przepisów krajowych dotyczących zasad odpowiedzialności instytucji publicznych oraz odpowiedzialności urzędników publicznych oraz urzędników wybranych lub mianowanych.</em></p>
<p><em>2. Państwa członkowskie zapewniają, aby członkowie organu zarządzającego podmiotów kluczowych i ważnych mieli obowiązek odbywać regularne szkolenia w celu zdobycia wystarczającej wiedzy i umiejętności pozwalających im rozpoznać ryzyko i ocenić praktyki zarządzania ryzykiem w cyberbezpieczeństwie oraz ich wpływ na usługi świadczone przez dany podmiot, a także zachęcają podmioty kluczowe i ważne do oferowania podobnych szkoleń ich pracownikom.<a href="#_ftn3" name="_ftnref3"><strong>[3]</strong></a></em></p></blockquote>
<p>Jak widać Komisja Europejska wprowadziła zapis, w którym to kierownictwo wyższego szczebla, w tym członkowie zarządu, ponoszą odpowiedzialność za zapewnienie zgodności organizacji z wymaganiami dotyczącymi zarządzania ryzykiem cybernetycznym oraz zgłaszania incydentów. Dyrektywa nakłada obowiązek, aby osoby na stanowiskach kierowniczych zapewniały odpowiednie środki zabezpieczające i były odpowiedzialne za ich skuteczność.</p>
<p>Dyrektywa NIS2 objęła szeroki zakres podmiotów, zarówno publicznych, jak i prywatnych, które świadczą usługi krytyczne dla funkcjonowania społeczeństwa i gospodarki.</p>
<p><strong>Podmioty objęte dyrektywą:</strong></p>
<p>Podmioty podstawowe (essential entities):</p>
<ul>
<li>Sektory energetyczne (elektryczność, gaz, olej)</li>
<li>Sektory transportowe (lotnictwo, kolej, wodny, drogowy)</li>
<li>Sektory bankowe i infrastruktury rynków finansowych</li>
<li>Sektory zdrowotne (szpitale, dostawcy opieki zdrowotnej)</li>
<li>Woda pitna i gospodarka ściekowa</li>
<li>Infrastruktura cyfrowa (dostawcy usług DNS, rejestry domen, dostawcy chmur obliczeniowych)</li>
<li>Administracja publiczna (podmioty centralne i regionalne)</li>
</ul>
<p>Podmioty ważne (important entities):</p>
<ul>
<li>Poczta i usługi kurierskie</li>
<li>Gospodarka odpadami</li>
<li>Produkcja, produkcja i dystrybucja chemikaliów</li>
<li>Produkcja żywności (podmioty zajmujące się produkcją i przetwórstwem przemysłowym)</li>
<li>Podmioty produkcyjne (produkcja urządzeń medycznych, komputerowych, elektronicznych, pojazdów)</li>
<li>Dostawcy usług cyfrowych (platformy mediów społecznościowych, dostawcy usług wyszukiwarek internetowych)</li>
<li>Organizacje badawcze</li>
</ul>
<p>Podmioty kluczowe i ważne muszą wdrożyć odpowiednie polityki bezpieczeństwa, aby zapewnić systematyczną i dogłębną analizę ryzyka. Polityki te powinny obejmować podejście uwzględniające wszelkie możliwe zagrożenia, w tym te związane z bezpieczeństwem fizycznym (all-hazard approach). Odpowiedzialność za wdrożenie tych polityk spoczywa bezpośrednio na zarządach.</p>
<p>&nbsp;</p>
<h4>Chcesz porozmawiać o cyberbezpieczeństwie Twojej firmy? Napisz do nas</h4>
<p>[contact-form-7]</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="#_ftnref1" name="_ftn1">[1]</a> https://blogs.microsoft.com/on-the-issues/2024/06/13/microsofts-work-to-strengthen-cybersecurity-protection/</p>
<p><a href="#_ftnref2" name="_ftn2">[2]</a> https://www.pwc.pl/pl/uslugi/nis2-nowe-wymogi-dotyczace-cyberbezpieczenstwa.html</p>
<p><a href="#_ftnref3" name="_ftn3">[3]</a> https://eur-lex.europa.eu/eli/dir/2022/2555/oj</p>
<p>&nbsp;</p>
<p></p></div><div class="col-sm-1"></div></div>
<p>Artykuł <a href="https://inero-software.com/pl/zarzad-poniesie-konsekwencje-cyberataku/">Konsekwencje finansowe dla zarządów w obliczu rosnących zagrożeń cyberbezpieczeństwa</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5925</post-id>	</item>
		<item>
		<title>Najlepsze praktyki w Keycloak. Zadbaj o bezpieczeństwo w 5 krokach</title>
		<link>https://inero-software.com/pl/najlepsze-praktyki-w-keycloak-zadbaj-o-bezpieczenstwo-w-5-krokach/</link>
		
		<dc:creator><![CDATA[Marta Kuprasz]]></dc:creator>
		<pubDate>Mon, 13 May 2024 12:35:16 +0000</pubDate>
				<category><![CDATA[Firma]]></category>
		<category><![CDATA[Keycloak]]></category>
		<category><![CDATA[Technologie]]></category>
		<category><![CDATA[biznes]]></category>
		<category><![CDATA[cyberbezpieczeństwo]]></category>
		<category><![CDATA[emial]]></category>
		<category><![CDATA[HTTPS]]></category>
		<category><![CDATA[IAM]]></category>
		<category><![CDATA[keycloak]]></category>
		<category><![CDATA[MFA]]></category>
		<category><![CDATA[optymalizacja procesów biznesowych]]></category>
		<category><![CDATA[sms]]></category>
		<category><![CDATA[SSL/TLS]]></category>
		<category><![CDATA[SSO]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=5695</guid>

					<description><![CDATA[<p>Keycloak to narzędzie do zarządzania tożsamością i dostępem, które zapewnia bezpieczeństwo aplikacji i usług webowych. Aby maksymalnie zabezpieczyć swoje środowisko przy jego użyciu, warto wdrożyć najlepsze praktyki. Oto 5 kluczowych kroków, które Ci w tym pomogą.</p>
<p>Artykuł <a href="https://inero-software.com/pl/najlepsze-praktyki-w-keycloak-zadbaj-o-bezpieczenstwo-w-5-krokach/">Najlepsze praktyki w Keycloak. Zadbaj o bezpieczeństwo w 5 krokach</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="5695" class="elementor elementor-5695" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-59f4920c e-flex e-con-boxed e-con e-parent" data-id="59f4920c" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-112b6ca elementor-widget elementor-widget-html" data-id="112b6ca" data-element_type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					</div>
				</div>
				<div class="elementor-element elementor-element-51a502b elementor-widget elementor-widget-text-editor" data-id="51a502b" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<h4>Keycloak to narzędzie do zarządzania tożsamością i dostępem, które zapewnia bezpieczeństwo aplikacji i usług webowych. Aby maksymalnie zabezpieczyć swoje środowisko przy jego użyciu, warto wdrożyć najlepsze praktyki. Oto 5 kluczowych kroków, które Ci w tym pomogą.</h4>						</div>
				</div>
				<div class="elementor-element elementor-element-74761ea elementor-widget elementor-widget-heading" data-id="74761ea" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Włącz HTTPS i używaj silnych certyfikatów</h3>		</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-b8c0093 e-flex e-con-boxed e-con e-parent" data-id="b8c0093" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-65e5e55 e-con-full e-flex e-con e-child" data-id="65e5e55" data-element_type="container">
				<div class="elementor-element elementor-element-46ee0e2 elementor-widget elementor-widget-image" data-id="46ee0e2" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="300" height="300" src="https://inero-software.com/wp-content/uploads/2024/05/A-1.png" class="attachment-large size-large wp-image-5733" alt="" srcset="https://inero-software.com/wp-content/uploads/2024/05/A-1.png 300w, https://inero-software.com/wp-content/uploads/2024/05/A-1-80x80.png 80w, https://inero-software.com/wp-content/uploads/2024/05/A-1-75x75.png 75w, https://inero-software.com/wp-content/uploads/2024/05/A-1-50x50.png 50w" sizes="(max-width: 300px) 100vw, 300px" data-attachment-id="5733" data-permalink="https://inero-software.com/best-keycloak-practices/a-2/" data-orig-file="https://inero-software.com/wp-content/uploads/2024/05/A-1.png" data-orig-size="300,300" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="A" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2024/05/A-1.png" data-large-file="https://inero-software.com/wp-content/uploads/2024/05/A-1.png" role="button" />													</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-2d0bd5e e-con-full e-flex e-con e-child" data-id="2d0bd5e" data-element_type="container">
				<div class="elementor-element elementor-element-d1c415d elementor-widget elementor-widget-text-editor" data-id="d1c415d" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Pierwszym i najważniejszym krokiem jest zapewnienie, że cała komunikacja z serwerem Keycloak odbywa się przez bezpieczny protokół HTTPS. Używanie certyfikatów SSL/TLS od zaufanych dostawców chroni przed przechwyceniem i manipulacją danymi.</p><p><strong>W tym kroku:</strong></p><p>&#8211; Skonfiguruj serwer Keycloak: Ustaw serwer, aby korzystał wyłącznie z HTTPS, odrzucając wszystkie niezaszyfrowane żądania HTTP.</p><p>&#8211; Uaktualnij certyfikaty: Regularnie odnawiaj i uaktualniaj certyfikaty SSL/TLS, aby uniknąć ryzyka wykorzystania przestarzałych kluczy.</p>						</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-2316ba4 e-flex e-con-boxed e-con e-parent" data-id="2316ba4" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-a303f8a elementor-widget elementor-widget-heading" data-id="a303f8a" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Zastosuj wieloskładnikowe uwierzytelnianie (Multi-Factor Authentication, MFA)</h3>		</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-4a47934 e-flex e-con-boxed e-con e-parent" data-id="4a47934" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-be8e926 e-con-full e-flex e-con e-child" data-id="be8e926" data-element_type="container">
				<div class="elementor-element elementor-element-2b348bb elementor-widget elementor-widget-image" data-id="2b348bb" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="300" height="300" src="https://inero-software.com/wp-content/uploads/2024/05/B-1.png" class="attachment-large size-large wp-image-5734" alt="" srcset="https://inero-software.com/wp-content/uploads/2024/05/B-1.png 300w, https://inero-software.com/wp-content/uploads/2024/05/B-1-80x80.png 80w, https://inero-software.com/wp-content/uploads/2024/05/B-1-75x75.png 75w, https://inero-software.com/wp-content/uploads/2024/05/B-1-50x50.png 50w" sizes="(max-width: 300px) 100vw, 300px" data-attachment-id="5734" data-permalink="https://inero-software.com/best-keycloak-practices/b-2/" data-orig-file="https://inero-software.com/wp-content/uploads/2024/05/B-1.png" data-orig-size="300,300" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="B" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2024/05/B-1.png" data-large-file="https://inero-software.com/wp-content/uploads/2024/05/B-1.png" role="button" />													</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-5777998 e-con-full e-flex e-con e-child" data-id="5777998" data-element_type="container">
				<div class="elementor-element elementor-element-0acca6e elementor-widget elementor-widget-text-editor" data-id="0acca6e" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p class="" data-start="0" data-end="335">Ta funkcja dodaje warstwę bezpieczeństwa poprzez jednoczesne użycie kilku metod weryfikacji tożsamości użytkownika. 2FA (uwierzytelnianie dwuskładnikowe) to popularna forma MFA, która zazwyczaj wymaga od użytkownika podania hasła i potwierdzenia tożsamości za pomocą drugiego składnika, na przykład kodu z aplikacji uwierzytelniającej.</p><p class="" data-start="337" data-end="349">W tym kroku:</p><p class="" data-start="351" data-end="675"><strong data-start="351" data-end="408">Aktywuj uwierzytelnianie wieloskładnikowe w Keycloak:</strong> Włącz MFA dla wszystkich użytkowników, szczególnie tych z dostępem administracyjnym i do danych wrażliwych.<br data-start="516" data-end="519" /><strong data-start="519" data-end="555" data-is-only-node="">Wybierz metody uwierzytelniania:</strong> Keycloak obsługuje różne metody MFA – najczęściej używane to aplikacje uwierzytelniające (np. Microsoft Authenticator).</p>						</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-0f4f02f e-flex e-con-boxed e-con e-parent" data-id="0f4f02f" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-2f4cded elementor-widget elementor-widget-text-editor" data-id="2f4cded" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><strong>Przeczytaj także: </strong></p><ul><li style="list-style-type: none;"><ul><li><a href="https://inero-software.com/pl/przewodnik-krok-po-kroku-uwierzytelnianie-wieloskladnikowe-mfa-w-keycloak/">Przewodnik krok po kroku- Uwierzytelnianie wieloskładnikowe (MFA) w Keycloak</a></li><li><a href="https://inero-software.com/pl/tworzenie-niestandardowego-uwierzytelniania-sms-w-keycloak/">Tworzenie niestandardowego uwierzytelniania SMS w Keycloak</a></li><li><a href="https://inero-software.com/pl/wdrazanie-uwierzytelniania-wieloskladnikowego-za-pomoca-e-maila-w-keycloak/">Wdrażanie uwierzytelniania wieloskładnikowego za pomocą wiadomości e-mail w Keycloak</a></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-679a1d1 elementor-widget elementor-widget-heading" data-id="679a1d1" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Wprowadź silne polityki haseł i zarządzanie sesjami</h3>		</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-eb5372b e-flex e-con-boxed e-con e-parent" data-id="eb5372b" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-bcc75f2 e-con-full e-flex e-con e-child" data-id="bcc75f2" data-element_type="container">
				<div class="elementor-element elementor-element-d8c7551 elementor-widget elementor-widget-image" data-id="d8c7551" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="300" height="300" src="https://inero-software.com/wp-content/uploads/2024/05/C-1.png" class="attachment-large size-large wp-image-5735" alt="" srcset="https://inero-software.com/wp-content/uploads/2024/05/C-1.png 300w, https://inero-software.com/wp-content/uploads/2024/05/C-1-80x80.png 80w, https://inero-software.com/wp-content/uploads/2024/05/C-1-75x75.png 75w, https://inero-software.com/wp-content/uploads/2024/05/C-1-50x50.png 50w" sizes="(max-width: 300px) 100vw, 300px" data-attachment-id="5735" data-permalink="https://inero-software.com/best-keycloak-practices/c-2/" data-orig-file="https://inero-software.com/wp-content/uploads/2024/05/C-1.png" data-orig-size="300,300" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="C" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2024/05/C-1.png" data-large-file="https://inero-software.com/wp-content/uploads/2024/05/C-1.png" role="button" />													</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-0529c4c e-con-full e-flex e-con e-child" data-id="0529c4c" data-element_type="container">
				<div class="elementor-element elementor-element-886422a elementor-widget elementor-widget-text-editor" data-id="886422a" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Zarządzanie hasłami i sesjami jest kluczowe dla ochrony tożsamości użytkowników i zapobiegania nieautoryzowanemu dostępowi. Są pierwszą linią obrony przed atakami, takimi jak brute force czy phishing. Keycloak w tym zakresie daje szerokie pole możliwości konfiguracji polityki ustawiania haseł, które są konfigurowalne z poziomu konsoli administracyjnej.</p><p><strong>W tym kroku:</strong></p><p>&#8211; Skonfiguruj politykę haseł: ustal dokładne zasady wyboru haseł, aby wymagały określonej długości, skomplikowania (np. obecność znaków specjalnych, dużych i małych liter) oraz określ czas życia hasła i jego historię.</p><p>&#8211; Ogranicz czas życia sesji: Ustaw krótkie, ale praktyczne czasy życia sesji i tokenów, aby zminimalizować okno dla potencjalnych ataków. Automatyczne wylogowywanie użytkowników po określonym czasie nieaktywności jest ważne dla zapobiegania przypadkowemu pozostawieniu sesji otwartej na współdzielonych lub publicznych urządzeniach.</p>						</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-12aedc4 e-flex e-con-boxed e-con e-parent" data-id="12aedc4" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-20b75c7 elementor-widget elementor-widget-text-editor" data-id="20b75c7" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><strong>Przeczytaj także: </strong></p><ul><li style="list-style-type: none;"><ul><li><a href="https://inero-software.com/pl/praktyczne-wprowadzenie-do-keycloak-sso-od-konfiguracji-do-integracji/">Praktyczne wprowadzenie do Keycloak SSO: Od konfiguracji do integracji</a></li><li><a href="https://inero-software.com/pl/wprowadzenie-do-passkey-w-keycloak/">Wpowadzenie do Passkey w Keycloak </a></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-f6f00d8 elementor-widget elementor-widget-heading" data-id="f6f00d8" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Zabezpiecz punkty końcowe API i używaj kontroli dostępu opartej na rolach (RBAC)</h3>		</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-709dbf0 e-flex e-con-boxed e-con e-parent" data-id="709dbf0" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-b8fc9e2 e-con-full e-flex e-con e-child" data-id="b8fc9e2" data-element_type="container">
				<div class="elementor-element elementor-element-84a3289 elementor-widget elementor-widget-image" data-id="84a3289" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="300" height="300" src="https://inero-software.com/wp-content/uploads/2024/05/D-1.png" class="attachment-large size-large wp-image-5736" alt="" srcset="https://inero-software.com/wp-content/uploads/2024/05/D-1.png 300w, https://inero-software.com/wp-content/uploads/2024/05/D-1-80x80.png 80w, https://inero-software.com/wp-content/uploads/2024/05/D-1-75x75.png 75w, https://inero-software.com/wp-content/uploads/2024/05/D-1-50x50.png 50w" sizes="(max-width: 300px) 100vw, 300px" data-attachment-id="5736" data-permalink="https://inero-software.com/best-keycloak-practices/d-2/" data-orig-file="https://inero-software.com/wp-content/uploads/2024/05/D-1.png" data-orig-size="300,300" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="D" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2024/05/D-1.png" data-large-file="https://inero-software.com/wp-content/uploads/2024/05/D-1.png" role="button" />													</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-75033e9 e-con-full e-flex e-con e-child" data-id="75033e9" data-element_type="container">
				<div class="elementor-element elementor-element-72fac30 elementor-widget elementor-widget-text-editor" data-id="72fac30" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Kontrola dostępu oparta na rolach (Role-Based Access Control) pozwala na definiowanie ról, przypisywanie ich użytkownikom i zarządzanie uprawnieniami, co umożliwia kontrolę operacji na API zależnie od roli.</p><h6> </h6><p><strong>W tym kroku:</strong></p><p>Zabezpieczanie punktów końcowych API: Aby zabezpieczyć punkty końcowe API, kluczowe jest zastosowanie odpowiednich mechanizmów autoryzacji i uwierzytelniania:</p><ul><li style="list-style-type: none;"><ul><li>Uwierzytelnianie: Implementuj protokoły uwierzytelniania, takie jak OAuth 2.0 i OpenID Connect, aby użytkownicy i aplikacje musiały udowodnić swoją tożsamość przed uzyskaniem dostępu do API.</li><li>Tokeny dostępu: Wykorzystuj tokeny dostępu (access tokens), które zawierają informacje o uprawnieniach użytkownika, do weryfikacji uprawnień dostępu do różnych zasobów API.</li><li>HTTPS: Zapewnij, że wszystkie żądania do API są przesyłane przez HTTPS, chroniąc dane przed przechwyceniem i modyfikacją.</li></ul></li></ul><p>Kontrola dostępu oparta na rolach (RBAC): Role-Based Access Control pozwala na zarządzanie uprawnieniami użytkowników na podstawie ich ról w organizacji:</p><ul><li style="list-style-type: none;"><ul><li>Definiowanie ról: Ustal role, które odzwierciedlają różne poziomy dostępu w aplikacji, np. administrator, użytkownik, gość itp.</li><li>Przypisywanie ról: Przypisz użytkownikom role, które określają, do jakich zasobów i operacji mogą uzyskać dostęp.</li><li>Zarządzanie uprawnieniami: Skonfiguruj zasady dostępu w Keycloak, aby kontrolować, które operacje mogą być wykonane przez użytkowników z daną rolą na określonych punktach końcowych API.</li></ul></li></ul>						</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-0e7ac41 e-flex e-con-boxed e-con e-parent" data-id="0e7ac41" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-c72e20d elementor-widget elementor-widget-text-editor" data-id="c72e20d" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p> <strong>Przeczytaj także: </strong></p><ul><li style="list-style-type: none;"><ul><li><a href="https://inero-software.com/pl/zabezpieczanie-punktow-koncowych-java-spring-za-pomoca-keycloak/">Przewodnik integracji Keycloak: Zabezpieczanie punktów końcowych Java Spring za pomocą KeycloakWdrażanie uwierzytelniania wieloskładnikowego za pomocą wiadomości e-mail w Keycloak</a></li><li><a href="https://inero-software.com/pl/przewodnik-integracji-keycloak-logowanie-przez-platformy-spolecznosciowe/">Przewodnik integracji Keycloak: Logowanie przez platformy społecznościowe</a></li><li><a href="https://inero-software.com/pl/organizacje-w-keycloak-zarzadzanie-i-personalizacja-autentykacji/">Organizacje w Keycloak: Zarządzanie i personalizacja autentykacji</a></li><li><a href="https://inero-software.com/pl/integracja-keycloak-i-lightweight-directory-access-protocol/">Integracja Keycloak i Lightweight Directory Access Protocol</a></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-c66c681 elementor-widget elementor-widget-heading" data-id="c66c681" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Regularnie aktualizuj i monitoruj środowisko</h3>		</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-496def2 e-flex e-con-boxed e-con e-parent" data-id="496def2" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-814d9e5 e-con-full e-flex e-con e-child" data-id="814d9e5" data-element_type="container">
				<div class="elementor-element elementor-element-430f211 elementor-widget elementor-widget-image" data-id="430f211" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="300" height="300" src="https://inero-software.com/wp-content/uploads/2024/05/E-1.png" class="attachment-large size-large wp-image-5737" alt="" srcset="https://inero-software.com/wp-content/uploads/2024/05/E-1.png 300w, https://inero-software.com/wp-content/uploads/2024/05/E-1-80x80.png 80w, https://inero-software.com/wp-content/uploads/2024/05/E-1-75x75.png 75w, https://inero-software.com/wp-content/uploads/2024/05/E-1-50x50.png 50w" sizes="(max-width: 300px) 100vw, 300px" data-attachment-id="5737" data-permalink="https://inero-software.com/best-keycloak-practices/e-2/" data-orig-file="https://inero-software.com/wp-content/uploads/2024/05/E-1.png" data-orig-size="300,300" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="E" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2024/05/E-1.png" data-large-file="https://inero-software.com/wp-content/uploads/2024/05/E-1.png" role="button" />													</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-bdf672f e-con-full e-flex e-con e-child" data-id="bdf672f" data-element_type="container">
				<div class="elementor-element elementor-element-bd03d48 elementor-widget elementor-widget-text-editor" data-id="bd03d48" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Aktualizacja i stałe monitorowanie środowiska Keycloak jest niezbędne do utrzymania wysokiej ochrony przed nowymi zagrożeniami i lukami w zabezpieczeniach. Aktualizacje Keycloak pojawiają się co kilka miesięcy, a informacje na ich temat można znaleźć na oficjalnej stronie <a href="https://www.keycloak.org/">projektu lub w dokumentacji Keycloak.</a></p><h6> </h6><p><strong>W tym kroku:</strong></p><p>&#8211; Aktualizacje: Regularnie aktualizuj Keycloak do najnowszych stabilnych wersji.</p><p>&#8211; Monitoring i logowanie: Użyj narzędzi do monitorowania, aby śledzić wszelkie niezwykłe zachowania i szybko reagować na potencjalne incydenty bezpieczeństwa. Skonfiguruj systemy logowania, aby zbierać kluczowe informacje o działaniu systemu. Korzystając na przykład z  Kubernetes, można efektywnie zarządzać i skalować narzędzia do monitorowania i logowania, takie jak Prometheus i ELK Stack. Kubernetes ułatwia wdrażanie i zarządzanie kontenerami z tymi narzędziami, automatyzując ich rozmieszczanie, skalowanie i naprawę, co jest kluczowe dla utrzymania ciągłości działania i bezpieczeństwa w rozproszonych systemach.</p><p>&#8211; Postaw na sprawdzonego Partnera: Jeśli wdrożenie najlepszych praktyk Keycloak wydaje Ci się na tym etapie pracochłonnym procesem, który mocno obciąży Twój zespół, skorzystaj z pomocy specjalistów w tej dziedzinie.</p>						</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-2a776a9 e-flex e-con-boxed e-con e-parent" data-id="2a776a9" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-e7caf2c elementor-widget elementor-widget-text-editor" data-id="e7caf2c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><strong>Przeczytaj także:</strong></p><ul><li style="list-style-type: none;"><ul><li><a href="https://inero-software.com/pl/migracja-keycloak-porady-i-najlepsze-praktyki/">Migracja Keycloak: Porady i najlepsze praktyki</a></li><li><a href="https://inero-software.com/pl/keycloak-wskazowki-dotyczace-monitorowania-i-ochrony-przy-uzyciu-wbudowanych-narzedzi-konfiguracyjnych/">Keycloak: wskazówki dotyczące monitorowania i ochrony przy użyciu wbudowanych narzędzi konfiguracyjnych</a></li><li><a href="https://inero-software.com/pl/jak-tworzyc-i-stosowac-wlasne-motywy-w-keycloak/">Jak tworzyć i stosować własne motywy w Keycloak?</a></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-2a65d15 elementor-widget elementor-widget-text-editor" data-id="2a65d15" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><a href="https://inero-software.com/pl/keycloak/">Inero Software posiada bogate doświadczenie we wdrażaniu zaawansowanych rozwiązań w dziedzinie cyberbezpieczeństwa. Tworzymy kompleksowe systemy do zarządzania użytkownikami i ich rolami, które są dostosowane do złożonych infrastruktur IT i spełniają wysokie wymagania korporacyjne.</a> Nasz zespół, składający się z ekspertów w dziedzinie cyberbezpieczeństwa, implementuje zaawansowane schematy autoryzacji zgodnie z renomowanymi standardami bezpieczeństwa. Dzięki naszej wiedzy i doświadczeniu, zapewniamy skuteczną ochronę przed zagrożeniami i zgodność z korporacyjną polityką bezpieczeństwa.</p><p><a href="https://inero-software.com/pl/kontakt/">Skontaktuj się z nami, aby poznać możliwości wspólnego wdrożenia najlepszych praktyk Keycloak w Twojej organizacji.</a></p>						</div>
				</div>
					</div>
				</div>
				</div>
		<p>Artykuł <a href="https://inero-software.com/pl/najlepsze-praktyki-w-keycloak-zadbaj-o-bezpieczenstwo-w-5-krokach/">Najlepsze praktyki w Keycloak. Zadbaj o bezpieczeństwo w 5 krokach</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5695</post-id>	</item>
		<item>
		<title>Andrzej Chybicki: Modele będą potrafiły błyskawicznie przeglądać całe repozytorium, a następnie przekazywać pracownikowi gotowe dane</title>
		<link>https://inero-software.com/pl/andrzej-chybicki-modele-beda-potrafily-blyskawicznie-przegladac-cale-repozytorium-a-nastepnie-przekazywac-pracownikowi-gotowe-dane/</link>
		
		<dc:creator><![CDATA[Marta Kuprasz]]></dc:creator>
		<pubDate>Mon, 15 Apr 2024 07:11:33 +0000</pubDate>
				<category><![CDATA[Blog_pl]]></category>
		<category><![CDATA[Firma]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[model językowy]]></category>
		<category><![CDATA[NLP]]></category>
		<category><![CDATA[optymalizacja procesów biznesowych]]></category>
		<category><![CDATA[repozytorium]]></category>
		<category><![CDATA[sztuczna inteligencja]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=5528</guid>

					<description><![CDATA[<p>Badania nad sztuczną inteligencją (AI) rozpoczęły się od chęci zrozumienia, czy i w jakim stopniu komputery mogą rozwiązywać problemy w sposób zbliżony do działania ludzkiego umysłu. Wiele z wczesnych prac związanych z AI skupiało się na tworzeniu modeli matematycznych i algorytmów, zdolnych do wykonywania zadań wymagających inteligencji, takich jak rozumowanie,&#8230;</p>
<p>Artykuł <a href="https://inero-software.com/pl/andrzej-chybicki-modele-beda-potrafily-blyskawicznie-przegladac-cale-repozytorium-a-nastepnie-przekazywac-pracownikowi-gotowe-dane/">Andrzej Chybicki: Modele będą potrafiły błyskawicznie przeglądać całe repozytorium, a następnie przekazywać pracownikowi gotowe dane</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong></strong></p>
<h3>Badania nad sztuczną inteligencją (AI) rozpoczęły się od chęci zrozumienia, czy i w jakim stopniu komputery mogą rozwiązywać problemy w sposób zbliżony do działania ludzkiego umysłu. Wiele z wczesnych prac związanych z AI skupiało się na tworzeniu modeli matematycznych i algorytmów, zdolnych do wykonywania zadań wymagających inteligencji, takich jak rozumowanie, uczenie się, percepcja czy używanie języka.</h3>
<p>&nbsp;</p>
<p>Rozwój dużych modeli językowych jest obecnie jednym z kluczowych tematów w obszarze nowych technologii, dlatego zachęcamy do zapoznania się z dalszą częścią tego artykułu, w którym znajdują się komentarze CEO Inero Software, Andrzeja Chybickiego, dotyczące ewolucji tego zagadnienia na przestrzeni ostatnich lat.</p>
<p><strong>Przetwarzanie języka naturalnego. Nowe podejście do analizy danych </strong></p>
<p>Techniki przetwarzania mowy, tekstu i obrazu są wykorzystywane w przemyślę i nauce od wielu lat. Stanowiły one podstawę produktów, opartych o tak zwane modele NLP (Natural Language Processing). To algorytmy, które potrafiły rozumieć poszczególne wyrazy, później mapować relacje pomiędzy poszczególnymi słowami i łączyć je w ciągi. Zaczęły rozumieć i odróżniać znaczenie tych samych słów w różnych ciągach (innymi słowy rozróżniały kontekst) po to, aby ostatecznie móc interpretować znaczenie całych zdań. Stwierdzenie, że modele NLP „rozumieją” język ma charakter nieco na wyrost, nie mniej jednak obecne modele językowe NLP są w stanie przypisać pojedyncze zdania do tzw. intentów (intencji) czyli rozróżnić ich znaczenie. Następnie, tworząc odpowiednie oprogramowanie, jesteśmy w stanie obsłużyć np. proste rozmowy, konwersacje czy odpowiadać na proste pytania – tak działały do tej pory czatboty.</p>
<blockquote><p><strong> Aby zobrazować te liczbę, możemy ją porównać do przeczytania w ciągu paru sekund kilkusetstronicowej książki.</strong></p></blockquote>
<p><strong>Słowa rosną w siłę: Duże modele językowe</strong></p>
<p>LLM czyli Large Language Model, które powstają od kilku lat, stanowią przełom technologiczny, ponieważ nie działają już jako klasyfikatory intencji użytkownika, ale na podstawie wyuczonych zestawów podobieństw ciągów wejściowych i wyjściowych, potrafią znajdować związki pomiędzy dłuższymi ciągami słów (tokenów). Duże modele językowe potrafią już nie tylko analizować poszczególna zdania, ale także znacznie dłuższe teksty. Mówi się wtedy o długości kontekstu (lub okna kontekstu), które obecnie wynoszą nawet 128000 tokenów. Aby zobrazować te liczbę, możemy ją porównać do przeczytania w ciągu paru sekund kilkusetstronicowej książki.</p>
<p><a href="https://docsquality.com/pl/"><img loading="lazy" decoding="async" data-attachment-id="5530" data-permalink="https://inero-software.com/pl/andrzej-chybicki-modele-beda-potrafily-blyskawicznie-przegladac-cale-repozytorium-a-nastepnie-przekazywac-pracownikowi-gotowe-dane/discover-docsquality-800-x-500-px-2/" data-orig-file="https://inero-software.com/wp-content/uploads/2024/04/Discover-DocsQuality-800-x-500-px-1.png" data-orig-size="800,500" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Discover DocsQuality (800 x 500 px)" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2024/04/Discover-DocsQuality-800-x-500-px-1-300x188.png" data-large-file="https://inero-software.com/wp-content/uploads/2024/04/Discover-DocsQuality-800-x-500-px-1.png" tabindex="0" role="button" class="wp-image-5530 aligncenter" src="https://inero-software.com/wp-content/uploads/2024/04/Discover-DocsQuality-800-x-500-px-1-300x188.png" alt="" width="483" height="303" srcset="https://inero-software.com/wp-content/uploads/2024/04/Discover-DocsQuality-800-x-500-px-1-300x188.png 300w, https://inero-software.com/wp-content/uploads/2024/04/Discover-DocsQuality-800-x-500-px-1-768x480.png 768w, https://inero-software.com/wp-content/uploads/2024/04/Discover-DocsQuality-800-x-500-px-1-480x300.png 480w, https://inero-software.com/wp-content/uploads/2024/04/Discover-DocsQuality-800-x-500-px-1.png 800w" sizes="(max-width: 483px) 100vw, 483px" /></a></p>
<p><strong>Stopień rozumienia: Logika pod wieloma względami zbliżona do logiki człowieka</strong></p>
<p>Studenci pytają czasami „czy komputery rozumieją tekst?”. Odpowiedź na to pytanie jest trudna, jeśli nie zdefiniujemy sobie znaczenia pojęcia „rozumienia”. Twórcy modeli językowych i naukowcy zajmują się tworzeniem różnych miar, kryteriów aby móc oceniać czy model „rozumie” dany problem. Niemniej jednak, w najprostszym podejściu możemy powiedzieć, że model rozumie dane zagadnienie jeśli odpowiedzi (ciągi słów), które generuje są zgodne z tym, jak odpowiedział by człowiek, ekspert w danej dziedzinie.</p>
<p>Sądzę, że w kontekście rozwoju technologii AI, powoli zaciera się różnica pomiędzy tym jak komunikują się ludzie (mowa, pismo) a komputery (protokoły, bazy danych). Wydaje się, że w niedalekiej przyszłości modele AI będą wspierały ludzi w coraz większej liczbie codziennych zadań. Będą w stanie automatycznie pobierać informacje, aby wysłać odpowiedź do klienta, podpowiadały pracownikom jaka jest odpowiedź na pytanie czy obsługiwały komunikację poprzez messangery.</p>
<blockquote><p>Modele będą potrafiły przeglądać cały wachlarz informacji, w tym dokumentów i instrukcji, obejmujących na przykład zamówienia, maile, umowy czy faktury, potem wnioskować na ich podstawie, a następnie przekazywać pracownikowi gotowe dane, potrzebne do raportu, oferty lub innych działań operacyjnych.</p></blockquote>
<p><strong>Wirtualni asystenci: Czy pracownicy zyskają realną pomoc?</strong></p>
<p>Wile wskazuje na to, że jest wspomaganie pracy przez AI to przyszłość dla wielu obszarów, jednak wciąż dostrzegam duży problem. Mimo tego, że cyfryzacja w ostatnich latach, głównie w czasie pandemii, mocno przyspieszyła, wiele firm i instytucji, nadal przetwarza dużą część informacji w formie nieustrukturyzowanej tj. w formie dokumentów, umów, instrukcji i wiadomości mailowych. Liczba informacji, z którą pracownicy mają codziennie do czynienia jest gigantyczna.</p>
<p>Docelowo modele będą potrafiły przeglądać cały wachlarz informacji, w tym dokumentów i instrukcji, obejmujących na przykład zamówienia, maile, umowy czy faktury, potem wnioskować na ich podstawie, a następnie przekazywać pracownikowi gotowe dane, potrzebne do raportu, oferty lub innych działań operacyjnych. Co więcej, potencjalnym obszarem wykorzystania będzie także walidacja i sprawdzanie dokumentów, analiza zależności pomiędzy dwoma różnymi dokumentami, albo kilkoma źródłami wiedzy.</p>
<p><a href="http://deliverm8-fm.com"><img loading="lazy" decoding="async" data-attachment-id="5529" data-permalink="https://inero-software.com/pl/andrzej-chybicki-modele-beda-potrafily-blyskawicznie-przegladac-cale-repozytorium-a-nastepnie-przekazywac-pracownikowi-gotowe-dane/dm8-800-x-500-px-2/" data-orig-file="https://inero-software.com/wp-content/uploads/2024/04/DM8-800-x-500-px-1.png" data-orig-size="800,500" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="DM8 (800 x 500 px)" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2024/04/DM8-800-x-500-px-1-300x188.png" data-large-file="https://inero-software.com/wp-content/uploads/2024/04/DM8-800-x-500-px-1.png" tabindex="0" role="button" class="wp-image-5529 aligncenter" src="https://inero-software.com/wp-content/uploads/2024/04/DM8-800-x-500-px-1-300x188.png" alt="" width="486" height="305" srcset="https://inero-software.com/wp-content/uploads/2024/04/DM8-800-x-500-px-1-300x188.png 300w, https://inero-software.com/wp-content/uploads/2024/04/DM8-800-x-500-px-1-768x480.png 768w, https://inero-software.com/wp-content/uploads/2024/04/DM8-800-x-500-px-1-480x300.png 480w, https://inero-software.com/wp-content/uploads/2024/04/DM8-800-x-500-px-1.png 800w" sizes="(max-width: 486px) 100vw, 486px" /></a></p>
<p><strong>Wirtualny asystent przyspieszy codzienną pracę</strong></p>
<p>Przykładem może być sytuacja, w której do pracownika banku przychodzi wniosek o udzielenie kredytu wraz z załącznikami takimi jak potwierdzenie stanu konta, zatrudnienia, zeznanie PIT i inne. Obecnie pracownicy często muszą manualnie sprawdzać czy dane zawarte w takich dokumentach są ze sobą spójne np. czy podany we wniosku kredytowym numer PESEL zgadza się z tym na zaświadczeniu o zatrudnieniu. Czy numer konta bankowego zapisanego w podaniu jest prawidłowy oraz czy daty wystawionego zaświadczenia o przychodach są aktualne oraz wiele innych. Podobnie jest w sektorze ubezpieczeniowym, w których podczas wystawiania polisy trzeba manualnie sprawdzać numery VIN widniejące na dokumentach, dowodach rejestracyjnych i porównywać je z danymi o przeglądach, polisach itp.</p>
<p>Wdrożenie narzędzi opartych o model LLM do organizacji może przynieść wymierne korzyści w postaci  automatyzacji i zwiększania efektywności pracy. Błędem jest twierdzenie, że oprogramowanie może zastąpić pracownika. Może mu pomóc.  Analizując rynek europejski, dostrzegamy trendy demograficzne, wynikające ze starzenia się społeczeństwa i spadku dostępności wykwalifikowanych pracowników</p>
<p>&nbsp;</p>
<p>Podsumowując. Modele przetwarzania języka naturalnego (NLP/LLM) coraz efektywniej wspierają ludzi w codziennych zadaniach przez automatyzację odpowiedzi na zapytania klientów, asystowanie pracownikom oraz zarządzanie komunikacją przez platformy. Te technologie nie tylko podnoszą efektywność pracy przez automatyzację rutynowych zadań, ale także umożliwiają zaawansowane operacje jak analiza dokumentów czy integracja danych, co przekłada się na szerokie zastosowania w różnych branżach i poziomach zawodowych.</p>
<p><img loading="lazy" decoding="async" data-attachment-id="5405" data-permalink="https://inero-software.com/pl/github-copilot-przeglad-plusow-i-minusow-w-pracy-programisty/andrzej-bez-tla/" data-orig-file="https://inero-software.com/wp-content/uploads/2024/01/andrzej-bez-tla-.png" data-orig-size="1200,1200" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="andrzej bez tła" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2024/01/andrzej-bez-tla--300x300.png" data-large-file="https://inero-software.com/wp-content/uploads/2024/01/andrzej-bez-tla--1030x1030.png" tabindex="0" role="button" class="size-medium wp-image-5405 alignright" src="https://inero-software.com/wp-content/uploads/2024/01/andrzej-bez-tla--300x300.png" alt="" width="300" height="300" srcset="https://inero-software.com/wp-content/uploads/2024/01/andrzej-bez-tla--300x300.png 300w, https://inero-software.com/wp-content/uploads/2024/01/andrzej-bez-tla--1030x1030.png 1030w, https://inero-software.com/wp-content/uploads/2024/01/andrzej-bez-tla--80x80.png 80w, https://inero-software.com/wp-content/uploads/2024/01/andrzej-bez-tla--768x768.png 768w, https://inero-software.com/wp-content/uploads/2024/01/andrzej-bez-tla--75x75.png 75w, https://inero-software.com/wp-content/uploads/2024/01/andrzej-bez-tla--50x50.png 50w, https://inero-software.com/wp-content/uploads/2024/01/andrzej-bez-tla--512x512.png 512w, https://inero-software.com/wp-content/uploads/2024/01/andrzej-bez-tla--1024x1024.png 1024w, https://inero-software.com/wp-content/uploads/2024/01/andrzej-bez-tla-.png 1200w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="text-align: right;"><strong>Andrzej Chybicki, PhD Eng.</strong></p>
<p style="text-align: right;">CEO, Inero Software Sp. z o. o.</p>
<p style="text-align: right;">email: andrzej.chybicki@inero.pl</p>
<p>Artykuł <a href="https://inero-software.com/pl/andrzej-chybicki-modele-beda-potrafily-blyskawicznie-przegladac-cale-repozytorium-a-nastepnie-przekazywac-pracownikowi-gotowe-dane/">Andrzej Chybicki: Modele będą potrafiły błyskawicznie przeglądać całe repozytorium, a następnie przekazywać pracownikowi gotowe dane</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5528</post-id>	</item>
	</channel>
</rss>
