{"id":2764,"date":"2025-08-31T15:10:51","date_gmt":"2025-08-31T15:10:51","guid":{"rendered":"https:\/\/www.markus-schall.de\/?p=2764"},"modified":"2025-11-24T09:17:41","modified_gmt":"2025-11-24T09:17:41","slug":"rag-z-ollama-i-qdrant-jako-uniwersalna-wyszukiwarka-wlasnych-danych","status":"publish","type":"post","link":"https:\/\/www.markus-schall.de\/pl\/2025\/08\/rag-z-ollama-i-qdrant-jako-uniwersalna-wyszukiwarka-wlasnych-danych\/","title":{"rendered":"RAG z Ollama i Qdrant jako uniwersalna wyszukiwarka w\u0142asnych danych"},"content":{"rendered":"<p>W coraz bardziej zagmatwanym \u015bwiecie informacji coraz wa\u017cniejsze staje si\u0119 umo\u017cliwienie przeszukiwania w\u0142asnych baz danych w ukierunkowany spos\u00f3b - nie poprzez klasyczne wyszukiwanie pe\u0142notekstowe, ale poprzez semantycznie istotne odpowiedzi. W\u0142a\u015bnie w tym miejscu do gry wkracza baza danych RAG - rozwi\u0105zanie wyszukiwania wspierane przez sztuczn\u0105 inteligencj\u0119, sk\u0142adaj\u0105ce si\u0119 z dw\u00f3ch centralnych komponent\u00f3w:<!--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-905 { --dpt-text-align: left;--dpt-image-crop: center;--dpt-border-radius: 5px;--dpt-small-grid-column: 33.33%;--dpt-large-grid-column: 33.3333333333%;--dpt-h-gutter: 10px;--dpt-v-gutter: 10px; }\t\t\t<\/style>\n\t\t\t<style type=\"text\/css\">#dpt-wrapper-905 { --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 tematy dotycz\u0105ce 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-905\" class=\"dpt-wrapper dpt-grid1 multi-col dpt-mason-wrap\" >\n\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"ki-studio 2025: welche hardware wirklich lohnt &#8211; vom mac studio bis zur rtx 3090\" data-id=\"3704\"  data-category=\"apple macos featured hardware ki-systeme\" data-post_tag=\"apple digitales eigentum k\u00fcnstliche intelligenz llm mlx neo4j 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\/2025\/11\/ki-studio-2025-ktory-sprzet-jest-naprawde-tego-wart-od-mac-studio-do-rtx-3090\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">AI Studio 2025: Kt\u00f3ry sprz\u0119t naprawd\u0119 si\u0119 op\u0142aca - od Mac Studio do RTX 3090<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Sprz\u0119t 2025 dla studia AI\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/KI-Studio-Hardware-2025.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/KI-Studio-Hardware-2025.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/KI-Studio-Hardware-2025-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/KI-Studio-Hardware-2025-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/KI-Studio-Hardware-2025-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 67%\"><\/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\/ki-studio-2025-ktory-sprzet-jest-naprawde-tego-wart-od-mac-studio-do-rtx-3090\/\" rel=\"bookmark\">AI Studio 2025: Kt\u00f3ry sprz\u0119t naprawd\u0119 si\u0119 op\u0142aca - od Mac Studio do RTX 3090<\/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=\"apple mlx vs. nvidia: so funktioniert lokale ki-inferenz auf dem mac\" data-id=\"3461\"  data-category=\"apple macos filemaker &amp; erp hardware ki-systeme\" data-post_tag=\"apple datenschutz filemaker k\u00fcnstliche intelligenz llama llm mac mistral mlx ollama 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\/2025\/11\/apple-mlx-vs-nvidia-jak-dziala-lokalne-wnioskowanie-ki-na-macu\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Apple MLX vs. NVIDIA: Jak dzia\u0142a lokalna sztuczna inteligencja na komputerach Mac?<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Lokalna sztuczna inteligencja na Silicon z Apple Mac\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Lokales-Sprachmodell-apple-mac-studio.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Lokales-Sprachmodell-apple-mac-studio.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Lokales-Sprachmodell-apple-mac-studio-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Lokales-Sprachmodell-apple-mac-studio-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Lokales-Sprachmodell-apple-mac-studio-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 67%\"><\/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\/apple-mlx-vs-nvidia-jak-dziala-lokalne-wnioskowanie-ki-na-macu\/\" rel=\"bookmark\">Apple MLX vs. NVIDIA: Jak dzia\u0142a lokalna sztuczna inteligencja na komputerach Mac?<\/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=\"ki als sparringspartner nutzen: wie denken im dialog produktiver wird\" data-id=\"4121\"  data-category=\"b\u00fccher ki-systeme tipps &amp; anleitungen\" data-post_tag=\"buch datenlogik denkmodelle k\u00fcnstliche intelligenz lernen llm 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\/2025\/12\/wykorzystujac-ki-jako-sparingpartnera-jak-myslenie-staje-sie-bardziej-produktywne-w-dialogu\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">U\u017cywanie sztucznej inteligencji jako sparingpartnera: Jak my\u015blenie w dialogu staje si\u0119 bardziej produktywne<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Sztuczna inteligencja jako partner w oszcz\u0119dzaniu\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/ki-als-sparringspartner-laptop.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/ki-als-sparringspartner-laptop.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/ki-als-sparringspartner-laptop-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/ki-als-sparringspartner-laptop-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/ki-als-sparringspartner-laptop-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 67%\"><\/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\/wykorzystujac-ki-jako-sparingpartnera-jak-myslenie-staje-sie-bardziej-produktywne-w-dialogu\/\" rel=\"bookmark\">U\u017cywanie sztucznej inteligencji jako sparingpartnera: Jak my\u015blenie w dialogu staje si\u0119 bardziej produktywne<\/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<ol>\n<li>wektorowa baza danych (taka jak Qdrant), w kt\u00f3rej dowolna zawarto\u015b\u0107 jest przechowywana jako wektory liczbowe,<\/li>\n<li>i model j\u0119zykowy (np. za po\u015brednictwem Ollama), kt\u00f3ry inteligentnie \u0142\u0105czy odpowiednie \u017c\u0105dania z odpowiedni\u0105 tre\u015bci\u0105.<\/li>\n<\/ol>\n<p>Zamiast pozwala\u0107 modelowi \u201ezgadywa\u0107\u201c, architektura ta wykorzystuje w\u0142asne \u017ar\u00f3d\u0142a wiedzy - na przyk\u0142ad:<\/p>\n<ul>\n<li>samodzielnie napisane filmy dokumentalne,<\/li>\n<li>Zawarto\u015b\u0107 stron internetowych,<\/li>\n<li>instrukcje techniczne,<\/li>\n<li>Obs\u0142uga baz danych,<\/li>\n<li>Listy FAQ,<\/li>\n<li>lub jakiekolwiek zarchiwizowane \u017ar\u00f3d\u0142a tekstu (np. ze starych baz danych).<\/li>\n<\/ul>\n<p>Decyduj\u0105cy czynnik: Wszystkie te \u017ar\u00f3d\u0142a mog\u0105 by\u0107 przygotowane z wyprzedzeniem i \u201echunked\u201c (tj. podzielone na ma\u0142e jednostki tekstowe), aby m\u00f3c p\u00f3\u017aniej dostarczy\u0107 najbardziej odpowiednie fragmenty tekstu na pytanie u\u017cytkownika.<\/p>\n<p>Niezale\u017cnie od tego, czy chcesz analizowa\u0107 w\u0142asn\u0105 baz\u0119 wiedzy, dokumentacj\u0119 wewn\u0119trzn\u0105, czy ca\u0142e archiwum produkt\u00f3w - dzi\u0119ki <a href=\"https:\/\/ollama.com\" target=\"_blank\" rel=\"noopener\"><strong>Ollama<\/strong><\/a> + <a href=\"https:\/\/qdrant.tech\" target=\"_blank\" rel=\"noopener\"><strong>Qdrant<\/strong><\/a> Mo\u017cesz to zrobi\u0107 na w\u0142asnym komputerze Mac, bez \u017cadnych ogranicze\u0144 w chmurze i z pe\u0142n\u0105 kontrol\u0105 nad danymi.<\/p>\n<h2>Czym jest baza danych RAG - i dlaczego w og\u00f3le \u201echunking\u201c?<\/h2>\n<p>RAG to skr\u00f3t od Retrieval-Augmented Generation - innymi s\u0142owy: sztuczna inteligencja generuj\u0105ca tekst ze wspomaganym wyszukiwaniem informacji. Zamiast trenowa\u0107 model j\u0119zykowy, taki jak GPT, Mistral lub LLaMA tylko na tym, co ju\u017c \u201ewie\u201c, mo\u017ce on uzyska\u0107 dost\u0119p do dodatkowych informacji za po\u015brednictwem po\u0142\u0105czonej bazy danych wiedzy (zwykle tak zwanej wektorowej bazy danych).<\/p>\n<p><strong>Przyk\u0142ad:<\/strong><\/p>\n<blockquote><p>Je\u015bli zapytasz model j\u0119zykowy: \u201eCo jest w moim zeznaniu podatkowym za 2023 rok?\u201c, b\u0119dzie on musia\u0142 zgadywa\u0107 bez dost\u0119pu do oryginalnych danych. Je\u015bli jednak ma dost\u0119p do lokalnie przechowywanej, wektorowej reprezentacji tego dokumentu, mo\u017ce pobra\u0107 odpowiednie informacje i uwzgl\u0119dni\u0107 je w swojej odpowiedzi.<\/p><\/blockquote>\n<h3>Dlaczego zawarto\u015b\u0107 jest \u201edzielona\u201c<\/h3>\n<p>Dokumenty, strony internetowe lub ksi\u0105\u017cki s\u0105 zwykle zbyt d\u0142ugie, aby mo\u017cna je by\u0142o przetwarza\u0107 lub przeszukiwa\u0107 za jednym razem. Nowoczesne modele j\u0119zykowe maj\u0105 r\u00f3wnie\u017c limity token\u00f3w - tj. ograniczon\u0105 d\u0142ugo\u015b\u0107 tekstu, kt\u00f3ry mog\u0105 zrozumie\u0107 jednocze\u015bnie (cz\u0119sto oko\u0142o 4000-8000 token\u00f3w, w nowszych modelach nawet 32 000 lub wi\u0119cej).<\/p>\n<p>Dlatego RAG stosuje nast\u0119puj\u0105c\u0105 sztuczk\u0119:<\/p>\n<ol>\n<li>Oryginalny tekst jest podzielony na ma\u0142e sekcje (fragmenty).<\/li>\n<li>Ka\u017cdy fragment jest konwertowany na wektor przez model j\u0119zykowy (osadzanie).<\/li>\n<li>Wektory te s\u0105 przechowywane w bazie danych, takiej jak Qdrant.<\/li>\n<li>Gdy u\u017cytkownik wysy\u0142a \u017c\u0105danie, monit jest r\u00f3wnie\u017c t\u0142umaczony na wektor - i pobierane s\u0105 najbardziej podobne fragmenty.<\/li>\n<li>Zawarto\u015b\u0107 ta jest nast\u0119pnie dodawana do modelu j\u0119zykowego - np. za pomoc\u0105 monitu systemowego lub wstrzykni\u0119cia kontekstowego.<\/li>\n<\/ol>\n<p>Tworzy to system, kt\u00f3ry zachowuje si\u0119 jak pami\u0119\u0107 - ale bez klasycznych s\u0142\u00f3w kluczowych lub wyszukiwania pe\u0142notekstowego, ale wy\u0142\u0105cznie w oparciu o znaczenie (semantyczne).<\/p>\n<h2>Wymagania i cel<\/h2>\n<p>Budujemy lokalny system RAG sk\u0142adaj\u0105cy si\u0119 z:<\/p>\n<ul>\n<li>lokalny LLM przez Ollama<\/li>\n<li>wektorowa baza danych o nazwie Qdrant<\/li>\n<li>skrypt Pythona, kt\u00f3ry dzieli, wektoryzuje i wstawia teksty do bazy danych<\/li>\n<li>Opcjonalnie: prosty interfejs lub API do wysy\u0142ania zapyta\u0144<\/li>\n<\/ul>\n<p><strong>Platforma docelowa: macOS (Intel lub Apple Silicon)<\/strong><\/p>\n<p>Jest to warunek wst\u0119pny:<\/p>\n<ul>\n<li>macOS 12 lub nowszy (Monterey lub nowszy)<\/li>\n<li>Podstawowa znajomo\u015b\u0107 terminali<\/li>\n<li>Python 3.10 lub nowszy<\/li>\n<li>Opcjonalnie: Homebrew installiert<\/li>\n<\/ul>\n<h3>Krok 1: Ollama 1TP12Animal<\/h3>\n<p>Ollama to proste narz\u0119dzie do uruchamiania lokalnych modeli j\u0119zykowych, takich jak Mistral, LLaMA, Gemma lub Codellama, na w\u0142asnym komputerze - nawet bez Internetu.<\/p>\n<p>Instalacja na komputerze Mac:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">curl -fsSL https:\/\/ollama.com\/install.sh | sh<\/pre>\n<p>Alternatywnie, Ollama mo\u017cna r\u00f3wnie\u017c przypisa\u0107 za po\u015brednictwem Homebrew install:<br \/>\nbrew install ollama<\/p>\n<p>Po instalacji:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">ollama run mistral<\/pre>\n<p>Spowoduje to pobranie modelu Mistral 7B i uruchomienie go lokalnie. Ollama jest dostarczany z interfejsem API REST, kt\u00f3rego u\u017cyjemy p\u00f3\u017aniej do wektoryzacji. Oczywi\u015bcie mo\u017cna r\u00f3wnie\u017c u\u017cy\u0107 innych modeli, takich jak Gemma3 (12B), Mistral Small (24B) lub innych LLM.<\/p>\n<h3>Krok 2: Zwierz\u0119ta Qdrant 1TP12 (lokalna baza danych wektor\u00f3w)<\/h3>\n<p>Qdrant to b\u0142yskawiczna wektorowa baza danych oparta na Rust. Jest darmowa, open source i \u0142atwa do uruchomienia na Macu - najlepiej za po\u015brednictwem Dockera. Je\u015bli nie zainstalowa\u0142e\u015b jeszcze Dockera na swoim Macu 1TP12, mo\u017cesz pobra\u0107 go ze strony <a href=\"https:\/\/www.docker.com\" target=\"_blank\" rel=\"noopener\"><strong>Strona internetowa Docker<\/strong><\/a> i uruchomi\u0107 go na komputerze Mac jako zwyk\u0142\u0105 aplikacj\u0119 komputerow\u0105 installieren. Alternatywnie, mo\u017cna r\u00f3wnie\u017c zainstalowa\u0107 Docker za po\u015brednictwem Homebrew install, je\u015bli u\u017cywasz ju\u017c Homebrew:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">brew install --cask docker<\/pre>\n<p>Nast\u0119pnie uruchom Qdrant przez Docker:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">docker run -p 6333:6333 -v qdrant_storage:\/qdrant\/storage qdrant\/qdrant<\/pre>\n<p>Qdrant jest dost\u0119pny pod adresem<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">http:\/\/localhost:6333<\/pre>\n<p>Do testowania:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">curl http:\/\/localhost:6333\/collections<\/pre>\n<h3>Krok 3: Przygotowanie \u015brodowiska Python<\/h3>\n<p>Potrzebujemy Pythona do chunkingu, osadzania i komunikacji z Qdrant.<\/p>\n<p>Przygotowanie:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">python3 -m venv rag-env\r\nsource rag-env\/bin\/activate\r\npip install qdrant-client sentence-transformers ollama numpy<\/pre>\n<p>Je\u015bli ollama nie jest rozpoznawana jako pakiet Pythona, u\u017cyj interfejsu API REST bezpo\u015brednio za po\u015brednictwem \u017c\u0105da\u0144:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">pip install requests<\/pre>\n<h3>Krok 4: Chunking i osadzanie<\/h3>\n<p>Poni\u017cej znajduje si\u0119 przyk\u0142adowy skrypt, kt\u00f3ry dzieli dokument tekstowy na fragmenty, tworzy osadzenia za pomoc\u0105 Ollama i wstawia je do Qdrant:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">import requests\r\nfrom qdrant_client import QdrantClient\r\nfrom qdrant_client.models import PointStruct\r\nimport uuid\r\n\r\n# Konfiguration\r\nCHUNK_SIZE = 500 # Zeichen\r\nCOLLECTION_NAME = \"mein_rag_wissen\"\r\n\r\n# Text vorbereiten\r\nwith open(\"mein_text.txt\", \"r\") as f:\r\ntext = f.read()\r\n\r\nchunks = [text[i:i+CHUNK_SIZE] for i in range(0, len(text), CHUNK_SIZE)]\r\n\r\n# Qdrant vorbereiten\r\nclient = QdrantClient(\"localhost\", port=6333)\r\n\r\n# Neue Collection anlegen (falls noch nicht vorhanden)\r\nclient.recreate_collection(\r\ncollection_name=COLLECTION_NAME,\r\nvectors_config={\"size\": 4096, \"distance\": \"Cosine\"}\r\n)\r\n\r\ndef get_embedding_ollama(text):\r\nresponse = requests.post(\r\n\"http:\/\/localhost:11434\/api\/embeddings\",\r\njson={\"model\": \"mistral\", \"prompt\": text}\r\n)\r\nreturn response.json()[\"embedding\"]\r\n\r\n# Embeddings erzeugen und in Qdrant speichern\r\npoints = []\r\nfor i, chunk in enumerate(chunks):\r\nvector = get_embedding_ollama(chunk)\r\npoints.append(PointStruct(\r\nid=str(uuid.uuid4()),\r\nvector=vector,\r\npayload={\"text\": chunk}\r\n))\r\n\r\nclient.upsert(collection_name=COLLECTION_NAME, points=points)\r\nprint(f\"{len(points)} Chunks erfolgreich eingef\u00fcgt.\")<\/pre>\n<h3>Krok 5: Zapytania poprzez wyszukiwanie semantyczne<\/h3>\n<p>Mo\u017cesz teraz wysy\u0142a\u0107 zapytania jako wektor do Qdrant i poprosi\u0107 go o znalezienie najbardziej odpowiednich fragment\u00f3w tekstu:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">query = \"Wie funktioniert ein RAG-System?\"\r\nquery_vector = get_embedding_ollama(query)\r\n\r\nresults = client.search(\r\ncollection_name=COLLECTION_NAME,\r\nquery_vector=query_vector,\r\nlimit=3\r\n)\r\n\r\nfor r in results:\r\nprint(r.payload[\"text\"])<\/pre>\n<p>Nast\u0119pnie mo\u017cna przekaza\u0107 te fragmenty do Ollama na przyk\u0142ad za po\u015brednictwem monitu systemowego i sformu\u0142owa\u0107 je jako odpowied\u017a zwi\u0105zan\u0105 z kontekstem.<\/p>\n<h2>Chunking + eksport JSON do FileMaker i innych baz danych<\/h2>\n<p>W wielu przypadkach chunking mo\u017ce odbywa\u0107 si\u0119 ju\u017c w istniej\u0105cym rozwi\u0105zaniu bazodanowym - na przyk\u0142ad w FileMaker. Dok\u0142adnie tak to dzia\u0142a w moim w\u0142asnym \u015brodowisku pracy: dane \u017ar\u00f3d\u0142owe - takie jak zawarto\u015b\u0107 strony internetowej, wpisy pomocy technicznej lub artyku\u0142y techniczne - s\u0105 ju\u017c dost\u0119pne w ustrukturyzowanej formie w FileMaker.<\/p>\n<p>Oto jak dzia\u0142a ten proces:<\/p>\n<ol>\n<li>Teksty s\u0105 dzielone na sekcje o d\u0142ugo\u015bci np. 300-500 znak\u00f3w w ramach FileMaker przy u\u017cyciu w\u0142asnej logiki dzielenia na fragmenty.<\/li>\n<li>Ka\u017cdy fragment otrzymuje sw\u00f3j w\u0142asny identyfikator i, je\u015bli ma to zastosowanie, metadane (tytu\u0142, kategoria, \u017ar\u00f3d\u0142o, j\u0119zyk itp.).<\/li>\n<li>Wszystkie fragmenty s\u0105 automatycznie eksportowane jako pliki JSON - np. do okre\u015blonego katalogu na dysku sieciowym lub bezpo\u015brednio na dysk twardy serwera AI.<\/li>\n<li>Skrypt Python na serwerze odczytuje te pliki JSON i zapisuje je w bazie danych Qdrant.<\/li>\n<\/ol>\n<h3>Przyk\u0142ad wyeksportowanego pliku chunk (chunk_00017.json)<\/h3>\n<pre class=\"notranslate\" data-no-translation=\"\">{\r\n\"id\": \"00017\",\r\n\"text\": \"Dies ist ein einzelner Textabschnitt mit ca. 400 Zeichen, der aus einer gr\u00f6\u00dferen Quelle stammt. Er wurde in FileMaker vorbereitet und enth\u00e4lt alle relevanten Inhalte, die f\u00fcr eine semantische Suche ben\u00f6tigt werden.\",\r\n\"metadata\": {\r\n\"source\": \"support_center\",\r\n\"category\": \"Fehlermeldung\",\r\n\"language\": \"de\",\r\n\"title\": \"Drucker wird nicht erkannt\"\r\n}\r\n}<\/pre>\n<p>P\u00f3\u017aniejszy skrypt importu mo\u017ce by\u0107 nast\u0119pnie wykonywany automatycznie lub regularnie za po\u015brednictwem terminala - np. poprzez zadanie cron lub r\u0119czne wywo\u0142anie:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">python3 import_json_chunks.py \/Users\/markus\/Desktop\/chunks\/<\/pre>\n<p>Skrypt odczytuje ka\u017cdy fragment JSON, generuje odpowiedni wektor (np. za pomoc\u0105 Ollama lub SentenceTransformers) i przesy\u0142a wpis do bazy danych Qdrant.<\/p>\n<p>Metoda ta jest nie tylko przejrzysta, ale mo\u017ce by\u0107 r\u00f3wnie\u017c bardzo dobrze po\u0142\u0105czona z istniej\u0105cymi strukturami IT - szczeg\u00f3lnie w firmach, kt\u00f3re ju\u017c korzystaj\u0105 z FileMaker lub lubi\u0105 mapowa\u0107 wszystko centralnie i kontrolowa\u0107 wizualnie ze wzgl\u0119du na przejrzysto\u015b\u0107 procesu.<\/p>\n<h2>Pod\u0142\u0105cz dowolne bazy danych do lokalnej sztucznej inteligencji<\/h2>\n<p>Dzi\u0119ki Ollama i Qdrant, kompletny, wysokowydajny system RAG mo\u017cna skonfigurowa\u0107 na komputerze Mac w kr\u00f3tkim czasie:<\/p>\n<ul>\n<li>Lokalnie, bez chmury lub subskrypcji<\/li>\n<li>Mo\u017cliwo\u015b\u0107 rozbudowy o w\u0142asn\u0105 zawarto\u015b\u0107<\/li>\n<li>Dane s\u0105 bezpieczne, poniewa\u017c nic nie opuszcza komputera<\/li>\n<li>Wydajny, poniewa\u017c Qdrant pozostaje szybki nawet przy du\u017cych ilo\u015bciach danych<\/li>\n<\/ul>\n<p>Je\u015bli chcesz u\u017cywa\u0107 swojej sztucznej inteligencji nie tylko do czatowania, ale jako prawdziwego systemu wiedzy i pami\u0119ci, ta kombinacja jest konieczno\u015bci\u0105. I dzia\u0142a przy niewielkim wysi\u0142ku - z pe\u0142n\u0105 kontrol\u0105 nad w\u0142asnymi danymi.<\/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=\"96c58e0862d82d396492d620d0614bb1\" data-pid=\"4121\" 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=\"15cd1aa293\" autocomplete=\"off\"><div class=\"basic-elements\"><div class=\"basic-element basic-question basic-question-text-vertical\" data-id=\"9\" data-uid=\"e06553377029cfec377b1d2dae2f1756\" 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=\"159\" 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=\"32\" 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=\"31\" 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=\"6\" 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>Perspektywy: Co jest mo\u017cliwe dzi\u0119ki RAG, Ollama i Qdrant?<\/h2>\n<p>Konfiguracja opisana w tym artykule stanowi podstaw\u0119 techniczn\u0105 dla nowego sposobu radzenia sobie z wiedz\u0105 - lokaln\u0105, kontrolowan\u0105 i elastycznie rozszerzaln\u0105. Na tym jednak podr\u00f3\u017c si\u0119 nie ko\u0144czy. Po zrozumieniu interakcji mi\u0119dzy chunkingiem, osadzaniem, wyszukiwaniem semantycznym i modelami j\u0119zykowymi, szybko zdasz sobie spraw\u0119, jak wszechstronna jest ta architektura w praktyce.<\/p>\n<h3>1. po\u0142\u0105czenie z w\u0142asnymi bazami danych<\/h3>\n<p>Niezale\u017cnie od tego, czy jest to FileMaker, MySQL, PostgreSQL czy MongoDB - dowolna zawarto\u015b\u0107 mo\u017ce by\u0107 regularnie wyodr\u0119bniana, dzielona na fragmenty i automatycznie wstawiana do wektorowej bazy danych za pomoc\u0105 ukierunkowanych zapyta\u0144. W ten spos\u00f3b klasyczna baza danych staje si\u0119 semantycznie przeszukiwalnym \u017ar\u00f3d\u0142em wiedzy. Szczeg\u00f3lnie w systemach wsparcia, archiwach produkt\u00f3w lub bibliotekach cyfrowych otwiera to zupe\u0142nie nowe mo\u017cliwo\u015bci dost\u0119pu dla pracownik\u00f3w lub klient\u00f3w.<\/p>\n<h3>2. automatyczny import stron internetowych, plik\u00f3w PDF lub dokument\u00f3w<\/h3>\n<p>Tre\u015bci nie musz\u0105 by\u0107 przenoszone r\u0119cznie. Dzi\u0119ki narz\u0119dziom takim jak BeautifulSoup, readability, pdfplumber lub docx2txt, ca\u0142e strony internetowe, instrukcje PDF lub dokumenty Word mog\u0105 by\u0107 automatycznie importowane, konwertowane do postaci tekstowej i przygotowywane do chunkingu. Na przyk\u0142ad techniczne wiki, portale dla klient\u00f3w lub dokumentacja online mog\u0105 by\u0107 regularnie aktualizowane i wprowadzane do bazy danych RAG.<\/p>\n<h3>3. d\u0142ugoterminowe budowanie wiedzy poprzez strukturyzacj\u0119<\/h3>\n<p>W przeciwie\u0144stwie do klasycznej aplikacji AI, kt\u00f3ra zaczyna od zera przy ka\u017cdym pytaniu, konfiguracja RAG pozwala na stopniowe rozszerzanie i kuratorowanie podstawowej wiedzy. Ukierunkowana selekcja i przygotowanie fragment\u00f3w tworzy w\u0142asn\u0105 pami\u0119\u0107 semantyczn\u0105, kt\u00f3ra staje si\u0119 bardziej warto\u015bciowa z ka\u017cdym wpisem.<\/p>\n<h3>4. po\u0142\u0105czenie z grafami wiedzy (Neo4j)<\/h3>\n<p>Je\u015bli chcesz p\u00f3j\u015b\u0107 o krok dalej, mo\u017cesz nie tylko przechowywa\u0107 informacje semantycznie, ale tak\u017ce \u0142\u0105czy\u0107 je logicznie. Dzi\u0119ki Neo4j, grafowej bazie danych, relacje mi\u0119dzy terminami, osobami, tematami lub kategoriami mog\u0105 by\u0107 wizualizowane i specjalnie wyszukiwane. Przekszta\u0142ca to zbi\u00f3r tekst\u00f3w w ustrukturyzowany graf wiedzy, kt\u00f3ry mo\u017ce by\u0107 wykorzystywany zar\u00f3wno przez ludzi, jak i sztuczn\u0105 inteligencj\u0119 - np. do wizualizacji \u0142a\u0144cuch\u00f3w przyczynowych, sekwencji czasowych lub klastr\u00f3w tematycznych.<\/p>\n<h3>5. u\u017cywa\u0107 we w\u0142asnych narz\u0119dziach, aplikacjach lub chatbotach<\/h3>\n<p>Po skonfigurowaniu, logika RAG mo\u017ce by\u0107 zintegrowana z niemal ka\u017cd\u0105 aplikacj\u0105: jako funkcja wyszukiwania semantycznego w wewn\u0119trznej aplikacji internetowej, jako inteligentna pomoc w systemie CRM lub jako chatbot z w\u0142asn\u0105 wiedz\u0105 na stronie internetowej firmy. Dzi\u0119ki wykorzystaniu lokalnych interfejs\u00f3w API (np. Ollama REST i Qdrant gRPC), wszystkie komponenty pozostaj\u0105 elastyczne i rozszerzalne - nawet poza tradycyjnymi granicami firmy.<\/p>\n<p>Ci, kt\u00f3rzy maj\u0105 odwag\u0119 zapozna\u0107 si\u0119 z tymi narz\u0119dziami, tworz\u0105 podstawy niezale\u017cnych, lokalnych system\u00f3w sztucznej inteligencji o rzeczywistej warto\u015bci u\u017cytkowej - w duchu kontroli, suwerenno\u015bci i przejrzysto\u015bci technicznej.<\/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-906 { --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-906 { --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 tematy zwi\u0105zane z oprogramowaniem ERP<\/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-906\" 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=\"digitales eigentum erkl\u00e4rt &#8211; so entstehen nachhaltige online-verm\u00f6genswerte\" data-id=\"4766\"  data-category=\"allgemein b\u00fccher featured gesellschaft ki-systeme\" data-post_tag=\"buch datenbanken denkmodelle digitales eigentum erp-software k\u00fcnstliche intelligenz prozesse publishing\">\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\/wlasnosc-cyfrowa-wyjasnia-w-jaki-sposob-tworzone-sa-trwale-zasoby-online\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Wyja\u015bnienie w\u0142asno\u015bci cyfrowej - jak tworzone s\u0105 trwa\u0142e zasoby online<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Czym jest w\u0142asno\u015b\u0107 cyfrowa\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Digitales-Eigentum.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Digitales-Eigentum.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Digitales-Eigentum-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Digitales-Eigentum-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Digitales-Eigentum-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\/wlasnosc-cyfrowa-wyjasnia-w-jaki-sposob-tworzone-sa-trwale-zasoby-online\/\" rel=\"bookmark\">Wyja\u015bnienie w\u0142asno\u015bci cyfrowej - jak tworzone s\u0105 trwa\u0142e zasoby online<\/a><\/h3><div class=\"dpt-meta1 dpt-meta\"><div class=\"dpt-author\"><a href=\"https:\/\/www.markus-schall.de\/pl\/author\/admin\/\"><span>Markus Schall<\/span><\/a><\/div> - <div class=\"dpt-date\"><time datetime=\"2026-02-06T06:32:35+00:00\">6. luty 2026<\/time><\/div><\/div><\/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=\"reichweite ist kein eigentum &#8211; warum sichtbarkeit heute nicht mehr ausreicht\" data-id=\"3994\"  data-category=\"allgemein filemaker &amp; erp gesellschaft kunst &amp; kultur\" data-post_tag=\"datenlogik datenschutz denkmodelle digitales eigentum erp-software\">\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\/zasieg-nie-jest-wlasnoscia-dlatego-widocznosc-juz-dzis-nie-wystarcza\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Zasi\u0119g to nie w\u0142asno\u015b\u0107 - dlaczego widoczno\u015b\u0107 ju\u017c dzi\u015b nie wystarcza?<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Zasi\u0119g a w\u0142asno\u015b\u0107\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/reichweite-vs-eigentum.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/reichweite-vs-eigentum.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/reichweite-vs-eigentum-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/reichweite-vs-eigentum-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/reichweite-vs-eigentum-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\/zasieg-nie-jest-wlasnoscia-dlatego-widocznosc-juz-dzis-nie-wystarcza\/\" rel=\"bookmark\">Zasi\u0119g to nie w\u0142asno\u015b\u0107 - dlaczego widoczno\u015b\u0107 ju\u017c dzi\u015b nie wystarcza?<\/a><\/h3><div class=\"dpt-meta1 dpt-meta\"><div class=\"dpt-author\"><a href=\"https:\/\/www.markus-schall.de\/pl\/author\/admin\/\"><span>Markus Schall<\/span><\/a><\/div> - <div class=\"dpt-date\"><time datetime=\"2025-12-13T14:47:28+00:00\">13. grudnia 2025 r.<\/time><\/div><\/div><\/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=\"elektronische rechnungen im mittelstand: xrechnung, zugferd und erp im \u00dcberblick\" data-id=\"3135\"  data-category=\"apple macos filemaker &amp; erp\" data-post_tag=\"datenbanken erp-software eu-gesetze filemaker gfm-business prozesse\">\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\/faktury-elektroniczne-w-malych-i-srednich-przedsiebiorstwach-xrechnung-zugferd-i-erp-w-skrocie\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Faktury elektroniczne dla M\u015aP: XRechnung, ZUGFeRD i ERP w skr\u00f3cie<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Przegl\u0105d obowi\u0105zku wystawiania faktur elektronicznych\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/elektronische-rechnungen-erp.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/elektronische-rechnungen-erp.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/elektronische-rechnungen-erp-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/elektronische-rechnungen-erp-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/elektronische-rechnungen-erp-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\/10\/faktury-elektroniczne-w-malych-i-srednich-przedsiebiorstwach-xrechnung-zugferd-i-erp-w-skrocie\/\" rel=\"bookmark\">Faktury elektroniczne dla M\u015aP: XRechnung, ZUGFeRD i ERP w skr\u00f3cie<\/a><\/h3><div class=\"dpt-meta1 dpt-meta\"><div class=\"dpt-author\"><a href=\"https:\/\/www.markus-schall.de\/pl\/author\/admin\/\"><span>Markus Schall<\/span><\/a><\/div> - <div class=\"dpt-date\"><time datetime=\"2025-10-16T06:26:50+00:00\">16. pa\u017adziernika 2025 r.<\/time><\/div><\/div><\/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=\"sehen wir uns auf der filemaker-konferenz fmk 2025 in hamburg?\" data-id=\"2670\"  data-category=\"filemaker &amp; erp\" data-post_tag=\"erp-software filemaker gfm-business\">\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\/do-zobaczenia-na-konferencji-filemaker-fmk-2025-w-hamburgu\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Do zobaczenia na konferencji FileMaker FMK 2025 w Hamburgu?<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"2560\" height=\"491\" class=\"attachment-full size-full\" alt=\"FileMaker Konferencja FMK2025\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/filemaker-konferenz-fmk2025-scaled.jpg\" data-dpt-sizes=\"(max-width: 2560px) 100vw, 2560px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/filemaker-konferenz-fmk2025-scaled.jpg 2560w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/filemaker-konferenz-fmk2025-300x58.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/filemaker-konferenz-fmk2025-1024x196.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/filemaker-konferenz-fmk2025-768x147.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/filemaker-konferenz-fmk2025-1536x295.jpg 1536w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/filemaker-konferenz-fmk2025-2048x393.jpg 2048w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/filemaker-konferenz-fmk2025-18x3.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\/do-zobaczenia-na-konferencji-filemaker-fmk-2025-w-hamburgu\/\" rel=\"bookmark\">Do zobaczenia na konferencji FileMaker FMK 2025 w Hamburgu?<\/a><\/h3><div class=\"dpt-meta1 dpt-meta\"><div class=\"dpt-author\"><a href=\"https:\/\/www.markus-schall.de\/pl\/author\/admin\/\"><span>Markus Schall<\/span><\/a><\/div> - <div class=\"dpt-date\"><time datetime=\"2025-08-26T06:57:53+00:00\">26. sierpnia 2025 r.<\/time><\/div><\/div><\/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 dotycz\u0105ce RAG z Ollama + Qdrant<\/h2>\n<h3>1. Co to jest baza danych RAG i do czego s\u0142u\u017cy?<\/h3>\n<p>Baza danych RAG (Retrieval Augmented Generation) \u0142\u0105czy wektorow\u0105 baz\u0119 danych z modelem j\u0119zykowym. Umo\u017cliwia to semantyczne przeszukiwanie w\u0142asnych tre\u015bci - np. dokumentacji lub stron internetowych - dzi\u0119ki czemu modele sztucznej inteligencji mog\u0105 uzyska\u0107 dost\u0119p do odpowiednich sekcji w\u0142asnej bazy danych.<\/p>\n<h3>2 Co oznacza \u201echunking\u201c w tym kontek\u015bcie?<\/h3>\n<p>Chunking oznacza dzielenie d\u0142ugich tekst\u00f3w na mniejsze, sp\u00f3jne sekcje (fragmenty) - zwykle od 200 do 500 znak\u00f3w. Pozwala to na efektywne zapisywanie poszczeg\u00f3lnych fragment\u00f3w tekstu w bazie danych wektor\u00f3w i ich p\u00f3\u017aniejsze wyszukiwanie w przypadku pojawienia si\u0119 pyta\u0144.<\/p>\n<h3>3. dlaczego nie mo\u017cna po prostu zapisywa\u0107 ca\u0142ych tekst\u00f3w w Qdrant?<\/h3>\n<p>Poniewa\u017c modele AI i wyszukiwanie wektorowe dzia\u0142aj\u0105 z ograniczon\u0105 d\u0142ugo\u015bci\u0105 tekstu. Du\u017ce dokumenty mog\u0142yby \u201eukry\u0107\u201c wa\u017cne tre\u015bci lub sprawi\u0107, \u017ce by\u0142yby one niedok\u0142adne. Chunking zwi\u0119ksza dok\u0142adno\u015b\u0107, poniewa\u017c por\u00f3wnywane s\u0105 okre\u015blone sekcje zamiast ca\u0142ych tekst\u00f3w.<\/p>\n<h3>4. Czy mog\u0119 u\u017cywa\u0107 tre\u015bci z dowolnego \u017ar\u00f3d\u0142a?<\/h3>\n<p>Tak, o ile masz teksty w edytowalnej formie (np. jako zwyk\u0142y tekst, HTML, Markdown, PDF, wpisy FileMaker itp.), mo\u017cesz je przygotowa\u0107, podzieli\u0107 i zintegrowa\u0107 z Qdrant. Mo\u017cliwe s\u0105 r\u00f3wnie\u017c \u017ar\u00f3d\u0142a mieszane.<\/p>\n<h3>5. Czy musz\u0119 umie\u0107 programowa\u0107, aby zbudowa\u0107 taki system?<\/h3>\n<p>Podstawowa znajomo\u015b\u0107 Terminala i Pythona jest pomocna, ale nie niezb\u0119dna. Wiele krok\u00f3w (np. chunking w FileMaker, eksport JSON) mo\u017cna zaimplementowa\u0107 wizualnie i automatycznie. Skrypt importu Qdrant mo\u017cna \u0142atwo dostosowa\u0107.<\/p>\n<h3>6. Czy mog\u0119 r\u00f3wnie\u017c zarz\u0105dza\u0107 kilkoma dokumentami lub kategoriami?<\/h3>\n<p>Tak, ka\u017cdy fragment mo\u017ce zawiera\u0107 metadane - np. tytu\u0142, \u017ar\u00f3d\u0142o, j\u0119zyk lub kategori\u0119. Mog\u0105 one by\u0107 brane pod uwag\u0119 podczas wyszukiwania w celu dok\u0142adniejszego filtrowania wynik\u00f3w.<\/p>\n<h3>7 Kt\u00f3re modele s\u0105 odpowiednie do generowania embeddingu?<\/h3>\n<p>Mo\u017cna u\u017cy\u0107 lokalnego modelu za po\u015brednictwem Ollama (np. mistral, llama2, gemma) lub oddzielnego modelu osadzania, takiego jak all-MiniLM z transformator\u00f3w zda\u0144. Wa\u017cne jest, aby model generowa\u0142 dane wyj\u015bciowe osadzania jako wektory.<\/p>\n<h3>8. Jak uruchomi\u0107 Qdrant na komputerze Mac?<\/h3>\n<p>Najprostszym sposobem jest polecenie Docker:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">docker run -p 6333:6333 -v qdrant_storage:\/qdrant\/storage qdrant\/qdrant<\/pre>\n<p>Nast\u0119pnie Qdrant dzia\u0142a pod http:\/\/localhost:6333<\/p>\n<h3>9. Jak du\u017ce mog\u0105 by\u0107 moje wolumeny danych?<\/h3>\n<p>Qdrant jest bardzo wydajny i mo\u017ce z \u0142atwo\u015bci\u0105 zarz\u0105dza\u0107 dziesi\u0105tkami lub setkami tysi\u0119cy fragment\u00f3w. G\u0142\u00f3wnym ograniczeniem jest pami\u0119\u0107 RAM i przestrze\u0144 dyskowa, a nie ich liczba.<\/p>\n<h3>10. Czy to dzia\u0142a r\u00f3wnie\u017c z FileMaker?<\/h3>\n<p>Tak, mo\u017cna wykona\u0107 ca\u0142y chunking i eksport JSON bezpo\u015brednio w FileMaker. Fragmenty s\u0105 eksportowane jako pojedyncze pliki JSON, kt\u00f3re s\u0105 nast\u0119pnie importowane do Qdrant za pomoc\u0105 skryptu Python - ca\u0142kowicie niezale\u017cnie od oryginalnego systemu.<\/p>\n<h3>11. Czy mog\u0119 r\u00f3wnie\u017c uruchomi\u0107 to na innym serwerze zamiast na Macu?<\/h3>\n<p>Oczywi\u015bcie. Konfiguracja dzia\u0142a r\u00f3wnie\u017c na serwerach Linux, Raspberry Pi lub w chmurze (w razie potrzeby). Docker czyni j\u0105 niezale\u017cn\u0105 od platformy. Do produktywnego u\u017cytku zwykle zalecany jest serwer z wi\u0119ksz\u0105 ilo\u015bci\u0105 pami\u0119ci RAM i obs\u0142ug\u0105 GPU.<\/p>\n<h3>12. Jak po\u0142\u0105czy\u0107 wyszukiwanie wektorowe z Ollama?<\/h3>\n<p>Najpierw tworzysz wektor dla pytania u\u017cytkownika za po\u015brednictwem Ollama (Embedding API), u\u017cywasz go do wyszukiwania najbardziej odpowiednich fragment\u00f3w w Qdrant i przekazujesz je do modelu j\u0119zykowego jako kontekst. Nast\u0119pnie Ollama przetwarza pytanie + informacje zwi\u0105zane z kontekstem i generuje dobrze uzasadnion\u0105 odpowied\u017a.<\/p>\n<p>Zdj\u0119cie (c) geralt @ pixabay<\/p>","protected":false},"excerpt":{"rendered":"<p>W coraz bardziej zagmatwanym \u015bwiecie informacji coraz wa\u017cniejsze staje si\u0119 umo\u017cliwienie przeszukiwania w\u0142asnych baz danych w ukierunkowany spos\u00f3b - nie poprzez klasyczne wyszukiwanie pe\u0142notekstowe, ale poprzez semantycznie istotne odpowiedzi. W\u0142a\u015bnie w tym miejscu do gry wkracza baza danych RAG - rozwi\u0105zanie wyszukiwania wspierane przez sztuczn\u0105 inteligencj\u0119, sk\u0142adaj\u0105ce si\u0119 z dw\u00f3ch centralnych komponent\u00f3w:<\/p>","protected":false},"author":1,"featured_media":2768,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":865,"footnotes":""},"categories":[431,3],"tags":[440,452,471,435,433,437,432,450,451],"class_list":["post-2764","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ki-systeme","category-filemaker","tag-datenbanken","tag-docker","tag-kuenstliche-intelligenz","tag-llama","tag-llm","tag-mistral","tag-ollama","tag-qdrant","tag-vektordatenbank"],"_links":{"self":[{"href":"https:\/\/www.markus-schall.de\/pl\/wp-json\/wp\/v2\/posts\/2764","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=2764"}],"version-history":[{"count":14,"href":"https:\/\/www.markus-schall.de\/pl\/wp-json\/wp\/v2\/posts\/2764\/revisions"}],"predecessor-version":[{"id":3401,"href":"https:\/\/www.markus-schall.de\/pl\/wp-json\/wp\/v2\/posts\/2764\/revisions\/3401"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.markus-schall.de\/pl\/wp-json\/wp\/v2\/media\/2768"}],"wp:attachment":[{"href":"https:\/\/www.markus-schall.de\/pl\/wp-json\/wp\/v2\/media?parent=2764"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.markus-schall.de\/pl\/wp-json\/wp\/v2\/categories?post=2764"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.markus-schall.de\/pl\/wp-json\/wp\/v2\/tags?post=2764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}