{"id":5306,"date":"2026-03-30T05:55:15","date_gmt":"2026-03-30T05:55:15","guid":{"rendered":"https:\/\/www.markus-schall.de\/?p=5306"},"modified":"2026-04-17T14:30:59","modified_gmt":"2026-04-17T14:30:59","slug":"od-eksportu-danych-chatgpt-do-wlasnego-knowledge-ki-krok-po-kroku-z-ollama-i-qdrant","status":"publish","type":"post","link":"https:\/\/www.markus-schall.de\/pl\/2026\/03\/od-eksportu-danych-chatgpt-do-wlasnego-knowledge-ki-krok-po-kroku-z-ollama-i-qdrant\/","title":{"rendered":"Od eksportu danych ChatGPT do w\u0142asnej wiedzy AI: krok po kroku z Ollama i Qdrant"},"content":{"rendered":"<p>W pierwszej cz\u0119\u015bci tej serii artyku\u0142\u00f3w zobaczyli\u015bmy, \u017ce eksport danych ChatGPT to znacznie wi\u0119cej ni\u017c tylko funkcja techniczna. Eksportowane dane zawieraj\u0105 zbi\u00f3r my\u015bli, pomys\u0142\u00f3w, analiz i rozm\u00f3w, kt\u00f3re gromadzi\u0142y si\u0119 przez d\u0142ugi czas. Ale dop\u00f3ki dane te s\u0105 przechowywane tylko jako archiwum na dysku twardym, pozostaj\u0105 tylko tym: archiwum. Kluczowym krokiem jest ponowne wykorzystanie tych informacji. To w\u0142a\u015bnie tutaj zaczyna si\u0119 rozw\u00f3j osobistej sztucznej inteligencji.<\/p>\n<p>Pomys\u0142 jest w rzeczywisto\u015bci zaskakuj\u0105co prosty: sztuczna inteligencja powinna nie tylko pracowa\u0107 z wiedz\u0105 og\u00f3ln\u0105, ale tak\u017ce mie\u0107 dost\u0119p do w\u0142asnych danych. Powinna przeszukiwa\u0107 poprzednie rozmowy, znajdowa\u0107 odpowiednie tre\u015bci i w\u0142\u0105cza\u0107 je do nowych odpowiedzi. W ten spos\u00f3b zwyk\u0142a sztuczna inteligencja staje si\u0119 rodzajem cyfrowej pami\u0119ci. Jest to druga cz\u0119\u015b\u0107 serii artyku\u0142\u00f3w, w kt\u00f3rej przyjrzymy si\u0119 teraz praktycznej stronie rzeczy.<!--more--><\/p>\n<hr \/>\n\n\t\t\t<div class=\"display-post-types\">\n\n\t\t\t\t\t\t\t<style type=\"text\/css\">\n\t\t\t#dpt-wrapper-537 { --dpt-text-align: left;--dpt-image-crop: center;--dpt-border-radius: 5px;--dpt-h-gutter: 10px;--dpt-v-gutter: 9px; }\t\t\t<\/style>\n\t\t\t<style type=\"text\/css\">#dpt-wrapper-537 { --dpt-title-font-style:normal;--dpt-title-font-weight:600;--dpt-title-line-height:1.5;--dpt-title-text-decoration:none;--dpt-title-text-transform:none;--dpt-excerpt-font-style:normal;--dpt-excerpt-font-weight:400;--dpt-excerpt-line-height:1.5;--dpt-excerpt-text-decoration:none;--dpt-excerpt-text-transform:none;--dpt-meta1-font-style:normal;--dpt-meta1-font-weight:400;--dpt-meta1-line-height:1.9;--dpt-meta1-text-decoration:none;--dpt-meta1-text-transform:none;--dpt-meta2-font-style:normal;--dpt-meta2-font-weight:400;--dpt-meta2-line-height:1.9;--dpt-meta2-text-decoration:none;--dpt-meta2-text-transform:none; }<\/style><div class=\"dpt-main-header\">\n\t\t\t\t\t\t<div class=\"dpt-main-title\">\n\t\t\t\t\t\t\t<span class=\"dpt-main-title-text\">Kwestie spo\u0142eczne tera\u017aniejszo\u015bci<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<\/div>\t\t\t\n\t\t\t\t<div id=\"dpt-wrapper-537\" class=\"dpt-wrapper dpt-mag1 land1 dpt-cropped dpt-flex-wrap\" >\n\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"die stille gefahr von wearables: wenn bequemlichkeit zur \u00dcberwachung wird\" data-id=\"3560\"  data-category=\"allgemein apple iphone &amp; ipad gesellschaft gesundheit hardware\" data-post_tag=\"apple datenschutz gesundheit ratgeber\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/pl\/2025\/11\/ciche-niebezpieczenstwo-zwiazane-z-urzadzeniami-do-noszenia-gdy-wygoda-staje-sie-inwigilacja\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Ciche niebezpiecze\u0144stwo zwi\u0105zane z urz\u0105dzeniami wearables: kiedy wygoda staje si\u0119 inwigilacj\u0105<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Wearables, smartwatch, s\u0142uchawki douszne\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/wearables-smartwatch-daten.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/wearables-smartwatch-daten.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/wearables-smartwatch-daten-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/wearables-smartwatch-daten-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/wearables-smartwatch-daten-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 75%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/pl\/2025\/11\/ciche-niebezpieczenstwo-zwiazane-z-urzadzeniami-do-noszenia-gdy-wygoda-staje-sie-inwigilacja\/\" rel=\"bookmark\">Ciche niebezpiecze\u0144stwo zwi\u0105zane z urz\u0105dzeniami wearables: kiedy wygoda staje si\u0119 inwigilacj\u0105<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"fracking, lng und energiepolitik: eine n\u00fcchterne analyse von risiken, chancen und realit\u00e4t\" data-id=\"5579\"  data-category=\"allgemein gesellschaft gesundheit\" data-post_tag=\"deutschland energiepolitik europa geopolitik krisen\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/pl\/2026\/04\/szczelinowanie-lng-i-polityka-energetyczna-trzezwa-analiza-ryzyka-mozliwosci-i-rzeczywistosci\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Szczelinowanie, LNG i polityka energetyczna: trze\u017awa analiza ryzyka, mo\u017cliwo\u015bci i rzeczywisto\u015bci<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Szczelinowanie gazu ziemnego i polityka energetyczna\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Fracking-Energiepolitik.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Fracking-Energiepolitik.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Fracking-Energiepolitik-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Fracking-Energiepolitik-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Fracking-Energiepolitik-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 75%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/pl\/2026\/04\/szczelinowanie-lng-i-polityka-energetyczna-trzezwa-analiza-ryzyka-mozliwosci-i-rzeczywistosci\/\" rel=\"bookmark\">Szczelinowanie, LNG i polityka energetyczna: trze\u017awa analiza ryzyka, mo\u017cliwo\u015bci i rzeczywisto\u015bci<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"warum ein eigenes magazin f\u00fcr unternehmen heute wichtiger ist als werbung\" data-id=\"4476\"  data-category=\"gesellschaft ki-systeme tipps &amp; anleitungen\" data-post_tag=\"datenlogik datenschutz digitales eigentum k\u00fcnstliche intelligenz ratgeber\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/pl\/2026\/01\/dlaczego-magazyn-firmowy-jest-dzis-wazniejszy-niz-reklama\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Dlaczego posiadanie w\u0142asnego magazynu jest dzi\u015b dla firm wa\u017cniejsze ni\u017c reklama?<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Magazyn jako w\u0142asno\u015b\u0107\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/magazin-gastbeitraege.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/magazin-gastbeitraege.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/magazin-gastbeitraege-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/magazin-gastbeitraege-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/magazin-gastbeitraege-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 75%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/pl\/2026\/01\/dlaczego-magazyn-firmowy-jest-dzis-wazniejszy-niz-reklama\/\" rel=\"bookmark\">Dlaczego posiadanie w\u0142asnego magazynu jest dzi\u015b dla firm wa\u017cniejsze ni\u017c reklama?<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"die krimtataren \u2013 geschichte, herkunft und gegenwart eines vergessenen volkes\" data-id=\"4154\"  data-category=\"allgemein gesellschaft kunst &amp; kultur\" data-post_tag=\"europa geopolitik krisen meinungsfreiheit\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/pl\/2025\/12\/tatarzy-krymscy-historia-pochodzenie-i-terazniejszosc-zapomnianego-ludu\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Tatarzy Krymscy - historia, pochodzenie i tera\u017aniejszo\u015b\u0107 zapomnianego ludu<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Step krymsko-tatarski\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Krimtartaren-Steppe.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Krimtartaren-Steppe.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Krimtartaren-Steppe-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Krimtartaren-Steppe-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Krimtartaren-Steppe-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 75%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/pl\/2025\/12\/tatarzy-krymscy-historia-pochodzenie-i-terazniejszosc-zapomnianego-ludu\/\" rel=\"bookmark\">Tatarzy Krymscy - historia, pochodzenie i tera\u017aniejszo\u015b\u0107 zapomnianego ludu<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\n<hr \/>\n<h2>Cz\u0119\u015b\u0107 1 serii: Niedoceniany skarb w eksporcie danych ChatGPT<\/h2>\n<p>Podczas gdy w drugiej cz\u0119\u015bci zajmiemy si\u0119 praktyczn\u0105 stron\u0105 rzeczy, warto spojrze\u0107 na <a href=\"https:\/\/www.markus-schall.de\/pl\/2026\/03\/eksport-danych-chatgpt-wyjasnia-w-jaki-sposob-czaty-ki-staja-sie-osobistym-systemem-wiedzy\/\"><strong>Pierwszy artyku\u0142 z tej serii<\/strong><\/a>. Zajmuje si\u0119 fundamentalnym pytaniem, dlaczego eksport danych ChatGPT jest tak interesuj\u0105cy - i dlaczego wielu u\u017cytkownik\u00f3w wci\u0105\u017c nie docenia jego potencja\u0142u. Artyku\u0142 pokazuje, jakie dane s\u0105 faktycznie zawarte w eksporcie, w jaki spos\u00f3b mo\u017cna je wykorzysta\u0107 do stworzenia osobistego archiwum wiedzy i dlaczego ten krok stanowi podstaw\u0119 w\u0142asnej sztucznej inteligencji z pami\u0119ci\u0105. Je\u015bli chcesz zrozumie\u0107, dlaczego w og\u00f3le budujemy ten potok i jak\u0105 warto\u015b\u0107 strategiczn\u0105 maj\u0105 twoje w\u0142asne historie czat\u00f3w, powiniene\u015b zacz\u0105\u0107 od cz\u0119\u015bci 1.<\/p>\n<p>Zanim rozpoczniemy faktyczn\u0105 implementacj\u0119 w nast\u0119pnym rozdziale, przyjrzyjmy si\u0119 najpierw, jak taki system jest zasadniczo zbudowany.<\/p>\n<hr \/>\n<h2>Podstawowa idea systemu RAG<\/h2>\n<p>Podstaw\u0105 techniczn\u0105 naszego systemu jest koncepcja, kt\u00f3ra jest obecnie szeroko stosowana w \u015bwiecie sztucznej inteligencji: RAG, czyli Retrieval Augmented Generation. Za tym terminem kryje si\u0119 bardzo praktyczna zasada.<\/p>\n<p>Zwykle model j\u0119zykowy odpowiada na pytania wy\u0142\u0105cznie na podstawie wiedzy zdobytej podczas szkolenia. Chocia\u017c wiedza ta jest rozleg\u0142a, ma ona dwa decyduj\u0105ce ograniczenia:<\/p>\n<ul>\n<li>Po pierwsze, model nie zna \u017cadnych indywidualnych informacji na temat projekt\u00f3w lub my\u015bli u\u017cytkownika.<\/li>\n<li>Po drugie, nie mo\u017ce uzyska\u0107 dost\u0119pu do nowych danych utworzonych po treningu.<\/li>\n<\/ul>\n<p>Dok\u0142adnie w tym miejscu pojawia si\u0119 system RAG. Zamiast bezpo\u015brednio generowa\u0107 odpowied\u017a, najpierw dzieje si\u0119 co\u015b innego: system przeszukuje baz\u0119 danych w poszukiwaniu tre\u015bci pasuj\u0105cych do zadanego pytania. Tre\u015b\u0107 ta jest nast\u0119pnie przekazywana do modelu j\u0119zykowego jako kontekst. Dopiero wtedy sztuczna inteligencja formu\u0142uje odpowied\u017a. W uproszczeniu proces ten wygl\u0105da nast\u0119puj\u0105co:<\/p>\n<ol>\n<li>Zadajesz pytanie \u2192<\/li>\n<li>system przeszukuje baz\u0119 wiedzy \u2192<\/li>\n<li>znaleziono odpowiedni\u0105 zawarto\u015b\u0107 \u2192<\/li>\n<li>Zawarto\u015b\u0107 ta jest przekazywana do sztucznej inteligencji jako kontekst \u2192<\/li>\n<li>SI generuje odpowied\u017a.<\/li>\n<\/ol>\n<p>Decyduj\u0105ca zaleta jest oczywista: sztuczna inteligencja mo\u017ce wykorzystywa\u0107 informacje, kt\u00f3re nie by\u0142y cz\u0119\u015bci\u0105 jej pierwotnego szkolenia.<\/p>\n<p>I tu w\u0142a\u015bnie do gry wkraczaj\u0105 dane z ChatGPT. Je\u015bli zintegrujemy te rozmowy z baz\u0105 wiedzy, sztuczna inteligencja b\u0119dzie mog\u0142a uzyska\u0107 do nich dost\u0119p p\u00f3\u017aniej. Mo\u017ce znale\u017a\u0107 poprzednie pomys\u0142y, u\u017cy\u0107 argument\u00f3w ze starych dialog\u00f3w lub wzi\u0105\u0107 pod uwag\u0119 analizy z poprzednich rozm\u00f3w. W ten spos\u00f3b system zaczyna \u201ezapami\u0119tywa\u0107\u201c my\u015bli u\u017cytkownika.<\/p>\n<h3>Elementy sk\u0142adowe naszego systemu<\/h3>\n<p>Aby to zadzia\u0142a\u0142o, potrzebujemy kilku wsp\u00f3\u0142pracuj\u0105cych ze sob\u0105 komponent\u00f3w. Na szcz\u0119\u015bcie infrastruktura techniczna jest dzi\u015b znacznie \u0142atwiej dost\u0119pna ni\u017c kilka lat temu. Nasz system sk\u0142ada si\u0119 z czterech g\u0142\u00f3wnych komponent\u00f3w.<\/p>\n<ol>\n<li>Pierwszym elementem sk\u0142adowym jest <strong>Eksport danych ChatGPT<\/strong>. To tutaj znajduj\u0105 si\u0119 nasze surowe dane. Zawieraj\u0105 one wszystkie rozmowy, kt\u00f3re wcze\u015bniej przeprowadzili\u015bmy ze sztuczn\u0105 inteligencj\u0105.<\/li>\n<li>Drugim elementem sk\u0142adowym jest <strong>Model osadzania<\/strong>. Model ten t\u0142umaczy tekst na wektory matematyczne. Umo\u017cliwia to por\u00f3wnywanie tekst\u00f3w zgodnie z ich znaczeniem.<\/li>\n<li>Trzecim elementem sk\u0142adowym jest <strong>Wektorowa baza danych<\/strong>. W naszym przypadku u\u017cywamy Qdrant. Ta baza danych przechowuje matematyczne reprezentacje tekst\u00f3w i umo\u017cliwia szybkie wyszukiwanie semantyczne.<\/li>\n<li>Czwartym elementem sk\u0142adowym jest <strong>lokalny model j\u0119zykowy<\/strong>, kt\u00f3ry dzia\u0142a przez Ollama. Model ten b\u0119dzie p\u00f3\u017aniej formu\u0142owa\u0142 rzeczywiste odpowiedzi.<\/li>\n<\/ol>\n<p>Te cztery elementy \u015bci\u015ble ze sob\u0105 wsp\u00f3\u0142pracuj\u0105.<\/p>\n<ol>\n<li>Eksport danych zapewnia zawarto\u015b\u0107.<\/li>\n<li>Model osadzania sprawia, \u017ce mo\u017cna je odczyta\u0107 maszynowo.<\/li>\n<li>Baza danych wektor\u00f3w zapisuje je i przeszukuje.<\/li>\n<li>Model j\u0119zykowy ostatecznie generuje zrozumia\u0142e odpowiedzi.<\/li>\n<\/ol>\n<p>Razem tworz\u0105 one podstaw\u0119 osobistej wiedzy AI.<\/p>\n<h3>Przep\u0142yw danych w skr\u00f3cie<\/h3>\n<p>Aby system dzia\u0142a\u0142, dane musz\u0105 przej\u015b\u0107 przez kilka etap\u00f3w. Pierwszym krokiem jest eksport danych ChatGPT, kt\u00f3ry stworzyli\u015bmy ju\u017c w pierwszym artykule. Zawarte w nim konwersacje s\u0105 najpierw wyodr\u0119bniane z plik\u00f3w JSON. Nast\u0119pnie teksty te musz\u0105 zosta\u0107 przygotowane. Du\u017ce historie czat\u00f3w s\u0105 dzielone na mniejsze sekcje, znane jako fragmenty tekstu. Dzi\u0119ki temu p\u00f3\u017aniejsze wyszukiwanie jest znacznie wydajniejsze.<\/p>\n<p>W nast\u0119pnym kroku generujemy osadzenia z tych fragment\u00f3w tekstu. Ka\u017cdy tekst jest opisany matematycznie. Teksty o podobnym znaczeniu otrzymuj\u0105 podobne wektory. Nast\u0119pnie zapisujemy te wektory w naszej bazie danych wektor\u00f3w Qdrant.<\/p>\n<p>Oznacza to, \u017ce najwa\u017cniejsza cz\u0119\u015b\u0107 infrastruktury jest ju\u017c na miejscu. Gdy pytanie jest zadawane p\u00f3\u017aniej, dzieje si\u0119 co nast\u0119puje:<\/p>\n<ol>\n<li>Pytanie jest r\u00f3wnie\u017c konwertowane na wektor.<\/li>\n<li>Baza danych wyszukuje teksty o podobnym znaczeniu.<\/li>\n<li>Te fragmenty tekstu s\u0105 przenoszone do modelu j\u0119zykowego jako kontekst.<\/li>\n<li>Model wykorzystuje te informacje do sformu\u0142owania odpowiedzi.<\/li>\n<\/ol>\n<p>Proces ten zapewnia, \u017ce sztuczna inteligencja nie tylko wykorzystuje wiedz\u0119 og\u00f3ln\u0105, ale mo\u017ce r\u00f3wnie\u017c uzyska\u0107 dost\u0119p do w\u0142asnych danych.<\/p>\n<h3>Co ostatecznie b\u0119dzie mo\u017cliwe<\/h3>\n<p>Po skonfigurowaniu systemu praca ze sztuczn\u0105 inteligencj\u0105 wyra\u017anie si\u0119 zmienia. Nie pracujesz ju\u017c tylko z og\u00f3lnym modelem j\u0119zykowym, ale ze sztuczn\u0105 inteligencj\u0105, kt\u00f3ra mo\u017ce uzyska\u0107 dost\u0119p do twoich w\u0142asnych danych. Otwiera to zupe\u0142nie nowe mo\u017cliwo\u015bci. Mo\u017cna na przyk\u0142ad zadawa\u0107 pytania takie jak:<\/p>\n<blockquote><p><em>\u201eCzy kiedykolwiek rozmawia\u0142em z SI na ten temat?\u201c.\u201c<\/em><br \/>\n<em>\u201eJakie pomys\u0142y mia\u0142em wcze\u015bniej w zwi\u0105zku z tym projektem?\u201c.\u201c<\/em><br \/>\n<em>\u201eJakie argumenty rozwin\u0105\u0142em w poprzednich rozmowach?\u201c.\u201c<\/em><\/p><\/blockquote>\n<p>Nast\u0119pnie sztuczna inteligencja przeszukuje rozmowy u\u017cytkownika i znajduje odpowiednie tre\u015bci. Zamiast udziela\u0107 tylko og\u00f3lnej odpowiedzi, mo\u017ce odnosi\u0107 si\u0119 do poprzednich my\u015bli, podsumowywa\u0107 stare analizy lub rozpoznawa\u0107 powi\u0105zania mi\u0119dzy r\u00f3\u017cnymi rozmowami.<\/p>\n<p>Innymi s\u0142owy, sztuczna inteligencja zaczyna pracowa\u0107 z Twoim w\u0142asnym archiwum wiedzy. Zmienia to proste narz\u0119dzie do czatowania w system, kt\u00f3ry mo\u017ce wspiera\u0107 twoje my\u015blenie w d\u0142u\u017cszej perspektywie. I to w\u0142a\u015bnie ten system b\u0119dziemy budowa\u0107 krok po kroku w kolejnych rozdzia\u0142ach. W nast\u0119pnej sekcji zaczniemy od praktycznej pracy i najpierw przyjrzymy si\u0119 bli\u017cej eksportowi danych ChatGPT. Poniewa\u017c zanim b\u0119dziemy mogli zbudowa\u0107 baz\u0119 wiedzy, musimy zrozumie\u0107, w jaki spos\u00f3b nasze dane s\u0105 ustrukturyzowane.<\/p>\n<hr \/>\n<h3>Aktualne badanie dotycz\u0105ce korzystania z lokalnych system\u00f3w AI<\/h3>\n<div class='bootstrap-yop yop-poll-mc'>\n\t\t\t\t\t\t\t<div class=\"basic-yop-poll-container\" style=\"background-color:#ffffff; border:0px; border-style:solid; border-color:#000000; border-radius:5px; padding:0px 5px;\" data-id=\"9\" data-temp=\"basic-pretty\" data-skin=\"square\" data-cscheme=\"blue\" data-cap=\"0\" data-access=\"guest\" data-tid=\"\" data-uid=\"348d74d84ff823eba33ed8d7b897e6e9\" data-pid=\"4154\" data-resdet=\"votes-number,percentages\" data-show-results-to=\"guest\" data-show-results-moment=\"after-vote\" data-show-results-only=\"false\" data-show-message=\"true\" data-show-results-as=\"bar\" data-sort-results-by=\"as-defined\" data-sort-results-rule=\"asc\"data-is-ended=\"0\" data-percentages-decimals=\"2\" data-gdpr=\"no\" data-gdpr-sol=\"consent\" data-css=\".basic-yop-poll-container[data-uid] .basic-vote {\t\t\t\t\t\t\t\t\ttext-align: center;\t\t\t\t\t\t\t\t}\" data-counter=\"0\" data-load-with=\"1\" data-notification-section=\"top\"><div class=\"row\"><div class=\"col-md-12\"><div class=\"basic-inner\"><div class=\"basic-message hide\" style=\"border-left: 10px solid #008000; padding: 0px 10px;\" data-error=\"#ff0000\" data-success=\"#008000\"><p class=\"basic-message-text\" style=\"color:#000000; font-size:14px; font-weight:normal;\"><\/p><\/div><div class=\"basic-overlay hide\"><div class=\"basic-vote-options\"><\/div><div class=\"basic-preloader\"><div class=\"basic-windows8\"><div class=\"basic-wBall basic-wBall_1\"><div class=\"basic-wInnerBall\"><\/div><\/div><div class=\"basic-wBall basic-wBall_2\"><div class=\"basic-wInnerBall\"><\/div><\/div><div class=\"basic-wBall basic-wBall_3\"><div class=\"basic-wInnerBall\"><\/div><\/div><div class=\"basic-wBall basic-wBall_4\"><div class=\"basic-wInnerBall\"><\/div><\/div><div class=\"basic-wBall basic-wBall_5\"><div class=\"basic-wInnerBall\"><\/div><\/div><\/div><\/div><\/div><form class=\"basic-form\" action=\"\"><input type=\"hidden\" name=\"_token\" value=\"683cbd28ef\" autocomplete=\"off\"><div class=\"basic-elements\"><div class=\"basic-element basic-question basic-question-text-vertical\" data-id=\"9\" data-uid=\"895c89cac462de540009bec235e27221\" data-type=\"question\" data-question-type=\"text\" data-required=\"yes\" data-allow-multiple=\"no\" data-min=\"1\" data-max=\"7\" data-display=\"vertical\" data-colnum=\"\" data-display-others=\"no\" data-others-color=\"\" data-others=\"\" data-others-max-chars=\"0\"><div class=\"basic-question-title\"><h5 style=\"color:#000000; font-size:16px; font-weight:normal; text-align:left;\">Co s\u0105dzisz o lokalnie uruchamianym oprogramowaniu AI, takim jak MLX lub Ollama?<\/h5><\/div><ul class=\"basic-answers\"><li class=\"basic-answer\" style=\"padding:0px 0px;\" data-id=\"45\" data-type=\"text\" data-vn=\"141\" data-color=\"#000000\" data-make-link=\"no\" data-link=\"\"><div class=\"basic-answer-content basic-text-vertical\"><label for=\"answer[45]\" class=\"basic-answer-label\"><input type=\"radio\" id=\"answer[45]\" name=\"answer[9]\" value=\"45\"><span class=\"basic-text\" style=\"color: #000000; font-size: 14px; font-weight: normal;\">Ingenious - w ko\u0144cu niezale\u017cny od chmury<\/span><\/label><\/div><\/li><li class=\"basic-answer\" style=\"padding:0px 0px;\" data-id=\"46\" data-type=\"text\" data-vn=\"25\" data-color=\"#000000\" data-make-link=\"no\" data-link=\"\"><div class=\"basic-answer-content basic-text-vertical\"><label for=\"answer[46]\" class=\"basic-answer-label\"><input type=\"radio\" id=\"answer[46]\" name=\"answer[9]\" value=\"46\"><span class=\"basic-text\" style=\"color: #000000; font-size: 14px; font-weight: normal;\">Interesuj\u0105ce, ale (wci\u0105\u017c) zbyt skomplikowane<\/span><\/label><\/div><\/li><li class=\"basic-answer\" style=\"padding:0px 0px;\" data-id=\"47\" data-type=\"text\" data-vn=\"28\" data-color=\"#000000\" data-make-link=\"no\" data-link=\"\"><div class=\"basic-answer-content basic-text-vertical\"><label for=\"answer[47]\" class=\"basic-answer-label\"><input type=\"radio\" id=\"answer[47]\" name=\"answer[9]\" value=\"47\"><span class=\"basic-text\" style=\"color: #000000; font-size: 14px; font-weight: normal;\">Wypr\u00f3buj\u0119 to wkr\u00f3tce<\/span><\/label><\/div><\/li><li class=\"basic-answer\" style=\"padding:0px 0px;\" data-id=\"48\" data-type=\"text\" data-vn=\"5\" data-color=\"#000000\" data-make-link=\"no\" data-link=\"\"><div class=\"basic-answer-content basic-text-vertical\"><label for=\"answer[48]\" class=\"basic-answer-label\"><input type=\"radio\" id=\"answer[48]\" name=\"answer[9]\" value=\"48\"><span class=\"basic-text\" style=\"color: #000000; font-size: 14px; font-weight: normal;\">Nie potrzebuj\u0119 tego - chmura mi wystarczy<\/span><\/label><\/div><\/li><li class=\"basic-answer\" style=\"padding:0px 0px;\" data-id=\"49\" data-type=\"text\" data-vn=\"4\" data-color=\"#000000\" data-make-link=\"no\" data-link=\"\"><div class=\"basic-answer-content basic-text-vertical\"><label for=\"answer[49]\" class=\"basic-answer-label\"><input type=\"radio\" id=\"answer[49]\" name=\"answer[9]\" value=\"49\"><span class=\"basic-text\" style=\"color: #000000; font-size: 14px; font-weight: normal;\">Nie wiem dok\u0142adnie o co chodzi<\/span><\/label><\/div><\/li><\/ul><\/div><div class=\"clearfix\"><\/div><\/div><div class=\"basic-vote\"><a href=\"#\" class=\"button basic-vote-button\" role=\"button\" style=\"background:#027bb8; border:0px; border-style: solid; border-color:#000000; border-radius:5px; padding:10px 10px; color:#ffffff; font-size:14px; font-weight:normal;\">G\u0142osowanie<\/a><\/div><input type=\"hidden\" name=\"trp-form-language\" value=\"pl\"\/><\/form><\/div><\/div><\/div><\/div>\n\t\t\t\t\t\t<\/div>\n<hr \/>\n<h2>Przygotowanie: Zrozumienie eksportu danych ChatGPT<\/h2>\n<p>W pierwszym artykule z tej serii utworzyli\u015bmy ju\u017c eksport danych ChatGPT i pobrali\u015bmy go jako plik ZIP. Na pierwszy rzut oka plik ten mo\u017ce wydawa\u0107 si\u0119 ma\u0142o spektakularny - archiwum z kilkoma plikami technicznymi, kt\u00f3re pocz\u0105tkowo wygl\u0105da bardziej jak kopia zapasowa ni\u017c cenny zestaw danych. Jednak to archiwum zawiera podstaw\u0119 ca\u0142ego naszego systemu wiedzy.<\/p>\n<p>Zanim zaczniemy \u0142adowa\u0107 te dane do bazy danych lub pod\u0142\u0105cza\u0107 je do sztucznej inteligencji, musimy najpierw zrozumie\u0107 struktur\u0119 eksportu. Poniewa\u017c tylko wtedy, gdy wiemy, jakie informacje s\u0105 zawarte i jak s\u0105 ustrukturyzowane, mo\u017cemy je p\u00f3\u017aniej przetwarza\u0107 w znacz\u0105cy spos\u00f3b. W tym rozdziale przyjrzymy si\u0119 zatem strukturze eksportu danych, kt\u00f3re pliki s\u0105 naprawd\u0119 istotne i jak mo\u017cemy przekszta\u0142ci\u0107 to archiwum techniczne w u\u017cyteczn\u0105 podstaw\u0119 dla naszego systemu wiedzy AI.<\/p>\n<h3>Rozpakuj plik ZIP<\/h3>\n<p>Pierwszy krok jest banalny, ale niemniej wa\u017cny: musimy rozpakowa\u0107 pobrane archiwum. Plik jest zwykle dost\u0119pny jako klasyczny plik ZIP. W zale\u017cno\u015bci od stopnia jego wcze\u015bniejszego wykorzystania, mo\u017ce on r\u00f3\u017cni\u0107 si\u0119 rozmiarem. Niekt\u00f3rzy u\u017cytkownicy otrzymuj\u0105 archiwum o rozmiarze kilkuset megabajt\u00f3w, inni kilku gigabajt\u00f3w.<\/p>\n<p>Po rozpakowaniu pliku tworzony jest folder z kilkoma plikami i podfolderami. Dok\u0142adna struktura mo\u017ce si\u0119 nieznacznie r\u00f3\u017cni\u0107, ale zazwyczaj znajduje si\u0119 tam kilka plik\u00f3w JSON i ewentualnie inne pliki z dodatkowymi informacjami.<\/p>\n<p>Dla wielu u\u017cytkownik\u00f3w struktura ta pocz\u0105tkowo wydaje si\u0119 nieco techniczna. Ale je\u015bli po\u015bwi\u0119cisz chwil\u0119, szybko rozpoznasz wz\u00f3r: dane s\u0105 zorganizowane stosunkowo schludnie i maj\u0105 jasn\u0105 struktur\u0119. To dobra wiadomo\u015b\u0107, poniewa\u017c to w\u0142a\u015bnie ta struktura umo\u017cliwia p\u00f3\u017aniejsze automatyczne przetwarzanie tre\u015bci.<\/p>\n<h3>Struktura danych czatu<\/h3>\n<p>Najwa\u017cniejsz\u0105 cz\u0119\u015bci\u0105 eksportu s\u0105 rzeczywiste dane czatu. Rozmowy te s\u0105 zwykle przechowywane w jednym lub kilku plikach JSON. JSON to szeroko stosowany format danych, kt\u00f3ry jest cz\u0119sto u\u017cywany do przechowywania ustrukturyzowanych informacji.<\/p>\n<p>Taki plik nie zawiera po prostu d\u0142ugiego tekstu. Zamiast tego dialog jest podzielony na poszczeg\u00f3lne elementy. Zazwyczaj dialog sk\u0142ada si\u0119 z kilku wiadomo\u015bci. Ka\u017cda wiadomo\u015b\u0107 zawiera informacje takie jak<\/p>\n<ul>\n<li>rzeczywisty tekst wiadomo\u015bci<\/li>\n<li>rola nadawcy (u\u017cytkownik lub sztuczna inteligencja)<\/li>\n<li>znacznik czasu<\/li>\n<li>cz\u0119\u015bciowo dalsze metadane<\/li>\n<\/ul>\n<p>Pozwala to na odtworzenie ca\u0142ego przebiegu dialogu. Na przyk\u0142ad dialog rozpoczyna si\u0119 od pytania u\u017cytkownika. Po nim nast\u0119puje odpowied\u017a ze strony sztucznej inteligencji. Nast\u0119pnie mog\u0105 pojawi\u0107 si\u0119 kolejne pytania i odpowiedzi. Ka\u017cda z tych wiadomo\u015bci jest zapisywana indywidualnie.<\/p>\n<p>Ma to jedn\u0105 wa\u017cn\u0105 zalet\u0119: mo\u017cemy p\u00f3\u017aniej dok\u0142adnie rozpozna\u0107, kto co powiedzia\u0142 i jak rozwin\u0119\u0142a si\u0119 rozmowa. Jest to szczeg\u00f3lnie wa\u017cne dla naszego systemu wiedzy, poniewa\u017c chcemy p\u00f3\u017aniej wyszukiwa\u0107 i analizowa\u0107 dok\u0142adnie te tre\u015bci.<\/p>\n<h3>Jakich danych naprawd\u0119 potrzebujemy<\/h3>\n<p>Chocia\u017c eksport zawiera wiele informacji, nie potrzebujemy ich wszystkich do naszego systemu wiedzy. Najwa\u017cniejszym komponentem s\u0105 teksty rozm\u00f3w. Teksty te zawieraj\u0105 rzeczywist\u0105 tre\u015b\u0107: Pomys\u0142y, analizy, pytania i odpowiedzi. To w\u0142a\u015bnie te tre\u015bci chcemy p\u00f3\u017aniej przeszukiwa\u0107.<\/p>\n<p>Przydatne mog\u0105 by\u0107 r\u00f3wnie\u017c niekt\u00f3re metadane. Obejmuj\u0105 one na przyk\u0142ad<\/p>\n<ul>\n<li>Znacznik czasu<\/li>\n<li>Tytu\u0142 rozmowy<\/li>\n<li>Mo\u017cliwe wewn\u0119trzne numery identyfikacyjne<\/li>\n<\/ul>\n<p>Informacje te pomagaj\u0105 nam p\u00f3\u017aniej lepiej sortowa\u0107 tre\u015bci lub kategoryzowa\u0107 rozmow\u0119 pod wzgl\u0119dem czasu. Inne elementy eksportu s\u0105 mniej istotne dla naszego projektu. Obejmuje to na przyk\u0142ad pewne metadane techniczne, kt\u00f3re s\u0105 interesuj\u0105ce tylko dla wewn\u0119trznego funkcjonowania platformy.<\/p>\n<p>Aby zbudowa\u0107 nasz\u0105 baz\u0119 wiedzy, celowo koncentrujemy si\u0119 na najwa\u017cniejszych elementach: tekstach rozm\u00f3w i podstawowych informacjach kontekstowych. Im bardziej przejrzy\u015bcie ustrukturyzujemy te dane, tym lepiej nasza sztuczna inteligencja b\u0119dzie mog\u0142a z nimi p\u00f3\u017aniej pracowa\u0107.<\/p>\n<h3>Pierwszy przegl\u0105d danych<\/h3>\n<p>Zanim zaczniemy prac\u0119 z automatycznymi skryptami, warto przyjrze\u0107 si\u0119 samym danym. Aby to zrobi\u0107, otw\u00f3rz jeden z plik\u00f3w JSON za pomoc\u0105 prostego edytora tekstu lub programu, kt\u00f3ry mo\u017ce dobrze wy\u015bwietla\u0107 pliki JSON. Wiele edytor\u00f3w kodu, takich jak Visual Studio Code, jest do tego bardzo odpowiednich, ale proste edytory tekstu r\u00f3wnie\u017c dzia\u0142aj\u0105.<\/p>\n<p>Kiedy po raz pierwszy spojrzysz na plik, prawdopodobnie zobaczysz stosunkowo du\u017c\u0105 ilo\u015b\u0107 ustrukturyzowanych danych. Pliki JSON sk\u0142adaj\u0105 si\u0119 z zagnie\u017cd\u017conych element\u00f3w - tj. p\u00f3l danych, kt\u00f3re z kolei zawieraj\u0105 inne pola. Na pocz\u0105tku mo\u017ce si\u0119 to wydawa\u0107 nieco skomplikowane, ale przy odrobinie cierpliwo\u015bci szybko rozpoznasz podstawow\u0105 struktur\u0119. Na przyk\u0142ad mo\u017cna zauwa\u017cy\u0107, \u017ce konwersacja sk\u0142ada si\u0119 z kilku wiadomo\u015bci, a ka\u017cda wiadomo\u015b\u0107 reprezentuje oddzielny obiekt. Rzeczywisty tekst znajduje si\u0119 zwykle w wyra\u017anie rozpoznawalnym polu.<\/p>\n<p>To pierwsze badanie ma wa\u017cny cel: pomaga zrozumie\u0107 struktur\u0119 danych. Poniewa\u017c w nast\u0119pnym rozdziale u\u017cyjemy w\u0142a\u015bnie tej struktury, aby automatycznie odczyta\u0107 konwersacje i przygotowa\u0107 je dla naszego systemu wiedzy. Innymi s\u0142owy: Przekszta\u0142camy teraz krok po kroku archiwum danych technicznych w u\u017cyteczn\u0105 baz\u0119 wiedzy. I w\u0142a\u015bnie od tego zaczynamy w nast\u0119pnym rozdziale. Celem jest wyodr\u0119bnienie danych czatu i przygotowanie ich w taki spos\u00f3b, aby mo\u017cna je by\u0142o p\u00f3\u017aniej efektywnie przeszukiwa\u0107.<\/p>\n<h2>Przygotowywanie danych: Od rozm\u00f3w do tekst\u00f3w nadaj\u0105cych si\u0119 do analizy<\/h2>\n<p>Po rozpakowaniu eksportu danych ChatGPT w poprzednim rozdziale i uzyskaniu wst\u0119pnego przegl\u0105du struktury, rozpoczyna si\u0119 w\u0142a\u015bciwa techniczna cz\u0119\u015b\u0107 naszego projektu. Chocia\u017c wyeksportowane dane s\u0105 kompletne, nie s\u0105 jeszcze optymalnie dostosowane do naszego systemu wiedzy w tej formie.<\/p>\n<p>Pow\u00f3d jest prosty: historie czat\u00f3w s\u0105 zwykle d\u0142ugie, zawieraj\u0105 wiele temat\u00f3w i s\u0105 przechowywane w strukturze, kt\u00f3ra jest czytelna dla ludzi, ale nie jest idealna do wyszukiwania semantycznego lub wektorowych baz danych. Aby nasza sztuczna inteligencja mog\u0142a p\u00f3\u017aniej znale\u017a\u0107 odpowiednie tre\u015bci, musimy najpierw przetworzy\u0107 te surowe dane. Zasadniczo oznacza to trzy rzeczy:<\/p>\n<ol>\n<li>Wyodr\u0119bnianie konwersacji z plik\u00f3w JSON<\/li>\n<li>rozs\u0105dna struktura tekstu<\/li>\n<li>podzieli\u0107 zawarto\u015b\u0107 na mniejsze sekcje<\/li>\n<\/ol>\n<p>Proces ten jest ca\u0142kowicie normalnym krokiem w nowoczesnych systemach sztucznej inteligencji i jest cz\u0119sto okre\u015blany jako przetwarzanie wst\u0119pne.<\/p>\n<h3>Dlaczego surowe dane nie s\u0105 bezpo\u015brednio odpowiednie<\/h3>\n<p>Je\u015bli spojrzysz na jeden z plik\u00f3w JSON, zauwa\u017cysz, \u017ce pojedynczy czat cz\u0119sto sk\u0142ada si\u0119 z wielu wiadomo\u015bci. Typowy dialog mo\u017ce wygl\u0105da\u0107 na przyk\u0142ad tak:<\/p>\n<ul>\n<li>Pytanie<\/li>\n<li>Odpowied\u017a<\/li>\n<li>Zapytanie<\/li>\n<li>nowa deklaracja<\/li>\n<li>dalsze szczeg\u00f3\u0142y<\/li>\n<li>Podsumowanie<\/li>\n<\/ul>\n<p>Niekt\u00f3re rozmowy mog\u0105 zawiera\u0107 setki, a nawet tysi\u0105ce s\u0142\u00f3w. Dla ludzi nie stanowi to problemu. Po prostu czytamy dialog od g\u00f3ry do do\u0142u.<\/p>\n<p>Dzia\u0142a to jednak gorzej w przypadku wyszukiwania AI. Powodem tego jest fakt, \u017ce pojedynczy czat cz\u0119sto zawiera kilka temat\u00f3w. Je\u015bli p\u00f3\u017aniej przeprowadzimy wyszukiwanie semantyczne, system powinien znale\u017a\u0107 fragmenty tekstu tak dok\u0142adnie, jak to mo\u017cliwe - a nie ca\u0142e rozmowy z wieloma r\u00f3\u017cnymi tre\u015bciami.<\/p>\n<p>Dlatego du\u017ce teksty s\u0105 dzielone na mniejsze sekcje. Sekcje te nazywane s\u0105 fragmentami. Fragment to po prostu ma\u0142y blok tekstu, kt\u00f3ry zawiera sp\u00f3jn\u0105 my\u015bl. Metoda ta znacznie poprawia jako\u015b\u0107 p\u00f3\u017aniejszego wyszukiwania.<\/p>\n<h3>Wyodr\u0119bnianie historii czat\u00f3w<\/h3>\n<p>Pierwszym praktycznym krokiem jest odczytanie zawarto\u015bci z plik\u00f3w JSON. U\u017cywamy do tego ma\u0142ego skryptu Pythona. Python jest szczeg\u00f3lnie odpowiedni do takich zada\u0144, poniewa\u017c zawiera wiele bibliotek do przetwarzania danych i sztucznej inteligencji.<\/p>\n<p>Najpierw utw\u00f3rz nowy plik, na przyk\u0142ad:<\/p>\n<p><code class=\"notranslate\" data-no-translation=\"\">extract_chats.py<\/code><\/p>\n<p>Nast\u0119pnie dodajemy prosty skrypt, kt\u00f3ry \u0142aduje dane czatu.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">import json\r\nwith open(\"conversations.json\", \"r\", encoding=\"utf-8\") as f:\r\n  data = json.load(f)\r\nprint(\"Anzahl der Gespr\u00e4che:\", len(data))<\/pre>\n<p>Po uruchomieniu tego skryptu powiniene\u015b zobaczy\u0107, ile konwersacji zawiera eksport. Teraz wyodr\u0119bnijmy rzeczywiste teksty.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">texts = []\r\nfor conversation in data:\r\n  if \"mapping\" in conversation:\r\n    for node in conversation[\"mapping\"].values():\r\n      message = node.get(\"message\")\r\n      if message:\r\n        content = message.get(\"content\")\r\n        if content and \"parts\" in content:\r\n          text = \" \".join(content[\"parts\"])\r\n          texts.append(text)\r\nprint(\"Extrahierte Textabschnitte:\", len(texts))<\/pre>\n<p>Ten skrypt przechodzi przez struktur\u0119 JSON i zbiera wszystkie cz\u0119\u015bci tekstowe z konwersacji. Oznacza to, \u017ce zako\u0144czyli\u015bmy ju\u017c najwa\u017cniejsz\u0105 cz\u0119\u015b\u0107: wyodr\u0119bnili\u015bmy zawarto\u015b\u0107 z technicznego formatu eksportu.<\/p>\n<h3>Tworzenie fragment\u00f3w tekstu<\/h3>\n<p>Teraz nadchodzi kolejny wa\u017cny krok: dzielenie na fragmenty. Zamiast zapisywa\u0107 ca\u0142e rozmowy, dzielimy teksty na mniejsze sekcje.<br \/>\nTypowy rozmiar takich fragment\u00f3w tekstu wynosi od 300 do 800 s\u0142\u00f3w lub oko\u0142o 500 token\u00f3w. Poni\u017cej znajduje si\u0119 prosty przyk\u0142ad podzia\u0142u tekstu na fragmenty.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">def split_text(text, chunk_size=500):\r\n    words = text.split()\r\n    chunks = []\r\n    for i in range(0, len(words), chunk_size):\r\n        chunk = \" \".join(words[i:i+chunk_size])\r\n        chunks.append(chunk)\r\n    return chunks<\/pre>\n<p>Teraz mo\u017cemy zastosowa\u0107 t\u0119 funkcj\u0119 do naszych tekst\u00f3w.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">all_chunks = []\r\nfor text in texts:\r\n    chunks = split_text(text)\r\n    all_chunks.extend(chunks)\r\nprint(\"Gesamtzahl der Chunks:\", len(all_chunks))<\/pre>\n<p>Stworzyli\u015bmy teraz wiele mniejszych sekcji tekstowych z historii naszych czat\u00f3w. Te bloki tekstowe s\u0105 idealne do p\u00f3\u017aniejszego wyszukiwania w wektorowej bazie danych.<\/p>\n<h3>Dodaj metadane<\/h3>\n<p>Opr\u00f3cz samego tekstu, bardzo pomocne mog\u0105 by\u0107 dodatkowe informacje. Te tak zwane metadane pomagaj\u0105 nam p\u00f3\u017aniej lepiej sortowa\u0107 lub filtrowa\u0107 tre\u015bci. Typowymi metadanymi mog\u0105 by\u0107<\/p>\n<ul>\n<li>Data rozmowy<\/li>\n<li>Tytu\u0142 rozmowy<\/li>\n<li>\u0179r\u00f3d\u0142o (ChatGPT Export)<\/li>\n<li>Identyfikator po\u0142\u0105czenia<\/li>\n<\/ul>\n<p>Mo\u017cemy zapisa\u0107 te informacje razem z tekstem, na przyk\u0142ad w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">documents = []\r\nfor conversation in data:\r\n    title = conversation.get(\"title\", \"Unbekannt\")\r\n    if \"mapping\" in conversation:\r\n        for node in conversation[\"mapping\"].values():\r\n            message = node.get(\"message\")\r\n            if message:\r\n                content = message.get(\"content\")\r\n                if content and \"parts\" in content:\r\n                    text = \" \".join(content[\"parts\"])\r\n                    chunks = split_text(text)\r\n                    for chunk in chunks:\r\n                        documents.append({\r\n                            \"text\": chunk,\r\n                            \"title\": title\r\n                         })<\/pre>\n<p>Dzi\u0119ki temu nasze dane zyska\u0142y znacznie lepsz\u0105 struktur\u0119. Zamiast zagmatwanego archiwum czat\u00f3w, mamy teraz zbi\u00f3r wielu ma\u0142ych sekcji tekstowych, z kt\u00f3rych ka\u017cda zawiera informacje kontekstowe.<\/p>\n<p>To w\u0142a\u015bnie ta struktura b\u0119dzie kluczowa w nast\u0119pnym kroku. Poniewa\u017c teraz mo\u017cemy zacz\u0105\u0107 generowa\u0107 osadzenia z tych tekst\u00f3w - tj. matematyczne reprezentacje tre\u015bci, kt\u00f3re p\u00f3\u017aniej zostan\u0105 zapisane w naszej wektorowej bazie danych. I w\u0142a\u015bnie o tym jest nast\u0119pny rozdzia\u0142.<\/p>\n<h2>Tworzenie osadze\u0144<\/h2>\n<p>W poprzednim rozdziale umie\u015bcili\u015bmy ju\u017c nasze dane ChatGPT w u\u017cytecznej formie. Wyodr\u0119bnili\u015bmy konwersacje z plik\u00f3w JSON, wyczy\u015bcili\u015bmy teksty i podzielili\u015bmy je na mniejsze sekcje - tak zwane chunki.<\/p>\n<p>Jednak wci\u0105\u017c brakuje jednego kluczowego kroku, zanim nasza sztuczna inteligencja b\u0119dzie mog\u0142a naprawd\u0119 wyszukiwa\u0107 tre\u015bci w znacz\u0105cy spos\u00f3b. Teksty musz\u0105 zosta\u0107 przet\u0142umaczone na form\u0119, kt\u00f3r\u0105 maszyny mog\u0105 por\u00f3wna\u0107. W tym miejscu do gry wkraczaj\u0105 osadzenia.<\/p>\n<p>Osadzenia s\u0105 matematycznymi reprezentacjami tekst\u00f3w. Umo\u017cliwiaj\u0105 one komputerom por\u00f3wnywanie znaczenia tekst\u00f3w. Dwa teksty o podobnej tre\u015bci otrzymuj\u0105 podobne wektory - nawet je\u015bli u\u017cywaj\u0105 r\u00f3\u017cnych s\u0142\u00f3w. Jest to dok\u0142adnie ta w\u0142a\u015bciwo\u015b\u0107, kt\u00f3rej potrzebujemy dla naszego systemu wiedzy. W ko\u0144cu nasza sztuczna inteligencja powinna nie tylko wyszukiwa\u0107 identyczne s\u0142owa, ale tak\u017ce teksty o pasuj\u0105cej tre\u015bci.<\/p>\n<h3>Czym s\u0105 osadzenia<\/h3>\n<p>Osadzenie jest zasadniczo list\u0105 liczb. Liczby te opisuj\u0105 znaczenie tekstu w przestrzeni matematycznej. Ka\u017cdy tekst jest konwertowany na tak zwany wektor. Taki wektor mo\u017ce wygl\u0105da\u0107 na przyk\u0142ad tak:<\/p>\n<p><code data-no-translation=\"\">[0.134, -0.876, 0.442, 0.921, -0.223, ...]<\/code><\/p>\n<p>Pojedynczy wektor mo\u017ce zawiera\u0107 kilkaset lub nawet tysi\u0105ce liczb. Liczby te nie s\u0105 oczywi\u015bcie bezpo\u015brednio zrozumia\u0142e dla ludzi. Dla maszyn s\u0105 one jednak idealne do obliczania podobie\u0144stw mi\u0119dzy tekstami. Je\u015bli dwa teksty maj\u0105 podobn\u0105 tre\u015b\u0107, ich wektory s\u0105 bli\u017cej siebie w przestrzeni matematycznej. Przyk\u0142ad:<\/p>\n<ul>\n<li><strong>Tekst A<\/strong>\u201eJak mog\u0119 wyeksportowa\u0107 moje dane ChatGPT?\u201c<\/li>\n<li><strong>Tekst B<\/strong>\u201eJak mog\u0119 pobra\u0107 moje rozmowy ChatGPT?\u201c<\/li>\n<\/ul>\n<p>Chocia\u017c sformu\u0142owania s\u0105 r\u00f3\u017cne, oba teksty zasadniczo opisuj\u0105 ten sam temat. Dobry model osadzania rozpoznaje to podobie\u0144stwo. Oba teksty otrzymuj\u0105 zatem podobne wektory. Dok\u0142adnie t\u0119 zasad\u0119 wykorzystamy p\u00f3\u017aniej w naszym wyszukiwaniu semantycznym.<\/p>\n<h3>Osadzanie modeli z Ollama<\/h3>\n<p>Potrzebujemy specjalnego modelu do tworzenia embeddings. Na szcz\u0119\u015bcie nie musimy w tym celu korzysta\u0107 z zewn\u0119trznych us\u0142ug w chmurze. Wiele modeli osadzania mo\u017ce by\u0107 teraz obs\u0142ugiwanych lokalnie - i w\u0142a\u015bnie tutaj do gry wkracza Ollama.<\/p>\n<p>Poniewa\u017c Ollama jest ju\u017c uruchomiony w systemie, mo\u017cemy osadzi\u0107 tam model install. Bardzo dobrym modelem jest np:<\/p>\n<p><code data-no-translation=\"\">nomic-embed-text<\/code><\/p>\n<p>Mo\u017cna go okie\u0142zna\u0107 za pomoc\u0105 nast\u0119puj\u0105cego polecenia 1TP12:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">ollama pull nomic-embed-text<\/pre>\n<p>Inne popularne modele to<\/p>\n<ul>\n<li>mxbai-embed-large<\/li>\n<li>bge-large<\/li>\n<li>all-minilm<\/li>\n<\/ul>\n<p>Dla naszych cel\u00f3w <em>nomic-embed-text<\/em> jest bardzo dobrym punktem wyj\u015bcia. Model ten generuje wysokiej jako\u015bci osadzenia i dzia\u0142a lokalnie bez \u017cadnych problem\u00f3w.<\/p>\n<h3>Lokalne tworzenie osadze\u0144<\/h3>\n<p>Teraz chcemy rozszerzy\u0107 nasz skrypt Pythona, aby m\u00f3g\u0142 generowa\u0107 osadzenia. Najpierw installworzymy bibliotek\u0119, za pomoc\u0105 kt\u00f3rej Python mo\u017ce komunikowa\u0107 si\u0119 z Ollama.<\/p>\n<p>pip install ollama<\/p>\n<p>Teraz mo\u017cemy zaj\u0105\u0107 si\u0119 modelem osadzania bezpo\u015brednio z Pythona. Poni\u017cej znajduje si\u0119 prosty przyk\u0142ad:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">import ollama\r\nresponse = ollama.embeddings(\r\n    model=\"nomic-embed-text\",\r\n    prompt=\"Wie exportiere ich meine ChatGPT-Daten?\"\r\n)\r\nprint(len(response[\"embedding\"]))<\/pre>\n<p>Je\u015bli wszystko zadzia\u0142a\u0142o, otrzymasz wektor z kilkuset liczbami.<br \/>\nZastosujmy to teraz do naszych fragment\u00f3w czatu.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">embeddings = []\r\nfor doc in documents:\r\n    text = doc[\"text\"]\r\n    result = ollama.embeddings(\r\n        model=\"nomic-embed-text\",\r\n        prompt=text\r\n    )\r\n    vector = result[\"embedding\"]\r\n    embeddings.append({\r\n        \"text\": text,\r\n        \"embedding\": vector,\r\n        \"title\": doc[\"title\"]\r\n    })<\/pre>\n<p>Na tej podstawie tworzymy wektor dla ka\u017cdej sekcji tekstu. Wektory te s\u0105 p\u00f3\u017aniej zapisywane w naszej bazie danych.<\/p>\n<h3>Dlaczego ten krok jest kluczowy<\/h3>\n<p>Osadzenia s\u0105 sercem nowoczesnych system\u00f3w wiedzy. Bez osadze\u0144 mogliby\u015bmy przeszukiwa\u0107 teksty tylko za pomoc\u0105 klasycznego wyszukiwania s\u0142\u00f3w kluczowych. Oznacza\u0142oby to, \u017ce system znajdowa\u0142by tylko tre\u015bci zawieraj\u0105ce dok\u0142adnie te same s\u0142owa. Ale j\u0119zyk rzadko dzia\u0142a w tak prosty spos\u00f3b. Na przyk\u0142ad, u\u017cytkownik mo\u017ce zapyta\u0107:<\/p>\n<blockquote><p><em>\u201eJak przetworzy\u0142em moje dane ChatGPT?\u201c<\/em><\/p><\/blockquote>\n<p>Jednak oryginalna rozmowa mog\u0142aby zosta\u0107 sformu\u0142owana jako:<\/p>\n<blockquote><p><em>\u201eJak mog\u0119 przeanalizowa\u0107 m\u00f3j eksport danych ChatGPT?\u201c<\/em><\/p><\/blockquote>\n<p>Proste wyszukiwanie mo\u017ce nie rozpozna\u0107 tego po\u0142\u0105czenia. Inaczej jest w przypadku embeddings. Poniewa\u017c oba teksty maj\u0105 podobne znaczenie, ich wektory s\u0105 blisko siebie w przestrzeni matematycznej. Nasza baza danych mo\u017ce zatem znale\u017a\u0107 pasuj\u0105c\u0105 tre\u015b\u0107, nawet je\u015bli sformu\u0142owanie jest inne. To w\u0142a\u015bnie ta zdolno\u015b\u0107 sprawia, \u017ce wyszukiwanie semantyczne jest tak pot\u0119\u017cne. Pozwala ono sztucznej inteligencji wyszukiwa\u0107 nie tylko s\u0142owa, ale i znaczenia.<\/p>\n<p>I w\u0142a\u015bnie dlatego osadzenia s\u0105 centralnym elementem naszego systemu. W nast\u0119pnym rozdziale oprzemy si\u0119 na tym i installieren nasz\u0105 wektorow\u0105 baz\u0119 danych. B\u0119dziemy tam przechowywa\u0107 wygenerowane wektory - i w ten spos\u00f3b stworzymy podstaw\u0119 naszej osobistej wiedzy AI.<\/p>\n<h2>Qdrant 1TP12Dodaj i skonfiguruj<\/h2>\n<p>Po utworzeniu osadze\u0144 dla naszych danych czatu w poprzednim rozdziale, mamy teraz zbi\u00f3r fragment\u00f3w tekstu i powi\u0105zanych z nimi wektor\u00f3w. Wektory te opisuj\u0105 matematycznie znaczenie tekst\u00f3w, a tym samym stanowi\u0105 podstaw\u0119 wyszukiwania semantycznego. Dane te s\u0105 jednak obecnie dost\u0119pne tylko w pami\u0119ci roboczej naszego skryptu lub na prostych listach. Potrzebujemy wyspecjalizowanej pami\u0119ci, aby nasza sztuczna inteligencja mog\u0142a p\u00f3\u017aniej uzyska\u0107 do nich skuteczny dost\u0119p.<\/p>\n<p>W\u0142a\u015bnie w tym miejscu do gry wkracza wektorowa baza danych. Wektorowa baza danych jest zoptymalizowana do przechowywania du\u017cych ilo\u015bci takich osadze\u0144 i szybkiego wyszukiwania podobnych wektor\u00f3w. W naszym projekcie korzystamy z Qdrant, nowoczesnej bazy danych typu open source, kt\u00f3ra zosta\u0142a opracowana specjalnie dla aplikacji AI.<\/p>\n<p>W tym rozdziale 1TP12 zainstalujemy Qdrant, uruchomimy serwer i przygotujemy baz\u0119 danych, aby\u015bmy mogli p\u00f3\u017aniej \u0142atwo zaimportowa\u0107 nasze dane czatu.<\/p>\n<h3>Czym jest Qdrant<\/h3>\n<p>Qdrant to wyspecjalizowana baza danych do tak zwanego wyszukiwania wektorowego. Podczas gdy tradycyjne bazy danych przechowuj\u0105 informacje w tabelach - takich jak nazwy, liczby lub teksty - wektorowa baza danych dzia\u0142a z matematycznymi reprezentacjami danych.<\/p>\n<p>Oznacza to, \u017ce zamiast zapisywa\u0107 tylko tekst, Qdrant zapisuje powi\u0105zane osadzenia. Du\u017c\u0105 zalet\u0105 jest wyszukiwanie. Je\u015bli pytanie zostanie zadane p\u00f3\u017aniej, nasz system konwertuje je r\u00f3wnie\u017c na wektor. Qdrant mo\u017ce nast\u0119pnie b\u0142yskawicznie obliczy\u0107, kt\u00f3re zapisane teksty s\u0105 najbardziej podobne do tego wektora. Dzi\u0119ki temu mo\u017cna na przyk\u0142ad dowiedzie\u0107 si\u0119:<\/p>\n<ul>\n<li>kt\u00f3re fragmenty czatu pasuj\u0105 tematycznie do pytania<\/li>\n<li>kt\u00f3re poprzednie rozmowy zawieraj\u0105 podobn\u0105 tre\u015b\u0107<\/li>\n<li>kt\u00f3re pomys\u0142y mog\u0105 by\u0107 istotne w Twoim archiwum<\/li>\n<\/ul>\n<p>W\u0142a\u015bnie dlatego Qdrant jest dzi\u015b wykorzystywany w wielu nowoczesnych systemach sztucznej inteligencji - od wyszukiwania dokument\u00f3w po z\u0142o\u017conych asystent\u00f3w wiedzy. Kolejna zaleta: Qdrant jest open source, szybko 1TP12ised i dzia\u0142a p\u0142ynnie na zwyk\u0142ej lokalnej maszynie.<\/p>\n<h3>Instalacja Qdrant<\/h3>\n<p>Najprostszym sposobem na installieren Qdrant jest u\u017cycie Dockera. Je\u015bli Docker jest dost\u0119pny na twoim komputerze, mo\u017cesz uruchomi\u0107 serwer za pomoc\u0105 jednego polecenia. Tutaj mo\u017cesz <a href=\"https:\/\/www.docker.com\/products\/docker-desktop\/\" target=\"_blank\" rel=\"noopener\"><strong>Pobierz Docker<\/strong><\/a>, je\u015bli nie zosta\u0142 jeszcze zainstalowany na komputerze installiert.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">docker run -p 6333:6333 qdrant\/qdrant<\/pre>\n<p>To polecenie uruchamia serwer Qdrant i otwiera standardowy port 6333. Nasze skrypty mog\u0105 p\u00f3\u017aniej komunikowa\u0107 si\u0119 z baz\u0105 danych za po\u015brednictwem tego portu.<\/p>\n<p>Je\u015bli nie chcesz korzysta\u0107 z Dockera, istniej\u0105 r\u00f3wnie\u017c inne sposoby na installiere Qdrant, na przyk\u0142ad za po\u015brednictwem lokalnego pliku binarnego lub mened\u017cera pakiet\u00f3w. W wielu praktycznych projektach Docker okaza\u0142 si\u0119 jednak najprostsz\u0105 i najbardziej stabiln\u0105 opcj\u0105.<\/p>\n<p>Po uruchomieniu serwera Qdrant dzia\u0142a w tle i czeka na \u017c\u0105dania. Teraz mo\u017cna sprawdzi\u0107, czy serwer jest dost\u0119pny. Aby to zrobi\u0107, otw\u00f3rz nast\u0119puj\u0105cy adres w przegl\u0105darce:<\/p>\n<p><code data-no-translation=\"\">http:\/\/localhost:6333<\/code><\/p>\n<p>Je\u015bli wszystko zadzia\u0142a\u0142o, powinien pojawi\u0107 si\u0119 prosty komunikat o stanie. Serwer jest teraz gotowy do wykonania kolejnych krok\u00f3w.<\/p>\n<h3>Pierwsze kroki z Qdrant<\/h3>\n<p>Zanim b\u0119dziemy mogli zaimportowa\u0107 nasze dane czatu, musimy utworzy\u0107 tak zwan\u0105 kolekcj\u0119. W Qdrant kolekcja jest por\u00f3wnywalna do tabeli w klasycznej bazie danych. Zawiera ona nasze wektory i odpowiadaj\u0105ce im dane.<\/p>\n<p>Najpierw installiere biblioteki Python dla Qdrant:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">pip install qdrant-client<\/pre>\n<p>Teraz mo\u017cemy nawi\u0105za\u0107 po\u0142\u0105czenie z baz\u0105 danych w naszym skrypcie Python.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">from qdrant_client import QdrantClient\r\nclient = QdrantClient(\"localhost\", port=6333)<\/pre>\n<p>Je\u015bli ten kod zostanie wykonany bez komunikatu o b\u0142\u0119dzie, po\u0142\u0105czenie si\u0119 powiedzie. Teraz tworzymy kolekcj\u0119 dla naszych danych czatu.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">from qdrant_client.models import VectorParams, Distance\r\nclient.recreate_collection(\r\ncollection_name=\"chatgpt_archive\",\r\nvectors_config=VectorParams(size=768, distance=Distance.COSINE),\r\n)<\/pre>\n<p>Najwa\u017cniejszymi parametrami s\u0105 tutaj<\/p>\n<ul>\n<li><strong>collection_name<\/strong> - nazwa naszej bazy danych<\/li>\n<li><strong>rozmiar<\/strong> - d\u0142ugo\u015b\u0107 wektor\u00f3w osadzania<\/li>\n<li><strong>odleg\u0142o\u015b\u0107<\/strong> - metoda obliczania podobie\u0144stwa<\/li>\n<\/ul>\n<p>Rozmiar wektora zale\u017cy od u\u017cywanego modelu osadzania. Wiele modeli dzia\u0142a z wektorami o wymiarach 768 lub 1024. Funkcja odleg\u0142o\u015bci kosinusowej jest jedn\u0105 z najpopularniejszych metod obliczania podobie\u0144stw mi\u0119dzy tekstami. Oznacza to, \u017ce nasza baza danych jest ju\u017c gotowa do u\u017cycia.<\/p>\n<h3>Struktura danych planu<\/h3>\n<p>Zanim zaimportujemy nasze dane, warto przyjrze\u0107 si\u0119 strukturze, kt\u00f3r\u0105 chcemy zapisa\u0107. Ka\u017cdy wpis w naszej wektorowej bazie danych b\u0119dzie sk\u0142ada\u0142 si\u0119 z kilku komponent\u00f3w:<\/p>\n<ul>\n<li><strong>ID<\/strong> - unikalny identyfikator<\/li>\n<li><strong>Osadzanie<\/strong> - wektor tekstu<\/li>\n<li><strong>\u0141adunek<\/strong> - Dodatkowe informacje o tek\u015bcie<\/li>\n<\/ul>\n<p>\u0141adunek mo\u017ce zawiera\u0107 na przyk\u0142ad<\/p>\n<ul>\n<li>tekst oryginalny<\/li>\n<li>tytu\u0142 rozmowy<\/li>\n<li>data<\/li>\n<li>inne metadane<\/li>\n<\/ul>\n<p>Przyk\u0142adowy rekord danych mo\u017ce wygl\u0105da\u0107 nast\u0119puj\u0105co:<\/p>\n<p><code data-no-translation=\"\">{<br \/>\n\"id\": 1,<br \/>\n\"vector\": [0.123, -0.452, 0.889, ...],<br \/>\n\"payload\": {<br \/>\n\"text\": \"Wie kann ich meinen ChatGPT-Datenexport analysieren?\",<br \/>\n\"title\": \"Datenanalyse\"<br \/>\n}<br \/>\n}<\/code><\/p>\n<p>Struktura ta ma istotn\u0105 zalet\u0119. Wektory s\u0105 u\u017cywane do wyszukiwania semantycznego, podczas gdy \u0142adunek zawiera wszystkie informacje, kt\u00f3re chcemy p\u00f3\u017aniej wy\u015bwietli\u0107 lub przeanalizowa\u0107. Oznacza to, \u017ce nasz system pozostaje elastyczny i mo\u017cna go p\u00f3\u017aniej \u0142atwo rozbudowa\u0107.<\/p>\n<p>Oznacza to, \u017ce najwa\u017cniejsza cz\u0119\u015b\u0107 infrastruktury jest ju\u017c przygotowana. Nasz serwer Qdrant dzia\u0142a, baza danych jest skonfigurowana i wiemy, jak\u0105 struktur\u0119 b\u0119d\u0105 mia\u0142y nasze dane. W nast\u0119pnym rozdziale zaczynamy od kluczowego kroku: importujemy nasze dane ChatGPT do bazy danych i przekszta\u0142camy nasze archiwum rozm\u00f3w w prawdziw\u0105, przeszukiwaln\u0105 baz\u0119 wiedzy.<\/p>\n<h2>Importowanie danych ChatGPT do Qdrant<\/h2>\n<p>Teraz, gdy stworzyli\u015bmy Qdrant installiert i kolekcj\u0119 w poprzednim rozdziale, techniczna podstawa naszej bazy wiedzy zosta\u0142a stworzona. Nasze osadzenia ju\u017c istniej\u0105 - utworzyli\u015bmy je z danych ChatGPT - a Qdrant dzia\u0142a jako serwer bazy danych na naszym komputerze.<\/p>\n<p>Teraz nadchodzi kluczowy krok: \u0142adujemy nasze dane do bazy danych. Zapisujemy nie tylko same wektory, ale tak\u017ce powi\u0105zane z nimi teksty i metadane. Ta kombinacja pozwala naszej sztucznej inteligencji p\u00f3\u017aniej znale\u017a\u0107 odpowiednie tre\u015bci i wykorzysta\u0107 je w odpowiedziach. W tym rozdziale budujemy faktyczn\u0105 baz\u0119 wiedzy naszego systemu.<\/p>\n<h3>Zapisywanie osadze\u0144<\/h3>\n<p>Po pierwsze, musimy przenie\u015b\u0107 nasze wygenerowane osadzenia do bazy danych. Ka\u017cdy wpis w Qdrant sk\u0142ada si\u0119 z trzech komponent\u00f3w:<\/p>\n<ul>\n<li>identyfikator<\/li>\n<li>wektor (osadzenie)<\/li>\n<li>\u0142adunek z dodatkowymi danymi<\/li>\n<\/ul>\n<p>W naszym przypadku, na przyk\u0142ad, \u0142adunek zawiera<\/p>\n<ul>\n<li>sekcja tekstowa<\/li>\n<li>tytu\u0142 rozmowy<\/li>\n<li>Mo\u017cliwe dalsze metadane<\/li>\n<\/ul>\n<p>W Pythonie mo\u017cemy przygotowa\u0107 tak\u0105 struktur\u0119 stosunkowo \u0142atwo. Przyk\u0142ad:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">points = []\r\nfor idx, item in enumerate(embeddings):\r\npoints.append({\r\n\"id\": idx,\r\n\"vector\": item[\"embedding\"],\r\n\"payload\": {\r\n\"text\": item[\"text\"],\r\n\"title\": item[\"title\"]\r\n}\r\n})<\/pre>\n<p>Generuje to list\u0119 punkt\u00f3w danych, kt\u00f3re mo\u017cemy nast\u0119pnie zapisa\u0107 w Qdrant. Ka\u017cdy punkt danych zawiera zatem fragment tekstu, odpowiedni wektor i dodatkowe informacje kontekstowe. Ta struktura b\u0119dzie p\u00f3\u017aniej stanowi\u0107 podstaw\u0119 naszego wyszukiwania semantycznego.<\/p>\n<h3>Tworzenie skryptu importu<\/h3>\n<p>Teraz \u0142\u0105czymy nasz skrypt Python z Qdrant i przesy\u0142amy dane. Aby to zrobi\u0107, u\u017cywamy klienta Qdrant Python, kt\u00f3ry przeanalizowali\u015bmy w poprzednim rozdziale 1TP12. Import mo\u017ce wygl\u0105da\u0107 na przyk\u0142ad tak:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">from qdrant_client import QdrantClient\r\nfrom qdrant_client.models import PointStruct\r\nclient = QdrantClient(\"localhost\", port=6333)\r\npoints = []\r\nfor idx, item in enumerate(embeddings):\r\npoint = PointStruct(\r\nid=idx,\r\nvector=item[\"embedding\"],\r\npayload={\r\n\"text\": item[\"text\"],\r\n\"title\": item[\"title\"]\r\n}\r\n)\r\npoints.append(point)\r\nclient.upsert(\r\ncollection_name=\"chatgpt_archive\",\r\npoints=points\r\n)\r\nprint(\"Import abgeschlossen:\", len(points), \"Datens\u00e4tze gespeichert.\")<\/pre>\n<p>Polecenie upsert gwarantuje, \u017ce dane zostan\u0105 zapisane w kolekcji. Je\u015bli identyfikator ju\u017c istnieje, wpis jest aktualizowany. W przeciwnym razie tworzony jest nowy rekord danych. W zale\u017cno\u015bci od rozmiaru eksportu ChatGPT, import ten mo\u017ce zaj\u0105\u0107 kilka sekund lub minut. Jest to ca\u0142kowicie normalne w przypadku wi\u0119kszych zestaw\u00f3w danych - takich jak kilka tysi\u0119cy sekcji tekstowych.<\/p>\n<h3>Testowa baza danych<\/h3>\n<p>Po zako\u0144czeniu importu powinni\u015bmy sprawdzi\u0107, czy nasze dane zosta\u0142y poprawnie zapisane. Najprostszym testem jest przeprowadzenie wyszukiwania wektorowego. Aby to zrobi\u0107, najpierw tworzymy osadzenie dla pytania testowego.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">query = \"Wie kann ich ChatGPT-Daten analysieren?\"\r\nquery_vector = ollama.embeddings(\r\nmodel=\"nomic-embed-text\",\r\nprompt=query\r\n)[\"embedding\"]<\/pre>\n<p>Teraz mo\u017cemy przeszuka\u0107 Qdrant pod k\u0105tem podobnych wektor\u00f3w.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">search_result = client.search(\r\ncollection_name=\"chatgpt_archive\",\r\nquery_vector=query_vector,\r\nlimit=3\r\n)<\/pre>\n<p>Polecenie to zwraca trzy najbardziej podobne fragmenty tekstu z naszej bazy danych. Mo\u017cemy wy\u015bwietli\u0107 je na przyk\u0142ad w ten spos\u00f3b:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">for result in search_result:\r\nprint(result.payload[\"text\"])\r\nprint(\"---\")<\/pre>\n<p>Je\u015bli wszystko zadzia\u0142a\u0142o, pojawi\u0105 si\u0119 sekcje czatu z Twojego archiwum, kt\u00f3re pasuj\u0105 do wyszukiwanego has\u0142a. Teraz ju\u017c wiemy: Nasza baza danych dzia\u0142a.<\/p>\n<h3>Pierwsza ocena wynik\u00f3w<\/h3>\n<p>Ten moment jest jednym z najbardziej ekscytuj\u0105cych aspekt\u00f3w ca\u0142ego projektu. Po raz pierwszy okazuje si\u0119, \u017ce nasze archiwum czat\u00f3w mo\u017ce by\u0107 faktycznie wykorzystywane jako \u017ar\u00f3d\u0142o wiedzy. Mo\u017cesz teraz wypr\u00f3bowa\u0107 r\u00f3\u017cne zapytania wyszukiwania. Na przyk\u0142ad:<\/p>\n<ul>\n<li>\u201eArtyku\u0142 AI\u201c<\/li>\n<li>\u201eSystem RAG\u201c<\/li>\n<li>\u201eEksport danych ChatGPT\u201c<\/li>\n<li>\u201ePomys\u0142 na strategi\u0119\u201c<\/li>\n<\/ul>\n<p>W zale\u017cno\u015bci od zawarto\u015bci historii czatu, Qdrant znajdzie odpowiednie fragmenty tekstu. Czasami b\u0119dziesz zaskoczony, jakie tre\u015bci pojawi\u0105 si\u0119 ponownie. Rozmowy, o kt\u00f3rych dawno zapomnia\u0142e\u015b, mog\u0105 nagle zn\u00f3w sta\u0107 si\u0119 istotne. To bardzo wyra\u017anie pokazuje, dlaczego takie podej\u015bcie jest tak interesuj\u0105ce. Twoje stare konwersacje AI nie s\u0105 ju\u017c tylko archiwum. Staj\u0105 si\u0119 baz\u0105 wiedzy, kt\u00f3r\u0105 mo\u017cna przeszukiwa\u0107.<\/p>\n<p>W ten spos\u00f3b osi\u0105gn\u0119li\u015bmy wa\u017cny kamie\u0144 milowy. Nasze dane ChatGPT s\u0105 teraz w pe\u0142ni przechowywane w wektorowej bazie danych i mog\u0105 by\u0107 przeszukiwane semantycznie. W nast\u0119pnym rozdziale p\u00f3jdziemy o krok dalej: po\u0142\u0105czymy nasz\u0105 baz\u0119 wiedzy z sam\u0105 sztuczn\u0105 inteligencj\u0105. Umo\u017cliwi to modelowi j\u0119zykowemu dost\u0119p do tych danych w przysz\u0142o\u015bci i w\u0142\u0105czenie ich bezpo\u015brednio do odpowiedzi.<\/p>\n<figure id=\"attachment_5470\" aria-describedby=\"caption-attachment-5470\" style=\"width: 2550px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-5470\" src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Qdrant-Collections-scaled.jpg\" alt=\"Qdrant Dashboard na http:\/\/localhost:6333\/dashboard\" width=\"2560\" height=\"1786\" srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Qdrant-Collections-scaled.jpg 2560w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Qdrant-Collections-300x209.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Qdrant-Collections-1024x714.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Qdrant-Collections-768x536.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Qdrant-Collections-1536x1071.jpg 1536w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Qdrant-Collections-2048x1429.jpg 2048w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Qdrant-Collections-18x12.jpg 18w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><figcaption id=\"caption-attachment-5470\" class=\"wp-caption-text\">Qdrant Dashboard na http:\/\/localhost:6333\/dashboard<\/figcaption><\/figure>\n<h2>\u0141\u0105czenie sztucznej inteligencji z baz\u0105 wiedzy<\/h2>\n<p>Do tego momentu zbudowali\u015bmy ju\u017c du\u017c\u0105 cz\u0119\u015b\u0107 infrastruktury. Nasze dane ChatGPT zosta\u0142y wyodr\u0119bnione z eksportu, podzielone na mniejsze sekcje tekstowe, osadzone i ostatecznie zapisane w wektorowej bazie danych Qdrant.<\/p>\n<p>Jednak nasza sztuczna inteligencja nie pracuje jeszcze z tymi danymi. Chocia\u017c mo\u017cemy przeprowadzi\u0107 wyszukiwanie wektorowe za pomoc\u0105 Pythona i znale\u017a\u0107 odpowiednie fragmenty tekstu, sama sztuczna inteligencja nie jest jeszcze tego \u015bwiadoma. Kiedy zadajemy jej pytanie, nadal korzysta tylko ze swojej og\u00f3lnej wiedzy j\u0119zykowej.<\/p>\n<p>Nast\u0119pnym krokiem jest zatem po\u0142\u0105czenie tych dw\u00f3ch \u015bwiat\u00f3w. Budujemy teraz proces, w kt\u00f3rym sztuczna inteligencja najpierw otrzymuje odpowiednie tre\u015bci z bazy wiedzy, a nast\u0119pnie w\u0142\u0105cza je do swojej odpowiedzi. To jest w\u0142a\u015bnie rdze\u0144 systemu RAG.<\/p>\n<h3>Proces zapytania<\/h3>\n<p>Proces zapytania zmienia si\u0119 nieco dzi\u0119ki naszemu systemowi wiedzy. Do tej pory rozmowa ze sztuczn\u0105 inteligencj\u0105 zwykle wygl\u0105da\u0142a nast\u0119puj\u0105co:<\/p>\n<ol>\n<li>Zadajesz pytanie \u2192<\/li>\n<li>Sztuczna inteligencja przetwarza pytanie \u2192<\/li>\n<li>SI generuje odpowied\u017a.<\/li>\n<\/ol>\n<p>Dodatkowym krokiem jest baza wiedzy. Nowy proces wygl\u0105da nast\u0119puj\u0105co:<\/p>\n<ol>\n<li>Zadajesz pytanie \u2192<\/li>\n<li>pytanie jest przekszta\u0142cane w osadzenie \u2192<\/li>\n<li>wektorowa baza danych wyszukuje podobne teksty \u2192<\/li>\n<li>Teksty te s\u0105 przenoszone do sztucznej inteligencji jako kontekst \u2192<\/li>\n<\/ol>\n<p>SI formu\u0142uje odpowied\u017a. Oznacza to, \u017ce sztuczna inteligencja pracuje ju\u017c nie tylko ze swoj\u0105 wyszkolon\u0105 wiedz\u0105, ale tak\u017ce z w\u0142asnymi danymi. Ten kontekst cz\u0119sto sprawia, \u017ce odpowiedzi s\u0105 znacznie bardziej precyzyjne i spersonalizowane.<\/p>\n<h3>Etap odzyskiwania<\/h3>\n<p>Pierwsza cz\u0119\u015b\u0107 tego procesu jest znana jako odzyskiwanie. Retrieval oznacza po prostu \u201epobieranie\u201c. Na tym etapie nasz system przeszukuje baz\u0119 danych w poszukiwaniu tre\u015bci pasuj\u0105cych do tematu pytania. Najpierw tworzymy kolejne osadzenie dla bie\u017c\u0105cego pytania.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">query = \"Welche Ideen hatte ich zur Nutzung meines ChatGPT-Datenexports?\"\r\nquery_vector = ollama.embeddings(\r\nmodel=\"nomic-embed-text\",\r\nprompt=query\r\n)[\"embedding\"]<\/pre>\n<p>To osadzenie opisuje znaczenie pytania w formie matematycznej. Qdrant mo\u017ce teraz wyszukiwa\u0107 podobne wektory.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">results = client.search(\r\ncollection_name=\"chatgpt_archive\",\r\nquery_vector=query_vector,\r\nlimit=5\r\n)<\/pre>\n<p>Baza danych zwraca teraz pi\u0119\u0107 fragment\u00f3w tekstu, kt\u00f3re najlepiej pasuj\u0105 do pytania. Te fragmenty tekstu tworz\u0105 kontekst dla sztucznej inteligencji. Zbieramy je na li\u015bcie.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">context_texts = []\r\nfor r in results:\r\ncontext_texts.append(r.payload[\"text\"])<\/pre>\n<p>Mamy teraz zbi\u00f3r odpowiednich tre\u015bci z naszego archiwum czat\u00f3w.<\/p>\n<h3>Przeniesienie kontekstu do Ollama<\/h3>\n<p>Teraz nast\u0119puje decyduj\u0105cy krok. Przekazujemy ten kontekst wraz z oryginalnym pytaniem do naszego modelu j\u0119zykowego. Model mo\u017ce teraz wykorzysta\u0107 te informacje do sformu\u0142owania odpowiedzi.<\/p>\n<p>Najpierw tworzymy tak zwany monit. Podpowied\u017a to po prostu tekst, kt\u00f3ry wysy\u0142amy do sztucznej inteligencji.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">context = \"\\n\\n\".join(context_texts)\r\nprompt = f\"\"\"\r\nDu bist ein KI-Assistent, der mit meinem pers\u00f6nlichen Wissensarchiv arbeitet.\r\nNutze die folgenden Textausschnitte als Kontext:\r\n{context}\r\nBeantworte nun diese Frage:\r\n{query}\r\n\"\"\"<\/pre>\n<p>Teraz wysy\u0142amy ten monit do naszego modelu j\u0119zykowego w Ollama.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">response = ollama.chat(\r\nmodel=\"llama3\",\r\nmessages=[\r\n{\"role\": \"user\", \"content\": prompt}\r\n]\r\n)\r\nprint(response[\"message\"][\"content\"])<\/pre>\n<p>Sztuczna inteligencja otrzymuje teraz zar\u00f3wno pytanie, jak i odpowiednie fragmenty tekstu z naszej bazy danych. Umo\u017cliwia to generowanie odpowiedzi na podstawie naszych w\u0142asnych danych.<\/p>\n<h3>Generowanie odpowiedzi<\/h3>\n<p>Ostatnim krokiem jest faktyczne generowanie odpowiedzi. Model j\u0119zykowy \u0142\u0105czy teraz dwa \u017ar\u00f3d\u0142a wiedzy:<\/p>\n<p>jego w\u0142asna wyszkolona wiedza<\/p>\n<p>kontekst z naszej bazy wiedzy<\/p>\n<p>Ta kombinacja jest szczeg\u00f3lnie pot\u0119\u017cna. Model mo\u017ce wyja\u015bnia\u0107 og\u00f3lne zale\u017cno\u015bci i jednocze\u015bnie uwzgl\u0119dnia\u0107 konkretne tre\u015bci z naszego archiwum. Przyk\u0142ad: Je\u015bli zapytasz:<\/p>\n<blockquote><p><em>\u201eJakie mam pomys\u0142y na wykorzystanie eksportu danych ChatGPT?\u201c<\/em><\/p><\/blockquote>\n<p>Sztuczna inteligencja mo\u017ce teraz uzyska\u0107 dost\u0119p do poprzednich rozm\u00f3w i utworzy\u0107 z nich ustrukturyzowane podsumowanie. Mo\u017ce na przyk\u0142ad odpowiedzie\u0107:<\/p>\n<ul>\n<li>M\u00f3wi\u0142e\u015b o budowaniu osobistego archiwum wiedzy<\/li>\n<li>Chcia\u0142e\u015b stworzy\u0107 lokaln\u0105 sztuczn\u0105 inteligencj\u0119 z systemem RAG<\/li>\n<li>Rozwin\u0105\u0142e\u015b pomys\u0142 serii artyku\u0142\u00f3w<\/li>\n<\/ul>\n<p>Bez etapu wyszukiwania sztuczna inteligencja w og\u00f3le nie zna\u0142aby tych informacji. Dzi\u0119ki naszemu systemowi archiwum czat\u00f3w staje si\u0119 prawdziwym \u017ar\u00f3d\u0142em wiedzy. Jest to najwa\u017cniejsza cz\u0119\u015b\u0107 naszego systemu. Mamy teraz:<\/p>\n<ul>\n<li>lokalna sztuczna inteligencja przez Ollama<\/li>\n<li>wektorowa baza danych z naszymi danymi czatu<\/li>\n<li>wyszukiwanie semantyczne<\/li>\n<li>przep\u0142yw pracy RAG<\/li>\n<\/ul>\n<p>W nast\u0119pnym rozdziale przetestujemy ten system w praktyce i zobaczymy, jak dobrze dzia\u0142a nasza osobista sztuczna inteligencja.<\/p>\n<figure id=\"attachment_5469\" aria-describedby=\"caption-attachment-5469\" style=\"width: 1408px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-5469\" src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Terminal-Import-abgeschlossen.jpg\" alt=\"Terminal po pomy\u015blnym zaimportowaniu danych ChatGPT\" width=\"1418\" height=\"994\" srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Terminal-Import-abgeschlossen.jpg 1418w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Terminal-Import-abgeschlossen-300x210.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Terminal-Import-abgeschlossen-1024x718.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Terminal-Import-abgeschlossen-768x538.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Terminal-Import-abgeschlossen-18x12.jpg 18w\" sizes=\"auto, (max-width: 1418px) 100vw, 1418px\" \/><figcaption id=\"caption-attachment-5469\" class=\"wp-caption-text\">Terminal po pomy\u015blnym zaimportowaniu danych ChatGPT<\/figcaption><\/figure>\n<h2>Pierwsze zapytania z osobist\u0105 wiedz\u0105 AI<\/h2>\n<p>Teraz, gdy ustanowili\u015bmy po\u0142\u0105czenie mi\u0119dzy nasz\u0105 sztuczn\u0105 inteligencj\u0105 a baz\u0105 wiedzy w poprzednim rozdziale, system jest technicznie kompletny. Nasze dane ChatGPT znajduj\u0105 si\u0119 w wektorowej bazie danych, sztuczna inteligencja mo\u017ce pobiera\u0107 odpowiednie tre\u015bci, a ca\u0142y proces systemu RAG dzia\u0142a.<\/p>\n<p>Teraz nadchodzi najbardziej ekscytuj\u0105ca cz\u0119\u015b\u0107 projektu: pierwsze prawdziwe zapytania. Poniewa\u017c dopiero teraz mo\u017cemy sprawdzi\u0107, czy nasz system rzeczywi\u015bcie robi to, na co liczyli\u015bmy - a mianowicie znajduje poprzednie rozmowy, analizuje tre\u015b\u0107 i generuje znacz\u0105ce odpowiedzi. W tym rozdziale przetestujemy nasz\u0105 sztuczn\u0105 inteligencj\u0119, przyjrzymy si\u0119 typowym przypadkom u\u017cycia i przyjrzymy si\u0119 mo\u017cliwym optymalizacjom.<\/p>\n<h3>Przyk\u0142adowe zapytania<\/h3>\n<p>Zacznijmy od kilku prostych pyta\u0144. Dobr\u0105 strategi\u0105 jest rozpocz\u0119cie od zadawania pyta\u0144, o kt\u00f3rych wiesz, \u017ce znajduj\u0105 si\u0119 w archiwum czatu. Na przyk\u0142ad:<\/p>\n<blockquote><p><em>\u201eJakie mam pomys\u0142y na wykorzystanie eksportu danych ChatGPT?\u201c<\/em><br \/>\n<em>\u201eCo napisa\u0142em o systemach RAG?\u201c<\/em><br \/>\n<em>\u201eJakie strategie wykorzystania sztucznej inteligencji om\u00f3wi\u0142em?\u201c.\u201c<\/em><\/p><\/blockquote>\n<p>Pytania te celowo zawieraj\u0105 otwarte sformu\u0142owania. Celem nie jest znalezienie konkretnego tekstu, ale odkrycie odpowiedniej tematycznie tre\u015bci. Kiedy zadajesz takie pytanie swojemu systemowi, w tle odbywa si\u0119 proces, kt\u00f3ry opisali\u015bmy w poprzednim rozdziale:<\/p>\n<ol>\n<li>Pytanie jest konwertowane na osadzenie.<\/li>\n<li>Wektorowa baza danych wyszukuje podobne fragmenty tekstu.<\/li>\n<li>Te fragmenty tekstu s\u0105 przenoszone do SI jako kontekst.<\/li>\n<li>Sztuczna inteligencja generuje odpowied\u017a na podstawie tego kontekstu.<\/li>\n<\/ol>\n<p>Rezultat mo\u017ce by\u0107 zaskakuj\u0105cy. Cz\u0119sto pojawiaj\u0105 si\u0119 dawno zapomniane rozmowy. Stare pomys\u0142y nagle pojawiaj\u0105 si\u0119 na ekranie - czasem nawet w zupe\u0142nie nowym kontek\u015bcie.<\/p>\n<p>To jest w\u0142a\u015bnie si\u0142a tego podej\u015bcia. Twoje archiwum czat\u00f3w staje si\u0119 przeszukiwalnym \u017ar\u00f3d\u0142em wiedzy.<\/p>\n<h3>Jako\u015b\u0107 odpowiedzi<\/h3>\n<p>Je\u015bli wypr\u00f3bujesz kilka zapyta\u0144, zdasz sobie spraw\u0119, \u017ce jako\u015b\u0107 odpowiedzi mo\u017ce si\u0119 r\u00f3\u017cni\u0107. Jest to ca\u0142kowicie normalne. Jako\u015b\u0107 takiego systemu zale\u017cy od kilku czynnik\u00f3w. Jednym z nich jest rozmiar fragment\u00f3w tekstu. Je\u015bli sekcje s\u0105 zbyt du\u017ce, mog\u0105 zawiera\u0107 kilka temat\u00f3w. Sprawia to, \u017ce wyszukiwanie jest mniej dok\u0142adne.<\/p>\n<p>Je\u015bli jednak fragmenty s\u0105 zbyt ma\u0142e, czasami brakuje niezb\u0119dnego kontekstu. Innym czynnikiem jest model osadzania. R\u00f3\u017cne modele w r\u00f3\u017cny spos\u00f3b rozpoznaj\u0105 konteksty znaczeniowe. Niekt\u00f3re s\u0105 szczeg\u00f3lnie odpowiednie dla tekst\u00f3w technicznych, inne dla j\u0119zyka og\u00f3lnego.<\/p>\n<p>Liczba pobranych wynik\u00f3w r\u00f3wnie\u017c odgrywa rol\u0119. Na przyk\u0142ad, je\u015bli zostan\u0105 pobrane tylko dwa fragmenty tekstu, wa\u017cne informacje mog\u0105 zosta\u0107 pomini\u0119te. Z drugiej strony, je\u015bli za\u0142adowanych zostanie zbyt wiele tekst\u00f3w, sztuczna inteligencja mo\u017ce mie\u0107 trudno\u015bci z rozpoznaniem odpowiedniego kontekstu.<\/p>\n<p>Parametry te mo\u017cna p\u00f3\u017aniej \u0142atwo dostosowa\u0107. Najwa\u017cniejsz\u0105 rzecz\u0105 jest przede wszystkim posiadanie dzia\u0142aj\u0105cego systemu podstawowego.<\/p>\n<h3>Typowe problemy<\/h3>\n<p>Jak w przypadku ka\u017cdego systemu technicznego, r\u00f3wnie\u017c tutaj mog\u0105 wyst\u0105pi\u0107 pewne trudno\u015bci. Cz\u0119stym problemem jest to, \u017ce baza danych znajduje teksty, kt\u00f3re s\u0105 tylko cz\u0119\u015bciowo istotne. Dzieje si\u0119 tak, poniewa\u017c wyszukiwanie semantyczne zawsze dzia\u0142a z prawdopodobie\u0144stwem.<\/p>\n<p>Inny problem mo\u017ce pojawi\u0107 si\u0119, je\u015bli tekst zosta\u0142 zbytnio rozdrobniony. Je\u015bli my\u015bl jest roz\u0142o\u017cona na kilka fragment\u00f3w, sztuczna inteligencja mo\u017ce mie\u0107 trudno\u015bci z rozpoznaniem kontekstu.<\/p>\n<p>Podpowied\u017a r\u00f3wnie\u017c odgrywa rol\u0119. Je\u015bli podpowied\u017a jest niejasna, sztuczna inteligencja mo\u017ce nie wykorzysta\u0107 kontekstu w optymalny spos\u00f3b. Przyk\u0142ad lepszej podpowiedzi m\u00f3g\u0142by wygl\u0105da\u0107 nast\u0119puj\u0105co:<\/p>\n<blockquote><p><em>Skorzystaj z poni\u017cszych fragment\u00f3w tekstu z mojego archiwum wiedzy,<\/em><br \/>\n<em>aby jak najdok\u0142adniej odpowiedzie\u0107 na pytanie.<\/em><br \/>\n<em>Je\u015bli dost\u0119pna jest odpowiednia tre\u015b\u0107, podsumuj j\u0105.<\/em><\/p><\/blockquote>\n<p>Takie drobne korekty mog\u0105 znacznie poprawi\u0107 jako\u015b\u0107 odpowiedzi.<\/p>\n<h3>Dok\u0142adne dostrojenie<\/h3>\n<p>Gdy tylko system w zasadzie dzia\u0142a, rozpoczyna si\u0119 najciekawsza cz\u0119\u015b\u0107: dostrajanie. Tutaj mo\u017cesz eksperymentowa\u0107 i ulepsza\u0107 sw\u00f3j system wiedzy krok po kroku. Niekt\u00f3re typowe optymalizacje to<\/p>\n<ul>\n<li><strong>Dostosowywanie rozmiaru fragmentu<\/strong><br \/>\nCzasami mniejsze fragmenty tekstu zapewniaj\u0105 lepsze wyniki. W innych przypadkach przydaje si\u0119 wi\u0119cej kontekstu.<\/li>\n<li><strong>Zastosowanie innego modelu osadzania<\/strong><br \/>\nZmiana modelu mo\u017ce znacz\u0105co poprawi\u0107 jako\u015b\u0107 wyszukiwania semantycznego.<\/li>\n<li><strong>Wi\u0119cej kontekstu dla sztucznej inteligencji<\/strong><br \/>\nZ bazy danych mo\u017cna pobra\u0107 wi\u0119cej wynik\u00f3w, na przyk\u0142ad dziesi\u0119\u0107 fragment\u00f3w tekstu zamiast pi\u0119ciu.<\/li>\n<li><strong>U\u017cywanie metadanych<\/strong><br \/>\nJe\u015bli zapiszesz dodatkowe informacje - takie jak data lub tytu\u0142 po\u0142\u0105czenia - mo\u017cesz p\u00f3\u017aniej dok\u0142adniej filtrowa\u0107 wyszukiwanie.<\/li>\n<\/ul>\n<p>Te regulacje s\u0105 cz\u0119\u015bci\u0105 ka\u017cdego prawdziwego systemu RAG. Rzadko istnieje idealne ustawienie dla wszystkich sytuacji. Ale to jest w\u0142a\u015bnie urok takich system\u00f3w: mo\u017cna je stale ulepsza\u0107.<\/p>\n<p>W tym rozdziale przeprowadzili\u015bmy pierwszy pe\u0142ny test naszego systemu. Przekonali\u015bmy si\u0119, \u017ce nasza osobista sztuczna inteligencja rzeczywi\u015bcie jest w stanie przeszukiwa\u0107 stare konwersacje i pobiera\u0107 odpowiednie tre\u015bci.<\/p>\n<p>Oznacza to, \u017ce rdze\u0144 naszego projektu zosta\u0142 ju\u017c osi\u0105gni\u0119ty. Ale system mo\u017cna jeszcze znacznie rozszerzy\u0107. W nast\u0119pnym rozdziale przyjrzymy si\u0119 zatem, jak krok po kroku zintegrowa\u0107 dodatkowe \u017ar\u00f3d\u0142a danych i rozszerzy\u0107 osobiste archiwum wiedzy.<\/p>\n<hr \/>\n\n\t\t\t<div class=\"display-post-types\">\n\n\t\t\t\t\t\t\t<style type=\"text\/css\">\n\t\t\t#dpt-wrapper-538 { --dpt-text-align: left;--dpt-image-crop: center;--dpt-border-radius: 5px;--dpt-h-gutter: 10px;--dpt-v-gutter: 10px; }\t\t\t<\/style>\n\t\t\t<style type=\"text\/css\">#dpt-wrapper-538 { --dpt-title-font-style:normal;--dpt-title-font-weight:600;--dpt-title-line-height:1.5;--dpt-title-text-decoration:none;--dpt-title-text-transform:none;--dpt-excerpt-font-style:normal;--dpt-excerpt-font-weight:400;--dpt-excerpt-line-height:1.5;--dpt-excerpt-text-decoration:none;--dpt-excerpt-text-transform:none;--dpt-meta1-font-style:normal;--dpt-meta1-font-weight:400;--dpt-meta1-line-height:1.9;--dpt-meta1-text-decoration:none;--dpt-meta1-text-transform:none;--dpt-meta2-font-style:normal;--dpt-meta2-font-weight:400;--dpt-meta2-line-height:1.9;--dpt-meta2-text-decoration:none;--dpt-meta2-text-transform:none; }<\/style><div class=\"dpt-main-header\">\n\t\t\t\t\t\t<div class=\"dpt-main-title\">\n\t\t\t\t\t\t\t<span class=\"dpt-main-title-text\">Aktualne artyku\u0142y na temat Niemiec<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<\/div>\t\t\t\n\t\t\t\t<div id=\"dpt-wrapper-538\" class=\"dpt-wrapper dpt-list2 land1 dpt-cropped dpt-flex-wrap\" >\n\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"jeffrey sachs warnt deutschland: warum europas sicherheit neu gedacht werden muss\" data-id=\"4079\"  data-category=\"allgemein gesellschaft\" data-post_tag=\"deutschland energiepolitik eu-gesetze europa geopolitik krisen meinungsfreiheit portrait sicherheitspolitik\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/pl\/2025\/12\/jeffrey-sachs-ostrzega-niemcy-dlaczego-nalezy-przemyslec-bezpieczenstwo-europy\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Jeffrey Sachs ostrzega Niemcy: Dlaczego nale\u017cy przemy\u015ble\u0107 bezpiecze\u0144stwo Europy?<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Jeffrey Sachs pisze list otwarty do kanclerza Merza\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/jeffrey-sachs-bundeskanzler-eu.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/jeffrey-sachs-bundeskanzler-eu.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/jeffrey-sachs-bundeskanzler-eu-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/jeffrey-sachs-bundeskanzler-eu-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/jeffrey-sachs-bundeskanzler-eu-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 75%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/pl\/2025\/12\/jeffrey-sachs-ostrzega-niemcy-dlaczego-nalezy-przemyslec-bezpieczenstwo-europy\/\" rel=\"bookmark\">Jeffrey Sachs ostrzega Niemcy: Dlaczego nale\u017cy przemy\u015ble\u0107 bezpiecze\u0144stwo Europy?<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"fracking, lng und energiepolitik: eine n\u00fcchterne analyse von risiken, chancen und realit\u00e4t\" data-id=\"5579\"  data-category=\"allgemein gesellschaft gesundheit\" data-post_tag=\"deutschland energiepolitik europa geopolitik krisen\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/pl\/2026\/04\/szczelinowanie-lng-i-polityka-energetyczna-trzezwa-analiza-ryzyka-mozliwosci-i-rzeczywistosci\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Szczelinowanie, LNG i polityka energetyczna: trze\u017awa analiza ryzyka, mo\u017cliwo\u015bci i rzeczywisto\u015bci<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Szczelinowanie gazu ziemnego i polityka energetyczna\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Fracking-Energiepolitik.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Fracking-Energiepolitik.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Fracking-Energiepolitik-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Fracking-Energiepolitik-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Fracking-Energiepolitik-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 75%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/pl\/2026\/04\/szczelinowanie-lng-i-polityka-energetyczna-trzezwa-analiza-ryzyka-mozliwosci-i-rzeczywistosci\/\" rel=\"bookmark\">Szczelinowanie, LNG i polityka energetyczna: trze\u017awa analiza ryzyka, mo\u017cliwo\u015bci i rzeczywisto\u015bci<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"warum dieter bohlen spricht, wenn andere schweigen: ein portr\u00e4t \u00fcber flei\u00df und klarheit\" data-id=\"3744\"  data-category=\"allgemein gesellschaft kunst &amp; kultur\" data-post_tag=\"auswandern deutschland erfahrungen krisen meinungsfreiheit musik portrait\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/pl\/2025\/12\/dlaczego-dieter-bohlen-mowi-gdy-inni-milcza-portret-pracowitosci-i-przejrzystosci\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Dlaczego Dieter Bohlen m\u00f3wi, gdy inni milcz\u0105: Portret pracowito\u015bci i jasno\u015bci<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Dieter-Bohlen-Portrait.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Dieter-Bohlen-Portrait.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Dieter-Bohlen-Portrait-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Dieter-Bohlen-Portrait-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Dieter-Bohlen-Portrait-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 75%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/pl\/2025\/12\/dlaczego-dieter-bohlen-mowi-gdy-inni-milcza-portret-pracowitosci-i-przejrzystosci\/\" rel=\"bookmark\">Dlaczego Dieter Bohlen m\u00f3wi, gdy inni milcz\u0105: Portret pracowito\u015bci i jasno\u015bci<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"hohe energiepreise in deutschland verstehen: gas, strom und benzin einfach erkl\u00e4rt\" data-id=\"4103\"  data-category=\"allgemein featured gesellschaft tipps &amp; anleitungen\" data-post_tag=\"deutschland energiepolitik eu-gesetze europa krisen ratgeber\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/pl\/2025\/12\/zrozumienie-wysokich-cen-energii-w-niemczech-gaz-energia-elektryczna-i-benzyna-wyjasnione-w-prosty-sposob\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Zrozumienie wysokich cen energii w Niemczech: Gaz, elektryczno\u015b\u0107 i benzyna wyja\u015bnione w prosty spos\u00f3b<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Ceny energii w Niemczech\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/energiepreise-deutschland.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/energiepreise-deutschland.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/energiepreise-deutschland-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/energiepreise-deutschland-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/energiepreise-deutschland-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 75%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/pl\/2025\/12\/zrozumienie-wysokich-cen-energii-w-niemczech-gaz-energia-elektryczna-i-benzyna-wyjasnione-w-prosty-sposob\/\" rel=\"bookmark\">Zrozumienie wysokich cen energii w Niemczech: Gaz, elektryczno\u015b\u0107 i benzyna wyja\u015bnione w prosty spos\u00f3b<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\n<hr \/>\n<h2>Rozszerzenia dla osobistego systemu wiedzy AI<\/h2>\n<p>Stworzy\u0142e\u015b ju\u017c dzia\u0142aj\u0105cy system z poprzedni\u0105 konfiguracj\u0105. Dane z ChatGPT zosta\u0142y wyodr\u0119bnione, przekonwertowane na embeddings, zapisane w Qdrant i ostatecznie po\u0142\u0105czone z lokaln\u0105 sztuczn\u0105 inteligencj\u0105. Rezultatem jest sztuczna inteligencja, kt\u00f3ra mo\u017ce uzyska\u0107 dost\u0119p do poprzednich rozm\u00f3w.<\/p>\n<p>Ale \u015bci\u015ble m\u00f3wi\u0105c, jeste\u015bmy dopiero na pocz\u0105tku. Zbudowana architektura nie ogranicza si\u0119 do danych ChatGPT. Dzia\u0142a ona z ka\u017cdym rodzajem tekstu. Wszystko, co mo\u017cna przekonwertowa\u0107 na dokumenty lub pliki tekstowe, mo\u017ce sta\u0107 si\u0119 cz\u0119\u015bci\u0105 tego systemu wiedzy. W tym w\u0142a\u015bnie tkwi prawdziwy potencja\u0142 takich system\u00f3w.<\/p>\n<p>Zasadniczo zbudowali\u015bmy osobist\u0105 maszyn\u0119 wiedzy. Maszyn\u0119 t\u0119 mo\u017cna rozbudowywa\u0107 krok po kroku. W tym rozdziale przyjrzymy si\u0119 wynikaj\u0105cym z tego mo\u017cliwo\u015bciom i sposobom rozbudowy systemu w d\u0142u\u017cszej perspektywie.<\/p>\n<h3>Integracja dodatkowych \u017ar\u00f3de\u0142 danych<\/h3>\n<p>Najbardziej oczywistym kolejnym krokiem jest dodanie wi\u0119kszej ilo\u015bci tre\u015bci do bazy wiedzy. Rozmowy na ChatGPT s\u0105 dobrym pocz\u0105tkiem, ale zazwyczaj reprezentuj\u0105 tylko cz\u0119\u015b\u0107 Twojej wiedzy. Wiele informacji jest dost\u0119pnych w innych formatach. Na przyk\u0142ad:<\/p>\n<ul>\n<li>w\u0142asne artyku\u0142y<\/li>\n<li>Uwagi<\/li>\n<li>Dokumenty PDF<\/li>\n<li>Dokumenty badawcze<\/li>\n<li>E-booki<\/li>\n<li>Protoko\u0142y lub listy pomys\u0142\u00f3w<\/li>\n<\/ul>\n<p>Ca\u0142a ta zawarto\u015b\u0107 mo\u017ce by\u0107 przetwarzana w taki sam spos\u00f3b, jak nasze dane czatu. Proces pozostaje identyczny:<\/p>\n<ul>\n<li>Wyci\u0105g tekstu<\/li>\n<li>Dzielenie tekstu na fragmenty<\/li>\n<li>Tworzenie osadze\u0144<\/li>\n<li>Zapisywanie danych w Qdrant<\/li>\n<\/ul>\n<p>Przyk\u0142ad: Je\u015bli napisa\u0142e\u015b wiele w\u0142asnych artyku\u0142\u00f3w, mo\u017cesz zaimportowa\u0107 te teksty do bazy wiedzy. Sztuczna inteligencja mo\u017ce p\u00f3\u017aniej uzyska\u0107 do nich dost\u0119p i rozpozna\u0107 korelacje. Na przyk\u0142ad mo\u017cesz zapyta\u0107:<\/p>\n<blockquote><p><em>\u201eJakie artyku\u0142y napisa\u0142em o sztucznej inteligencji?\u201c.\u201c<\/em><\/p><\/blockquote>\n<p>lub<\/p>\n<blockquote><p><em>\u201eJakie argumenty opracowa\u0142em na ten temat w przesz\u0142o\u015bci?\u201c.\u201c<\/em><\/p><\/blockquote>\n<p>Nast\u0119pnie sztuczna inteligencja przeszukuje archiwum artyku\u0142\u00f3w i wykorzystuje znalezione tre\u015bci jako kontekst. W ten spos\u00f3b system krok po kroku rozwija si\u0119 w kompleksowe archiwum wiedzy.<\/p>\n<h3>Kilka baz danych wiedzy<\/h3>\n<p>Wraz ze wzrostem ilo\u015bci danych przydatne mo\u017ce by\u0107 oddzielenie r\u00f3\u017cnych obszar\u00f3w. Qdrant umo\u017cliwia tworzenie wielu kolekcji. Ka\u017cda kolekcja mo\u017ce reprezentowa\u0107 w\u0142asn\u0105 baz\u0119 wiedzy. Mo\u017cliwy system m\u00f3g\u0142by wygl\u0105da\u0107 na przyk\u0142ad tak:<\/p>\n<ul>\n<li><strong>Kolekcja 1<\/strong>Rozmowy ChatGPT<\/li>\n<li><strong>Kolekcja 2<\/strong>: Archiwum artyku\u0142\u00f3w<\/li>\n<li><strong>Kolekcja 3<\/strong>notatki osobiste<\/li>\n<li><strong>Kolekcja 4<\/strong>Dokumentacja techniczna<\/li>\n<\/ul>\n<p>Taka separacja ma kilka zalet. Po pierwsze, struktura pozostaje przejrzysta. Zawsze wiadomo, gdzie przechowywana jest okre\u015blona zawarto\u015b\u0107. Po drugie, zapytania mog\u0105 by\u0107 bardziej szczeg\u00f3\u0142owo kontrolowane. Niekt\u00f3re zapytania powinny przeszukiwa\u0107 tylko archiwum artyku\u0142\u00f3w, inne ca\u0142y system wiedzy. Przyk\u0142ad:<\/p>\n<ul>\n<li>Pytanie badawcze mo\u017ce przeszukiwa\u0107 tylko archiwum artyku\u0142\u00f3w.<\/li>\n<li>Z drugiej strony, pytanie strategiczne mo\u017ce uwzgl\u0119dnia\u0107 wszystkie kolekcje jednocze\u015bnie.<\/li>\n<\/ul>\n<p>Takie struktury sprawiaj\u0105, \u017ce wi\u0119ksze systemy wiedzy s\u0105 znacznie bardziej wydajne.<\/p>\n<h3>Aktualizacje automatyczne<\/h3>\n<p>Kolejnym przydatnym krokiem jest regularna aktualizacja systemu. W poprzednim przyk\u0142adzie raz przetworzyli\u015bmy eksport danych ChatGPT. W praktyce jednak stale tworzona jest nowa zawarto\u015b\u0107.<\/p>\n<p>Nowe rozmowy, nowe notatki, nowe dokumenty - wszystkie te informacje mog\u0105 r\u00f3wnie\u017c sta\u0107 si\u0119 cz\u0119\u015bci\u0105 archiwum wiedzy.<br \/>\nWarto wi\u0119c pomy\u015ble\u0107 o automatycznych aktualizacjach. Jednym z prostych rozwi\u0105za\u0144 jest regularne importowanie nowych danych. Na przyk\u0142ad:<\/p>\n<ul>\n<li>Przetwarzanie nowych danych czatu raz w tygodniu<\/li>\n<li>Automatycznie importuj nowe dokumenty<\/li>\n<li>Natychmiastowe dodawanie nowych artyku\u0142\u00f3w do bazy danych<\/li>\n<\/ul>\n<p>Z technicznego punktu widzenia jest to stosunkowo \u0142atwe do wdro\u017cenia. Ma\u0142y skrypt mo\u017ce regularnie sprawdza\u0107 dost\u0119pno\u015b\u0107 nowych plik\u00f3w i automatycznie je przetwarza\u0107. Pozwala to na ci\u0105g\u0142y rozw\u00f3j systemu wiedzy. Z biegiem czasu tworzone jest coraz obszerniejsze archiwum, kt\u00f3re dokumentuje Twoje przemy\u015blenia i projekty.<\/p>\n<h3>Integracja z w\u0142asnymi aplikacjami<\/h3>\n<p>Do tej pory nasz system by\u0142 u\u017cywany za pomoc\u0105 prostych skrypt\u00f3w Pythona. Jednak w d\u0142u\u017cszej perspektywie system ten mo\u017cna r\u00f3wnie\u017c zintegrowa\u0107 z w\u0142asnymi aplikacjami. Na przyk\u0142ad wielu programist\u00f3w tworzy ma\u0142e interfejsy internetowe, kt\u00f3re pozwalaj\u0105 im bezpo\u015brednio korzysta\u0107 z wiedzy AI.<\/p>\n<p>Zamiast uruchamia\u0107 skrypt, mo\u017cna po prostu wpisa\u0107 pytanie w polu wej\u015bciowym. Ten sam proces dzia\u0142a w tle:<\/p>\n<ol>\n<li>Tworzenie osadzania<\/li>\n<li>Przeszukiwanie bazy danych<\/li>\n<li>Przesy\u0142anie kontekstu do sztucznej inteligencji<\/li>\n<li>Generowanie odpowiedzi<\/li>\n<\/ol>\n<p>Wynik pojawia si\u0119 wtedy bezpo\u015brednio w interfejsie u\u017cytkownika. Taka aplikacja mo\u017ce przybiera\u0107 bardzo r\u00f3\u017cne formy. Na przyk\u0142ad:<\/p>\n<ul>\n<li>osobista badawcza sztuczna inteligencja<\/li>\n<li>asystent wiedzy dla projekt\u00f3w<\/li>\n<li>wyszukiwarka pomys\u0142\u00f3w<\/li>\n<li>archiwum artyku\u0142\u00f3w i notatek<\/li>\n<\/ul>\n<p>Szczeg\u00f3lnie ekscytuj\u0105ce staje si\u0119 po\u0142\u0105czenie tych system\u00f3w z innymi narz\u0119dziami. Na przyk\u0142ad system redakcyjny mo\u017ce automatycznie uzyskiwa\u0107 dost\u0119p do archiwum wiedzy i wykorzystywa\u0107 poprzednie artyku\u0142y jako podstaw\u0119 do bada\u0144. Z kolei system notatek mo\u017ce automatycznie integrowa\u0107 nowe pomys\u0142y z baz\u0105 danych.<\/p>\n<p>Innymi s\u0142owy, sztuczna inteligencja staje si\u0119 cz\u0119\u015bci\u0105 codziennego \u015brodowiska pracy. To jasno pokazuje, \u017ce nasz ma\u0142y projekt wykracza daleko poza oryginalny eksport danych ChatGPT.<\/p>\n<p>Nie stworzyli\u015bmy tylko archiwum. Stworzyli\u015bmy architektur\u0119, kt\u00f3r\u0105 mo\u017cna rozbudowywa\u0107 w zale\u017cno\u015bci od potrzeb. I w\u0142a\u015bnie w tym tkwi prawdziwa warto\u015b\u0107 takich system\u00f3w. Nie s\u0105 one statyczne. Rosn\u0105 wraz z wiedz\u0105 u\u017cytkownika.<\/p>\n<h2>Rozszerzona wersja ruroci\u0105gu do pobrania<\/h2>\n<p>Poni\u017cszy skrypt jest rozszerzon\u0105 wersj\u0105 potoku z artyku\u0142u. Jest on bardziej solidny i znacznie bli\u017cszy produktywnemu rozwi\u0105zaniu. Poprawione zosta\u0142y trzy rzeczy:<\/p>\n<ul>\n<li><strong>Wska\u017anik post\u0119pu<\/strong>U\u017cytkownik mo\u017ce w ka\u017cdej chwili sprawdzi\u0107, ile tekst\u00f3w zosta\u0142o ju\u017c przetworzonych.<\/li>\n<li><strong>Import wsadowy<\/strong>Osadzenia s\u0105 gromadzone i zapisywane w Qdrant w blokach, co jest znacznie szybsze ni\u017c importowanie pojedynczych element\u00f3w.<\/li>\n<li><strong>Szybszy potok osadzania<\/strong>Skrypt dzia\u0142a w ustrukturyzowany spos\u00f3b z przygotowanymi fragmentami i redukuje niepotrzebne wywo\u0142ania.<\/li>\n<\/ul>\n<p>Skrypt ten jest zatem szczeg\u00f3lnie przydatny, je\u015bli eksport ChatGPT jest wi\u0119kszy - na przyk\u0142ad kilka tysi\u0119cy rozm\u00f3w. Typowy proces:<\/p>\n<ol>\n<li>Za\u0142aduj eksport ChatGPT<\/li>\n<li>Fragmenty tekst\u00f3w<\/li>\n<li>Dzielenie tekstu na fragmenty<\/li>\n<li>Tworzenie osadze\u0144<\/li>\n<li>Import wsadowy do Qdrant<\/li>\n<li>Przeprowadzenie zapytania testowego<\/li>\n<\/ol>\n<h3>Wa\u017cne ustawienia w skrypcie<\/h3>\n<p>Niekt\u00f3re warto\u015bci musz\u0105 zosta\u0107 dostosowane przez u\u017cytkownika:<\/p>\n<ul>\n<li><strong>EXPORT_PFAD<\/strong><br \/>\n\u015acie\u017cka do najcz\u0119\u015bciej numerowanych plik\u00f3w conversations.json z eksportu ChatGPT.<\/li>\n<li><strong>COLLECTION_NAME<\/strong><br \/>\nNazwa kolekcji wektorowej bazy danych.<\/li>\n<li><strong>EMBED_MODEL<\/strong><br \/>\nModel osadzania Ollama, np. nomic-embed-text lub mxbai-embed-large<\/li>\n<li><strong>ANSWER_MODEL<\/strong><br \/>\nModel j\u0119zykowy dla zapytania testowego, np. llama, mistral lub gpt:oss<\/li>\n<li><strong>VECTOR_SIZE<\/strong><br \/>\nWymiar modelu osadzania.<br \/>\nnomic-embed-text \u2192 768<br \/>\nmxbai-embed-large \u2192 1024<\/li>\n<li><strong>CHUNK_SIZE<\/strong><br \/>\nRozmiar sekcji tekstowych.<br \/>\nZazwyczaj 300-600 s\u0142\u00f3w.<\/li>\n<li><strong>BATCH_SIZE<\/strong><br \/>\nIle osadze\u0144 jest zapisywanych w Qdrant w tym samym czasie.<br \/>\nTypowa warto\u015b\u0107: 50-200.<\/li>\n<\/ul>\n<p><strong><a class=\"downloadbtn\" href=\"https:\/\/markus-schall.de\/downloads\/ChatGPT_Export_Scripts.zip\">Pobierz skrypt Python<\/a><\/strong><\/p>\n<h3>B\u0105d\u017a na bie\u017c\u0105co - bez reklam<\/h3>\n<p>Je\u015bli chcesz by\u0107 informowany o aktualizacjach tego skryptu lub nowych plikach do pobrania, mo\u017cesz zasubskrybowa\u0107 m\u00f3j comiesi\u0119czny biuletyn. Newsletter jest celowo odchudzony, ca\u0142kowicie pozbawiony reklam i ukazuje si\u0119 tylko raz w miesi\u0105cu. Znajdziesz w nim wyb\u00f3r najwa\u017cniejszych nowych artyku\u0142\u00f3w, praktyczne tre\u015bci na temat sztucznej inteligencji, oprogramowania i cyfryzacji, a tak\u017ce informacje o zaktualizowanych skryptach lub nowych ofertach pobierania. Bez spamu, bez codziennych e-maili - tylko najistotniejsze tre\u015bci w kompaktowej formie. Je\u015bli chcesz na bie\u017c\u0105co \u015bledzi\u0107 rozw\u00f3j wydarze\u0144, newsletter to najprostszy spos\u00f3b, by by\u0107 na bie\u017c\u0105co.<\/p>\n<div class=\"mailster-block-form-type-content wp-block-mailster-form-outside-wrapper wp-block-mailster-form-outside-wrapper-c1cd9d66 wp-block-mailster-form-outside-wrapper-5542 wp-block-mailster-form\"><style class=\"mailster-form-style-c1cd9d66\">.wp-block-mailster-form-outside-wrapper-c1cd9d66 .mailster-block-form-inner > *{margin-block-start:0;margin-block-end:0;}.wp-block-mailster-form-outside-wrapper-c1cd9d66 .mailster-block-form-inner > * + *{margin-block-start:0.9em;margin-block-end:0;}.wp-block-mailster-form-outside-wrapper-c1cd9d66 .wp-block-mailster-form-wrapper .mailster-label{}.wp-block-mailster-form-outside-wrapper-c1cd9d66 .wp-block-mailster-form-wrapper .input{}.mailster-block-form input[type=\"text\"]{padding:10px 15px;border:1px solid rgb(204, 204, 204);font:17px \/ 25.5px -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";border-radius:0px;background:rgb(250, 250, 250) none repeat scroll 0% 0% \/ auto padding-box border-box;box-shadow:none;line-height:25.5px;appearance:auto;outline:rgb(102, 102, 102) none 0px;text-transform:none;letter-spacing:normal;height:47px;}.mailster-block-form input[type=\"email\"]{padding:10px 15px;border:1px solid rgb(204, 204, 204);font:17px \/ 25.5px -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";border-radius:0px;background:rgb(250, 250, 250) none repeat scroll 0% 0% \/ auto padding-box border-box;box-shadow:none;line-height:25.5px;appearance:auto;outline:rgb(102, 102, 102) none 0px;text-transform:none;letter-spacing:normal;height:47px;}.mailster-block-form input[type=\"date\"]{}.mailster-block-form input[type=\"checkbox\"]{}.mailster-block-form input[type=\"radio\"]{}.mailster-block-form input[type=\"submit\"]{padding:10px 20px;border:0px solid rgb(0, 0, 0);font:17px \/ 25.5px -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";border-radius:5px;background:rgb(2, 123, 184) none repeat scroll 0% 0% \/ auto padding-box border-box;box-shadow:none;line-height:25.5px;appearance:button;outline:rgb(255, 255, 255) none 0px;text-transform:none;letter-spacing:normal;border:0px solid rgb(0, 0, 0);outline:rgb(255, 255, 255) none 0px;color:rgb(255, 255, 255);}.mailster-block-form select{}.mailster-block-form label{padding:0px;border:0px none rgb(58, 58, 58);font:17px \/ 25.5px -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";border-radius:0px;background:rgba(0, 0, 0, 0) none repeat scroll 0% 0% \/ auto padding-box border-box;box-shadow:none;line-height:25.5px;appearance:none;outline:rgb(58, 58, 58) none 0px;text-transform:none;letter-spacing:normal;}.mailster-block-form textarea{}<\/style>\n<form method=\"post\" novalidate class=\"wp-block-mailster-form-wrapper mailster-block-form\" action=\"\"><div class=\"mailster-block-form-inner\">\n<div class=\"wp-block-mailster-messages mailster-block-form-info mailster-wrapper\" aria-hidden=\"true\"><style>:root {--mailster--color--success-background: #6fbf4d;--mailster--color--success: #ffffff;--mailster--color--error-background: #bf4d4d;--mailster--color--error: #ffffff;}<\/style><div class=\"mailster-block-form-info-success\" style=\"width:100%\"><div>Prosimy o potwierdzenie subskrypcji!<\/div><div class=\"mailster-block-form-info-extra\"><\/div><\/div><div class=\"mailster-block-form-info-error\" style=\"width:100%\"><div>Brakuje niekt\u00f3rych p\u00f3l lub s\u0105 one nieprawid\u0142owe!<\/div><div class=\"mailster-block-form-info-extra\"><\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-mailster-field-firstname mailster-wrapper mailster-wrapper-type-text mailster-wrapper-inline\" style=\"width:100%\"><input name=\"firstname\" id=\"mailster-id-41b55c\" type=\"text\" aria-required=\"false\" aria-label=\"Imi\u0119\" spellcheck=\"false\" value=\"\" class=\"input\" autocomplete=\"given-name\" placeholder=\" \"\/><label for=\"mailster-id-41b55c\" class=\"mailster-label\">Imi\u0119<\/label><\/div>\n\n\n\n<div class=\"wp-block-mailster-field-email mailster-wrapper mailster-wrapper-required mailster-wrapper-type-email mailster-wrapper-inline mailster-wrapper-asterisk\"><input name=\"email\" id=\"mailster-id-f70659\" type=\"email\" aria-required=\"true\" aria-label=\"e-mail\" spellcheck=\"false\" required value=\"\" class=\"input\" autocomplete=\"email\" placeholder=\" \"\/><label for=\"mailster-id-f70659\" class=\"mailster-label\">e-mail<\/label><\/div>\n\n\n\n<div class=\"wp-block-mailster-field-submit mailster-wrapper mailster-wrapper-type-submit mailster-wrapper-align-center wp-block-button\"><input name=\"submit\" id=\"mailster-id-7c1924\" type=\"submit\" value=\"Zarejestruj si\u0119 tutaj\" class=\"wp-block-button__link submit-button\"\/><\/div>\n<\/div><script class=\"mailster-block-form-data\" type=\"application\/json\">{\"id\":5542,\"identifier\":\"c1cd9d66\",\"cooldown\":0,\"isPreview\":false,\"type\":\"submission\",\"prefill\":false}<\/script><input name=\"_timestamp\" type=\"hidden\" value=\"1777717682\" \/>\n<button class=\"mailster-block-form-close\" aria-label=\"blisko\" tabindex=\"0\"><svg viewbox=\"0 0 100 100\"><path d=\"M100 10.71 89.29 0 50 39.29 10.71 0 0 10.71 39.29 50 0 89.29 10.71 100 50 60.71 89.29 100 100 89.29 60.71 50z\"\/><\/svg><\/button><input type=\"hidden\" name=\"trp-form-language\" value=\"pl\"\/><\/form>\n<\/div>\n<h3>Perspektywy dla cz\u0119\u015bci 3: Dopracowanie, analiza i optymalizacja wykorzystania danych<\/h3>\n<p>W trzeciej cz\u0119\u015bci serii idziemy o krok dalej i przygl\u0105damy si\u0119 temu, co faktycznie mo\u017cna uzyska\u0107 z utworzonej bazy wiedzy. Teraz, gdy dane ChatGPT zosta\u0142y zapisane w Qdrant, skupiamy si\u0119 na ich faktycznym wykorzystaniu. Przygl\u0105damy si\u0119 interfejsowi internetowemu Qdrant, analizujemy przechowywane dane i sprawdzamy, jak dobrze dzia\u0142a ju\u017c wyszukiwanie semantyczne. Przygl\u0105damy si\u0119 r\u00f3wnie\u017c wa\u017cnym drobnym korektom: Jak nale\u017cy wybiera\u0107 chunking w zale\u017cno\u015bci od przypadku u\u017cycia? W jaki spos\u00f3b mo\u017cna optymalnie przenie\u015b\u0107 kontekst do lokalnego modelu j\u0119zykowego? I w jaki spos\u00f3b mo\u017cna konkretnie poprawi\u0107 jako\u015b\u0107 odpowiedzi? Trzecia cz\u0119\u015b\u0107 jest skierowana do wszystkich tych, kt\u00f3rzy chc\u0105 wyci\u0105gn\u0105\u0107 wi\u0119cej z systemu i \u015bwiadomie go dalej rozwija\u0107.<\/p>\n<hr \/>\n\n\t\t\t<div class=\"display-post-types\">\n\n\t\t\t\t\t\t\t<style type=\"text\/css\">\n\t\t\t#dpt-wrapper-539 { --dpt-text-align: left;--dpt-image-crop: center;--dpt-border-radius: 5px;--dpt-h-gutter: 10px;--dpt-v-gutter: 9px; }\t\t\t<\/style>\n\t\t\t<style type=\"text\/css\">#dpt-wrapper-539 { --dpt-title-font-style:normal;--dpt-title-font-weight:600;--dpt-title-line-height:1.5;--dpt-title-text-decoration:none;--dpt-title-text-transform:none;--dpt-excerpt-font-style:normal;--dpt-excerpt-font-weight:400;--dpt-excerpt-line-height:1.5;--dpt-excerpt-text-decoration:none;--dpt-excerpt-text-transform:none;--dpt-meta1-font-style:normal;--dpt-meta1-font-weight:400;--dpt-meta1-line-height:1.9;--dpt-meta1-text-decoration:none;--dpt-meta1-text-transform:none;--dpt-meta2-font-style:normal;--dpt-meta2-font-weight:400;--dpt-meta2-line-height:1.9;--dpt-meta2-text-decoration:none;--dpt-meta2-text-transform:none; }<\/style><div class=\"dpt-main-header\">\n\t\t\t\t\t\t<div class=\"dpt-main-title\">\n\t\t\t\t\t\t\t<span class=\"dpt-main-title-text\">Aktualne artyku\u0142y na temat sztucznej inteligencji<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<\/div>\t\t\t\n\t\t\t\t<div id=\"dpt-wrapper-539\" class=\"dpt-wrapper dpt-mag1 land1 dpt-cropped dpt-flex-wrap\" >\n\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"mit klarheit durch die krise: wie ki neue perspektiven er\u00f6ffnet\" data-id=\"2436\"  data-category=\"b\u00fccher\" data-post_tag=\"buch krisen k\u00fcnstliche intelligenz lernen pers\u00f6nlichkeitsentwicklung ratgeber\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/pl\/2025\/08\/z-jasnoscia-przez-kryzys-jak-ki-otwiera-nowe-perspektywy\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Przejrzysto\u015b\u0107 w kryzysie: jak sztuczna inteligencja otwiera nowe perspektywy<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"838\" height=\"1200\" class=\"attachment-full size-full\" alt=\"Ksi\u0105\u017cka &#039;Kryzysy jako punkty zwrotne - ucz si\u0119, rozwijaj, kszta\u0142tuj&#039;\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Krisen-Cover-Front-DEjpg.jpg\" data-dpt-sizes=\"(max-width: 838px) 100vw, 838px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Krisen-Cover-Front-DEjpg.jpg 838w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Krisen-Cover-Front-DEjpg-210x300.jpg 210w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Krisen-Cover-Front-DEjpg-715x1024.jpg 715w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Krisen-Cover-Front-DEjpg-768x1100.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Krisen-Cover-Front-DEjpg-8x12.jpg 8w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 75%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/pl\/2025\/08\/z-jasnoscia-przez-kryzys-jak-ki-otwiera-nowe-perspektywy\/\" rel=\"bookmark\">Przejrzysto\u015b\u0107 w kryzysie: jak sztuczna inteligencja otwiera nowe perspektywy<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"ollama trifft qdrant: ein lokales ged\u00e4chtnis f\u00fcr deine ki auf dem mac\" data-id=\"2502\"  data-category=\"apple macos filemaker &amp; erp ki-systeme tipps &amp; anleitungen\" data-post_tag=\"docker filemaker k\u00fcnstliche intelligenz llama llm mistral neo4j ollama qdrant sprachmodell vektordatenbank\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/pl\/2025\/08\/ollama-spotyka-qdrant-lokalna-pamiec-dla-ki-na-macu\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Ollama spotyka Qdrant: lokalna pami\u0119\u0107 dla sztucznej inteligencji na Macu<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1440\" height=\"980\" class=\"attachment-full size-full\" alt=\"Pami\u0119\u0107 dla lokalnej sztucznej inteligencji z Ollama i Qdrant\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/ollama-qdrant-gedaechtnis.jpg\" data-dpt-sizes=\"(max-width: 1440px) 100vw, 1440px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/ollama-qdrant-gedaechtnis.jpg 1440w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/ollama-qdrant-gedaechtnis-300x204.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/ollama-qdrant-gedaechtnis-1024x697.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/ollama-qdrant-gedaechtnis-768x523.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/ollama-qdrant-gedaechtnis-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 75%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/pl\/2025\/08\/ollama-spotyka-qdrant-lokalna-pamiec-dla-ki-na-macu\/\" rel=\"bookmark\">Ollama spotyka Qdrant: lokalna pami\u0119\u0107 dla sztucznej inteligencji na Macu<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"mit ki dialogisch denken lernen: warum gute fragen wichtiger sind als gute modelle\" data-id=\"4700\"  data-category=\"allgemein ki-systeme tipps &amp; anleitungen\" data-post_tag=\"denkmodelle k\u00fcnstliche intelligenz lernen llm prozesse ratgeber sprachmodell\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/pl\/2026\/02\/nauka-myslenia-w-dialogu-z-ki-dlaczego-dobre-pytania-sa-wazniejsze-niz-dobre-modele\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Nauka my\u015blenia w dialogu ze sztuczn\u0105 inteligencj\u0105: dlaczego dobre pytania s\u0105 wa\u017cniejsze ni\u017c dobre modele<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Nauka my\u015blenia w dialogu ze sztuczn\u0105 inteligencj\u0105\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Denken-lernen-mit-KI.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Denken-lernen-mit-KI.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Denken-lernen-mit-KI-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Denken-lernen-mit-KI-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Denken-lernen-mit-KI-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 75%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/pl\/2026\/02\/nauka-myslenia-w-dialogu-z-ki-dlaczego-dobre-pytania-sa-wazniejsze-niz-dobre-modele\/\" rel=\"bookmark\">Nauka my\u015blenia w dialogu ze sztuczn\u0105 inteligencj\u0105: dlaczego dobre pytania s\u0105 wa\u017cniejsze ni\u017c dobre modele<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"vom content zur substanz: wie digitale systeme entstehen, die nicht kopierbar sind\" data-id=\"5899\"  data-category=\"allgemein b\u00fccher gesellschaft tipps &amp; anleitungen\" data-post_tag=\"buch datenlogik denkmodelle digitales eigentum erfahrungen k\u00fcnstliche intelligenz prozesse publishing ratgeber\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/pl\/2026\/04\/od-tresci-do-substancji-jak-powstaja-systemy-cyfrowe-ktorych-nie-mozna-skopiowac\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Od tre\u015bci do tre\u015bci: jak powstaj\u0105 systemy cyfrowe, kt\u00f3rych nie mo\u017cna skopiowa\u0107<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"682\" class=\"attachment-full size-full\" alt=\"System zamiast indywidualnej zawarto\u015bci\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Organische-Reichweite.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Organische-Reichweite.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Organische-Reichweite-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Organische-Reichweite-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Organische-Reichweite-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 75%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/pl\/2026\/04\/od-tresci-do-substancji-jak-powstaja-systemy-cyfrowe-ktorych-nie-mozna-skopiowac\/\" rel=\"bookmark\">Od tre\u015bci do tre\u015bci: jak powstaj\u0105 systemy cyfrowe, kt\u00f3rych nie mo\u017cna skopiowa\u0107<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\n<hr \/>\n<h2>Cz\u0119sto zadawane pytania<\/h2>\n<ol>\n<li><strong>Jaki jest sens integracji eksportu danych ChatGPT z moj\u0105 w\u0142asn\u0105 sztuczn\u0105 inteligencj\u0105?<\/strong><br \/>\nNajwi\u0119ksz\u0105 zalet\u0105 jest mo\u017cliwo\u015b\u0107 wykorzystania w\u0142asnych rozm\u00f3w i my\u015bli w d\u0142u\u017cszej perspektywie. Wiele os\u00f3b prowadzi intensywne rozmowy z systemami AI na temat projekt\u00f3w, pomys\u0142\u00f3w, analiz lub kwestii osobistych. Tre\u015bci te zazwyczaj znikaj\u0105 w trakcie dzia\u0142ania platformy. Je\u015bli jednak wyeksportujesz je i zintegrujesz z w\u0142asn\u0105 baz\u0105 wiedzy, stan\u0105 si\u0119 one osobistym archiwum. Lokalna sztuczna inteligencja mo\u017ce nast\u0119pnie uzyska\u0107 dost\u0119p do tych tre\u015bci, rozpoznawa\u0107 korelacje i pomaga\u0107 w nowych pytaniach. Zamiast zawsze zaczyna\u0107 od zera, krok po kroku budujesz w\u0142asne my\u015blenie.<\/li>\n<li><strong>Czy nie jest to zbyt skomplikowane dla kogo\u015b, kto nie jest programist\u0105?<\/strong><br \/>\nNa pierwszy rzut oka terminy takie jak zagnie\u017cd\u017canie, wektorowe bazy danych czy systemy RAG wydaj\u0105 si\u0119 skomplikowane. W praktyce jednak poszczeg\u00f3lne kroki maj\u0105 stosunkowo przejrzyst\u0105 struktur\u0119. Zasadniczo potrzebne s\u0105 tylko trzy komponenty: lokalna sztuczna inteligencja (np. za po\u015brednictwem Ollama), wektorowa baza danych, taka jak Qdrant i ma\u0142y skrypt Pythona, kt\u00f3ry przetwarza dane. Wiele krok\u00f3w wykonywanych jest automatycznie. Po skonfigurowaniu system dzia\u0142a jak zwyk\u0142a wyszukiwarka lub chatbot - z wyj\u0105tkiem tego, \u017ce dzia\u0142a z w\u0142asn\u0105 wiedz\u0105.<\/li>\n<li><strong>Jakie dane faktycznie zawiera eksport ChatGPT?<\/strong><br \/>\nEksport ChatGPT zazwyczaj zawiera wszystkie rozmowy, kt\u00f3re u\u017cytkownik przeprowadzi\u0142 z systemem. Obejmuje to nie tylko same wiadomo\u015bci tekstowe, ale tak\u017ce metadane, takie jak tytu\u0142y konwersacji, znaczniki czasu i informacje strukturalne. Dane te s\u0105 zwykle dost\u0119pne w formacie JSON, dzi\u0119ki czemu mo\u017cna je stosunkowo \u0142atwo przetwarza\u0107 za pomoc\u0105 skrypt\u00f3w. W wielu przypadkach eksport obejmuje r\u00f3wnie\u017c pliki multimedialne lub j\u0119zykowe, je\u015bli by\u0142y one u\u017cywane w konwersacjach. Jednak to przede wszystkim zawarto\u015b\u0107 tekstowa jest interesuj\u0105ca podczas tworzenia bazy wiedzy.<\/li>\n<li><strong>Dlaczego w takich systemach u\u017cywana jest wektorowa baza danych, a nie zwyk\u0142a baza danych?<\/strong><br \/>\nZwyk\u0142e bazy danych s\u0105 idealne do wyszukiwania okre\u015blonych termin\u00f3w lub identyfikator\u00f3w. S\u0105 one jednak mniej odpowiednie do wyszukiwania semantycznego. Wektorowa baza danych przechowuje teksty nie tylko jako ci\u0105gi znak\u00f3w, ale tak\u017ce jako wektory matematyczne, kt\u00f3re opisuj\u0105 znaczenie tekstu. Pozwala to systemowi na wyszukiwanie podobie\u0144stw w tre\u015bci. Na przyk\u0142ad, je\u015bli zapytasz o \u201epomys\u0142y na artyku\u0142y o sztucznej inteligencji\u201c, baza danych mo\u017ce r\u00f3wnie\u017c znale\u017a\u0107 tre\u015bci zawieraj\u0105ce inne frazy, takie jak \u201etematy artyku\u0142\u00f3w na blogu o sztucznej inteligencji\u201c.<\/li>\n<li><strong>Czym s\u0105 osadzenia i dlaczego s\u0105 tak wa\u017cne?<\/strong><br \/>\nOsadzenia s\u0105 matematycznymi reprezentacjami tekst\u00f3w. Model j\u0119zykowy konwertuje tekst na list\u0119 liczb, kt\u00f3re opisuj\u0105 znaczenie tekstu. Teksty o podobnym znaczeniu le\u017c\u0105 blisko siebie w przestrzeni matematycznej. Pozwala to wektorowej bazie danych na p\u00f3\u017aniejsze wyszukiwanie podobnych tre\u015bci. Bez osadze\u0144 wyszukiwanie semantyczne by\u0142oby prawie niemo\u017cliwe. Stanowi\u0105 one podstaw\u0119 nowoczesnych system\u00f3w RAG i s\u0105 powodem, dla kt\u00f3rego takie systemy s\u0105 znacznie bardziej elastyczne ni\u017c klasyczne wyszukiwanie pe\u0142notekstowe.<\/li>\n<li><strong>Jak du\u017cy mo\u017ce by\u0107 m\u00f3j eksport danych ChatGPT?<\/strong><br \/>\nRozmiar nie odgrywa wi\u0119kszej roli. Bez problemu mo\u017cna przetworzy\u0107 nawet kilka tysi\u0119cy rozm\u00f3w. Wa\u017cniejsza jest liczba wygenerowanych fragment\u00f3w tekstu, tzw. chunk\u00f3w. Wi\u0119kszy eksport prowadzi do wi\u0119kszej liczby fragment\u00f3w, a tym samym wi\u0119kszej liczby osadze\u0144. Jednak nowoczesne wektorowe bazy danych mog\u0105 z \u0142atwo\u015bci\u0105 zarz\u0105dza\u0107 milionami takich wpis\u00f3w. Dla prywatnego asystenta wiedzy, nawet ma\u0142y serwer lub pot\u0119\u017cny komputer stacjonarny jest w zupe\u0142no\u015bci wystarczaj\u0105cy.<\/li>\n<li><strong>Dlaczego tekst jest podzielony na ma\u0142e sekcje przed przetworzeniem?<\/strong><br \/>\nW przypadku zapisywania pe\u0142nych konwersacji lub du\u017cych tekst\u00f3w bezpo\u015brednio jako embeddings, wyszukiwanie semantyczne staje si\u0119 nieprecyzyjne. Pojedynczy tekst mo\u017ce zawiera\u0107 kilka temat\u00f3w. Dziel\u0105c go na mniejsze sekcje, system mo\u017ce p\u00f3\u017aniej wyszukiwa\u0107 znacznie precyzyjniej. Ka\u017cda sekcja opisuje wyra\u017aniejszy temat. Pozwala to bazie danych znale\u017a\u0107 dok\u0142adnie te cz\u0119\u015bci rozmowy, kt\u00f3re naprawd\u0119 pasuj\u0105 do bie\u017c\u0105cego pytania.<\/li>\n<li><strong>Jak\u0105 rol\u0119 odgrywa Ollama w tym systemie?<\/strong><br \/>\nOllama s\u0142u\u017cy jako lokalna platforma dla modeli j\u0119zykowych. Umo\u017cliwia uruchamianie modeli AI bezpo\u015brednio na w\u0142asnym komputerze. W naszym systemie Ollama spe\u0142nia dwa zadania: Tworzy osadzenia dla tekst\u00f3w i generuje odpowiedzi na pytania. Zalet\u0105 jest to, \u017ce wszystkie dane pozostaj\u0105 lokalne. Oznacza to, \u017ce Twoje rozmowy i archiwum wiedzy nigdy nie opuszczaj\u0105 Twojego komputera.<\/li>\n<li><strong>Dlaczego Qdrant jest u\u017cywany jako wektorowa baza danych?<\/strong><br \/>\nQdrant to nowoczesna wektorowa baza danych, kt\u00f3ra zosta\u0142a opracowana specjalnie dla aplikacji AI. Jest szybka, \u0142atwa do installieren i bardzo dobrze udokumentowana. Mo\u017cna j\u0105 r\u00f3wnie\u017c \u0142atwo pod\u0142\u0105czy\u0107 do Pythona i wielu framework\u00f3w AI. Qdrant jest zatem szczeg\u00f3lnie praktycznym rozwi\u0105zaniem dla lokalnych system\u00f3w wiedzy. Alternatywy obejmuj\u0105 Chroma, Weaviate lub Pinecone.<\/li>\n<li><strong>Co oznacza termin system RAG?<\/strong><br \/>\nRAG to skr\u00f3t od \u201eRetrieval-Augmented Generation\u201c. Jest to architektura, w kt\u00f3rej sztuczna inteligencja najpierw pobiera odpowiednie informacje z bazy danych, a nast\u0119pnie wykorzystuje je do wygenerowania odpowiedzi. Sztuczna inteligencja \u0142\u0105czy zatem w\u0142asn\u0105 wiedz\u0119 z danymi zewn\u0119trznymi. Umo\u017cliwia to udzielanie bardzo precyzyjnych odpowiedzi, a jednocze\u015bnie dost\u0119p do aktualnych lub osobistych informacji.<\/li>\n<li><strong>Czy mog\u0119 zintegrowa\u0107 inne \u017ar\u00f3d\u0142a danych z tym systemem?<\/strong><br \/>\nW rzeczywisto\u015bci jest to jedna z najwi\u0119kszych zalet tej architektury. System nie ogranicza si\u0119 do danych ChatGPT. Mo\u017cesz r\u00f3wnie\u017c zintegrowa\u0107 w\u0142asne artyku\u0142y, notatki, pliki PDF, prace badawcze lub inne dokumenty. Tak d\u0142ugo, jak tre\u015b\u0107 mo\u017ce by\u0107 przetwarzana w formie tekstowej, mo\u017ce sta\u0107 si\u0119 cz\u0119\u015bci\u0105 bazy wiedzy. Z czasem system stanie si\u0119 kompleksowym archiwum wiedzy.<\/li>\n<li><strong>Jak aktualny pozostaje taki system wiedzy?<\/strong><br \/>\nAktualno\u015b\u0107 zale\u017cy od cz\u0119stotliwo\u015bci importowania nowych danych. Mo\u017cna na przyk\u0142ad regularnie przetwarza\u0107 nowe eksporty ChatGPT lub utworzy\u0107 skrypt, kt\u00f3ry automatycznie rozpoznaje nowe dokumenty. Wiele system\u00f3w jest skonfigurowanych do aktualizacji raz w tygodniu lub raz w miesi\u0105cu. Dzi\u0119ki temu baza wiedzy jest zawsze aktualna.<\/li>\n<li><strong>Jakiego sprz\u0119tu potrzebuj\u0119 do takiego systemu?<\/strong><br \/>\nDo mniejszych projekt\u00f3w wystarczy nowoczesny komputer stacjonarny. Je\u015bli chcesz u\u017cy\u0107 wi\u0119kszego modelu j\u0119zykowego, pomocny mo\u017ce by\u0107 procesor graficzny. Jednak wielu u\u017cytkownik\u00f3w z powodzeniem uruchamia swoje systemy wiedzy na wydajnym laptopie lub mini-serwerze. Przede wszystkim wa\u017cne jest, aby mie\u0107 wystarczaj\u0105c\u0105 ilo\u015b\u0107 pami\u0119ci i wystarczaj\u0105c\u0105 przestrze\u0144 dyskow\u0105 dla bazy danych.<\/li>\n<li><strong>Jak szybko taki system dzia\u0142a w praktyce?<\/strong><br \/>\nSzybko\u015b\u0107 zale\u017cy od kilku czynnik\u00f3w, na przyk\u0142ad rozmiaru bazy danych, sprz\u0119tu i u\u017cywanego modelu j\u0119zykowego. W wielu przypadkach zapytanie zajmuje tylko kilka sekund. Samo wyszukiwanie wektorowe jest zazwyczaj bardzo szybkie. Najwi\u0119ksza cz\u0119\u015b\u0107 czasu jest cz\u0119sto po\u015bwi\u0119cana na generowanie odpowiedzi z modelu j\u0119zykowego.<\/li>\n<li><strong>Czy mo\u017cliwe jest rozdzielenie kilku obszar\u00f3w wiedzy?<\/strong><br \/>\nTak, wektorowe bazy danych, takie jak Qdrant, umo\u017cliwiaj\u0105 korzystanie z wielu kolekcji. Ka\u017cda kolekcja mo\u017ce reprezentowa\u0107 oddzielny obszar tematyczny. Na przyk\u0142ad mo\u017cna utworzy\u0107 kolekcj\u0119 dla rozm\u00f3w ChatGPT, jedn\u0105 dla artyku\u0142\u00f3w i jedn\u0105 dla notatek. Pozwala to na przejrzyste uporz\u0105dkowanie obszar\u00f3w wiedzy i przeszukiwanie ich w ukierunkowany spos\u00f3b.<\/li>\n<li><strong>Jak bezpieczne s\u0105 moje dane w lokalnym systemie AI?<\/strong><br \/>\nDu\u017c\u0105 zalet\u0105 systemu lokalnego jest to, \u017ce dane nie musz\u0105 by\u0107 przesy\u0142ane do us\u0142ug zewn\u0119trznych. Wszystkie informacje pozostaj\u0105 na w\u0142asnym komputerze lub serwerze. Jest to szczeg\u00f3lnie interesuj\u0105ce w przypadku wra\u017cliwych tre\u015bci. Oczywi\u015bcie nadal nale\u017cy tworzy\u0107 regularne kopie zapasowe i chroni\u0107 system przed nieautoryzowanym dost\u0119pem.<\/li>\n<li><strong>Czy mog\u0119 zintegrowa\u0107 ten system z moimi w\u0142asnymi aplikacjami?<\/strong><br \/>\nTak, do wi\u0119kszo\u015bci komponent\u00f3w mo\u017cna uzyska\u0107 dost\u0119p za po\u015brednictwem interfejs\u00f3w programistycznych. Pozwala to zintegrowa\u0107 system wiedzy z w\u0142asnymi narz\u0119dziami, na przyk\u0142ad z interfejsem internetowym, systemem redakcyjnym lub aplikacj\u0105 do notatek. Wielu programist\u00f3w tworzy ma\u0142e aplikacje, kt\u00f3re sprawiaj\u0105, \u017ce ich baza wiedzy jest bezpo\u015brednio dost\u0119pna za po\u015brednictwem interfejsu czatu.<\/li>\n<li><strong>Jak ta technologia mo\u017ce rozwin\u0105\u0107 si\u0119 w przysz\u0142o\u015bci?<\/strong><br \/>\nSztuczna inteligencja oparta na wiedzy osobistej jest prawdopodobnie dopiero na pocz\u0105tku swojego rozwoju. W przysz\u0142o\u015bci takie systemy mog\u0142yby automatycznie integrowa\u0107 nowe tre\u015bci, tworzy\u0107 podsumowania, a nawet dostarcza\u0107 w\u0142asne sugestie dotycz\u0105ce projekt\u00f3w. Im wi\u0119cej danych wp\u0142ywa do takiego systemu, tym bardziej staje si\u0119 on warto\u015bciowy. W d\u0142u\u017cszej perspektywie mo\u017ce on przekszta\u0142ci\u0107 si\u0119 w rodzaj osobistej pami\u0119ci cyfrowej, kt\u00f3ra porz\u0105dkuje wiedz\u0119 u\u017cytkownika i udost\u0119pnia j\u0105 w dowolnym momencie.<\/li>\n<\/ol>\n<hr \/>\n\n\t\t\t<div class=\"display-post-types\">\n\n\t\t\t\t\t\t\t<style type=\"text\/css\">\n\t\t\t#dpt-wrapper-540 { --dpt-text-align: left;--dpt-image-crop: center;--dpt-border-radius: 5px;--dpt-h-gutter: 10px;--dpt-v-gutter: 9px; }\t\t\t<\/style>\n\t\t\t<style type=\"text\/css\">#dpt-wrapper-540 { --dpt-title-font-style:normal;--dpt-title-font-weight:600;--dpt-title-line-height:1.5;--dpt-title-text-decoration:none;--dpt-title-text-transform:none;--dpt-excerpt-font-style:normal;--dpt-excerpt-font-weight:400;--dpt-excerpt-line-height:1.5;--dpt-excerpt-text-decoration:none;--dpt-excerpt-text-transform:none;--dpt-meta1-font-style:normal;--dpt-meta1-font-weight:400;--dpt-meta1-line-height:1.9;--dpt-meta1-text-decoration:none;--dpt-meta1-text-transform:none;--dpt-meta2-font-style:normal;--dpt-meta2-font-weight:400;--dpt-meta2-line-height:1.9;--dpt-meta2-text-decoration:none;--dpt-meta2-text-transform:none; }<\/style><div class=\"dpt-main-header\">\n\t\t\t\t\t\t<div class=\"dpt-main-title\">\n\t\t\t\t\t\t\t<span class=\"dpt-main-title-text\">Aktualne artyku\u0142y na temat sztuki i kultury<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<\/div>\t\t\t\n\t\t\t\t<div id=\"dpt-wrapper-540\" class=\"dpt-wrapper dpt-mag1 land1 dpt-cropped dpt-flex-wrap\" >\n\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"die affinity grafik-suite wird kostenlos: was profi-anwender jetzt wissen m\u00fcssen\" data-id=\"3675\"  data-category=\"apple macos b\u00fccher kunst &amp; kultur tipps &amp; anleitungen\" data-post_tag=\"buch mac prozesse publishing verlag\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/pl\/2025\/11\/pakiet-graficzny-affinity-staje-sie-darmowy-co-profesjonalni-uzytkownicy-powinni-wiedziec-juz-teraz\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Pakiet graficzny Affinity staje si\u0119 darmowy: Co profesjonalni u\u017cytkownicy powinni wiedzie\u0107 ju\u017c teraz<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Bezp\u0142atny pakiet graficzny Affinity\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/affinity-grafiksuite-kostenlos.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/affinity-grafiksuite-kostenlos.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/affinity-grafiksuite-kostenlos-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/affinity-grafiksuite-kostenlos-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/affinity-grafiksuite-kostenlos-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 75%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/pl\/2025\/11\/pakiet-graficzny-affinity-staje-sie-darmowy-co-profesjonalni-uzytkownicy-powinni-wiedziec-juz-teraz\/\" rel=\"bookmark\">Pakiet graficzny Affinity staje si\u0119 darmowy: Co profesjonalni u\u017cytkownicy powinni wiedzie\u0107 ju\u017c teraz<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"ulrike gu\u00e9rot: eine europ\u00e4erin zwischen idee, universit\u00e4t und \u00f6ffentlichem diskurs\" data-id=\"4039\"  data-category=\"allgemein gesellschaft kunst &amp; kultur\" data-post_tag=\"denkmodelle deutschland europa geopolitik krisen meinungsfreiheit portrait sicherheitspolitik spieltheorie\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/pl\/2025\/12\/ulrike-guerot-europejka-miedzy-idea-uniwersytetu-a-dyskursem-publicznym\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Ulrike Gu\u00e9rot: Europejka mi\u0119dzy ide\u0105, uniwersytetem i dyskursem publicznym<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Ulrike Gu\u00e9rot i Europa\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/ulrike-guerot-portrait.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/ulrike-guerot-portrait.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/ulrike-guerot-portrait-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/ulrike-guerot-portrait-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/ulrike-guerot-portrait-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 75%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/pl\/2025\/12\/ulrike-guerot-europejka-miedzy-idea-uniwersytetu-a-dyskursem-publicznym\/\" rel=\"bookmark\">Ulrike Gu\u00e9rot: Europejka mi\u0119dzy ide\u0105, uniwersytetem i dyskursem publicznym<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"wie war syrien vor dem krieg? wer regiert heute? was bedeutet das f\u00fcr gefl\u00fcchtete in deutschland?\" data-id=\"4628\"  data-category=\"allgemein gesellschaft kunst &amp; kultur\" data-post_tag=\"deutschland europa geopolitik krisen meinungsfreiheit sicherheitspolitik\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/pl\/2026\/01\/jak-wygladala-syria-przed-wojna-kto-dzis-rzadzi-co-to-oznacza-dla-uchodzcow-w-niemczech\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Jak wygl\u0105da\u0142a Syria przed wojn\u0105? Kto rz\u0105dzi dzisiaj? Co to oznacza dla uchod\u017ac\u00f3w w Niemczech?<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Syria i Damaszek\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Syrien-Damaskus.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Syrien-Damaskus.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Syrien-Damaskus-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Syrien-Damaskus-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Syrien-Damaskus-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 75%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/pl\/2026\/01\/jak-wygladala-syria-przed-wojna-kto-dzis-rzadzi-co-to-oznacza-dla-uchodzcow-w-niemczech\/\" rel=\"bookmark\">Jak wygl\u0105da\u0142a Syria przed wojn\u0105? Kto rz\u0105dzi dzisiaj? Co to oznacza dla uchod\u017ac\u00f3w w Niemczech?<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"zukunft mit ladeger\u00e4t \u2013 herr von l&#8217;oreot kauft einen e-scooter\" data-id=\"3229\"  data-category=\"allgemein gesellschaft kunst &amp; kultur stories &amp; humor\" data-post_tag=\"erfahrungen\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/pl\/2025\/10\/przyszlosc-z-ladowarka-pan-von-loreot-kupuje-hulajnoge-elektryczna\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Przysz\u0142o\u015b\u0107 z \u0142adowark\u0105 - pan von L'oreot kupuje hulajnog\u0119 elektryczn\u0105<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"747\" class=\"attachment-full size-full\" alt=\"\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/loereot-e-scooter-1.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/loereot-e-scooter-1.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/loereot-e-scooter-1-300x219.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/loereot-e-scooter-1-768x560.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/loereot-e-scooter-1-16x12.jpg 16w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 75%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/pl\/2025\/10\/przyszlosc-z-ladowarka-pan-von-loreot-kupuje-hulajnoge-elektryczna\/\" rel=\"bookmark\">Przysz\u0142o\u015b\u0107 z \u0142adowark\u0105 - pan von L'oreot kupuje hulajnog\u0119 elektryczn\u0105<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\n<hr \/>","protected":false},"excerpt":{"rendered":"<p>W pierwszej cz\u0119\u015bci tej serii artyku\u0142\u00f3w zobaczyli\u015bmy, \u017ce eksport danych ChatGPT jest czym\u015b wi\u0119cej ni\u017c tylko funkcj\u0105 techniczn\u0105. Wyeksportowane dane zawieraj\u0105 zbi\u00f3r my\u015bli, pomys\u0142\u00f3w, analiz i rozm\u00f3w, kt\u00f3re gromadzi\u0142y si\u0119 przez d\u0142ugi czas. Ale tak d\u0142ugo, jak te dane s\u0105 przechowywane tylko jako archiwum na dysku twardym, pozostaj\u0105 tylko tym: ... <a title=\"Przysz\u0142o\u015b\u0107 z \u0142adowark\u0105 - pan von L&#039;oreot kupuje hulajnog\u0119 elektryczn\u0105\" class=\"read-more\" href=\"https:\/\/www.markus-schall.de\/pl\/2025\/10\/przyszlosc-z-ladowarka-pan-von-loreot-kupuje-hulajnoge-elektryczna\/\" aria-label=\"Dowiedz si\u0119 wi\u0119cej o przysz\u0142o\u015bci z \u0142adowark\u0105 - Pan z L&#039;oreot kupuje hulajnog\u0119 elektryczn\u0105\">Dowiedz si\u0119 wi\u0119cej<\/a><\/p>","protected":false},"author":1,"featured_media":5300,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":151,"footnotes":""},"categories":[15,431,4],"tags":[440,444,473,452,471,435,433,465,432,442,434],"class_list":["post-5306","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-apple-macos","category-ki-systeme","category-tipps-anleitungen","tag-datenbanken","tag-denkmodelle","tag-digitales-eigentum","tag-docker","tag-kuenstliche-intelligenz","tag-llama","tag-llm","tag-mlx","tag-ollama","tag-prozesse","tag-sprachmodell"],"_links":{"self":[{"href":"https:\/\/www.markus-schall.de\/pl\/wp-json\/wp\/v2\/posts\/5306","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.markus-schall.de\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.markus-schall.de\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.markus-schall.de\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.markus-schall.de\/pl\/wp-json\/wp\/v2\/comments?post=5306"}],"version-history":[{"count":36,"href":"https:\/\/www.markus-schall.de\/pl\/wp-json\/wp\/v2\/posts\/5306\/revisions"}],"predecessor-version":[{"id":5753,"href":"https:\/\/www.markus-schall.de\/pl\/wp-json\/wp\/v2\/posts\/5306\/revisions\/5753"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.markus-schall.de\/pl\/wp-json\/wp\/v2\/media\/5300"}],"wp:attachment":[{"href":"https:\/\/www.markus-schall.de\/pl\/wp-json\/wp\/v2\/media?parent=5306"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.markus-schall.de\/pl\/wp-json\/wp\/v2\/categories?post=5306"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.markus-schall.de\/pl\/wp-json\/wp\/v2\/tags?post=5306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}