<?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>Andrzej Chybicki, Autor w Inero Software - Software Consulting</title>
	<atom:link href="https://inero-software.com/pl/author/inero/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>Tworzymy cyfrowe innowacje</description>
	<lastBuildDate>Fri, 06 Feb 2026 15:32:39 +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>Andrzej Chybicki, Autor w Inero Software - Software Consulting</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">153509928</site>	<item>
		<title>Wdrożenie voicebota w obsłudze telefonicznej – aspekty, o których rzadko się mówi</title>
		<link>https://inero-software.com/pl/agenci-voicebot/</link>
		
		<dc:creator><![CDATA[Andrzej Chybicki]]></dc:creator>
		<pubDate>Fri, 06 Feb 2026 14:13:25 +0000</pubDate>
				<category><![CDATA[Blog_pl]]></category>
		<category><![CDATA[Firma]]></category>
		<category><![CDATA[Technologie]]></category>
		<category><![CDATA[agent głosowy]]></category>
		<category><![CDATA[call center]]></category>
		<category><![CDATA[voicebot]]></category>
		<category><![CDATA[voicebot AI]]></category>
		<category><![CDATA[wdrożenie AI]]></category>
		<category><![CDATA[webhooki w voicebocie]]></category>
		<category><![CDATA[wersjonowanie agentów AI]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=8415</guid>

					<description><![CDATA[<p>Rozwiązania typu voicebot coraz częściej pojawiają się w obsłudze telefonicznej jako sposób na skrócenie czasu oczekiwania, obniżenie kosztów operacyjnych oraz zwiększenie dostępności usług. W praktyce jednak skuteczne wdrożenie agenta głosowego w rzeczywistym procesie biznesowym wymaga znacznie więcej niż poprawnie działający model językowy. Z perspektywy zespołu INERO kluczowe wyzwania ujawniają się&#8230;</p>
<p>Artykuł <a href="https://inero-software.com/pl/agenci-voicebot/">Wdrożenie voicebota w obsłudze telefonicznej – aspekty, o których rzadko się mówi</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="8415" class="elementor elementor-8415" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-0d9102a e-flex e-con-boxed e-con e-parent" data-id="0d9102a" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-ccc7bf6 e-con-full e-flex e-con e-child" data-id="ccc7bf6" data-element_type="container">
				</div>
		<div class="elementor-element elementor-element-374b0d0 e-con-full e-flex e-con e-child" data-id="374b0d0" data-element_type="container">
				<div class="elementor-element elementor-element-538e5ec elementor-widget elementor-widget-text-editor" data-id="538e5ec" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Rozwiązania typu voicebot coraz częściej pojawiają się w obsłudze telefonicznej jako sposób na skrócenie czasu oczekiwania, obniżenie kosztów operacyjnych oraz zwiększenie dostępności usług. W praktyce jednak skuteczne wdrożenie agenta głosowego w rzeczywistym procesie biznesowym wymaga znacznie więcej niż poprawnie działający model językowy. Z perspektywy zespołu INERO kluczowe wyzwania ujawniają się dopiero na etapie pracy produkcyjnej.</p><p> </p><p>Poniżej przedstawiamy wybrane doświadczenia z wdrożenia voicebota obsługującego wieloetapowy proces operacyjny. Są to elementy, które w istotny sposób wpływają na stabilność, przewidywalność i możliwość długoterminowego utrzymania rozwiązania.</p>						</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-0d4d338 e-con-full e-flex e-con e-child" data-id="0d4d338" data-element_type="container">
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-83e4084 e-flex e-con-boxed e-con e-parent" data-id="83e4084" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-a17c845 e-con-full e-flex e-con e-child" data-id="a17c845" data-element_type="container">
				</div>
		<div class="elementor-element elementor-element-7ff3b8b e-con-full e-flex e-con e-child" data-id="7ff3b8b" data-element_type="container">
				<div class="elementor-element elementor-element-7737e4c elementor-widget elementor-widget-text-editor" data-id="7737e4c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<h3 data-start="1060" data-end="1127">Testy rozmów i integracji jako element architektury rozwiązania</h3><p data-start="1129" data-end="1326">W projektach voicebotowych testowanie nie powinno być traktowane jako końcowy etap prac. Już na wczesnym etapie okazało się, że niezbędne jest rozdzielenie testów na dwie uzupełniające się warstwy:</p><ul><li style="list-style-type: none;"><ul data-start="1328" data-end="1630"><li data-start="1328" data-end="1454"><p data-start="1330" data-end="1454"><strong data-start="1330" data-end="1357">testy przebiegu rozmowy</strong>, weryfikujące kolejność pytań, poprawność dopytań oraz logiczne domykanie poszczególnych etapów,</p></li><li data-start="1455" data-end="1630"><p data-start="1457" data-end="1630"><strong data-start="1457" data-end="1495">testy wywołań narzędzi i webhooków</strong>, sprawdzające, czy agent komunikuje się z systemami backendowymi dokładnie w tych momentach, które są wymagane przez proces biznesowy.</p></li></ul></li></ul><p data-start="1632" data-end="1799">Takie podejście pozwala wychwycić błędy niewidoczne na poziomie samej konwersacji, a mające bezpośredni wpływ na integralność danych i dalsze przetwarzanie informacji.</p><blockquote><p data-start="1801" data-end="2208"><strong data-start="1801" data-end="1817">Case snippet</strong><br data-start="1817" data-end="1820" /><em data-start="1820" data-end="1830">Symptom:</em> rozmowa przebiegała poprawnie, użytkownik potwierdzał jej podsumowanie, jednak dane nie trafiały do systemu operacyjnego.<br data-start="1952" data-end="1955" /><em data-start="1955" data-end="1967">Działanie:</em> wprowadziliśmy automatyczne testy weryfikujące warunki oraz moment wywołania webhooków.<br data-start="2055" data-end="2058" /><em data-start="2058" data-end="2068">Wniosek:</em> poprawna rozmowa nie gwarantuje poprawnej realizacji procesu – integracje wymagają równie rygorystycznego testowania jak warstwa dialogowa.</p></blockquote>						</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-8f900ea e-con-full e-flex e-con e-child" data-id="8f900ea" data-element_type="container">
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-37329ca e-flex e-con-boxed e-con e-parent" data-id="37329ca" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-1681f2e elementor-widget elementor-widget-spacer" data-id="1681f2e" data-element_type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
					<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-9e80568 e-flex e-con-boxed e-con e-parent" data-id="9e80568" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-a8d9f11 e-con-full e-flex e-con e-child" data-id="a8d9f11" data-element_type="container">
				</div>
		<div class="elementor-element elementor-element-be0da77 e-con-full e-flex e-con e-child" data-id="be0da77" data-element_type="container">
				<div class="elementor-element elementor-element-18aa79f elementor-widget elementor-widget-text-editor" data-id="18aa79f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<h3 data-start="2215" data-end="2292">Wersjonowanie agentów – dlaczego GUI zabija powtarzalność i audytowalność</h3><p data-start="2294" data-end="2581">W wielu platformach agentowych najprostszym sposobem wprowadzania zmian jest bezpośrednia edycja konfiguracji w interfejsie graficznym. Takie podejście działa na wczesnym etapie projektu, jednak bardzo szybko ujawnia swoje ograniczenia. Problemy pojawiają się w szczególności wtedy, gdy:</p><ul><li style="list-style-type: none;"><ul data-start="2583" data-end="2866"><li data-start="2583" data-end="2651"><p data-start="2585" data-end="2651">dwie osoby niezależnie modyfikują instrukcję tego samego agenta,</p></li><li data-start="2652" data-end="2756"><p data-start="2654" data-end="2756">drobna poprawka wprowadzona „na szybko” trafia na środowisko produkcyjne bez śladu w historii zmian,</p></li><li data-start="2757" data-end="2866"><p data-start="2759" data-end="2866">po czasie nie da się jednoznacznie odtworzyć, <strong data-start="2805" data-end="2814">kiedy</strong> i <strong data-start="2817" data-end="2829">dlaczego</strong> agent zaczął zachowywać się inaczej.</p></li></ul></li></ul><p data-start="2868" data-end="3003">Z tego względu konfigurację agentów zaczęliśmy traktować jak kod źródłowy, a nie jak parametr edytowany w GUI. W praktyce oznaczało to:</p><ul><li style="list-style-type: none;"><ul data-start="3005" data-end="3315"><li data-start="3005" data-end="3072"><p data-start="3007" data-end="3072">wykonywanie <strong data-start="3019" data-end="3069">snapshotów konfiguracji agentów w repozytorium</strong>,</p></li><li data-start="3073" data-end="3197"><p data-start="3075" data-end="3197">stosowanie workflow typu <strong data-start="3100" data-end="3124">pull / update / push</strong>, umożliwiającego świadome przenoszenie zmian z GUI do kontroli wersji,</p></li><li data-start="3198" data-end="3315"><p data-start="3200" data-end="3315">spójne podejście do środowisk (np. dev / prod), nawet jeśli platforma agentowa posiada w tym zakresie ograniczenia.</p></li></ul></li></ul><p data-start="3317" data-end="3520">Na pierwszy rzut oka może to wyglądać jak nadmierny formalizm. W praktyce jednak bez takiego podejścia bardzo trudno realizować regresję, rollback czy rzetelną analizę przyczyn zmian w zachowaniu agenta.</p><blockquote><p data-start="3522" data-end="3675"><strong data-start="3522" data-end="3534">Wniosek:</strong> voicebot, którego konfiguracja nie jest wersjonowana, z czasem staje się rozwiązaniem trudnym do utrzymania i operacyjnie niekontrolowalnym.</p></blockquote>						</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-f00f5ee e-con-full e-flex e-con e-child" data-id="f00f5ee" data-element_type="container">
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-e514b51 e-flex e-con-boxed e-con e-parent" data-id="e514b51" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-63d66ba elementor-widget elementor-widget-spacer" data-id="63d66ba" data-element_type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
					<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-6c3335a e-flex e-con-boxed e-con e-parent" data-id="6c3335a" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-965b5b7 e-con-full e-flex e-con e-child" data-id="965b5b7" data-element_type="container">
				</div>
		<div class="elementor-element elementor-element-34b861d e-con-full e-flex e-con e-child" data-id="34b861d" data-element_type="container">
				<div class="elementor-element elementor-element-28d6bed elementor-widget elementor-widget-text-editor" data-id="28d6bed" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<h3 data-start="3682" data-end="3733">Produkcja jako weryfikacja założeń projektowych</h3><p data-start="3735" data-end="4065">Rzeczywiste rozmowy telefoniczne różnią się istotnie od scenariuszy testowych. Użytkownicy mówią w różnym tempie, wracają do wcześniejszych wątków lub nie potrafią jednoznacznie sformułować odpowiedzi. Z tego powodu kluczowe znaczenie ma kontrola przebiegu rozmowy jako całości, a nie wyłącznie poprawność pojedynczych wypowiedzi.</p><blockquote><p data-start="4067" data-end="4457"><strong data-start="4067" data-end="4083">Case snippet</strong><br data-start="4083" data-end="4086" /><em data-start="4086" data-end="4096">Symptom:</em> część połączeń trwała bardzo długo i nie prowadziła do jednoznacznego zakończenia procesu.<br data-start="4187" data-end="4190" /><em data-start="4190" data-end="4202">Działanie:</em> wprowadziliśmy z góry określony maksymalny czas trwania rozmowy oraz reguły jej kontrolowanego domykania.<br data-start="4308" data-end="4311" /><em data-start="4311" data-end="4321">Wniosek:</em> limit czasu rozmowy pozwala kontrolować koszty operacyjne i zapobiega sytuacjom, w których rozmowa nie prowadzi do sensownej konkluzji.</p></blockquote>						</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-323cc18 e-con-full e-flex e-con e-child" data-id="323cc18" data-element_type="container">
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-53774c9 e-flex e-con-boxed e-con e-parent" data-id="53774c9" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-03b377b elementor-widget elementor-widget-spacer" data-id="03b377b" data-element_type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
					<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-a6b3f74 e-flex e-con-boxed e-con e-parent" data-id="a6b3f74" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-7724aa9 e-con-full e-flex e-con e-child" data-id="7724aa9" data-element_type="container">
				</div>
		<div class="elementor-element elementor-element-56d8f8d e-con-full e-flex e-con e-child" data-id="56d8f8d" data-element_type="container">
				<div class="elementor-element elementor-element-60c55d5 elementor-widget elementor-widget-text-editor" data-id="60c55d5" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<h3 data-start="4464" data-end="4523">Normalizacja danych jako element krytyczny architektury</h3><p data-start="4525" data-end="4775">Agent głosowy operuje na języku naturalnym, natomiast systemy backendowe wymagają danych jednoznacznych i ustrukturyzowanych. Bez spójnej normalizacji i walidacji dane zebrane w rozmowie mogą okazać się bezużyteczne na dalszych etapach przetwarzania.</p><blockquote><p data-start="4777" data-end="5132"><strong data-start="4777" data-end="4793">Case snippet</strong><br data-start="4793" data-end="4796" /><em data-start="4796" data-end="4806">Symptom:</em> kompletne dane zebrane w rozmowie nie przechodziły walidacji w systemach downstream.<br data-start="4891" data-end="4894" /><em data-start="4894" data-end="4906">Działanie:</em> dodaliśmy warstwę normalizacji i walidacji danych jeszcze przed ich przekazaniem do backendu.<br data-start="5000" data-end="5003" /><em data-start="5003" data-end="5013">Wniosek:</em> skuteczny voicebot wymaga dodatkowej warstwy logicznej, która tłumaczy język naturalny na precyzyjne struktury danych.</p></blockquote>						</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-8838f4f e-con-full e-flex e-con e-child" data-id="8838f4f" data-element_type="container">
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-1ff2eb4 e-flex e-con-boxed e-con e-parent" data-id="1ff2eb4" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-efc0e17 elementor-widget elementor-widget-spacer" data-id="efc0e17" data-element_type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
					<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-4d3b10d e-flex e-con-boxed e-con e-parent" data-id="4d3b10d" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-804eb73 e-con-full e-flex e-con e-child" data-id="804eb73" data-element_type="container">
				</div>
		<div class="elementor-element elementor-element-2a80f01 e-con-full e-flex e-con e-child" data-id="2a80f01" data-element_type="container">
				<div class="elementor-element elementor-element-ad23e81 elementor-widget elementor-widget-text-editor" data-id="ad23e81" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<h3 data-start="5139" data-end="5186">Checklista przed uruchomieniem produkcyjnym</h3><p data-start="5188" data-end="5340">Na podstawie zdobytych doświadczeń wypracowaliśmy zestaw elementów, które uznajemy za niezbędne przed uruchomieniem voicebota w środowisku produkcyjnym:</p><ol><li style="list-style-type: none;"><ol><li data-start="5345" data-end="5395">automatyczne testy wywołań narzędzi i webhooków,</li><li data-start="5399" data-end="5453">monitoring kompletności rozmowy i zbieranych danych,</li><li data-start="5457" data-end="5519">wersjonowanie konfiguracji agentów oraz możliwość rollbacku,</li><li data-start="5523" data-end="5572">jasno zdefiniowane warunki zakończenia rozmowy,</li><li data-start="5576" data-end="5625">kontrola maksymalnego czasu trwania połączenia,</li><li data-start="5629" data-end="5680">spójna normalizacja i walidacja danych wejściowych.</li></ol></li></ol>						</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-66730cc e-con-full e-flex e-con e-child" data-id="66730cc" data-element_type="container">
				<div class="elementor-element elementor-element-fd2e342 elementor-widget elementor-widget-image" data-id="fd2e342" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img fetchpriority="high" decoding="async" data-attachment-id="8456" data-permalink="https://inero-software.com/pl/agenci-voicebot/checklista_agenci_voicebot/" data-orig-file="https://inero-software.com/wp-content/uploads/2026/02/CheckLista_Agenci_VoiceBot.png" data-orig-size="1536,1024" 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="CheckLista_Agenci_VoiceBot" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2026/02/CheckLista_Agenci_VoiceBot-300x200.png" data-large-file="https://inero-software.com/wp-content/uploads/2026/02/CheckLista_Agenci_VoiceBot-1030x687.png" tabindex="0" role="button" width="1536" height="1024" src="https://inero-software.com/wp-content/uploads/2026/02/CheckLista_Agenci_VoiceBot.png" class="attachment-full size-full wp-image-8456" alt="" srcset="https://inero-software.com/wp-content/uploads/2026/02/CheckLista_Agenci_VoiceBot.png 1536w, https://inero-software.com/wp-content/uploads/2026/02/CheckLista_Agenci_VoiceBot-300x200.png 300w, https://inero-software.com/wp-content/uploads/2026/02/CheckLista_Agenci_VoiceBot-1030x687.png 1030w, https://inero-software.com/wp-content/uploads/2026/02/CheckLista_Agenci_VoiceBot-768x512.png 768w, https://inero-software.com/wp-content/uploads/2026/02/CheckLista_Agenci_VoiceBot-450x300.png 450w" sizes="(max-width: 1536px) 100vw, 1536px" data-attachment-id="8456" data-permalink="https://inero-software.com/pl/agenci-voicebot/checklista_agenci_voicebot/" data-orig-file="https://inero-software.com/wp-content/uploads/2026/02/CheckLista_Agenci_VoiceBot.png" data-orig-size="1536,1024" 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="CheckLista_Agenci_VoiceBot" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2026/02/CheckLista_Agenci_VoiceBot-300x200.png" data-large-file="https://inero-software.com/wp-content/uploads/2026/02/CheckLista_Agenci_VoiceBot-1030x687.png" role="button" />													</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-ab36e2b e-flex e-con-boxed e-con e-parent" data-id="ab36e2b" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-44ff568 elementor-widget elementor-widget-spacer" data-id="44ff568" data-element_type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
					<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-76a73b6 e-flex e-con-boxed e-con e-parent" data-id="76a73b6" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-9bcef82 e-con-full e-flex e-con e-child" data-id="9bcef82" data-element_type="container">
				</div>
		<div class="elementor-element elementor-element-6d4df98 e-con-full e-flex e-con e-child" data-id="6d4df98" data-element_type="container">
				<div class="elementor-element elementor-element-fc93fc3 elementor-widget elementor-widget-text-editor" data-id="fc93fc3" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<h3 data-start="5687" data-end="5703">Podsumowanie</h3><p data-start="5705" data-end="6063">Z perspektywy zespołu INERO wdrożenie voicebota w obsłudze telefonicznej należy traktować jako projekt systemowy, a nie wyłącznie implementację modelu językowego. O powodzeniu rozwiązania w dużej mierze decydują elementy niewidoczne dla użytkownika końcowego: testy integracyjne, wersjonowanie konfiguracji, monitoring oraz jasno zdefiniowana logika procesu.</p><p data-start="6065" data-end="6253" data-is-last-node="" data-is-only-node="">To właśnie te aspekty sprawiają, że voicebot przestaje być eksperymentem technologicznym, a staje się stabilnym narzędziem operacyjnym, gotowym do długoterminowego utrzymania i skalowania.</p>						</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-31218ec e-con-full e-flex e-con e-child" data-id="31218ec" data-element_type="container">
				</div>
					</div>
				</div>
				</div>
		<p>Artykuł <a href="https://inero-software.com/pl/agenci-voicebot/">Wdrożenie voicebota w obsłudze telefonicznej – aspekty, o których rzadko się mówi</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">8415</post-id>	</item>
		<item>
		<title>Budowa systemu rozpoznawania komend głosowych w języku polskim</title>
		<link>https://inero-software.com/pl/budowa-systemu-rozpoznawania-komend-glosowych/</link>
		
		<dc:creator><![CDATA[Andrzej Chybicki]]></dc:creator>
		<pubDate>Mon, 04 Apr 2022 10:08:58 +0000</pubDate>
				<category><![CDATA[Blog_pl]]></category>
		<category><![CDATA[Firma]]></category>
		<category><![CDATA[Technologie]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[deepspeech]]></category>
		<category><![CDATA[model językowy]]></category>
		<category><![CDATA[modele ASR]]></category>
		<category><![CDATA[rozpoznawanie komend głosowych]]></category>
		<category><![CDATA[sieci neuronowe]]></category>
		<category><![CDATA[system rozpoznawania głosu]]></category>
		<category><![CDATA[zbiory danych]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=4748</guid>

					<description><![CDATA[<p>System rozpoznawania głosu pełni rolę pomocnika, który wyszuka dla nas odpowiednie informacje, ułatwi zakupy w Internecie czy umożliwi obsługę różnych urządzeń bez wykorzystywania zewnętrznych przycisków czy regulacji.</p>
<p>Artykuł <a href="https://inero-software.com/pl/budowa-systemu-rozpoznawania-komend-glosowych/">Budowa systemu rozpoznawania komend głosowych w języku polskim</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>&nbsp;</p>
<div class="row">
<p><div class="col-sm-1"></div></p>
<p><div class="col-sm-10">
<p><img decoding="async" class=" wp-image-2770 aligncenter" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png" alt="" width="75" height="75" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w" sizes="(max-width: 75px) 100vw, 75px" /></p>
<p>&nbsp;</p>
<h2><span style="color: #800080;">Budowa systemu rozpoznawania komend głosowych w języku polskim</span></h2>
<p>&nbsp;</p>
<p><span data-contrast="auto"><span class="TextRun SCXW189727610 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW189727610 BCX0"><span class="TextRun SCXW21457896 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW21457896 BCX0"><img decoding="async" class=" wp-image-2768 alignleft" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png" alt="" width="71" height="71" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-50x50.png 50w" sizes="(max-width: 71px) 100vw, 71px" /></span></span></span></span></span>System rozpoznawania komend głosowych został stworzony po to, aby usprawnić życie człowieka. Pełni on rolę pomocnika, który wyszuka dla nas odpowiednie informacje, ułatwi zakupy w Internecie czy umożliwi obsługę różnych urządzeń bez wykorzystywania zewnętrznych przycisków czy regulacji. Jednak stworzenie takiego systemu od podstaw może być trudnym wyzwaniem. W szczególności, jeśli chcemy zbudować go w języku polskim.</p>
<p>Istnieją ogólne modele sieci neuronowych, które dedykowane są rozpoznawaniu języka mówionego, czyli transkrypcji nagrania audio do tekstu. Wszystko jednak uwarunkowane jest od tego, ile danych posiadamy. Obecnie istnieje wiele zbiorów nagrań z języka angielskiego, które są odpowiednio przygotowane. Same dane jednak nie wystarczą. Muszą być do nich dołączone transkrypcje. Niestety w języku polskim nie mamy dużej ilości próbek głosowych razem z transkrypcjami. Na dzień dzisiejszy nie jesteśmy więc w stanie tak dobrze wyuczyć modeli, jak to jest robione w języku angielskim.</p>
<p>Jak na razie nie możemy wyuczyć asystentów wykorzystując modele open source’owe z zadowalającą skutecznością, jednak możemy sprawdzić co jesteśmy w stanie zbudować z ogólnie dostępnych danych. Celem naszej pracy jest stworzenie systemu rozpoznawania mowy, który działa w ograniczonym zbiorze komend.</p>
<p>&nbsp;</p>
<p><img decoding="async" class=" wp-image-2770 aligncenter" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png" alt="" width="75" height="75" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w" sizes="(max-width: 75px) 100vw, 75px" /></p>
<p>&nbsp;</p>
<h2><span style="color: #800080;">Główne źródła zbierania danych dla systemu rozpoznawania komend głosowych</span></h2>
<p>&nbsp;</p>
<p><span data-contrast="auto"><span class="TextRun SCXW189727610 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW189727610 BCX0"><span class="TextRun SCXW21457896 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW21457896 BCX0"><img decoding="async" class=" wp-image-2768 alignleft" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png" alt="" width="71" height="71" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-50x50.png 50w" sizes="(max-width: 71px) 100vw, 71px" /></span></span></span></span></span>W ostatnich miesiącach pojawiły się zbiory danych: <strong><a href="https://commonvoice.mozilla.org/pl">Common Voice</a> i <a href="https://zasobynauki.pl/zasoby/korpus-nagran-probek-mowy-do-celow-budowy-modeli-akustycznych-dla-automatycznego-rozpoznawania-mowy,56411/">Zasoby Nauki</a></strong>, które są odpowiednio przygotowane pod modele ASR (Automatic Speech Recognition). Oznacza to, że nagrania dźwiękowe zawierają również transkrypcje. Są to tak naprawdę dwa największe zbiory danych, które można użyć. Do zbudowania własnego systemu wykorzystaliśmy więc je i złączyliśmy w jedno.</p>
<p><a href="https://commonvoice.mozilla.org/pl">Common Voice</a> jest ciekawym zbiorem danych. Jeżeli chcemy aby ich ilość była jeszcze większa, możemy kontrybuować w tym działaniu. Każdy z nas może wejść na stronę i nagrać swój głos, który zostanie zapisany, a następnie sprawdzony przez innych użytkowników. W ten sposób będziemy mogli przyczynić się do powiększenia ilości danych z języka polskiego, dzięki czemu budowanie systemów rozpoznawania komend głosowych będzie łatwiejsze.</p>
<p>W przyszłości istnieje możliwość, że YouTube udostępni do wykorzystania swoje nagrania audio razem z automatycznie generowanymi transkrypcjami. Jest to jednak rozwiązanie, które (być może) powstanie dopiero później. Dodatkowym źródłem danych mogą również być audiobooki, które zawierają transkrypcję książek i nagrania audio. W takim przypadku musimy jednak wykonać pracę przygotowania danych polegającą na pofragmentowaniu danych na krótsze nagrania. Dodatkowo zmienna intonacja lektora może wpływać na dokładność wyuczonych przez nas modeli.</p>
<p>&nbsp;</p>
<p><img decoding="async" class=" wp-image-2770 aligncenter" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png" alt="" width="75" height="75" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w" sizes="(max-width: 75px) 100vw, 75px" /></p>
<p>&nbsp;</p>
<h2><span style="color: #800080;">Przygotowanie i ujednolicenie danych</span></h2>
<p>&nbsp;</p>
<p><span data-contrast="auto"><span class="TextRun SCXW189727610 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW189727610 BCX0"><span class="TextRun SCXW21457896 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW21457896 BCX0"><img loading="lazy" decoding="async" class=" wp-image-2768 alignleft" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png" alt="" width="87" height="87" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-50x50.png 50w" sizes="(max-width: 87px) 100vw, 87px" /></span></span></span></span></span>Przede wszystkim musimy zapewnić minimalną i maksymalną długość nagrania. Muszą one znajdować się w określonych ramach czasowych. Zbyt długie nagrania mogą być problemem podczas uczenia modelu, natomiast krótkie nagrania mogą nie nieść ze sobą żadnej istotnej informacji. Musimy także zapewnić jednakową częstotliwość próbkowania sygnału. Jest to bardzo ważna kwestia przy uczeniu modeli opartych na dźwięk.</p>
<p>Fala dźwiękowa czystego tonu, rozchodząca się w przestrzeni, ma charakter sinusoidalny. Zmiana częstotliwości takiego dźwięku oznacza zmianę okresu sinusoidy, więc zmieniają się odległości między jej grzbietami. Jednak dźwięk w komputerze również musi być w jakiś sposób zaprezentowany. Sinusoida jest przebiegiem ciągłym, natomiast komputer zapisuje pojedyncze wartości. Częstotliwość próbkowania mówi nam o tym, ile razy na sekundę została zapisana wartość rejestrowanej fali dźwiękowej. Bardzo ważne jest to, żeby każdy dźwięk, który wchodzi do naszego modelu miał taką samą częstotliwość próbkowania.</p>
<p>Poprzez nieprawidłowe próbkowanie rekonstruowany dźwięk może być zniekształcony lub całkowicie niesłyszalny. Trzeba więc pamiętać o odpowiednim dobraniu częstotliwości próbkowania, aby zminimalizować rozmiar zapisywanych danych przy jednoczesnym braku utraty informacji. Zbyt rzadkie próbkowanie może spowodować pojawienie się zjawiska aliasingu, czyli nakładania się wyższych częstotliwości na niższe.</p>
<p><img loading="lazy" decoding="async" data-attachment-id="4749" data-permalink="https://inero-software.com/pl/budowa-systemu-rozpoznawania-komend-glosowych/picture1/" data-orig-file="https://inero-software.com/wp-content/uploads/2022/03/Picture1.png" data-orig-size="605,454" 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="Picture1" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2022/03/Picture1-300x225.png" data-large-file="https://inero-software.com/wp-content/uploads/2022/03/Picture1.png" tabindex="0" role="button" class="aligncenter wp-image-4749 size-full" src="https://inero-software.com/wp-content/uploads/2022/03/Picture1.png" alt="częstotliwość próbkowania dźwięku" width="605" height="454" srcset="https://inero-software.com/wp-content/uploads/2022/03/Picture1.png 605w, https://inero-software.com/wp-content/uploads/2022/03/Picture1-300x225.png 300w, https://inero-software.com/wp-content/uploads/2022/03/Picture1-400x300.png 400w" sizes="(max-width: 605px) 100vw, 605px" /></p>
<p style="text-align: center;"><em>Źródło: <a href="https://pbc.gda.pl/dlibra/publication/109835/edition/98484/content">Reprezentacje danych dźwiękowych w kontekście metod uczenia maszynowego</a>, s. 134, Tymoteusz Cejrowski</em></p>
<p>Zapobieganie takiemu zjawisku polega na próbkowaniu sygnału z częstotliwością co najmniej dwa razy większą od najwyższej częstotliwości występującej w sygnale. Częstotliwość ta nazywana jest częstotliwością Nyqiusta. Dla przykładu, nagrania na płytach CD są zapisywane z częstotliwością próbkowania 44100 Hz. Natomiast maksymalna poprawnie zrekonstruowana częstotliwość będzie wynosiła 22050 Hz, co odpowiada górnemu zakresowi dźwięków słyszalnych przez człowieka.</p>
<p>&nbsp;</p>
<p><img decoding="async" class=" wp-image-2770 aligncenter" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png" alt="" width="75" height="75" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w" sizes="(max-width: 75px) 100vw, 75px" /></p>
<p>&nbsp;</p>
<h2><span style="color: #800080;">Opis i uczenie modelu deepspeech w systemie rozpoznawania komend głosowych</span></h2>
<p>&nbsp;</p>
<p><span data-contrast="auto"><span class="TextRun SCXW189727610 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW189727610 BCX0"><span class="TextRun SCXW21457896 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW21457896 BCX0"><img loading="lazy" decoding="async" class=" wp-image-2768 alignleft" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png" alt="" width="48" height="48" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-50x50.png 50w" sizes="(max-width: 48px) 100vw, 48px" /></span></span></span></span></span>Sieci neuronowe w pewien sposób przypominają układ nerwowy. Podstawowymi jednostkami w takich sieciach są neurony, które rozmieszczone są w warstwach. Jest to uproszczony model procesu przetwarzania informacji przez ludzki umysł.</p>
<p>Zazwyczaj sieć neuronowa składa się z trzech części. Pierwsza to warstwa wejściowa, która posiada jednostki reprezentujące zmienne wejściowe. Następna część to warstwy ukryte, które zawierają jednostki nieobserwowane i są ukrytym stanem sieci neuronowej. To właśnie od tych warstw w dużej mierze zależy efektywność modelu. Natomiast ostatnią częścią jest oczywiście warstwa wyjściowa, która posiada jednostki reprezentujące zmienne przewidywane. Wszystkie jednostki złączone są konkretnymi połączeniami o różnej wadze. Dane wejściowe znajdują się na pierwszej warstwie, przechodzą one przez kolejne, a ostatecznie z warstwy wyjściowej otrzymujemy wynik.</p>
<p>Sieć neuronowa uczy się przez porównywanie rekordów. Generuje ona predykcje dla konkretnych danych (nagrań audio) i wprowadza korekty wag, jeśli generują one niepoprawną predykcję (złą transkrypcję). Cały proces powtarzany jest wiele razy do uzyskania satysfakcjonującej dokładności. Wszystkie wagi na początku mają charakter losowy, a odpowiedzi wychodzące nie mają dużo sensu, z czasem natomiast sieć poprawia swoje predykcje. Dzieje się tak, ponieważ sieć dopasowuje się do danych w procesie uczenia wykorzystując algorytm wstecznej propagacji błędu.</p>
<p>Jednym z najprostszych modeli Sieci Neuronowych jest <strong>Perceptron wielowarstwowy</strong>. Składa się on z wielu warstw neuronowych. Neurony poprzedniej warstwy tworzą konkretny wektor, który jest podawany na wejście neuronów do warstwy następnej. Pojedynczy neuron w warstwie następnej ma liczbę wejść równej liczbie neuronów z warstwy poprzedniej +1. Jednak w ramach jednej warstwy, neurony między sobą nie mają żadnych połączeń. Taki typ modelu nazywany jest również modelem „Feed-Forward” i jest jedną z podstawowych architektur sieci neuronowych.</p>
<p><img loading="lazy" decoding="async" data-attachment-id="4750" data-permalink="https://inero-software.com/pl/budowa-systemu-rozpoznawania-komend-glosowych/picture2/" data-orig-file="https://inero-software.com/wp-content/uploads/2022/03/Picture2.png" data-orig-size="361,461" 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="Picture2" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2022/03/Picture2-235x300.png" data-large-file="https://inero-software.com/wp-content/uploads/2022/03/Picture2.png" tabindex="0" role="button" class="wp-image-4750 size-full aligncenter" src="https://inero-software.com/wp-content/uploads/2022/03/Picture2.png" alt="model sieci feed-forward" width="361" height="461" srcset="https://inero-software.com/wp-content/uploads/2022/03/Picture2.png 361w, https://inero-software.com/wp-content/uploads/2022/03/Picture2-235x300.png 235w" sizes="(max-width: 361px) 100vw, 361px" /></p>
<p style="text-align: center;"><em>Rysunek przedstawiający model „Feed-Forward”</em></p>
<p><strong>Sieci rekurencyjne</strong> różnią się od sieci typu „Feed-Forward” w wielu aspektach. Jedną z głównych różnic jest sposób propagacji danych wejściowych na wyjście sieci. W najprostszym modelu wyjście sieci jest niczym innym kombinacją wag i wejścia modelu (pojedynczego rekordu). W przypadku sieci rekurencyjnych wyjście modelu zależy również od poprzedniego wyjścia. Wynik działania modelu dla rekordu X jest brany pod uwagę przy wyliczaniu wyjścia dla kolejnego rekordu Y.</p>
<p><strong>Konwolucyjna sieć neuronowa</strong> jest typem sieci najczęściej stosowanej do analizy obrazów wizualnych z uwagi na swój charakter procesowania wejścia. Podobnie jak człowiek, sieć ta nie analizuje obrazu piksel po pikselu ale wyłapuje wzorce obecne w danych wejściowych dzięki zastosowaniu tzw. Kerneli czyli filtrów. Każda warstwa w sieci neuronowej uczy się cech obrazu takich jak kontury czy nasycenie światłem. Złożenie tych informacji poprawia efektywność modelu.</p>
<p>Poza neuronowymi modelami rozpoznawania mowy, warto pochylić się nad open source’owymi systemami, które umożliwiają zbudowanie systemu rozpoznawania komend głosowych. Jednym z nich jest <a href="http://kaldi-asr.org"><strong>Kaldi</strong></a>, który został napisany w C++. Powstał on w 2009 roku, a jego głównymi cechami jest to, że system ten jest rozszerzalny i cały czas rozwijany. Udostępnia on m.in. narzędzia do pre-procesowania nagrań audio czy modeli opartych o Ukryte Modele Markowa (HMM). Sama społeczność udostępnia wiele innych modułów, które można wykorzystać do własnych zadań. Kaldi, poza modelami statystycznymi, obsługuje także głębokie sieci neuronowe. Pomimo tego, że jest napisany głównie w C++, to posiada on skrypty w jezyku Bash czy Python.</p>
<p>W naszej pracy skupiliśmy się jednak na konkretnym modelu ASR: <a href="https://github.com/SeanNaren/deepspeech.pytorch"><strong>deepspeech</strong></a><strong> 2</strong>. Jest to model, który wykorzystuje głębokie uczenie (ang. Deep Learning), składa się on z 3 warstw konwolucyjnych, 8 rekurencyjnych i jednej Fully-Connected. Deepspeech 2 można z powodzeniem wyuczyć na dowolnym języku, trzeba jednak pamiętać, że takie uczenie wymaga wydajnego systemu komputerowego/serwerowego wyposażonego w odpowiednią ilość kart graficznych lub akceleratorów obliczeń.</p>
<p>W przypadku popularnych języków takich jak angielski czy mandaryński można znaleźć przetrenowane modele gotowe do użycia. W naszym zadaniu wybraliśmy deepspeech 2 z implementacją w <a href="https://github.com/SeanNaren/deepspeech.pytorch">PyTorchu</a>, ponieważ jest on lekki, ma stosunkowo mało parametrów (wag do wyuczenia) i wybrana przez nas implementacja jest aktywnie utrzymywana. W tym modelu oprócz przygotowania odpowiednich częstotliwości próbkowania o których pisaliśmy wyżej, musieliśmy również przygotować odpowiednio dane pod sam model deepspeech. Wiązało się to z zapewnieniem odpowiedniej struktury katalogów.</p>
<p>&nbsp;</p>
<p><img decoding="async" class=" wp-image-2770 aligncenter" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png" alt="" width="75" height="75" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w" sizes="(max-width: 75px) 100vw, 75px" /></p>
<p>&nbsp;</p>
<h2><span style="color: #800080;">Wnioskowanie z użyciem modeli ASR i dodatkowego modelu językowego</span></h2>
<p>&nbsp;</p>
<p><span data-contrast="auto"><span class="TextRun SCXW189727610 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW189727610 BCX0"><span class="TextRun SCXW21457896 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW21457896 BCX0"><img loading="lazy" decoding="async" class=" wp-image-2768 alignleft" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png" alt="" width="101" height="101" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-50x50.png 50w" sizes="(max-width: 101px) 100vw, 101px" /></span></span></span></span></span>Wykorzystując deepspeech jesteśmy w stanie zastosować dodatkowy model językowy (model n-gramowy). Opiera się on na statystykach i pomaga w przewidywaniu kolejnego elementu sekwencji w wynikowej transkrypcji. Trzeba pamiętać, że zastosowanie takiego modelu wymaga zgromadzenia dużego zasobu danych statystycznych. N-gramy pomagają maszynom w zrozumieniu słowa w konkretnym kontekście. Dzięki temu mogą one lepiej zrozumieć jego przeznaczenie.</p>
<p>Jeśli chcemy utworzyć taki model, zaczynamy od zliczania wystąpień sekwencji o ustalonej długości <em>n</em> w istniejących już zasobach językowych. Analizuje się więc całe teksty i zlicza się pojedyncze wystąpienia (1-gram), dwójki (2-gramy) i trójki (3-gramy). Możemy również uzyskać model 4-gramowy, jednak tutaj potrzebne są już ogromne zbiory danych, przez co dla języka polskiego jest to niezwykle trudne do zrealizowania. W kolejnym kroku zamienia się liczbę wystąpień na prawdopodobieństwo poprzez normalizację. W ten sposób zyskujemy predykcję kolejnego elementu na podstawie dotychczasowych sekwencji. Warto zaznaczyć, że im więcej przeanalizowanego tekstu, tym wyższa jakość modelu. Dane te są głównie wykorzystywane w aplikacjach przetwarzania języka naturalnego (NLP). Model n-gramowy dla języka polskiego można znaleźć <a href="https://zasobynauki.pl/zasoby/model-jezykowy-dla-jezyka-polskiego,55644/">tutaj</a>.</p>
<p>Użycie modelu n-gramowego na etapie wnioskowania pozwala na skorygowanie wyjścia sieci neuronowej (transkrypcji modelu deepspeech 2) zgodnie z regułami zawartymi w modelu n-gramowym.</p>
<p>&nbsp;</p>
<p><img decoding="async" class=" wp-image-2770 aligncenter" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png" alt="" width="75" height="75" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w" sizes="(max-width: 75px) 100vw, 75px" /></p>
<p>&nbsp;</p>
<h2><span style="color: #800080;">Działanie w ograniczonym zbiorze komend</span></h2>
<p>&nbsp;</p>
<p><span data-contrast="auto"><span class="TextRun SCXW189727610 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW189727610 BCX0"><span class="TextRun SCXW21457896 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW21457896 BCX0"><img loading="lazy" decoding="async" class=" wp-image-2768 alignleft" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png" alt="" width="101" height="101" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-50x50.png 50w" sizes="(max-width: 101px) 100vw, 101px" /></span></span></span></span></span>Niestety budowane modele nie mogą być wystarczająco dokładne ze względu na małą ilość danych w języku polskim. W naszym przypadku możemy jednak działać w ograniczonym zbiorze komend. Oznacza to, że rozpoznawaniu podlega konkretna ilość komend głosowych. Nasze zadanie polegało na tym, żeby dopasować odpowiednią komendę ze zbioru z tym co dostarczył nam model. Ważne jest tutaj określenie najwyższego podobieństwa pomiędzy komendą, a tym co zwrócił nam model.</p>
<p>Do tego zadania wykorzystaliśmy miarę zwaną <strong>odległością Levenshteina</strong>, która wskazuje na podobieństwo pomiędzy transkrypcją, a daną komendą. Polega ona na zliczaniu pozycji lub liter, które się nie zgadzają. Przykładowo, odległość Levenshteina pomiędzy wyrazami:</p>
<ul>
<li>drzwi</li>
<li>drzwi</li>
</ul>
<p>Jest zerowa. Są to wyrazy identyczne, więc nie potrzeba tutaj żadnych działań.</p>
<p>Natomiast odległość Levenshteina pomiędzy wyrazami:</p>
<ul>
<li>kołacz</li>
<li>połać</li>
</ul>
<p>wynosi 3, ponieważ potrzeba co najmniej 3 działań: zamiany <strong>k</strong> na <strong>p</strong>, zamiany <strong>c</strong> na <strong>ć</strong> i usunięcia litery <strong>z</strong>.</p>
<p>Tam, gdzie jest najmniej podstawień, posiadamy największe prawdopodobieństwo, że komendy są takie same.</p>
<p>&nbsp;</p>
<p><img decoding="async" class=" wp-image-2770 aligncenter" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png" alt="" width="75" height="75" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w" sizes="(max-width: 75px) 100vw, 75px" /></p>
<p>&nbsp;</p>
<h2><span style="color: #800080;">Podsumowanie</span></h2>
<p>&nbsp;</p>
<p><span data-contrast="auto"><span class="TextRun SCXW189727610 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW189727610 BCX0"><span class="TextRun SCXW21457896 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW21457896 BCX0"><img loading="lazy" decoding="async" class=" wp-image-2768 alignleft" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png" alt="" width="101" height="101" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-50x50.png 50w" sizes="(max-width: 101px) 100vw, 101px" /></span></span></span></span></span>Celem systemów rozpoznawania głosu jest zapewnienie łatwości w komunikacji między urządzeniem a człowiekiem. Podejście wykorzystujące narzędzia Open-Source w zadaniu uczenia modeli ASR na razie ogranicza się do rozpoznawania ograniczonego zbioru komend. Budowanie takiego sytemu w oparciu o dane w języku polskim jest trudnym zadaniem, ze względu na małą ilość danych dźwiękowych połączonych z transkrypcjami. Zastosowanie miary podobieństwa pomiędzy transkrypcją a zbiorem komend pozwala na zbudowanie użytecznego systemu ASR działającego w trybie offline. Biorąc pod uwagę aktualne trendy w wykorzystaniu inteligentnych urządzeń oraz możliwości techniczne, warto obserwować dalszy rozwój tych systemów i pojawiające się nowe zbiory danych.</p>
<p><a href="https://inero-software.com/pl/"><span style="color: #800080;"><strong>Inero Software</strong></span></a> oferuje wiedzę i doświadczenie w zakresie skutecznego wykorzystywania najnowocześniejszych technologii i danych do kształtowania korporacyjnych produktów cyfrowych przyszłości.</p>
<p>W sekcji <a href="https://inero-software.com/pl/category/firma/"><span style="color: #800080;"><strong>BLOG</strong></span></a> można znaleźć inne artykuły dotyczące nowoczesnych rozwiązań dla przedsiębiorstw.</p>
<p><strong><span style="color: #000000;">Redakcja: Tymoteusz Cejrowski, Software Developer.</span></strong></p>
<p></p></div><br />
</p></div>
<p>Artykuł <a href="https://inero-software.com/pl/budowa-systemu-rozpoznawania-komend-glosowych/">Budowa systemu rozpoznawania komend głosowych w języku polskim</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">4748</post-id>	</item>
		<item>
		<title>Tożsamość cyfrowa w dobie pracy zdalnej</title>
		<link>https://inero-software.com/pl/zarzadzanie-tozsamoscia-i-dostepem/</link>
		
		<dc:creator><![CDATA[Andrzej Chybicki]]></dc:creator>
		<pubDate>Mon, 21 Mar 2022 11:02:59 +0000</pubDate>
				<category><![CDATA[Blog_pl]]></category>
		<category><![CDATA[Firma]]></category>
		<category><![CDATA[Technologie]]></category>
		<category><![CDATA[cyberbezpieczeństwo]]></category>
		<category><![CDATA[cyfrowa tożsamość]]></category>
		<category><![CDATA[IAM]]></category>
		<category><![CDATA[SSO]]></category>
		<category><![CDATA[zarządzanie dostępem i tożsamością]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=4340</guid>

					<description><![CDATA[<p>Cyfrowa tożsamość to zbiór indywidualnych loginów i haseł, z których korzystamy w różnych systemach. Jeżeli posiadamy ich wiele, to dysponujemy dużą ilością danych logowania. W dalszej perspektywie może być to uciążliwe, szczególnie w sytuacjach, kiedy zapominamy jednego z haseł, przez co później musimy je odzyskiwać.</p>
<p>Artykuł <a href="https://inero-software.com/pl/zarzadzanie-tozsamoscia-i-dostepem/">Tożsamość cyfrowa w dobie pracy zdalnej</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>&nbsp;</p>
<p>&nbsp;</p>
<div class="row">
<p><div class="col-sm-1"></div></p>
<p><div class="col-sm-10">
<p><img loading="lazy" decoding="async" class=" wp-image-2770 aligncenter" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png" alt="" width="91" height="91" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w" sizes="(max-width: 91px) 100vw, 91px" /></p>
<p>&nbsp;</p>
<h2 aria-level="1"><span style="color: #800080;">Cyfrowa tożsamość w dobie pracy zdalnej i pandemii </span></h2>
<p>&nbsp;</p>
<p><span data-contrast="auto"><span class="TextRun SCXW252288117 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW252288117 BCX0"><img loading="lazy" decoding="async" class=" wp-image-2873 alignleft" src="https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08.png" alt="" width="99" height="99" srcset="https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08.png 208w, https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-50x50.png 50w" sizes="(max-width: 99px) 100vw, 99px" /></span></span>Okres pracy zdalnej i postępująca cyfryzacja usług przyczyniła się do popularyzacji narzędzi i systematów informatycznych w naszej codziennej pracy. Obok powszechnie znanych narzędzi takich jak systemy Office, Outlook, komunikatory, narzędzia telekonferencje typu Microsoft Teams czy Google Meets, zdalnie pracujemy także z coraz bardziej wyspecjalizowanymi systemami takimi jak systemy obiegu dokumentacji, fakturowania czy inne. Aby uwzględnić wymagania prawne i zapewnić bezpieczeństwo danych w tych systemach, dostęp do nich musi być odpowiednio zabezpieczony i skonfigurowany. Z jednej strony, ważne jest aby użytkownicy mogli z nich korzystać możliwie w łatwy sposób, np. bez konieczności wpisywania loginu hasła za każdym razem kiedy chcą uzyskać do nich dostęp. Z drugiej, istotnym jest także, aby osoby postronne, dostawcy nie mogli bez odpowiedniej autoryzacji uzyskać dostępu do zasobów zawartych w tych systemach, zgodnie z polityką bezpieczeństwa naszej organizacji. </span></p>
<p><span data-contrast="auto">W dużych zespołach korporacyjnych, których pracownicy są fizyczne rozmieszczeni w różnych lokalizacjach, miastach a nawet krajach, kwestia ta ma jeszcze większe znaczenie. Mimo że osoby zatrudnione w takich zespołach pracują z różnych miejsc to wiele zasobów musi być ze sobą zintegrowanych, a ujednolicony dostęp do nich usprawnia pracę i ułatwia komunikację oraz zarządzanie.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> Prostym przykładem takich zintegrowanych rozwiązań mogą być systemy obiegu dokumentów i fakturowania</span><span data-contrast="auto">. Dla przykładu, pracownik posiadający dostęp do systemu zarządzania umowami obsługuje również system fakturowy. Dla bardziej złożonych procesów biznesowych, logowanie się do różnych systemów działających w obrębie korporacji może być jednak uciążliwe. Każdy z pracowników musi pamiętać swoje unikatowe login i hasło, które w ogólności powinny być różne dla każdego z wykorzystywanych systemów. Jednocześnie, każdy pracownik logując się do dowolnego z tych systemów, chce mieć jedną tożsamość, ponieważ tak naprawdę zawsze reprezentuje tą samą, fizyczną osobę i w każdym z tych systemów podlega konkretnej grupie autoryzacji i uprawnień wynikających z przypisanego mu stanowiska, obowiązków służbowych oraz innych. W takich sytuacjach właśnie stosuje się systemy zarządzania tożsamością </span><b><span data-contrast="auto">(ang. <a href="https://inero-software.com/pl/rozwiazania-logistyczne/cyberbezpieczenstwo/">IAM &#8211; Identity and Access Management</a>)</span></b><span data-contrast="auto">.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span style="color: #800080;"><strong>Czym jest cyfrowa tożsamość &#8211; digital identity?<br />
</strong></span><span data-contrast="auto">Cyfrowa tożsamość to zbiór indywidualnych loginów i haseł, z których korzystamy w różnych systemach. Jeżeli posiadamy ich wiele, to dysponujemy dużą ilością danych logowania. W dłuższej perspektywie może być to uciążliwe, szczególnie w sytuacjach, kiedy użytkownik zapomni jednego z haseł, przez co później musi je odzyskiwać. W takim przypadku jest to trudne do zarządzania zarówno ze strony użytkowników, jak i administratorów.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">IAM to narzędzie, które zapewnia skuteczne zarządzanie dostępem do zasobów informacyjnych. Za pomocą takiego rozwiązania można z wykorzystaniem jednego mechanizmu obsługiwać konta zarówno istniejących jak i nowo utworzonych. System zarządzania tożsamością pomaga również w administrowaniu danymi użytkowników, którzy odeszli z organizacji lub zmienili się ich status. W ten sposób można bez problemu zmienić lub wygasić ich uprawnienia.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">Jednym z częściej pojawiających się pojęć podczas tworzenia IAM jest pojęcie </span><a href="https://inero-software.com/pl/rozwiazania-logistyczne/cyberbezpieczenstwo/"><b><span data-contrast="auto">SSO (Single-Sign-On)</span></b></a><span data-contrast="auto">. SSO to koncepcja budowania rozwiązań autoryzacji, która pozwala nam logować się do wielu systemów przy wykorzystaniu z jednego wspólnego punktu logowania. Charakteryzuje się on również tym że że posiada jeden wspólny moduł zarządzania użytkownikami, ich uprawnieniami oraz autoryzacją dla wszystkich systemów. Pozwalają one na zarządzanie naszą cyfrową tożsamością w zunifikowany sposób. W efekcie, użytkownik posiada jeden login i hasło do wielu systemów, za pomocą których może się autentyfikować.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p>&nbsp;</p>
<h6><span style="color: #800080;">Wpływ COVID-19 na zintegrowane zarządzenie autoryzacją </span></h6>
<p>&nbsp;</p>
<p><span data-contrast="auto"><span class="TextRun SCXW252288117 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW252288117 BCX0"><img loading="lazy" decoding="async" class=" wp-image-2873 alignleft" src="https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08.png" alt="" width="75" height="75" srcset="https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08.png 208w, https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-50x50.png 50w" sizes="(max-width: 75px) 100vw, 75px" /></span></span>W ostatnich dwóch latach systemy klasy IAM są coraz częściej stosowane z uwagi na konieczność pracy zdalnej lub hybrydowej. IAM ma ogromne znaczenie w zabezpieczeniu zasobów cyfrowych. Ważne jest aby wiedzieć iż narzędzia te zapewniają nie tylko podstawowe uwierzytelnianie i autoryzację w celu zabezpieczenia danych pracownika, ale także dają możliwość autoryzacji wieloetapowej (ang. Mutli-factor authorization &#8211; MFA) np. z wykorzystaniem SMSów, mailów, komunikatorów, powiadomień zdalnych czy innych. </span></p>
<p><span data-contrast="auto"> </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><img loading="lazy" decoding="async" class=" wp-image-2770 aligncenter" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png" alt="" width="91" height="91" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w" sizes="(max-width: 91px) 100vw, 91px" /></p>
<p>&nbsp;</p>
<h2 aria-level="2"><span style="color: #800080;">Kiedy ważne jest zarządzanie tożsamością i dostępem? </span></h2>
<p>&nbsp;</p>
<p><span data-contrast="auto">Zarządzanie cyfrową tożsamością odbywa się tak naprawdę zawsze gdy korzystamy ze swojego unikalnego loginu. Prostym przykładem użycia cyfrowej tożsamości może być integracja konta Google z przeglądarką Chrome. W przypadku korporacyjnych rozwiązań nasza tożsamość musi być dokładniej uwierzytelniana, dlatego za każdym razem gdy logujemy się do np. poczty przez przeglądarkę internetową musimy podawać swój login i hasło. </span></p>
<blockquote>
<p style="text-align: center;"><span style="color: #800080;"><i>„Według raportu Verizon Data Breach Investigations, ponad 70% pracowników wielokrotnie używa tych samych haseł w pracy. Raport stwierdza, że 81% naruszeń związanych z hakowaniem wykorzystywało skradzione lub słabe hasła”</i> </span></p>
</blockquote>
<p><span data-contrast="auto">Podstawową zasadą tworzenia systemów IAM jest to, żeby nie tworzyć nowych rozwiązań w zakresie bezpieczeństwa, </span><b><span data-contrast="auto">ale przede wszystkim wykorzystywać standardy i sprawdzone metody zabezpieczeń. </span></b><span data-contrast="auto">Narzędzia, które pozwalają nam na wykorzystanie standardowych podejść do zapewnienia bezpieczeństwa i wygody użytkowania w zakresie autoryzacji dla różnych scenariuszy połączeń rozmaitych systemów, to między innymi:</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<ul>
<li data-leveltext="" data-font="Symbol" data-listid="2" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Azure B2C</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="2" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">OAuth2</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="2" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><span data-contrast="auto">Open ID Connect</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="2" aria-setsize="-1" data-aria-posinset="4" data-aria-level="1"><span data-contrast="auto">Identity Server</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="2" aria-setsize="-1" data-aria-posinset="5" data-aria-level="1"><span data-contrast="auto">Active Directory</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="2" aria-setsize="-1" data-aria-posinset="5" data-aria-level="1"><span data-contrast="auto">KeyCloak</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="2" aria-setsize="-1" data-aria-posinset="5" data-aria-level="1"><span data-contrast="auto">Amazon Cognito</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="2" aria-setsize="-1" data-aria-posinset="5" data-aria-level="1"><span data-contrast="auto">Google IAM</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></li>
</ul>
<p><span data-contrast="auto">Wspominając o zarządzaniu cyfrową tożsamością konieczne jest wskazanie różnic pomiędzy autoryzacją a autentyfikacją. Autoryzacja daje możliwość dostępu do potwierdzania czy dana osoba jest dopuszczona do skorzystania z jakiegoś zasobu (np. modułu, funkcji lub bazy danych), a autentyfikacja oznacza potwierdzanie tożsamości.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> <img loading="lazy" decoding="async" data-attachment-id="4265" data-permalink="https://inero-software.com/pl/rozwiazania/cyberbezpieczenstwo/rysunek-2-pl/" data-orig-file="https://inero-software.com/wp-content/uploads/2022/02/rysunek-2-PL.png" data-orig-size="1920,1020" 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="rysunek 2 PL" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2022/02/rysunek-2-PL-300x159.png" data-large-file="https://inero-software.com/wp-content/uploads/2022/02/rysunek-2-PL-1030x547.png" tabindex="0" role="button" class="aligncenter wp-image-4265" src="https://inero-software.com/wp-content/uploads/2022/02/rysunek-2-PL-300x159.png" alt="rysunek obrazujący jednorazowe logowanie" width="1023" height="542" srcset="https://inero-software.com/wp-content/uploads/2022/02/rysunek-2-PL-300x159.png 300w, https://inero-software.com/wp-content/uploads/2022/02/rysunek-2-PL-1030x547.png 1030w, https://inero-software.com/wp-content/uploads/2022/02/rysunek-2-PL-768x408.png 768w, https://inero-software.com/wp-content/uploads/2022/02/rysunek-2-PL-1536x816.png 1536w, https://inero-software.com/wp-content/uploads/2022/02/rysunek-2-PL-565x300.png 565w, https://inero-software.com/wp-content/uploads/2022/02/rysunek-2-PL.png 1920w" sizes="(max-width: 1023px) 100vw, 1023px" /></span></p>
<p><img loading="lazy" decoding="async" class=" wp-image-2770 aligncenter" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png" alt="" width="91" height="91" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w" sizes="(max-width: 91px) 100vw, 91px" /></p>
<p>&nbsp;</p>
<h2 aria-level="2"><span style="color: #800080;">5 zalet zarządzania tożsamością i dostępem </span></h2>
<p>&nbsp;</p>
<h6><i><span data-contrast="none">Zwiększenie <a href="https://inero-software.com/pl/rozwiazania-logistyczne/cyberbezpieczenstwo/">cyber bezpieczeństwa</a> </span></i><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></h6>
<h6></h6>
<h6><i style="font-family: 'Open Sans'; font-size: 12px; font-weight: bold; text-transform: uppercase;"><span data-contrast="none"><img loading="lazy" decoding="async" class=" wp-image-1574 alignleft" src="https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02.png" alt="" width="63" height="63" srcset="https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02.png 208w, https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02-80x80.png 80w" sizes="(max-width: 63px) 100vw, 63px" /></span></i></h6>
<p><span data-contrast="auto">Dzięki rozwiązaniom IAM, firmy mogą wdrażać wspólne i zunifikowane polityki zabezpieczeń we wszystkich połączonych systemach. Korzystając z takich narzędzi administratorzy mogą bez problemu usuwać niepożądane uprawnienia dostępu w razie potrzeby, poprzez zapewnienie jednego spójnego systemu kont i haseł.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<h6><i><span data-contrast="none">Mniejsze koszty operacyjne w zakresie zarządzania infrastrukturą i bezpieczeństwem IT</span></i><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></h6>
<h6><i><span data-contrast="none"><img loading="lazy" decoding="async" class=" wp-image-1574 alignleft" src="https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02.png" alt="" width="63" height="63" srcset="https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02.png 208w, https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02-80x80.png 80w" sizes="(max-width: 63px) 100vw, 63px" /></span></i></h6>
<p><span data-contrast="auto">Wykorzystując zintegrowane systemy przedsiębiorstwa mogą obniżyć koszty w zakresie zarządzania infrastrukturą informatyczną minimalizując czas potrzebny na rozwiązywanie problemów związanych z kontem użytkownika.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<h6><i><span data-contrast="none">Wygodniejsze korzystanie z systemów przez użytkowników i administratorów</span></i><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></h6>
<h6><i><span data-contrast="none"><img loading="lazy" decoding="async" class=" wp-image-1574 alignleft" src="https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02.png" alt="" width="63" height="63" srcset="https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02.png 208w, https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02-80x80.png 80w" sizes="(max-width: 63px) 100vw, 63px" /></span></i></h6>
<p><span data-contrast="auto">Poprzez wdrożenie narzędzi IAM administratorzy są w stanie stworzyć unikalną tożsamość dla każdego użytkownika w prosty i szybko sposób. Nie muszą oni więc zarządzać dziesiątkami kont dla różnych aplikacji lub innych zasobów. Użytkownicy posiadają dostęp do systemów niezależnie od ich lokalizacji, czasu lub aktualnie wykorzystanego urządzenia.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<h6><i><span data-contrast="none">Możliwość łatwiejszego dostosowania się do regulacji polityk bezpieczeństwa korporacyjnego</span></i><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></h6>
<h6><i><span data-contrast="none"><img loading="lazy" decoding="async" class=" wp-image-1574 alignleft" src="https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02.png" alt="" width="63" height="63" srcset="https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02.png 208w, https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02-80x80.png 80w" sizes="(max-width: 63px) 100vw, 63px" /></span></i></h6>
<p><span data-contrast="auto">Korporacje zamawiając albo tworząc <a href="https://inero-software.com/logistics-solutions/">oprogramowanie</a> wdrażają polityki bezpieczeństwa mówiące o tym co może, a co nie może być dopuszczalne w konkretnych systemach informatycznych. Jeżeli mamy do czynienia z jednym systemem logowania kont, to o wiele łatwiej jest zarządzać taką polityką.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<h6><i><span data-contrast="none">Łatwiejsze odzyskiwanie i zarządzanie hasłami</span></i><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></h6>
<h6><i><span data-contrast="none"><img loading="lazy" decoding="async" class=" wp-image-1574 alignleft" src="https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02.png" alt="" width="63" height="63" srcset="https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02.png 208w, https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02-80x80.png 80w" sizes="(max-width: 63px) 100vw, 63px" /></span></i></h6>
<p><span data-contrast="auto">Dzięki rozwiązaniom IAM, problemy związane z bezpieczeństwem haseł zostaną zminimalizowane. Pomagają one administratorom wdrażać lepsze praktyki dotyczące zarządzania zabezpieczeniami. Mowa tutaj o częstych aktualizacjach danych logowania czy silniejszym uwierzytelnianiu.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" class=" wp-image-2770 aligncenter" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png" alt="" width="91" height="91" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w" sizes="(max-width: 91px) 100vw, 91px" /></p>
<p>&nbsp;</p>
<h2><span style="color: #800080;" data-contrast="none">Zarządzanie tożsamością i dostępem</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}"> &#8211; <span style="color: #800080;">podsumowanie</span></span></h2>
<p>&nbsp;</p>
<p><span data-contrast="auto">Jeżeli przedsiębiorstwa chcą zapewnić swoim pracownikom bezpieczeństwo i zwiększyć ich produktywność, powinny zdecydować się na zintegrowane zarządzanie tożsamością i dostępem. Po zalogowaniu się do głównego systemu użytkownicy nie muszą martwić się posiadaniem odpowiedniego hasła do innych struktur. Pracownik otrzymuje więc dostęp do idealnego zestawu narzędzi, dzięki którym może zwiększyć swoją produktywność.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<blockquote>
<p style="text-align: center;"><span style="color: #800080;"><i>„72% organizacji przekłada bezpieczeństwo nad wydajność operacyjną (52%) i zapobieganie naruszeniom (47%) co jest kluczowym czynnikiem rozwoju narzędzi IAM.”</i> </span></p>
<p><em>~Według <a href="https://www.cybersecurity-insiders.com/portfolio/2020-identity-and-access-management-report-download/">2020 IAM Report, Cybersecurity Insiders</a></em></p></blockquote>
<p><span data-contrast="auto"><a href="https://inero-software.com/logistics-solutions/cyber-security/">Cyfrowe zarządzanie tożsamością</a> to proces, który może być wdrażany etapami. Nie trzeba integrować wszystkich systemów w zakresie autoryzacji za jednym razem. Przedsiębiorstwo może zdecydować się na wprowadzanie pojedynczych systemów i z czasem dołączać kolejne struktury. </span></p>
<p><a href="https://inero-software.com/pl/"><span style="color: #800080;"><strong>Inero Software</strong></span></a> oferuje wiedzę i doświadczenie w zakresie skutecznego wykorzystywania najnowocześniejszych technologii i danych do kształtowania korporacyjnych produktów cyfrowych przyszłości w zakresie IAM, sztucznej inteligencji czy rozwiązań webowych.</p>
<p>W sekcji <a href="https://inero-software.com/pl/category/firma/"><span style="color: #800080;"><strong>BLOG</strong></span></a> można znaleźć inne artykuły dotyczące nowoczesnych rozwiązań dla przedsiębiorstw.</p>
<p><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p></p></div><br />
</p></div>
<p>Artykuł <a href="https://inero-software.com/pl/zarzadzanie-tozsamoscia-i-dostepem/">Tożsamość cyfrowa w dobie pracy zdalnej</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">4340</post-id>	</item>
		<item>
		<title>Zarządzanie danymi za pomocą uczenia maszynowego</title>
		<link>https://inero-software.com/pl/optymalizacja-procesow-biznesowych/</link>
		
		<dc:creator><![CDATA[Andrzej Chybicki]]></dc:creator>
		<pubDate>Mon, 07 Mar 2022 15:29:39 +0000</pubDate>
				<category><![CDATA[Blog_pl]]></category>
		<category><![CDATA[Firma]]></category>
		<category><![CDATA[Technologie]]></category>
		<category><![CDATA[optymalizacja procesów biznesowych]]></category>
		<category><![CDATA[sztuczna inteligencja]]></category>
		<category><![CDATA[uczenie maszynowe]]></category>
		<category><![CDATA[zarządzanie danymi]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=4335</guid>

					<description><![CDATA[<p>Wraz z rewolucją Industry 4.0 produkcja zautomatyzowała się. Mamy więcej automatycznych urządzeń i pomiarów, przez co obsługujemy większą ilość danych. Stają się one siłą napędową produkcji przemysłowej i obejmują wszystkie jej aspekty. Dane mogą dotyczyć produktów, sprzętu, badań, łańcucha dostaw, finansów czy użytkowników. </p>
<p>Artykuł <a href="https://inero-software.com/pl/optymalizacja-procesow-biznesowych/">Zarządzanie danymi za pomocą uczenia maszynowego</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>&nbsp;</p>
<div class="row">
<p><div class="col-sm-1"></div></p>
<p><div class="col-sm-10">
<p>&nbsp;</p>
<h2 aria-level="1"><span style="color: #800080;" data-contrast="none">Ogromne ilości danych w życiu biznesowym</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:0,&quot;335559740&quot;:259}"> </span></h2>
<p>&nbsp;</p>
<p><span data-contrast="auto"><span class="TextRun SCXW189727610 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW189727610 BCX0"><span class="TextRun SCXW21457896 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW21457896 BCX0"><img loading="lazy" decoding="async" class=" wp-image-2768 alignleft" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png" alt="" width="92" height="92" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-50x50.png 50w" sizes="(max-width: 92px) 100vw, 92px" /></span></span></span></span>W ostatnich latach rewolucja Przemysł 4.0 (Industry 4.0) wprowadziła powszechną automatyzację i digitalizację produkcji. Skutkuje to wprowadzaniem automatyzacji w procesie decyzyjnym oraz produkcyjnym, wdrażaniem nowych urządzeń i pomiarów, a w efekcie dostępem do większej liczby danych pomiarowych oraz biznesowych dotyczących procesu produkcji. Urządzenia oraz dane stają się siłą napędową produkcji przemysłowej i obejmują wszystkie jej aspekty, mogą dotyczyć produktów, sprzętu, badań, <a href="https://inero-software.com/pl/zarzadzanie-lancuchem-dostaw/">łańcucha dostaw</a>, finansów czy nawet użytkowników.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">Dzięki odpowiedniemu przepływowi danych, moduły wchodzące w skład procesu produkcyjnego pozwalają na jego dostosowanie do bieżących potrzeb wynikających z bieżącego portfela zamówień, jakości surowców, terminów dostaw oraz innych. W ten sposób każda część linii produkcyjnej staje się w pewnym sensie modyfikowalnym zasobem, przez co przedsiębiorstwo może pozwolić sobie na spersonalizowaną produkcję odzwierciedlając i przewidując potrzeby konsumentów. </span><b><span data-contrast="auto">Tworzy się więc odpowiedni cykl produktowy: produkcja -&gt; sprzedaż -&gt; informacja zwrotna.</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">Ilość, złożoność danych oraz wzajemne powiązania pomiędzy nimi sprawiają, że interpretacja i przyjmowanie ich wykracza poza ludzkie możliwości. Przy złożonym procesie produkcyjnym niezwykle trudno jest szybko i z dużą dozą prawdopodobieństwa określić, wpływ poszczególnych komponentów na ostateczną wydajność i jakoś produkcji. To samo tyczy się jakości towarów, jeżeli szybkość ich produkcji jest na naprawdę wysokim poziomie. Wykorzystując zintegrowane procesy przetwarzania danych możemy podzielić moduły na różne narzędzia, takie jak systemy transmisji danych, systemy do pozyskiwania danych czy systemy sprzężenia zwrotnego danych. Chcąc korzystać z mechanizmów z technologii IT i uczenia maszynowego należy zamodelować proces produkcji tak, aby poddać go szczegółowej analizie.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p>&nbsp;</p>
<h2 aria-level="2"><span style="color: #800080;">Optymalizacja procesów biznesowych </span></h2>
<p>&nbsp;</p>
<p><span data-contrast="auto"><span class="TextRun SCXW153317933 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW153317933 BCX0"><span class="TextRun SCXW189727610 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW189727610 BCX0"><span class="TextRun SCXW21457896 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW21457896 BCX0"><img loading="lazy" decoding="async" class="wp-image-2768 size-thumbnail alignleft" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-80x80.png" alt="Paragrapgh icon" width="80" height="80" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-50x50.png 50w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png 208w" sizes="(max-width: 80px) 100vw, 80px" /></span></span></span></span></span></span>Jednak same dane nie wystarczą. </span><b><span data-contrast="auto">Ważne jest, aby z danych wydobywać cenne informacje i wiedzę.</span></b><span data-contrast="auto"> Właśnie tym zajmuje się <a href="https://inero-software.com/pl/uczenie-maszynowe/">Machine Learning</a>. Pozwala on ocenić trendy, zależności pomiędzy danymi, powiązania między danymi mierzonymi a innymi danymi z różnych procesów czy przewidywać wydarzenia na podstawie tego co było. Dzisiejsze zakłady produkcyjne stają się coraz bardziej złożone z wzajemnie powiązanymi procesami. Człowiek w takich sytuacjach szybko osiąga granicę swoich możliwości, aby uwzględnić każdy aspekt procesu. Machine Learning oferuje skuteczne rozwiązanie, które pokonuje wcześniej wymienione wyzwania.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<blockquote><p><span style="color: #800080;"><i>&#8222;Machine Learning to obecnie najważniejsza technologia dla biznesu. Dzieje się tak, ponieważ oprogramowanie oparte na sztucznej inteligencji już teraz pomaga firmom zwiększać wydajność, poprawiać relacje z klientami i zwiększać sprzedaż.</i>&#8222;</span></p>
<p>~Według McKinsey&#8217;a</p></blockquote>
<p><span data-contrast="auto">Trzeba pamiętać o tym, że nie wystarczy mieć dane i po prostu je łączyć. Jeżeli zależy nam na wydobyciu informacji z danych, trzeba przeprowadzić proces ich ekstrakcji, usunąć zbędne zależności, wyczyścić błędy grube, zrozumieć istniejące zależności oraz opracować i dopasować model ML, który będzie odwzorował dane, a na końcu przystosować go do działania w trybie produkcyjnym.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p>&nbsp;</p>
<h2 aria-level="2"><span style="color: #800080;">Obszary działania Machine Learning </span></h2>
<p>&nbsp;</p>
<p><span data-contrast="auto">Głównym celem algorytmów <a href="https://inero-software.com/pl/uczenie-maszynowe/">Sztucznej Inteligencji</a> jest rozwiązywanie konkretnych problemów oraz ulepszanie procesów. Machine Learning pozwala zoptymalizować takie obszary, jak:</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<ul>
<li data-leveltext="" data-font="Symbol" data-listid="3" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Automatyzacja procesów</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="3" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">Bezpieczeństwo pracy</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="3" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><span data-contrast="auto">Kontrola jakości</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></li>
</ul>
<p><span data-contrast="auto">Warto wspomnieć o tym, że algorytmy pozwalają rozwiązywać problemy z różnych sfer biznesowych. Konieczne jest więc biznesowe ustalenie, po co proces wdrażania narzędzi Machine Learning ma być realizowany. </span><b><span data-contrast="auto">Należy się także nastawić się na to, że wdrażanie ML to proces, a nie zadanie</span></b><span data-contrast="auto">. Wdrożenie algorytmów uczenia maszynowego wymaga stale generowanych danych, aby można było odpowiednio sterować procesami produkcyjnymi. Dlatego wszystkie aspekty takich procesów muszą zostać zdigitalizowane w jak największym stopniu. Wymaga to więc od ekspertów zaprojektowania procesów uwzględniających aktualny stan danych, dzięki czemu będzie można świadomie zbierać prawidłowe dane i optymalizować odpowiednie metryki. </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<blockquote><p><span style="color: #800080;"><i>&#8222;McKinsey przewiduje, ze Machine Learning pomoże firmom produkcyjnym skrócić czas dostawy materiałów o 30% oraz osiągnąć 12% oszczędności paliwa dzięki optymalizacji ich procesów. Firma szacuje również, że przedsiębiorstwa mogą zwiększyć przychody brutto o 13%, jeśli w pełni zintegrują w swojej działalności technologie oparte na sztucznej inteligencji.&#8221;</i></span></p></blockquote>
<p><span data-contrast="auto">Algorytmy oparte na uczeniu maszynowym mogą działać w czasie rzeczywistym, dzięki czemu będą one dostarczać konkretne rekomendacje, jeżeli zidentyfikują one potencjał poprawy produkcji. Machine Learning może służyć więc jako narzędzie wsparcia dla operatorów kontrolujących proces, pomagając im podejmować bardziej świadome decyzje w celu maksymalizacji produkcji w swoim przedsiębiorstwie.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p>Wdrażając rozwiązania z obszaru uczenia maszynowego musimy zbudować odpowiednią strategię zgodną z celami naszego przedsiębiorstwa. Poprzez zdefiniowanie jasnych celów i zrozumieniu wymaganej infrastruktury możemy liczyć na większe prawdopodobieństwo sukcesu wprowadzanych rozwiązań. Dodatkowo trzeba pamiętać o tym, że dane muszą być odpowiednio sformatowane oraz uporządkowane pod kątem algorytmu.</p>
<p>Jeśli chcemy w pełni wykorzystać możliwości jakie daje uczenie maszynowe, w naszej organizacji potrzebujemy zarówno odpowiedniego zespołu ekspertów, specjalistów ML oraz odpowiedniego nastawienia ukierunkowanego na realizację celów.</p>
<p>Na bazię zdobytych doświadczeń,  <strong>Zespół Inero Software, określił metodykę wdrożeń rozwiązań opartych o technologie AI/ML, którą można streścić w kilku następujących krokach: </strong></p>
<ol>
<li data-leveltext="%1." data-font="" data-listid="2" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Identyfikacja problemów i celów biznesowych &#8211; jest to kluczowe przy próbie zrozumienia danej infrastruktury.</span></li>
<li data-leveltext="%1." data-font="" data-listid="2" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Ustalenie źródeł danych i ich jakości &#8211; im lepszej jakości danymi będziemy dysponować, tym skuteczniejszy algorytm uczenia maszynowego będzie.</span></li>
<li data-leveltext="%1." data-font="" data-listid="2" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Zebranie danych i ich przystosowanie</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> &#8211; dostosowanie danych i ich uporządkowanie również pozytywnie wpłynie na działanie algorytmu.</span></li>
<li data-leveltext="%1." data-font="" data-listid="2" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Stworzenie efektywnego modelu na podstawie punktów 1-3.</span></li>
<li data-leveltext="%1." data-font="" data-listid="2" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Uruchomienie i weryfikacja algorytmu w kontekście założonych przez nas celów.</span></li>
<li data-leveltext="%1." data-font="" data-listid="2" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Ustanowienie wąskich gardeł, gdzie mamy braki danych &#8211; sprawdzamy więc jakie dane są źle zbierane i wyciągamy z tego wnioski.</span></li>
</ol>
<p>W ten sposób otrzymujemy efektywny model, który skutecznie analizuje dane i dostarcza nam dokładne wyniki. Oczywiście budowanie takiego modelu to proces ciągły, dlatego warto co jakiś czas powtarzać powyższe kroki, aby jeszcze bardziej usprawnić nasz algorytm.</p>
<p>&nbsp;</p>
<h2 aria-level="2"><span style="color: #800080;">Efektywne zarządzanie przedsiębiorstwem dzięki optymalizacji procesów biznesowych</span></h2>
<p>&nbsp;</p>
<p><b><span data-contrast="auto"><span class="TextRun SCXW153317933 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW153317933 BCX0"><span class="TextRun SCXW189727610 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW189727610 BCX0"><span class="TextRun SCXW21457896 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW21457896 BCX0"><img loading="lazy" decoding="async" class="alignleft wp-image-2768 " src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png" alt="Paragrapgh icon" width="169" height="169" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-50x50.png 50w" sizes="(max-width: 169px) 100vw, 169px" /></span></span></span></span></span></span>Ważne jest zrozumienie, że Machine Learning to nie jest złoty środek na rozwiązanie wszystkich problemów</span></b><span data-contrast="auto">. ML to narzędzie, które pozwala w sposób efektywny wykorzystać dane do zarządzania i optymalizacji procesów. Wiele branż obecnie skupia się na digitalizacji oraz analityce. W niektórych przedsiębiorstwach każdego dnia gromadzą się ogromne ilości danych. Natomiast algorytmy uczenia maszynowego mogą tak naprawdę zbierać nieograniczoną liczbę danych. Optymalizacja wykonywana przez ekspertów w dużej mierze opiera się na ich doświadczeniu. Machine Learning polega na uczeniu się na podstawie wcześniejszych doświadczeń. Analizując więc takie ilości danych, algorytmy mogą nauczyć się rozumieć złożone relacje pomiędzy różnymi partnerami oraz ich wpływ na produkcję. To, jak sztuczna inteligencja uczy się z doświadczenia przypomina w pewien sposób ekspertów, którzy uczą się sterować danym procesem. Jednak AI pozwala na analizowanie pełnych zbiorów danych na przestrzeni kilku lat.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">Istotna w tej kwestii jest współpraca <a href="https://inero-software.com/pl/nasze-uslugi/">ekspertów od Machine Learning</a> i ekspertów biznesowych, aby ML odzwierciedlał procesy biznesowe. Liczy się tutaj z jednej strony dobre sprecyzowanie potrzeb biznesu ergo i optymalizacja ML pod to, co chcemy osiągnąć. Z drugiej strony ważne jest, żeby eksperci biznesowi rozumieli ograniczenia i wady Machine Learning. Złe dane spowodują, że wnioski w efekcie zaszkodzą procesowi.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><a href="https://inero-software.com/pl/"><span style="color: #800080;"><strong>Inero Software</strong></span></a> oferuje wiedzę i doświadczenie w zakresie skutecznego wykorzystywania najnowocześniejszych technologii i danych do kształtowania korporacyjnych produktów cyfrowych przyszłości.</p>
<p>W sekcji <a href="https://inero-software.com/pl/category/firma/"><span style="color: #800080;"><strong>BLOG</strong></span></a> można znaleźć inne artykuły dotyczące nowoczesnych rozwiązań dla przedsiębiorstw.</p>
<p>&nbsp;</p>
<p></p></div><br />
</p></div>
<p>Artykuł <a href="https://inero-software.com/pl/optymalizacja-procesow-biznesowych/">Zarządzanie danymi za pomocą uczenia maszynowego</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">4335</post-id>	</item>
		<item>
		<title>Digitalizacja usług opieki społecznej &#8211; aplikacja &#8222;Gorący Posiłek&#8221;</title>
		<link>https://inero-software.com/pl/digitalizacja-uslug-opieki-spolecznej/</link>
		
		<dc:creator><![CDATA[Andrzej Chybicki]]></dc:creator>
		<pubDate>Thu, 10 Feb 2022 14:39:37 +0000</pubDate>
				<category><![CDATA[Blog_pl]]></category>
		<category><![CDATA[Firma]]></category>
		<category><![CDATA[Technologie]]></category>
		<category><![CDATA[digitalizacja]]></category>
		<category><![CDATA[optymalizacja łańcucha dostaw]]></category>
		<category><![CDATA[usługi opieki społecznej]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=4345</guid>

					<description><![CDATA[<p>W ostatnich latach widzimy znaczący rozwój usług i produktów z branży MedTech. Jednym z obszarów, w których ma on szczególne zastosowanie są usługi opiekuńcze nad osobami starszymi lub niepełnosprawnymi. W tym zakresie digitalizacja usług pozwala na lepsze wykorzystanie zasobów (środki, opieki, leki) oraz ludzi (skrócenie czasu dojazdu, mniejsza ilość dokumentów).</p>
<p>Artykuł <a href="https://inero-software.com/pl/digitalizacja-uslug-opieki-spolecznej/">Digitalizacja usług opieki społecznej &#8211; aplikacja &#8222;Gorący Posiłek&#8221;</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>&nbsp;</p>
<p>&nbsp;</p>
<div class="row">
<p><div class="col-sm-1"></div></p>
<p><div class="col-sm-10">
<p><img decoding="async" class=" wp-image-2770 aligncenter" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png" alt="" width="75" height="75" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w" sizes="(max-width: 75px) 100vw, 75px" /></p>
<h2 aria-level="1"><span style="color: #800080;">Digitalizacja usług opieki społecznej</span></h2>
<p>&nbsp;</p>
<p><span data-contrast="auto">W ostatnich latach widzimy znaczący rozwój usług i produktów z branży MedTech. Jednym z obszarów, w których ma on szczególne zastosowanie są usługi opiekuńcze nad osobami starszymi lub niepełnosprawnymi. W tym zakresie digitalizacja usług pozwala na lepsze wykorzystanie zasobów (środki, opieki, leki) oraz ludzi (skrócenie czasu dojazdu, mniejsza ilość dokumentów). Dzięki niej można skupić się na skutecznym sposobie poprawy opieki nad osobami starszymi. Daje ona początek licznym narzędziom oraz zasobom, które usprawniają świadczenie takich usług.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">W niniejszym blog poście pokazujemy nasze doświadczenie płynące z prac nad aplikacją „Gorący Posiłek”, który rozwinęliśmy we współpracy z Centrum Usług Społecznych “Społeczna Warszawa” i wdrożyliśmy w lipcu 2021 roku. Gorący posiłek to system, który umożliwia zarządzanie, planowanie i weryfikację posiłków, które jednostki administracyjne dostarczają osobom potrzebującym.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p>&nbsp;</p>
<p><img decoding="async" class=" wp-image-2770 aligncenter" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png" alt="" width="75" height="75" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w" sizes="(max-width: 75px) 100vw, 75px" /></p>
<p>&nbsp;</p>
<h2 aria-level="2"><span style="color: #800080;">Raportowanie i analiza dostaw dla ośrodków pomocy społecznej &#8211; zarys problemu</span></h2>
<p>&nbsp;</p>
<p><span data-contrast="auto"><span class="TextRun SCXW21457896 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW21457896 BCX0"><img loading="lazy" decoding="async" class=" wp-image-2768 alignleft" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png" alt="" width="94" height="94" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-50x50.png 50w" sizes="(max-width: 94px) 100vw, 94px" /></span></span>Posiłki dostarczane przez ośrodki pomocy społecznej to często jedyne ciepłe dania spożywane przez osoby starsze w ciągu dnia.  Aby dania były ciepłe i świeże, gorące posiłki dla osób starszych oraz niepełnosprawnych są dostarczanie przez urząd miasta w godzinach obiadowych pomiędzy 11 a 15. Żywność dowożona jest pod konkretny lokal, gdzie mieszka dana osoba. Posiłki często nie są odbierane ze względu na wyjazd danej osoby czy problemy zdrowotne. Do przygotowywania i dostarczania posiłków miasto najczęściej angażuje firmy cateringowe, które musza posiadać potwierdzenie, że żywność została dostarczona zgodnie z określonym harmongramem. Bez odpowiedniego systemu kontrolowanie takich dostaw i ich raportowanie może być problematyczne.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">Inną ważną kwestią w tego typu usługach jest tworzenie stale aktualizowanych list osób, do których takie posiłki trafiają. W codziennych harmonogramach dostaw muszą być uwzględnione decyzje urzędu, które determinują czy w danym dniu konkretna osoba jest uprawniona do otrzymania posiłku. Dla niektórych osób posiłki dostarczane są codziennie, innym tylko w dni robocze, a jeszcze innym tylko w weekendy. To sprawia, że codzienne przygotowywanie zaktualizowanej listy dostaw jest czasochłonne, a sama czynność jest powtarzalna i podatna na błędy. Dlatego ważne jest zbudowanie stale samo-aktualizującej się listy, z której będzie można dowiedzieć o preferencjach mieszkańców.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">Nakładanie się problemów organizacyjnych i rozliczeniowych w <a href="https://inero-software.com/pl/projekty/">projekcie</a>, który obsługuje dużą ilość mieszkańców (powyżej 1000 osób) codziennie sprawia, że proces nie przebiega całkowicie pomyślnie. Z pomocą przychodzi jednak digitalizacja, która usprawnia procesy organizacyjno-logistyczne, dzięki czemu osoby potrzebujące pomocy faktycznie ją otrzymują.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p>&nbsp;</p>
<p><img decoding="async" class=" wp-image-2770 aligncenter" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png" alt="" width="75" height="75" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w" sizes="(max-width: 75px) 100vw, 75px" /></p>
<p>&nbsp;</p>
<h2 aria-level="2"><span style="color: #800080;">Zalety digitalizacji usług opiekuńczych </span></h2>
<p>&nbsp;</p>
<p><span data-contrast="auto"><img loading="lazy" decoding="async" class=" wp-image-1574 alignleft" src="https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02.png" alt="" width="68" height="68" srcset="https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02.png 208w, https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02-80x80.png 80w" sizes="(max-width: 68px) 100vw, 68px" />Digitalizacja wprowadzana przez aplikację “Gorący Posiłek” usprawnia cały proces związany ze współpracą podmiotów. W większości przypadków w takich projektach mamy z jednej strony podmiot (urząd), który zleca wykonywanie posiłków, a z drugiej strony wykonawców tj. firmy cateringowe i dostawców, które przygotowują posiłki i dowożą je. Na samym końcu tego procesu mamy osoby, które potrzebują pomocy.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p>&nbsp;</p>
<p><span data-contrast="auto"><img loading="lazy" decoding="async" class=" wp-image-1574 alignleft" src="https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02.png" alt="" width="68" height="68" srcset="https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02.png 208w, https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02-80x80.png 80w" sizes="(max-width: 68px) 100vw, 68px" />Aplikacja “Gorący Posiłek” generuje automatycznie listy dowozów posiłków na każdy dzień na podstawie wprowadzanych i istniejących decyzji administracyjnych. Dzięki temu jest pewność, że każda osoba korzystająca z projektu otrzyma swój posiłek. </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p>&nbsp;</p>
<p><span data-contrast="auto"><img loading="lazy" decoding="async" class=" wp-image-1574 alignleft" src="https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02.png" alt="" width="68" height="68" srcset="https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02.png 208w, https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02-80x80.png 80w" sizes="(max-width: 68px) 100vw, 68px" />Digitalizacja pozwala na bieżące weryfikowanie czy posiłki są odpowiednio dostarczane. Można to uzyskać za pomocą kodów QR. Naklejki z takimi kodami są umieszczane przy każdym mieszkaniu, przez co dostawcy mogą je zeskanować za pomocą specjalnej aplikacji i potwierdzić, że według harmonogramu przyjechali w dane miejsce i dostarczyli posiłek.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p>&nbsp;</p>
<p><span data-contrast="auto"><img loading="lazy" decoding="async" class=" wp-image-1574 alignleft" src="https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02.png" alt="" width="68" height="68" srcset="https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02.png 208w, https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02-80x80.png 80w" sizes="(max-width: 68px) 100vw, 68px" />Dzięki odpowiedniemu systemowi za pomocą aplikacji mobilnej dostawcy posiłków mogą poinformować urząd miasta, że konkretna osoba nie była obecna w swoim miejscu zamieszkania. Kolejnym ważnym usprawnieniem jest automatyczne generowanie raportów i rozliczeń dla firm cateringowych. Wszystkie informacje dotyczące terminów dostaw, dostarczonych lub niedostarczonych posiłków są składowane w części serwerowej systemu, do którego pracownicy urzędu mają dostęp. Jest to o tyle ważna kwestia, ponieważ w ten sposób można lepiej kontrolować wydatki ze środków publicznych.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p>&nbsp;</p>
<p><span data-contrast="auto"><img loading="lazy" decoding="async" class=" wp-image-1574 alignleft" src="https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02.png" alt="" width="68" height="68" srcset="https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02.png 208w, https://inero-software.com/wp-content/uploads/2018/11/inero-glify-02-80x80.png 80w" sizes="(max-width: 68px) 100vw, 68px" />Technologie IT wspierają przede wszystkim osoby potrzebujące pomocy. Dzięki nim otrzymują oni swój gorący posiłek na czas, bez żadnych opóźnień. Korzystając z aplikacji mobilnej pracownicy firm cateringowych oraz urzędnicy mają dostęp do aktualnych danych. Właśnie z takich rozwiązań korzysta CUS Warszawa dostarczając gorące posiłki do osób starszych i nie tylko.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> <img loading="lazy" decoding="async" data-attachment-id="4346" data-permalink="https://inero-software.com/pl/digitalizacja-uslug-opieki-spolecznej/schemacik/" data-orig-file="https://inero-software.com/wp-content/uploads/2022/02/schemacik.png" data-orig-size="1920,1080" 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="schemacik" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2022/02/schemacik-300x169.png" data-large-file="https://inero-software.com/wp-content/uploads/2022/02/schemacik-1030x579.png" tabindex="0" role="button" class="aligncenter wp-image-4346" src="https://inero-software.com/wp-content/uploads/2022/02/schemacik-300x169.png" alt="digitalizacja usług opiekuńczych" width="909" height="512" srcset="https://inero-software.com/wp-content/uploads/2022/02/schemacik-300x169.png 300w, https://inero-software.com/wp-content/uploads/2022/02/schemacik-1030x579.png 1030w, https://inero-software.com/wp-content/uploads/2022/02/schemacik-768x432.png 768w, https://inero-software.com/wp-content/uploads/2022/02/schemacik-1536x864.png 1536w, https://inero-software.com/wp-content/uploads/2022/02/schemacik-533x300.png 533w, https://inero-software.com/wp-content/uploads/2022/02/schemacik.png 1920w" sizes="(max-width: 909px) 100vw, 909px" /><img decoding="async" class=" wp-image-2770 aligncenter" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png" alt="" width="75" height="75" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w" sizes="(max-width: 75px) 100vw, 75px" /></span></p>
<p>&nbsp;</p>
<h2 aria-level="2"><span style="color: #800080;">Gorący Posiłek – system, który usprawnia dostarczanie posiłków </span></h2>
<p>&nbsp;</p>
<p><span data-contrast="auto"><span class="TextRun SCXW223079295 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW223079295 BCX0"><span class="TextRun SCXW21457896 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW21457896 BCX0"><img loading="lazy" decoding="async" class=" wp-image-2768 alignleft" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png" alt="" width="72" height="72" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-50x50.png 50w" sizes="(max-width: 72px) 100vw, 72px" /></span></span></span></span>Gorący Posiłek jest systemem, który składa się z aplikacji mobilnej i części serwerowej. Umożliwia zarządzanie, planowanie i weryfikację dostaw jedzenia osobom potrzebującym. Projekt ten wspiera politykę społeczną, dzięki której osoby potrzebujące opieki mogą ją otrzymać. W każdym większym mieście istnieje dedykowany temu ośrodek, który zajmuje się usługami opiekuńczymi. Dla przykładu, w Warszawie jest to <a href="https://wsparcie.um.warszawa.pl/-/centrum-uslug-spolecznych-o-nas">Centrum Usług Społecznych „Społeczna Warszawa”</a>, a w Gdańsku jest to <a href="http://mopr.gda.pl/">Miejski Ośrodek Pomocy Rodzinie</a>.</span></p>
<p>&nbsp;</p>
<p><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"><img decoding="async" class=" wp-image-2770 aligncenter" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png" alt="" width="75" height="75" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w" sizes="(max-width: 75px) 100vw, 75px" /> </span></p>
<h2 aria-level="2"><span style="color: #800080;">Główne założenia Gorącego Posiłku </span></h2>
<p>&nbsp;</p>
<p><span data-contrast="auto"><span class="TextRun SCXW21457896 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW21457896 BCX0"><img loading="lazy" decoding="async" class=" wp-image-2768 alignleft" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png" alt="" width="72" height="72" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-50x50.png 50w" sizes="(max-width: 72px) 100vw, 72px" /></span></span>Głównym zadaniem Gorącego Posiłku jest <a href="https://inero-software.com/pl/rozwiazania-logistyczne/">automatyzacja dostaw</a> żywności z wykorzystaniem technologii cyfrowych. System ten umożliwia dostarczanie zaktualizowanych planów dostaw na każdy dzień dla wszystkich potrzebujących. Ważne jest także kontrolowanie dostaw, dlatego Gorący Posiłek automatycznie generuje dzienne i miesięczne raporty. Jest on w stanie obsługiwać do 2 tysięcy zamówień dziennie.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">Wykorzystane technologie w tym projekcie umożliwiają automatyczne zarządzanie osobami objętymi dostawami, firmami cateringowymi i kierowcami w systemie. Przetwarza on dane osobowe, jednak jest zgodny z normami ISO 27001, dzięki czemu wszystkie dane są zabezpieczone. Przekazywane są tylko wymagane dane, jednak nie są one rozprowadzane na zewnątrz. Gorący Posiłek spełnia więc wszelkie wymagania RODO.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">System zapewnia wgląd w aktualną realizację procesów dostaw i informowanie o braku dostępności danego mieszkańca. Gorący Posiłek przekazuje również na bieżąco informacje dotyczące zamówień posiłków, czyli: rodzaj diety, godziny dostarczenia, uwagi mieszkańców. </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p>&nbsp;</p>
<p><img decoding="async" class=" wp-image-2770 aligncenter" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png" alt="" width="75" height="75" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w" sizes="(max-width: 75px) 100vw, 75px" /></p>
<p>&nbsp;</p>
<h2 aria-level="2"><span style="color: #800080;">Korzyści z wdrożenia systemu </span></h2>
<p>&nbsp;</p>
<p><span data-contrast="auto"><span class="TextRun SCXW228218877 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW228218877 BCX0"><span class="TextRun SCXW223079295 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW223079295 BCX0"><span class="TextRun SCXW21457896 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW21457896 BCX0"><img loading="lazy" decoding="async" class=" wp-image-2768 alignleft" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png" alt="" width="126" height="126" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-50x50.png 50w" sizes="(max-width: 126px) 100vw, 126px" /></span></span></span></span></span></span>Gorący Posiłek sprawia, że cały proces dostarczania żywności zyskuje na transparentności. Jesteśmy w stanie skrócić czas obsługi administracyjno-logistycznej wykorzystując narzędzia technologiczne. Jeżeli cały proces jest bardziej przejrzysty, użytkownicy administracji samorządowej mają lepszy wgląd na to jak pieniądze publiczne są wykorzystywane na pomoc społeczną. System sprawia również, że uzyskanie wszelkich raportów i podsumowań jest o wiele wygodniejsze i mniej czasochłonne a cały proces wydatkowania środków publicznych jest transparentny dla wszystkich stron. Ponadto “Gorący Posiłek” integruje systemy, które istnieją już po stronie CUS Warszawa. Dlatego importowanie różnego rodzaju danych z istniejących systemów IT (takich jak np. POMOST) jest o wiele prostsze.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p>&nbsp;</p>
<p><img decoding="async" class=" wp-image-2770 aligncenter" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png" alt="" width="75" height="75" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w" sizes="(max-width: 75px) 100vw, 75px" /></p>
<p>&nbsp;</p>
<h2 aria-level="2"><span style="color: #800080;">Optymalizacja usług opiekuńczych </span></h2>
<p>&nbsp;</p>
<p><span data-contrast="auto"><span class="TextRun SCXW228218877 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW228218877 BCX0"><span class="TextRun SCXW223079295 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW223079295 BCX0"><span class="TextRun SCXW21457896 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW21457896 BCX0"><img loading="lazy" decoding="async" class=" wp-image-2768 alignleft" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png" alt="" width="91" height="91" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-08-50x50.png 50w" sizes="(max-width: 91px) 100vw, 91px" /></span></span></span></span></span></span>Wykorzystanie technologii informatycznych w świadczeniu usług opiekuńczych sprawia, że cały proces ich dostarczania jest o wiele bardziej transparentny, a przede wszystkim zoptymalizowany pod kątem organizacyjnym, formalnym i finansowym. Dzięki temu zarówno urzędnicy jak i firmy cateringowe zyskują na czasie. Jest to bardzo ważny czynnik przy dostarczaniu gorących posiłków do osób potrzebujących pomocy. System, który wykorzystujemy jest systemem chmurowym, jednak może on być również wdrożony jako system na żądanie. Można więc go użyć w infrastrukturze urzędu czy w serwerach dedykowanych. </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">Wdrożenie takiego systemu nie jest skomplikowanym procesem. Konieczna jest:</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<ul>
<li data-leveltext="" data-font="Symbol" data-listid="1" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Integracja z systemem POMOST albo z innymi systemami do decyzji o dostarczaniu posiłków, </span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="1" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">Dostarczenie kodów QR do mieszkańców (kody są generowane przez aplikację),</span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="1" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><span data-contrast="auto">Instalacja aplikacji przez kierowców. </span><span data-ccp-props="{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></li>
</ul>
<p><span data-contrast="auto">Jako firma <a href="https://inero-software.com/pl/nasza-oferta/">oferujemy</a> skuteczne rozwiązania, które ułatwiają efektywne zarządzanie procesami logistyczno-organizacyjnymi. Pomagamy w zakresie monitorowania i raportowania czynności w <a href="https://inero-software.com/pl/zarzadzanie-lancuchem-dostaw/">łańcuchu dostaw</a>.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><a href="https://inero-software.com/pl/"><span style="color: #800080;"><strong>Inero Software</strong></span></a> oferuje wiedzę i doświadczenie w zakresie skutecznego wykorzystywania najnowocześniejszych technologii i danych do kształtowania korporacyjnych produktów cyfrowych przyszłości.</p>
<p>W sekcji <a href="https://inero-software.com/pl/category/firma/"><span style="color: #800080;"><strong>BLOG</strong></span></a> można znaleźć inne artykuły dotyczące nowoczesnych rozwiązań dla przedsiębiorstw.</p>
<p>&nbsp;</p>
<p></p></div><br />
</p></div>
<p>Artykuł <a href="https://inero-software.com/pl/digitalizacja-uslug-opieki-spolecznej/">Digitalizacja usług opieki społecznej &#8211; aplikacja &#8222;Gorący Posiłek&#8221;</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">4345</post-id>	</item>
		<item>
		<title>Skoruba dla Identity Server &#8211; przegląd modułu autoryzacyjnego dla Aplikacji .NET</title>
		<link>https://inero-software.com/pl/skoruba-dla-identity-server/</link>
		
		<dc:creator><![CDATA[Andrzej Chybicki]]></dc:creator>
		<pubDate>Mon, 07 Feb 2022 11:11:36 +0000</pubDate>
				<category><![CDATA[Blog_pl]]></category>
		<category><![CDATA[Firma]]></category>
		<category><![CDATA[Technologie]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[aspnetcore]]></category>
		<category><![CDATA[bezpieczeństwo]]></category>
		<category><![CDATA[dotnetcore]]></category>
		<category><![CDATA[identityserver4]]></category>
		<category><![CDATA[skoruba]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=4374</guid>

					<description><![CDATA[<p>.NET Core daje nam wiele możliwości w zakresie budowania rozwiązań biznesowych w sektorze logistycznym, finansowym czy bankowym. Do najważniejszych zalet tego środowiska należą wbudowane mechanizmy uwierzytelniania i autoryzacji użytkowników czy umożliwienie budowania obiegu zgłoszeń w oparciu o moduły zwane middleware.</p>
<p>Artykuł <a href="https://inero-software.com/pl/skoruba-dla-identity-server/">Skoruba dla Identity Server &#8211; przegląd modułu autoryzacyjnego dla Aplikacji .NET</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">
<p><div class="col-sm-3"></div></p>
<p><div class="col-sm-6">
<p>&nbsp;</p>
<p><span style="font-weight: 400;"><img loading="lazy" decoding="async" class="wp-image-2873 alignleft" src="https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08.png" alt="Paragraph icon" width="107" height="107" srcset="https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08.png 208w, https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-50x50.png 50w" sizes="(max-width: 107px) 100vw, 107px" /></span></p>
<p><span style="font-weight: 400;">.NET Core daje nam wiele możliwości w zakresie budowania rozwiązań biznesowych w sektorze logistycznym, finansowym czy bankowym. Do najważniejszych zalet tego środowiska należą wbudowane mechanizmy uwierzytelniania i autoryzacji użytkowników czy umożliwienie budowania obiegu zgłoszeń w oparciu o moduły zwane middleware. Moduły te można wymienić w taki sposób, żeby zmienić zachowanie naszej aplikacji.</span></p>
<p><span style="font-weight: 400;">.NET Core pozwala nam także chronić naszą aplikację przed atakami typu: XSS, SQL Injection, CSRF czy Open Redirect Attack. Ponadto możemy łatwo wymusić na aplikacji używanie HTTPS zamiast mniej bezpiecznego HTTP. Dzięki .NET Core programiści mogą realizować proces autoryzacji na wiele sposobów, m.in.: autoryzacja oparta na rolach, oparta na oświadczeniach czy oparta na zasadach.</span></p>
<p><span style="font-weight: 400;">Z powyższych powodów rozwiązania .NET Core są często wykorzystywane w dużych organizacjach korporacyjnych i przedsiębiorstwach. Ze względu na ogromną liczbę użytkowników i skomplikowane procesy biznesowe systemy te wymagają złożonych i solidnych mechanizmów <a href="https://inero-software.com/pl/rozwiazania-logistyczne/cyberbezpieczenstwo/">ochrony kont użytkowników oraz zarządzania tożsamościami</a> w naszych aplikacjach.</span></p>
<p>Dlatego w tym krótkim poście przeglądowym udostępnimy jedno z narzędzi, które wykorzystaliśmy do bezpiecznej autoryzacji, zbudowane dla jednego z naszych klientów korporacyjnych, a mianowicie oparty na .NET projekt <strong>Skoruba.IdentityServer4.Admin</strong>.</p>
<p><img loading="lazy" decoding="async" class="wp-image-2770 aligncenter" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png" alt="Separating icon" width="124" height="124" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w" sizes="(max-width: 124px) 100vw, 124px" /></p>
<h2><strong><span style="color: #800080;">Czym jest Skoruba?</span></strong></h2>
<p><span style="font-weight: 400;"><img loading="lazy" decoding="async" class="alignleft wp-image-2873 " src="https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08.png" alt="Paragraph icon" width="80" height="80" srcset="https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08.png 208w, https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-50x50.png 50w" sizes="(max-width: 80px) 100vw, 80px" /></span></p>
<p>Skoruba to projekt typu open source zapewniający interfejs użytkownika, który umożliwia administrowanie funkcjami IdentityServer4 i ASP.NET Core Identity. Dzięki temu projektowi jesteśmy w pewien sposób zwolnieni z tworzenia wizualnej strony funkcjonalności związanej z zarządzaniem użytkownikami. Główną zaletą tego projektu jest przyjazny interfejs użytkownika, który opiera się na Bootstrap i pozwala nam w bardzo efektywny sposób zarządzać użytkownikami, hasłami, uwierzytelnianiem dwuskładnikowym, rolami, klientami, zasobami czy strukturą tokenów dostępu i ich roszczeniami.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-3282 size-full" src="https://inero-software.com/wp-content/uploads/2021/02/UI2.png" alt="Skoruba IdentityServer4" width="864" height="512" srcset="https://inero-software.com/wp-content/uploads/2021/02/UI2.png 864w, https://inero-software.com/wp-content/uploads/2021/02/UI2-300x178.png 300w, https://inero-software.com/wp-content/uploads/2021/02/UI2-768x455.png 768w, https://inero-software.com/wp-content/uploads/2021/02/UI2-506x300.png 506w" sizes="(max-width: 864px) 100vw, 864px" /></p>
<p style="text-align: center;"><span style="font-weight: 400;">Źródło: https://github.com/skoruba/IdentityServer4.Admin</span></p>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">Dodatkowo Skoruba udostępnia również API, które możemy w dowolny sposób konsumować i na jego podstawie budować logikę związaną z zarządzaniem kontem w sposób, który będzie lepiej odpowiadał naszym wymaganiom biznesowym. Cała dokumentacja API jest dostępna dzięki Swagget, co pozwala nam testować poszczególne działania API.</span></p>
<p><span style="font-weight: 400;">Możliwość zmiany dostawcy bazy danych, w którym przechowujemy wszystkie informacje o tożsamości, jest również łatwiejsza i domyślnie mamy do wyboru takich dostawców, jak SQLServer, MySql i PostgreSQL.</span></p>
<p><span style="font-weight: 400;">Kolejną zaletą Skoruby jest bardzo dobrze rozwinięty mechanizm rejestrowania zdarzeń w naszej aplikacji oparty na bibliotece Serilog, co pozwala na bardzo sprawną identyfikację potencjalnych problemów występujących podczas działania aplikacji. Poniżej możesz zobaczyć wizualizację aplikacji Skoruby:</span></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-3275 size-full" src="https://inero-software.com/wp-content/uploads/2021/02/Components.png" alt="Skoruba visualisation" width="1514" height="686" srcset="https://inero-software.com/wp-content/uploads/2021/02/Components.png 1514w, https://inero-software.com/wp-content/uploads/2021/02/Components-300x136.png 300w, https://inero-software.com/wp-content/uploads/2021/02/Components-768x348.png 768w, https://inero-software.com/wp-content/uploads/2021/02/Components-1030x467.png 1030w, https://inero-software.com/wp-content/uploads/2021/02/Components-662x300.png 662w" sizes="(max-width: 1514px) 100vw, 1514px" /></p>
<p style="text-align: center;"><span style="font-weight: 400;">Źródło: https://github.com/skoruba/IdentityServer4.Admin</span></p>
<p><img loading="lazy" decoding="async" class="wp-image-2770 aligncenter" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png" alt="Separating icon" width="80" height="80" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w" sizes="(max-width: 80px) 100vw, 80px" /></p>
<h2><span style="font-weight: 400; color: #800080;">Jak Skoruba radzi sobie z rolami użytkowników? Przykład</span></h2>
<p><span style="font-weight: 400;"><img loading="lazy" decoding="async" class="wp-image-2873 alignleft" src="https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08.png" alt="Paragraph icon" width="80" height="80" srcset="https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08.png 208w, https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-50x50.png 50w" sizes="(max-width: 80px) 100vw, 80px" />W tym przykładzie widzimy, jak wygląda sekcja interfejsu, w której można modyfikować role użytkowników:</span></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-3283 size-full" src="https://inero-software.com/wp-content/uploads/2021/02/UserRoles2.png" alt="Skoruba interfejs" width="1137" height="817" srcset="https://inero-software.com/wp-content/uploads/2021/02/UserRoles2.png 1137w, https://inero-software.com/wp-content/uploads/2021/02/UserRoles2-300x216.png 300w, https://inero-software.com/wp-content/uploads/2021/02/UserRoles2-768x552.png 768w, https://inero-software.com/wp-content/uploads/2021/02/UserRoles2-1030x740.png 1030w, https://inero-software.com/wp-content/uploads/2021/02/UserRoles2-418x300.png 418w" sizes="(max-width: 1137px) 100vw, 1137px" /></p>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">Gdybyśmy nie korzystali ze Skoruby, musielibyśmy to wszystko stworzyć sami, łącznie z logiką i sposobem, jak to dobrze zaprezentować. Daje nam to wiele funkcji, których nie musimy tworzyć, przez co możemy skupiać się bardziej na naszych wymaganiach biznesowych, zamiast tworzyć zupełnie nowy interfejs użytkownika do obsługi usług IdentityServer4 i ASP.NET Core Identity. Przykładowa logika, która pokazuje nam, w jaki sposób Skoruba generuje role użytkowników, jak przedstawiono powyżej, jest pokazana w poniższym bloku kodu:</span></p>
<pre>public virtual async Task BuildUserRolesViewModel(TKey id, int? page)
{s
    var roles = await GetRolesAsync();
    var userRoles = await GetUserRolesAsync(id.ToString(), page ?? 1);
    userRoles.UserId = id;
    userRoles.RolesList = roles.Select(x =&gt; new SelectItemDto(x.Id.ToString(), x.Name)).ToList();

    return userRoles;
}

public virtual async Task GetUserRolesAsync(string userId, int page = 1, int pageSize = 10)
{
    var userExists = await IdentityRepository.ExistsUserAsync(userId);
    if (!userExists) throw new UserFriendlyErrorPageException(string.Format(IdentityServiceResources.UserDoesNotExist().Description, userId), 
    IdentityServiceResources.UserDoesNotExist().Description);

    var userIdentityRoles = await IdentityRepository.GetUserRolesAsync(userId, page, pageSize);
    var roleDtos = Mapper.Map(userIdentityRoles);

    var user = await IdentityRepository.GetUserAsync(userId);
    roleDtos.UserName = user.UserName;

    await AuditEventLogger.LogEventAsync(new UserRolesRequestedEvent(roleDtos));

    return roleDtos;
}
</pre>
<p><span style="font-weight: 400;">Co więcej? Jeśli chcemy, możemy zmienić wygląd interfejsu. Możemy również modyfikować zawartość witryny, zmieniając logikę, która będzie adekwatna do naszych potrzeb biznesowych.</span></p>
<p><span style="font-weight: 400;">Jeśli potrzebujesz więcej informacji o projekcie Skoruba i jego możliwości, wejdź na stronę projektu na GitHub: </span><a href="https://github.com/skoruba/IdentityServer4.Admin"><span style="font-weight: 400;">https://github.com/skoruba/IdentityServer4.Admin</span></a><span style="font-weight: 400;"> </span></p>
<p><img loading="lazy" decoding="async" class="wp-image-2770 aligncenter" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png" alt="Separating icon" width="80" height="80" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w" sizes="(max-width: 80px) 100vw, 80px" /></p>
<h2><span style="font-weight: 400; color: #800080;">Podsumowanie</span></h2>
<p><span style="font-weight: 400;"><img loading="lazy" decoding="async" class="wp-image-2873 alignleft" src="https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08.png" alt="Paragraph icon" width="80" height="80" srcset="https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08.png 208w, https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-50x50.png 50w" sizes="(max-width: 80px) 100vw, 80px" /></span></p>
<p>W <a href="https://inero-software.com/pl/">Inero Software</a> zajmujemy się ambitnymi i wymagającymi projektami rozwoju oprogramowania. W tym wpisie na blogu pokazaliśmy, jak szybko można wykorzystać gotowe do użycia, istniejące rozwiązania open-source, aby zapewnić efektywny sposób wdrażania zabezpieczeń oprogramowania. Poza przedstawionym przypadkiem użycia, Skoruba i Identity Server mogą być wykorzystywane do pracy z urządzeniami mobilnymi, systemami IoT lub w ramach komunikacji M2M między maszynami lub robotami.</p>
<p>&nbsp;</p>
<p><a href="https://inero-software.com/pl/"><span style="color: #800080;"><strong>Inero Software</strong></span></a> oferuje wiedzę i doświadczenie w zakresie skutecznego wykorzystywania najnowocześniejszych technologii i danych do kształtowania korporacyjnych produktów cyfrowych przyszłości.</p>
<p>W sekcji <a href="https://inero-software.com/pl/category/firma/"><span style="color: #800080;"><strong>BLOG</strong></span></a> można znaleźć inne artykuły dotyczące nowoczesnych rozwiązań dla przedsiębiorstw.</p>
<p>&nbsp;</p>
<p></p></div><br />
</p></div>
<p>Artykuł <a href="https://inero-software.com/pl/skoruba-dla-identity-server/">Skoruba dla Identity Server &#8211; przegląd modułu autoryzacyjnego dla Aplikacji .NET</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">4374</post-id>	</item>
		<item>
		<title>Adroid Kiosk Mode &#8211; jak zmienić urządzenie z Androidem w urządzenie do dedykowanego użytku</title>
		<link>https://inero-software.com/pl/android-kiosk-mode/</link>
		
		<dc:creator><![CDATA[Andrzej Chybicki]]></dc:creator>
		<pubDate>Thu, 03 Feb 2022 14:08:19 +0000</pubDate>
				<category><![CDATA[Blog_pl]]></category>
		<category><![CDATA[Firma]]></category>
		<category><![CDATA[Technologie]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[android kiosk mode]]></category>
		<category><![CDATA[aplikacja]]></category>
		<category><![CDATA[urządzenia mobilne]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=4354</guid>

					<description><![CDATA[<p>W pełni zarządzane, dedykowane urządzenia służą określonemu celu. Dzięki temu możliwe jest maksymalne wykorzystanie urządzenia, przy jednoczesnym ograniczeniu korzystania z funkcji osobistych takich jak np. komunikatory. Z wieloma takimi urządzeniami mamy do czynienia na co dzień. Są to między innymi automaty, drukarki biletów czy parkomaty.</p>
<p>Artykuł <a href="https://inero-software.com/pl/android-kiosk-mode/">Adroid Kiosk Mode &#8211; jak zmienić urządzenie z Androidem w urządzenie do dedykowanego użytku</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><img loading="lazy" decoding="async" class="wp-image-2770 aligncenter" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png" alt="Separating icon" width="80" height="80" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w" sizes="(max-width: 80px) 100vw, 80px" /></p>
<p><span style="font-weight: 400;"><img loading="lazy" decoding="async" class="alignleft wp-image-2873 size-thumbnail" src="https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-80x80.png" alt="Paragraph icon" width="80" height="80" srcset="https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-50x50.png 50w, https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08.png 208w" sizes="(max-width: 80px) 100vw, 80px" /></span></p>
<p>Systemu Android nie trzeba przedstawiać. Obecnie jest to najbardziej popularny system operacyjny dla smartfonów. Jednak Android nie jest już używany tylko w elektronice użytkowej. Dziś urządzenia z Androidem możemy spotkać na każdym kroku. System ten jest coraz częściej stosowany w takich branżach jak: bezpieczeństwo, automatyzacja, logistyka, sprzedaż, hotelarstwo itp. Ze względu na łatwość użytkowania, poziom dostosowania i niższe koszty, urządzenia z Androidem są wybierane przez wiele przedsiębiorstw. Jednak dla wielu firm systemy Android nie są uważane za wystarczająco bezpieczne do użytku w miejscu pracy. Jednym z najlepszych rozwiązań dla powyższych problemów jest narzędzie Kiosk Mode, które pozwala przekonwertować Twoje urządzenie z Androidem w dedykowaną aplikację, zapewniając jednocześnie dodatkowe bezpieczeństwo i redukując dodatkowe elementy rozpraszające uwagę. Życzymy miłej lektury!</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-2770 size-thumbnail" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png" alt="Separating icon" width="80" height="80" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w" sizes="(max-width: 80px) 100vw, 80px" /></p>
<h2><span style="color: #800080;"><b>COSU &#8211; corporate-owned single use device (urządzenie do dedykowanego użytku dla firm)</b></span></h2>
<p><span style="font-weight: 400;"><img loading="lazy" decoding="async" class="alignleft wp-image-2873 size-thumbnail" src="https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-80x80.png" alt="Paragraph icon" width="80" height="80" srcset="https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-50x50.png 50w, https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08.png 208w" sizes="(max-width: 80px) 100vw, 80px" />W pełni zarządzane, dedykowane urządzenia służą określonemu celu. Dzięki temu możliwe jest maksymalne wykorzystanie urządzenia, przy jednoczesnym ograniczeniu korzystania z funkcji osobistych takich jak np. komunikatory. Z wieloma takimi urządzeniami mamy do czynienia na co dzień. Są to między innymi automaty, drukarki biletów czy parkomaty. COSU umożliwia administratorom IT zdalne sterowanie wszystkimi tymi urządzeniami i blokowanie urządzeń dla określonej aplikacji. Uniemożliwia to użytkownikom korzystanie z innych aplikacji lub wykonywanie innych czynności na tych urządzeniach.</span></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-2770 size-thumbnail" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png" alt="Separating icon" width="80" height="80" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w" sizes="(max-width: 80px) 100vw, 80px" /></p>
<h2><span style="color: #800080;"><b>Kiosk Mode</b></span></h2>
<p><span style="font-weight: 400;"><img loading="lazy" decoding="async" class="alignleft wp-image-2873 size-thumbnail" src="https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-80x80.png" alt="Paragraph icon" width="80" height="80" srcset="https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-50x50.png 50w, https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08.png 208w" sizes="(max-width: 80px) 100vw, 80px" /></span></p>
<p><span style="font-weight: 400;">Kiosk Mode pozwala zamienić urządzenia z Androidem w urządzenia do dedykowanego użytku (Single-Use Device), uruchamiając tylko jedną aplikację lub określony zestaw aplikacji. Począwszy od Androida 5.0 Lollipop, system oferuje dwa sposoby blokowania urządzenia w określonym celu:</span></p>
<p>&nbsp;</p>
<ul>
<li aria-level="1">App pinning &#8211; korzystając z funkcji przypinania aplikacji, użytkownicy mogą tymczasowo przypiąć dowolną zainstalowaną aplikację na ekranie. Przyciski nawigacyjne są widoczne, ale nieaktywne. Użytkownik może wyjść z tego trybu, przytrzymując jednocześnie przycisk &#8222;Home&#8221; i &#8222;Recent apps&#8221;.</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Lock task mode &#8211; jest to jeszcze skuteczniejszy sposób na przekształcenie urządzenia z Androidem w dedykowane urządzenie o tylko jednym przeznaczeniu. Tylko aplikacje umieszczone na białej liście przez Device Policy Controller (DPC) mogą być blokowane. Przyciski nawigacyjne są ukryte. Jest to tryb dostępny tylko dla właścicieli urządzeń.</span></li>
</ul>
<p><span style="font-weight: 400;">Uruchomienie aplikacji w trybie Kiosk Mode daje nam szereg korzyści:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">urządzenie działa jako pojedyncza platforma,</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">ukryte przyciski nawigacyjne (lock task mode),</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">nieaktywny pasek stanu,</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">automatyczne uruchamianie aplikacji wraz ze startem systemu,</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">wyłączone powiadomienia,</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">zablokowane połączenia przychodzące,</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">nieaktywne przejście do ustawień,</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">praca w trybie pełnoekranowym,</span></li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-2770 size-thumbnail" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png" alt="Separating icon" width="80" height="80" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w" sizes="(max-width: 80px) 100vw, 80px" /></p>
<h2><span style="color: #800080;"><b>Jak włączyć tryb Android Kiosk Mode?</b></span></h2>
<p><span style="font-weight: 400;"><img loading="lazy" decoding="async" class="alignleft wp-image-2873 size-thumbnail" src="https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-80x80.png" alt="Paragraph icon" width="80" height="80" srcset="https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-50x50.png 50w, https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08.png 208w" sizes="(max-width: 80px) 100vw, 80px" /></span></p>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">Pierwszym krokiem jest zaimplementowanie klasy dziedziczącej po klasie DeviceAdminReceiver:</span></p>
<p>&nbsp;</p>
<pre><span style="font-weight: 400;">class MyDeviceAdminReceiver : DeviceAdminReceiver() {</span>
<span style="font-weight: 400;">    companion object {</span>
<span style="font-weight: 400;">        fun getComponentName(context: Context): ComponentName {</span>
<span style="font-weight: 400;">            return ComponentName(context.applicationContext, MyDeviceAdminReceiver::class.java)</span>
<span style="font-weight: 400;">        }</span>
<span style="font-weight: 400;">    }</span>
<span style="font-weight: 400;">}</span></pre>
<p><span style="font-weight: 400;">DeviceAdminReceiver to klasa, która zapewnia wygodę w interpretacji surowych działań intencji, które są wysyłane przez system.</span></p>
<p><span style="font-weight: 400;">Następnie musimy poinformować system, że nasza aplikacja ma zostać administratorem urządzenia. Możemy to zrobić dodając odbiornik w pliku AndroidManifest.xml:</span></p>
<pre><span style="font-weight: 400;">&lt;application&gt;</span>
<span style="font-weight: 400;">          ...</span>
<span style="font-weight: 400;">      &lt;receiver</span>
<span style="font-weight: 400;">            android:name=".MyDeviceAdminReceiver"</span>
<span style="font-weight: 400;">            android:description="@string/app_desc"</span>
<span style="font-weight: 400;">            android:label="@string/app_name"</span>
<span style="font-weight: 400;">            android:permission="android.permission.BIND_DEVICE_ADMIN"&gt;</span>
<span style="font-weight: 400;">            &lt;meta-data</span>
<span style="font-weight: 400;">                android:name="android.app.device_admin" /&gt;</span>
<span style="font-weight: 400;">            &lt;intent-filter&gt;</span>
<span style="font-weight: 400;">                &lt;action android:name="android.app.action.DEVICE_ADMIN_ENABLED" /&gt;</span>
<span style="font-weight: 400;">            &lt;/intent-filter&gt;</span>
<span style="font-weight: 400;">        &lt;/receiver&gt;</span>
<span style="font-weight: 400;">    &lt;/application&gt;</span></pre>
<p><span style="font-weight: 400;">W tym momencie możemy przystąpić do instalacji aplikacji. Pamiętaj, że jeśli chcesz przyznać uprawnienia administracyjne do aplikacji, musisz usunąć wszystkich istniejących użytkowników. Najprostszym sposobem jest przywrócenie fabrycznych ustawień urządzenia. Ważne jest, aby podczas pierwszego uruchomienia po resecie nie dodawać konta Google do urządzenia. Lista kroków do poprawnej konfiguracji jest następująca:</span></p>
<ol>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">przywrócenie ustawień fabrycznych na urządzeniu mobilnym,</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">pominięcie dodawanie konta Google,</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">włączenie trybu deweloperskiego i debugowania USB na urządzeniu mobilnym,</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">zainstalowanie adb (Android Device Bridge) na swoim komputerze &#8211; jest on automatycznie instalowany z Android Studio,</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">zainstalowanie aplikacji na urządzeniu mobilnym za pomocą Android Studio lub wpisując w konsoli następujące polecenia: </span><span style="font-weight: 400;"> </span>
<ol>
<li style="font-weight: 400;" aria-level="1">
<pre>adb install path / to / kiosk / application.apk</pre>
</li>
</ol>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">nadanie uprawnień administratora urządzenia aplikacji:</span>
<ol>
<li style="font-weight: 400;" aria-level="2">
<pre><span style="font-weight: 400;">adb shell dpm set-device-owner pl.inero.deliverM8 / .MyDeviceAdminReceiver</span></pre>
</li>
</ol>
</li>
</ol>
<p><span style="font-weight: 400;">Użyj następującego fragmentu kodu, aby sprawdzić czy proces przyznawania się powiódł:</span></p>
<pre><span style="font-weight: 400;">override fun onCreate(savedInstanceState: Bundle?) {</span>
<span style="font-weight: 400;">        super.onCreate(savedInstanceState)</span>
<span style="font-weight: 400;">        mDevicePolicyManager = getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager</span>
<span style="font-weight: 400;">        val isAdmin = mDevicePolicyManager.isDeviceOwnerApp(packageName)</span>
<span style="font-weight: 400;">        if (isAdmin) {</span>
<span style="font-weight: 400;">            println("You are an admin")</span>
<span style="font-weight: 400;">        } else {</span>
<span style="font-weight: 400;">            println("You are not an admin")</span>
<span style="font-weight: 400;">        }</span>
<span style="font-weight: 400;">    }</span></pre>
<p><span style="font-weight: 400;">W zależności od potrzeb możemy umożliwić użytkownikowi wyłączenie Kiosk Mode poprzez interfejs (np. poprzez potwierdzenie hasłem) lub całkowicie zablokować wyjście z aplikacji. Za pomocą poniższych fragmentów kodu postaram się wyjaśnić, w jaki sposób możesz kontrolować ustawienia, aby uzyskać rozwiązanie najlepiej odpowiadające Twoim potrzebom.</span></p>
<p><span style="font-weight: 400;">Jednym z parametrów, które możemy kontrolować jest to, czy utrzymujemy urządzenie włączone, gdy jest ono podłączone. &#8222;0&#8221; oznacza, że nigdy nie pozostaje włączone, gdy jest podłączone.</span></p>
<pre><span style="font-weight: 400;">private fun enableStayOnWhilePluggedIn(active: Boolean) = if (active) {</span>
<span style="font-weight: 400;">        mDevicePolicyManager.setGlobalSetting(mAdminComponentName,</span>
<span style="font-weight: 400;">                Settings.Global.STAY_ON_WHILE_PLUGGED_IN,</span>
<span style="font-weight: 400;">                (BatteryManager.BATTERY_PLUGGED_AC</span>
<span style="font-weight: 400;">                        or BatteryManager.BATTERY_PLUGGED_USB</span>
<span style="font-weight: 400;">                        or BatteryManager.BATTERY_PLUGGED_WIRELESS).toString())</span>
<span style="font-weight: 400;">    } else {</span>
<span style="font-weight: 400;">        mDevicePolicyManager.setGlobalSetting(mAdminComponentName, Settings.Global.STAY_ON_WHILE_PLUGGED_IN, "0")</span>
<span style="font-weight: 400;">    }</span></pre>
<p>Jeżeli chcemy nałożyć ograniczenia na użytkownika, możemy skorzystać z metody addUserRestrictrion (ComponentName admin, String key). Użytkownik urządzenia musi mieć uprawnienia administratora, w przeciwnym razie zostanie zgłoszony wyjątek bezpieczeństwa. Tę metodę można wywołać na instancji DevicePolicyManager.</p>
<pre><span style="font-weight: 400;">mDevicePolicyManager = getSystemService (Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager</span></pre>
<p><span style="font-weight: 400;">W naszym przypadku zablokowaliśmy użytkownikowi przywracanie ustawień fabrycznych, dodawanie nowych użytkowników, podłączanie nośników zewnętrznych, kontrolowanie głośności urządzenia i wyłączanie paska statusu:</span></p>
<pre><span style="font-weight: 400;">private fun setRestrictions(disallow: Boolean) {</span>
<span style="font-weight: 400;">        setUserRestriction(UserManager.DISALLOW_FACTORY_RESET, disallow)</span>
<span style="font-weight: 400;">        setUserRestriction(UserManager.DISALLOW_ADD_USER, disallow)</span>
<span style="font-weight: 400;">        setUserRestriction(UserManager.DISALLOW_MOUNT_PHYSICAL_MEDIA, disallow)</span>
<span style="font-weight: 400;">        setUserRestriction(UserManager.DISALLOW_ADJUST_VOLUME, disallow)</span>
<span style="font-weight: 400;">        mDevicePolicyManager.setStatusBarDisabled(mAdminComponentName, disallow)</span>
<span style="font-weight: 400;">    }
</span><span style="font-weight: 400;">private fun setUserRestriction(restriction: String, disallow: Boolean) = if (disallow) {</span>
<span style="font-weight: 400;">        mDevicePolicyManager.addUserRestriction(mAdminComponentName, restriction)</span>
<span style="font-weight: 400;">    } else {</span>
<span style="font-weight: 400;">        mDevicePolicyManager.clearUserRestriction(mAdminComponentName, restriction)</span>
<span style="font-weight: 400;">    }</span></pre>
<p><span style="font-weight: 400;">Jeżeli chcemy, aby nasza aplikacja startowała wraz ze startem systemu, to musimy dodać odpowiednie filtry:</span></p>
<pre><span style="font-weight: 400;">private fun setAsHomeApp(enable: Boolean) {</span>
<span style="font-weight: 400;">        if (enable) {</span>
<span style="font-weight: 400;">            val intentFilter = IntentFilter(Intent.ACTION_MAIN).apply {</span>
<span style="font-weight: 400;">                addCategory(Intent.CATEGORY_HOME)</span>
<span style="font-weight: 400;">                addCategory(Intent.CATEGORY_DEFAULT)</span>
<span style="font-weight: 400;">            }</span>
<span style="font-weight: 400;">            mDevicePolicyManager.addPersistentPreferredActivity(</span>
<span style="font-weight: 400;">                    mAdminComponentName, intentFilter, ComponentName(packageName, MainActivity::class.java.name))</span>
<span style="font-weight: 400;">        } else {</span>
<span style="font-weight: 400;">            mDevicePolicyManager.clearPackagePersistentPreferredActivities(</span>
<span style="font-weight: 400;">                    mAdminComponentName, packageName)</span>
<span style="font-weight: 400;">        }</span>
<span style="font-weight: 400;">    }</span></pre>
<p><span style="font-weight: 400;">W celu uruchomienia aplikacji w trybie pełnoekranowym należy dodać odpowiednie flagi:</span></p>
<pre><span style="font-weight: 400;">private fun setImmersiveMode(enable: Boolean) {</span>
<span style="font-weight: 400;">        if (enable) {</span>
<span style="font-weight: 400;">            val flags = (View.SYSTEM_UI_FLAG_LAYOUT_STABLE</span>
<span style="font-weight: 400;">                    or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION</span>
<span style="font-weight: 400;">                    or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN</span>
<span style="font-weight: 400;">                    or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION</span>
<span style="font-weight: 400;">                    or View.SYSTEM_UI_FLAG_FULLSCREEN</span>
<span style="font-weight: 400;">                    or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY</span>
<span style="font-weight: 400;">                    )</span>
<span style="font-weight: 400;">            window.decorView.systemUiVisibility = flags</span>
<span style="font-weight: 400;">            window.decorView.setOnSystemUiVisibilityChangeListener {</span>
<span style="font-weight: 400;">                window.decorView.systemUiVisibility = flags;</span>
<span style="font-weight: 400;">            }</span>
<span style="font-weight: 400;">        } else {</span>
<span style="font-weight: 400;">            val flags = (View.SYSTEM_UI_FLAG_LAYOUT_STABLE</span>
<span style="font-weight: 400;">                    or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION</span>
<span style="font-weight: 400;">                    or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)</span>
<span style="font-weight: 400;">            window.decorView.systemUiVisibility = flags</span>
<span style="font-weight: 400;">        }</span>
<span style="font-weight: 400;">    }</span></pre>
<p><span style="font-weight: 400;">Na koniec używamy metod startLockTask() i stopLockTask(), aby włączyć/wyłączyć tryb blokady zadań:</span></p>
<pre><span style="font-weight: 400;">private fun setLockTask(start: Boolean, isAdmin: Boolean) {</span>
<span style="font-weight: 400;">        if (isAdmin) {</span>
<span style="font-weight: 400;">            mDevicePolicyManager.setLockTaskPackages(</span>
<span style="font-weight: 400;">                    mAdminComponentName, if (start) arrayOf(packageName) else arrayOf())</span>
<span style="font-weight: 400;">        }</span>
<span style="font-weight: 400;">        if (start) {</span>
<span style="font-weight: 400;">            startLockTask()</span>
<span style="font-weight: 400;">        } else {</span>
<span style="font-weight: 400;">            stopLockTask()</span>
<span style="font-weight: 400;">        }</span>
<span style="font-weight: 400;">    }</span></pre>
<p><span style="font-weight: 400;"><img loading="lazy" decoding="async" class="aligncenter wp-image-2770 size-thumbnail" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png" alt="Separating icon" width="80" height="80" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w" sizes="(max-width: 80px) 100vw, 80px" /></span></p>
<h2><span style="color: #800080;"><b>Wynik</b></span></h2>
<p><span style="font-weight: 400;"><img loading="lazy" decoding="async" class="alignleft wp-image-2873 size-thumbnail" src="https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-80x80.png" alt="Paragraph icon" width="80" height="80" srcset="https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-50x50.png 50w, https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08.png 208w" sizes="(max-width: 80px) 100vw, 80px" />Powyższe operacje pozwalają zmienić urządzenie z systemem Android w urządzenie dedykowane, działające w trybie pełnoekranowym i uniemożliwiające użytkownikowi korzystanie z innych funkcjonalności. Na potrzeby egzemplifikacji naszej sprawy wykorzystaliśmy opracowaną w naszej firmie aplikację mobilną do <a href="https://inero-software.com/pl/zarzadzanie-lancuchem-dostaw/">zarządzania łańcuchem dostaw</a>. Aplikacja ta jest częścią platformy <a href="https://deliverm8.com/">DeliverM8</a>, którą opracowaliśmy w celu optymalizacji i planowania zadań związanych z zarządzaniem łańcuchem dostaw dla <a href="https://inero-software.com/pl/deliverm8-dostawa-ostatniej-mili/">Dostawy Ostatniej Mili</a>. Wracając do tematu, efekt końcowy wygląda następująco:</span></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-3356 size-full" src="https://inero-software.com/wp-content/uploads/2021/03/deliverM8-kiosk.png" alt="Android Kiosk mode visualisation" width="441" height="864" srcset="https://inero-software.com/wp-content/uploads/2021/03/deliverM8-kiosk.png 441w, https://inero-software.com/wp-content/uploads/2021/03/deliverM8-kiosk-153x300.png 153w" sizes="(max-width: 441px) 100vw, 441px" /></p>
<p><span style="font-weight: 400;"><img loading="lazy" decoding="async" class="aligncenter wp-image-2770 size-thumbnail" src="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png" alt="Separating icon" width="80" height="80" srcset="https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10-50x50.png 50w, https://inero-software.com/wp-content/uploads/2019/05/inero-glify-10.png 208w" sizes="(max-width: 80px) 100vw, 80px" /></span></p>
<h2><span style="color: #800080;"><b>Podsumowanie</b></span></h2>
<p><span style="font-weight: 400;"><img loading="lazy" decoding="async" class="alignleft wp-image-2873 size-thumbnail" src="https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-80x80.png" alt="Paragraph icon" width="80" height="80" srcset="https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-80x80.png 80w, https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08-50x50.png 50w, https://inero-software.com/wp-content/uploads/2019/10/inero-glify-08.png 208w" sizes="(max-width: 80px) 100vw, 80px" /></span></p>
<p><span style="font-weight: 400;">W tym wpisie pokazaliśmy jak szybko skonfigurować aplikację mobilną, aby uzyskać jednocelowe urządzenie, które w jak największym stopniu spełnia nasze potrzeby. Korzystanie z Kiosk Mode niesie za sobą wiele korzyści, takich jak zwiększenie bezpieczeństwa czy ograniczenie dostępu do niepożądanych funkcjonalności, stworzenie rozwiązania dostosowanego zarówno do potrzeb pracowników (zarządzanie zasobami, zarządzanie <a href="https://inero-software.com/pl/rozwiazania-logistyczne/">transportem i logistyką</a>) jak i klientów.<br />
</span></p>
<p>&nbsp;</p>
<p><a href="https://inero-software.com/pl/"><span style="color: #800080;"><strong>Inero Software</strong></span></a> oferuje wiedzę i doświadczenie w zakresie skutecznego wykorzystywania najnowocześniejszych technologii i danych do kształtowania korporacyjnych produktów cyfrowych przyszłości.</p>
<p>W sekcji <a href="https://inero-software.com/pl/category/firma/"><span style="color: #800080;"><strong>BLOG</strong></span></a> można znaleźć inne artykuły dotyczące nowoczesnych rozwiązań dla przedsiębiorstw.</p>
<p>&nbsp;</p>
<p></p></div><div class="col-sm-1"></div></div>
<p>Artykuł <a href="https://inero-software.com/pl/android-kiosk-mode/">Adroid Kiosk Mode &#8211; jak zmienić urządzenie z Androidem w urządzenie do dedykowanego użytku</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">4354</post-id>	</item>
	</channel>
</rss>
