{"id":13999,"date":"2026-09-09T11:58:01","date_gmt":"2026-09-09T09:58:01","guid":{"rendered":"https:\/\/infoshareacademy.com\/blog\/?p=13999"},"modified":"2026-09-09T11:58:01","modified_gmt":"2026-09-09T09:58:01","slug":"architektura-nowoczesnych-systemow-rag-od-podstaw-do-rag-2-0-na-przykladzie-qdrant-cloud","status":"publish","type":"post","link":"https:\/\/infoshareacademy.com\/blog\/architektura-nowoczesnych-systemow-rag-od-podstaw-do-rag-2-0-na-przykladzie-qdrant-cloud\/","title":{"rendered":"Architektura nowoczesnych system\u00f3w RAG: od podstaw do RAG 2.0 na przyk\u0142adzie Qdrant Cloud"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Wst\u0119p<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nowoczesne systemy AI coraz cz\u0119\u015bciej \u0142\u0105cz\u0105 modele j\u0119zykowe z zewn\u0119trznymi \u017ar\u00f3d\u0142ami wiedzy. Jednym z najpopularniejszych podej\u015b\u0107 jest stosowanie RAG \u2014 Retrieval-Augmented Generation, czyli generowanie odpowiedzi w oparciu o kontekst pobrany z bazy danych.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W poni\u017cszym artykule przyjrzymy si\u0119 usprawnionemu podej\u015bciu, tzw. RAG 2.0.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">RAG (Retrieval-Augmented Generation)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To architektura systemu AI, w kt\u00f3rej LLM nie odpowiada \u201ez pami\u0119ci\u201d, lecz korzysta z informacji pobranej z zewn\u0119trznej bazy. Pipeline mo\u017ce wygl\u0105da\u0107 nast\u0119puj\u0105co:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1186\" height=\"528\" src=\"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/rag-pipeline-diagram.png\" alt=\"Diagram przep\u0142ywu danych w potoku RAG: chunking, embedding, wyszukiwanie wektorowe, wyb\u00f3r top-K, budowa promptu i generowanie odpowiedzi przez LLM\" class=\"wp-image-13992\" srcset=\"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/rag-pipeline-diagram.png 1186w, https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/rag-pipeline-diagram-300x134.png 300w, https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/rag-pipeline-diagram-1024x456.png 1024w, https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/rag-pipeline-diagram-768x342.png 768w\" sizes=\"auto, (max-width: 1186px) 100vw, 1186px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">RAG\u202f2.0 (RetrievalAugmented\u202fGeneration\u202f2.0)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Jest to rozwini\u0119cie klasycznego systemu\u202fRAG. Wersja\u202f2.0\u202fdodaje elementy takie jak reranking\u202f(CrossEncoder), multihop\u202fretrieval, iteracyjne zapytania oraz agentowe\u202fplanowanie\u202f(ReAct). Dzi\u0119ki temu\u202fstworzony system\u202flepiej rozumie kontekst, redukuje halucynacje i \u0142\u0105czy informacje z wielu \u017ar\u00f3de\u0142, co czyni go bardziej precyzyjnym i u\u017cytecznym w z\u0142o\u017conych zastosowaniach analitycznych.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W tym artykule skupimy si\u0119 na zbudowaniu RAGa oraz RAGa 2.0 w oparciu o wektorow\u0105 baz\u0119 danych Qdrant (https:\/\/qdrant.tech\/cloud\/).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wektorowa baza danych, to baza kt\u00f3ra przechowuje dokumenty w postaci wektor\u00f3w (embedding\u00f3w). Umo\u017cliwia wyszukiwanie semantyczne \u2014 nie po s\u0142owach, lecz po ich znaczeniu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Qdrant jest jedn\u0105 z wielu istniej\u0105cych provider\u00f3w wektorowych baz danych, jej zdecydowan\u0105 zalet\u0105 jest mo\u017cliwo\u015b\u0107 stworzenia za darmo klastra, w kt\u00f3rym b\u0119dziemy przechowywa\u0107 wektory. Alterantywy dla tej bazy to m. in. ChromaDB, Pinecone, Weaviate, Milvus.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Poni\u017cej znajduje si\u0119 kr\u00f3tka instrukcja jak stworzy\u0107 sw\u00f3j pierwszy klaster w Qdrant \ud83d\ude0a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1042\" height=\"1302\" src=\"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/qdrant-cloud-logowanie.png\" alt=\"Ekran logowania do Qdrant Cloud z opcjami kontynuacji przez Google, GitHub lub adres e-mail\" class=\"wp-image-13993\" srcset=\"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/qdrant-cloud-logowanie.png 1042w, https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/qdrant-cloud-logowanie-240x300.png 240w, https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/qdrant-cloud-logowanie-820x1024.png 820w, https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/qdrant-cloud-logowanie-768x960.png 768w\" sizes=\"auto, (max-width: 1042px) 100vw, 1042px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Po zalogowaniu do Qdrant mo\u017cemy utworzy\u0107 klaster<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1476\" src=\"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/qdrant-cloud-panel-klastry-scaled.png\" alt=\"Panel Qdrant Cloud z sekcj\u0105 Clusters i zach\u0119t\u0105 do utworzenia pierwszego klastra\" class=\"wp-image-13994\" srcset=\"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/qdrant-cloud-panel-klastry-scaled.png 2560w, https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/qdrant-cloud-panel-klastry-300x173.png 300w, https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/qdrant-cloud-panel-klastry-1024x590.png 1024w, https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/qdrant-cloud-panel-klastry-768x443.png 768w, https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/qdrant-cloud-panel-klastry-1536x885.png 1536w, https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/qdrant-cloud-panel-klastry-2048x1180.png 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1098\" height=\"902\" src=\"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/qdrant-tworzenie-klastra.png\" alt=\"Formularz tworzenia klastra w Qdrant Cloud: wyb\u00f3r wariantu Free Cluster, nazwa klastra, wersja, dostawca chmury i region\" class=\"wp-image-13995\" srcset=\"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/qdrant-tworzenie-klastra.png 1098w, https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/qdrant-tworzenie-klastra-300x246.png 300w, https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/qdrant-tworzenie-klastra-1024x841.png 1024w, https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/qdrant-tworzenie-klastra-768x631.png 768w\" sizes=\"auto, (max-width: 1098px) 100vw, 1098px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Nast\u0119pnie pojawi si\u0119 okno, kt\u00f3re poka\u017ce nam klucz API (API Key) oraz Cluster Endpoint:Obie te warto\u015bci zapiszmy na boku w pliku .txt, \u017ceby m\u00f3c z nich skorzysta\u0107 przy tworzeniu kodu \ud83d\ude09.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"920\" height=\"778\" src=\"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/qdrant-klucz-api.png\" alt=\"Okno Qdrant Cloud z nowo utworzonym kluczem API i adresem klastra; obie warto\u015bci s\u0105 zamazane\" class=\"wp-image-13996\" srcset=\"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/qdrant-klucz-api.png 920w, https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/qdrant-klucz-api-300x254.png 300w, https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/qdrant-klucz-api-768x649.png 768w\" sizes=\"auto, (max-width: 920px) 100vw, 920px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Kodowanie \ud83d\ude00<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cz\u0119\u015b\u0107 wsp\u00f3lna konieczna do stworzenia zar\u00f3wno systemu RAG 1.0 i RAG 2.0 (punkty 1\u20135). Jako zbi\u00f3r danych, dla kt\u00f3rych stworz\u0119 embeddingi wykorzystam fragment \u201ePana Tadeusza\u201d, a mianowicie pierwsze 22 wiersze:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>text = \"\"\"\nLitwo! Ojczyzno moja! ty jeste\u015b jak zdrowie.\nIle ci\u0119 trzeba ceni\u0107, ten tylko si\u0119 dowie,\nKto ci\u0119 straci\u0142. Dzi\u015b pi\u0119kno\u015b\u0107 tw\u0105 w ca\u0142ej ozdobie\nWidz\u0119 i opisuj\u0119, bo t\u0119skni\u0119 po tobie.\n..........\nA wszystko przepasane, jakby wst\u0119g\u0105, miedz\u0105\nZielon\u0105, na niej z rzadka ciche grusze siedz\u0105.\n\"\"\"<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">1. Po\u0142\u0105czenie z Qdrant Cloud<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tworzymy klienta, kt\u00f3ry umo\u017cliwi nam po\u0142\u0105czenie si\u0119 z instancj\u0105 Qdrant Cloud. Od tego momentu mo\u017cemy tworzy\u0107 kolekcje, dodawa\u0107 punkty i wykonywa\u0107 zapytania wektorowe.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from qdrant_client import QdrantClient\nfrom qdrant_client.models import PointStruct, VectorParams, Distance\nclient = QdrantClient(\n\u00a0 \u00a0 url=\"https:\/\/...qdrant.io\",\n\u00a0 \u00a0 api_key=\"TW\u00d3J-API-KEY\",\n)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2. Chunkowanie dokumentu<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nast\u0119pnie podzielimy poemat na linijki. Ka\u017cda linia staje si\u0119 osobnym \u201echunkiem\u201d, kt\u00f3ry p\u00f3\u017aniej b\u0119dzie embedowany i zapisany w bazie.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def chunk_text(text):\n\u00a0 \u00a0 lines = text.split('\\n')\n\u00a0 \u00a0 return [line for line in lines if len(line) &gt; 0]\nchunks = chunk_text(text)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">3. Tworzenie embedding\u00f3w<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tutaj skorzystamy z modelu multilingual-e5-large, kt\u00f3ry wystarczaj\u0105co dobrze dzia\u0142a dla j\u0119zyka polskiego. Ka\u017cdy chunk zostanie zamieniony na wektor \u2014 reprezentacj\u0119 semantyczn\u0105.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>embedder = SentenceTransformer(\"intfloat\/multilingual-e5-large\")\nvectors = embedder.encode(chunks)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">4. Tworzenie kolekcji w Qdrant<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Teraz Sprawd\u017amy, czy kolekcja istnieje. Je\u015bli nie stw\u00f3rzmy j\u0105, definiuj\u0105c rozmiar wektora i metryk\u0119. My skorzystamy z metryki kosinusowej.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>collections = client.get_collections().collections\ncollection_names = [c.name for c in collections]\nCOLLECTION_NAME = 'pan_tadeusz'\nif COLLECTION_NAME not in collection_names:\n\u00a0 \u00a0 client.create_collection(\n\u00a0 \u00a0 \u00a0 \u00a0 collection_name=COLLECTION_NAME,\n\u00a0 \u00a0 \u00a0 \u00a0 vectors_config=VectorParams(\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 size=vectors.shape[1],\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 distance=Distance.COSINE\n\u00a0 \u00a0 \u00a0 \u00a0 )\n\u00a0 \u00a0 )<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">5. Upsert danych<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ka\u017cdy chunk za\u0142adujemy do Qdrant jako unikalny punkt z embeddingiem i payloadem.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>points = [\n\u00a0 \u00a0 PointStruct(\n\u00a0 \u00a0 \u00a0 \u00a0 id=i,\n\u00a0 \u00a0 \u00a0 \u00a0 vector=vectors[i].tolist(),\n\u00a0 \u00a0 \u00a0 \u00a0 payload={\"text\": chunks[i]}\n\u00a0 \u00a0 )\n\u00a0 \u00a0 for i in range(len(chunks))\n]\nclient.upsert(collection_name=COLLECTION_NAME, points=points)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">W tym miejscu zaczniemy tworzy\u0107 RAG. Na pocz\u0105tek stw\u00f3rzmy wersj\u0119 podstawow\u0105<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">6. RAG 1.0<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">6.1 Wektorowe wyszukiwanie<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Zbudujemy tutaj embedding pytania, i wy\u015blemy je w postaci wektora do Qdrant, aby pobiera\u0107 top5 najbardziej podobnych chunk\u00f3w.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>query = \"gdzie lezy Litwa?\"\nquery_vec = embedder.encode(query).tolist()\nresults = client.query_points(\n\u00a0 \u00a0 collection_name=COLLECTION_NAME,\n\u00a0 \u00a0 query=query_vec,\n\u00a0 \u00a0 limit=5,\n\u00a0 \u00a0 with_payload=True,\n)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">6.2 Sk\u0142adanie kontekstu<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0141\u0105czymy znalezione fragmenty w jeden kontekst i wy\u015bwietlamy wyniki<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>context = \"\\n\".join([point.payload['text'] for point in results.points])\nprint(\"Kontekst znaleziony w Qdrant:\\n\", context)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">6.3 Budowa promptu<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">W ostatnim punkcie RAG budujemy zapytanie, kt\u00f3re mo\u017cemy wys\u0142a\u0107 do wybranego LLM-a aby uzyska\u0107 odpowied\u017a w formie akceptowalnej dla u\u017cytkownika-cz\u0142owieka:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>prompt = f\"\"\"\nU\u017cyj poni\u017cszego kontekstu, aby odpowiedzie\u0107 na pytanie.\nKontekst:\n{context}\nPytanie:\n{query}\nOdpowied\u017a (maks 150 s\u0142\u00f3w):\n\"\"\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Wynik w konsoli:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"844\" height=\"556\" src=\"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/rag-1-prompt-konsola.png\" alt=\"Konsola z promptem zbudowanym przez RAG 1.0: kontekst z\u0142o\u017cony z fragment\u00f3w Pana Tadeusza oraz pytanie o po\u0142o\u017cenie Litwy\" class=\"wp-image-13997\" srcset=\"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/rag-1-prompt-konsola.png 844w, https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/rag-1-prompt-konsola-300x198.png 300w, https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/rag-1-prompt-konsola-768x506.png 768w\" sizes=\"auto, (max-width: 844px) 100vw, 844px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Teraz przejdziemy do RAG 2.0 (pami\u0119tajmy, \u017ce ten workflow mo\u017ce rozpocz\u0105\u0107 si\u0119 od razu po wykonaniu punktu 5-ego \u201eupsert danych\u201d)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">7. RAG 2.0 \u2013 zastosujemy tutaj dodanie metody rerankingu, kt\u00f3ra poprawi trafno\u015b\u0107 wyszuka\u0144.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">7.1 CrossEncoder<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Zastosujemy dodatkowy model, kt\u00f3ry oceni pary (query, chunk) pod k\u0105tem ich dopasowania jako para pytanie-odpowied\u017a.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>reranker = CrossEncoder(\"cross-encoder\/ms-marco-MiniLM-L-6-v2\")<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">7.2 Vector search<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">W tym momencie musimy pobra\u0107 wi\u0119cej chunk\u00f3w (np. 10), aby mie\u0107 z czego wybiera\u0107.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>top_k_retrieval = 10\nresults = client.query_points(\n\u00a0 \u00a0 collection_name=COLLECTION_NAME,\n\u00a0 \u00a0 query=query_vec,\n\u00a0 \u00a0 limit=top_k_retrieval,\n\u00a0 \u00a0 with_payload=True,\n)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">7.3 Reranking<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Rerankowanie przy pomocy CrossEncoder oceni trafno\u015b\u0107 ka\u017cdego chunku wzgl\u0119dem pytania.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pairs = [[query, p.payload[\"text\"]] for p in results.points]\nscores = reranker.predict(pairs)\nscored_points = list(zip(results.points, scores))\nscored_points.sort(key=lambda x: x[1], reverse=True)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">7.4 Wyb\u00f3r najlepszych chunk\u00f3w<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Aby m\u00f3c por\u00f3wna\u0107 wyniki z RAG 1.0 wybierzemy tutaj r\u00f3wnie\u017c 5 ostatecznych chunk\u00f3w.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>top_k_rerank = 5\ntop_points = scored_points[:top_k_rerank]\ncontext_chunks = [p.payload[\"text\"] for p, s in top_points]\ncontext = \"\\n\".join(context_chunks)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">7.5 Budowa promptu<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Prompt ma teraz dost\u0119p do chunk\u00f3w, kt\u00f3re nieco lepiej zgrywaj\u0105 si\u0119 pod k\u0105tem szukania odpowiedzi na zadane na samym pocz\u0105tku pytanie \u201eGdzie le\u017cy Litwa?\u201d.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>prompt = f\"\"\"\nU\u017cyj poni\u017cszego kontekstu, aby odpowiedzie\u0107 na pytanie po polsku.\nNie zgaduj \u2013 je\u015bli odpowied\u017a nie wynika z kontekstu, powiedz to wprost.\nKontekst:\n{context}\nPytanie:\n{query}\nOdpowied\u017a (maks 150 s\u0142\u00f3w):\n\"\"\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Wynik w konsoli:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1126\" height=\"516\" src=\"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/rag-2-prompt-konsola.png\" alt=\"Konsola z promptem RAG 2.0 po rerankingu: te same fragmenty kontekstu ustawione w innej kolejno\u015bci i instrukcja, by nie zgadywa\u0107\" class=\"wp-image-13998\" srcset=\"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/rag-2-prompt-konsola.png 1126w, https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/rag-2-prompt-konsola-300x137.png 300w, https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/rag-2-prompt-konsola-1024x469.png 1024w, https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/rag-2-prompt-konsola-768x352.png 768w\" sizes=\"auto, (max-width: 1126px) 100vw, 1126px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Podsumowanie<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Systemy RAG sta\u0142y si\u0119 fundamentem nowoczesnych aplikacji AI \u2014 od chatbot\u00f3w, przez wyszukiwanie semantyczne, po zaawansowane analizy danych. Klasyczny RAG\u202f1.0 jest prosty i szybki, ale jego skuteczno\u015b\u0107 ogranicza s\u0142absza kontrola nad kontekstem. RAG\u202f2.0 rozwi\u0105zuje te problemy, oferuj\u0105c znacznie wi\u0119ksz\u0105 precyzj\u0119, stabilno\u015b\u0107 i odporno\u015b\u0107 na halucynacje.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W ramach projektu zbudowali\u015bmy w pe\u0142ni dzia\u0142aj\u0105cy system RAG\u202f2.0, wykorzystuj\u0105c Qdrant Cloud jako wektorow\u0105 baz\u0119 danych, SentenceTransformers do generowania embedding\u00f3w oraz CrossEncoder do rerankingu wynik\u00f3w. Nasz pipeline \u2014 od chunkingu, przez embeddingi i wyszukiwanie wektorowe, a\u017c po ko\u0144cow\u0105 odpowied\u017a LLM \u2014 pokazuje, jak po\u0142\u0105czenie tych narz\u0119dzi tworzy skalowalny, produkcyjny system zdolny do pracy zar\u00f3wno z j\u0119zykiem polskim, jak i wieloj\u0119zycznymi zbiorami danych.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To praktyczny dow\u00f3d, \u017ce RAG\u202f2.0 nie jest tylko koncepcj\u0105, lecz realnym, efektywnym podej\u015bciem do budowy nowoczesnych aplikacji AI.<\/p>\n\n\n\n<div class=\"wp-block-media-text is-vertically-aligned-top\" style=\"grid-template-columns:30% auto\"><figure class=\"wp-block-media-text__media\"><a href=\"https:\/\/www.linkedin.com\/in\/wiktor-filipiuk\/\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"811\" src=\"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/wiktor-filipiuk.jpg\" alt=\"Wiktor Filipiuk\" class=\"wp-image-14001 size-full\" srcset=\"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/wiktor-filipiuk.jpg 1024w, https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/wiktor-filipiuk-300x238.jpg 300w, https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/wiktor-filipiuk-768x608.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"has-text-color has-link-color has-small-font-size wp-elements-1 wp-block-paragraph\" style=\"color:#9b9b9b\">Autor<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><a href=\"https:\/\/www.linkedin.com\/in\/wiktor-filipiuk\/\"><strong>Wiktor Filipiuk [in]<\/strong><\/a><\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">Machine Learning Engineer. Od 2014 roku tworzy i wdra\u017ca modele uczenia maszynowego w obszarach finans\u00f3w, energetyki, robotyki i medycyny. Najwi\u0119ksz\u0105 przyjemno\u015b\u0107 sprawia mu przekazywanie wiedzy i wsp\u00f3lne odkrywanie tajnik\u00f3w programowania w j\u0119zyku Python.<br><br><\/p>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Jak zbudowa\u0107 system RAG od podstaw i rozwin\u0105\u0107 go do wersji 2.0 z rerankingiem \u2014 krok po kroku, na wektorowej bazie Qdrant Cloud, z kodem w Pythonie i por\u00f3wnaniem wynik\u00f3w obu podej\u015b\u0107.<\/p>\n","protected":false},"author":18,"featured_media":14000,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[171,26,41],"tags":[],"class_list":["post-13999","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai","category-artykul","category-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Architektura nowoczesnych system\u00f3w RAG: od podstaw do RAG 2.0 na przyk\u0142adzie Qdrant Cloud - infoShare Academy Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/infoshareacademy.com\/blog\/architektura-nowoczesnych-systemow-rag-od-podstaw-do-rag-2-0-na-przykladzie-qdrant-cloud\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Architektura nowoczesnych system\u00f3w RAG: od podstaw do RAG 2.0 na przyk\u0142adzie Qdrant Cloud - infoShare Academy Blog\" \/>\n<meta property=\"og:description\" content=\"Jak zbudowa\u0107 system RAG od podstaw i rozwin\u0105\u0107 go do wersji 2.0 z rerankingiem \u2014 krok po kroku, na wektorowej bazie Qdrant Cloud, z kodem w Pythonie i por\u00f3wnaniem wynik\u00f3w obu podej\u015b\u0107.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/infoshareacademy.com\/blog\/architektura-nowoczesnych-systemow-rag-od-podstaw-do-rag-2-0-na-przykladzie-qdrant-cloud\/\" \/>\n<meta property=\"og:site_name\" content=\"infoShare Academy Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/infoshareacademy\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-09T09:58:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/rag-2-0-qdrant-wyrozniajacy.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"mateusz.piernikarczyk@infoshareacademy.com\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"mateusz.piernikarczyk@infoshareacademy.com\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/infoshareacademy.com\/blog\/architektura-nowoczesnych-systemow-rag-od-podstaw-do-rag-2-0-na-przykladzie-qdrant-cloud\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/infoshareacademy.com\/blog\/architektura-nowoczesnych-systemow-rag-od-podstaw-do-rag-2-0-na-przykladzie-qdrant-cloud\/\"},\"author\":{\"name\":\"mateusz.piernikarczyk@infoshareacademy.com\",\"@id\":\"https:\/\/infoshareacademy.com\/blog\/#\/schema\/person\/bfda6d1aeb19909ac4aeee2b2986c8e2\"},\"headline\":\"Architektura nowoczesnych system\u00f3w RAG: od podstaw do RAG 2.0 na przyk\u0142adzie Qdrant Cloud\",\"datePublished\":\"2026-09-09T09:58:01+00:00\",\"dateModified\":\"2026-09-09T09:58:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/infoshareacademy.com\/blog\/architektura-nowoczesnych-systemow-rag-od-podstaw-do-rag-2-0-na-przykladzie-qdrant-cloud\/\"},\"wordCount\":862,\"publisher\":{\"@id\":\"https:\/\/infoshareacademy.com\/blog\/#organization\"},\"articleSection\":[\"AI\",\"Artyku\u0142\",\"Python\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/infoshareacademy.com\/blog\/architektura-nowoczesnych-systemow-rag-od-podstaw-do-rag-2-0-na-przykladzie-qdrant-cloud\/\",\"url\":\"https:\/\/infoshareacademy.com\/blog\/architektura-nowoczesnych-systemow-rag-od-podstaw-do-rag-2-0-na-przykladzie-qdrant-cloud\/\",\"name\":\"Architektura nowoczesnych system\u00f3w RAG: od podstaw do RAG 2.0 na przyk\u0142adzie Qdrant Cloud - infoShare Academy Blog\",\"isPartOf\":{\"@id\":\"https:\/\/infoshareacademy.com\/blog\/#website\"},\"datePublished\":\"2026-09-09T09:58:01+00:00\",\"dateModified\":\"2026-09-09T09:58:01+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/infoshareacademy.com\/blog\/architektura-nowoczesnych-systemow-rag-od-podstaw-do-rag-2-0-na-przykladzie-qdrant-cloud\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/infoshareacademy.com\/blog\/architektura-nowoczesnych-systemow-rag-od-podstaw-do-rag-2-0-na-przykladzie-qdrant-cloud\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/infoshareacademy.com\/blog\/architektura-nowoczesnych-systemow-rag-od-podstaw-do-rag-2-0-na-przykladzie-qdrant-cloud\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/infoshareacademy.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Architektura nowoczesnych system\u00f3w RAG: od podstaw do RAG 2.0 na przyk\u0142adzie Qdrant Cloud\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/infoshareacademy.com\/blog\/#website\",\"url\":\"https:\/\/infoshareacademy.com\/blog\/\",\"name\":\"infoShare Academy Blog\",\"description\":\"Strona o szkoleniach w IT\",\"publisher\":{\"@id\":\"https:\/\/infoshareacademy.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/infoshareacademy.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/infoshareacademy.com\/blog\/#organization\",\"name\":\"infoShare Academy\",\"url\":\"https:\/\/infoshareacademy.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/infoshareacademy.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2022\/11\/infoShare-Academy-ver-white-with-background-1000x1000px.jpg\",\"contentUrl\":\"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2022\/11\/infoShare-Academy-ver-white-with-background-1000x1000px.jpg\",\"width\":1000,\"height\":1000,\"caption\":\"infoShare Academy\"},\"image\":{\"@id\":\"https:\/\/infoshareacademy.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/infoshareacademy\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/infoshareacademy.com\/blog\/#\/schema\/person\/bfda6d1aeb19909ac4aeee2b2986c8e2\",\"name\":\"mateusz.piernikarczyk@infoshareacademy.com\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/infoshareacademy.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8d0d979a4d1ae0c5371979c94555e365d334d1534337ad5568a7e9c757324d94?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8d0d979a4d1ae0c5371979c94555e365d334d1534337ad5568a7e9c757324d94?s=96&d=mm&r=g\",\"caption\":\"mateusz.piernikarczyk@infoshareacademy.com\"},\"url\":\"https:\/\/infoshareacademy.com\/blog\/author\/mateusz-piernikarczykinfoshareacademy-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Architektura nowoczesnych system\u00f3w RAG: od podstaw do RAG 2.0 na przyk\u0142adzie Qdrant Cloud - infoShare Academy Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/infoshareacademy.com\/blog\/architektura-nowoczesnych-systemow-rag-od-podstaw-do-rag-2-0-na-przykladzie-qdrant-cloud\/","og_locale":"pl_PL","og_type":"article","og_title":"Architektura nowoczesnych system\u00f3w RAG: od podstaw do RAG 2.0 na przyk\u0142adzie Qdrant Cloud - infoShare Academy Blog","og_description":"Jak zbudowa\u0107 system RAG od podstaw i rozwin\u0105\u0107 go do wersji 2.0 z rerankingiem \u2014 krok po kroku, na wektorowej bazie Qdrant Cloud, z kodem w Pythonie i por\u00f3wnaniem wynik\u00f3w obu podej\u015b\u0107.","og_url":"https:\/\/infoshareacademy.com\/blog\/architektura-nowoczesnych-systemow-rag-od-podstaw-do-rag-2-0-na-przykladzie-qdrant-cloud\/","og_site_name":"infoShare Academy Blog","article_publisher":"https:\/\/www.facebook.com\/infoshareacademy","article_published_time":"2026-09-09T09:58:01+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2026\/09\/rag-2-0-qdrant-wyrozniajacy.png","type":"image\/png"}],"author":"mateusz.piernikarczyk@infoshareacademy.com","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"mateusz.piernikarczyk@infoshareacademy.com","Szacowany czas czytania":"6 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/infoshareacademy.com\/blog\/architektura-nowoczesnych-systemow-rag-od-podstaw-do-rag-2-0-na-przykladzie-qdrant-cloud\/#article","isPartOf":{"@id":"https:\/\/infoshareacademy.com\/blog\/architektura-nowoczesnych-systemow-rag-od-podstaw-do-rag-2-0-na-przykladzie-qdrant-cloud\/"},"author":{"name":"mateusz.piernikarczyk@infoshareacademy.com","@id":"https:\/\/infoshareacademy.com\/blog\/#\/schema\/person\/bfda6d1aeb19909ac4aeee2b2986c8e2"},"headline":"Architektura nowoczesnych system\u00f3w RAG: od podstaw do RAG 2.0 na przyk\u0142adzie Qdrant Cloud","datePublished":"2026-09-09T09:58:01+00:00","dateModified":"2026-09-09T09:58:01+00:00","mainEntityOfPage":{"@id":"https:\/\/infoshareacademy.com\/blog\/architektura-nowoczesnych-systemow-rag-od-podstaw-do-rag-2-0-na-przykladzie-qdrant-cloud\/"},"wordCount":862,"publisher":{"@id":"https:\/\/infoshareacademy.com\/blog\/#organization"},"articleSection":["AI","Artyku\u0142","Python"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/infoshareacademy.com\/blog\/architektura-nowoczesnych-systemow-rag-od-podstaw-do-rag-2-0-na-przykladzie-qdrant-cloud\/","url":"https:\/\/infoshareacademy.com\/blog\/architektura-nowoczesnych-systemow-rag-od-podstaw-do-rag-2-0-na-przykladzie-qdrant-cloud\/","name":"Architektura nowoczesnych system\u00f3w RAG: od podstaw do RAG 2.0 na przyk\u0142adzie Qdrant Cloud - infoShare Academy Blog","isPartOf":{"@id":"https:\/\/infoshareacademy.com\/blog\/#website"},"datePublished":"2026-09-09T09:58:01+00:00","dateModified":"2026-09-09T09:58:01+00:00","breadcrumb":{"@id":"https:\/\/infoshareacademy.com\/blog\/architektura-nowoczesnych-systemow-rag-od-podstaw-do-rag-2-0-na-przykladzie-qdrant-cloud\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/infoshareacademy.com\/blog\/architektura-nowoczesnych-systemow-rag-od-podstaw-do-rag-2-0-na-przykladzie-qdrant-cloud\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/infoshareacademy.com\/blog\/architektura-nowoczesnych-systemow-rag-od-podstaw-do-rag-2-0-na-przykladzie-qdrant-cloud\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/infoshareacademy.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Architektura nowoczesnych system\u00f3w RAG: od podstaw do RAG 2.0 na przyk\u0142adzie Qdrant Cloud"}]},{"@type":"WebSite","@id":"https:\/\/infoshareacademy.com\/blog\/#website","url":"https:\/\/infoshareacademy.com\/blog\/","name":"infoShare Academy Blog","description":"Strona o szkoleniach w IT","publisher":{"@id":"https:\/\/infoshareacademy.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/infoshareacademy.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/infoshareacademy.com\/blog\/#organization","name":"infoShare Academy","url":"https:\/\/infoshareacademy.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/infoshareacademy.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2022\/11\/infoShare-Academy-ver-white-with-background-1000x1000px.jpg","contentUrl":"https:\/\/infoshareacademy.com\/blog\/wp-content\/uploads\/2022\/11\/infoShare-Academy-ver-white-with-background-1000x1000px.jpg","width":1000,"height":1000,"caption":"infoShare Academy"},"image":{"@id":"https:\/\/infoshareacademy.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/infoshareacademy"]},{"@type":"Person","@id":"https:\/\/infoshareacademy.com\/blog\/#\/schema\/person\/bfda6d1aeb19909ac4aeee2b2986c8e2","name":"mateusz.piernikarczyk@infoshareacademy.com","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/infoshareacademy.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8d0d979a4d1ae0c5371979c94555e365d334d1534337ad5568a7e9c757324d94?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8d0d979a4d1ae0c5371979c94555e365d334d1534337ad5568a7e9c757324d94?s=96&d=mm&r=g","caption":"mateusz.piernikarczyk@infoshareacademy.com"},"url":"https:\/\/infoshareacademy.com\/blog\/author\/mateusz-piernikarczykinfoshareacademy-com\/"}]}},"_links":{"self":[{"href":"https:\/\/infoshareacademy.com\/blog\/wp-json\/wp\/v2\/posts\/13999","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/infoshareacademy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/infoshareacademy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/infoshareacademy.com\/blog\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/infoshareacademy.com\/blog\/wp-json\/wp\/v2\/comments?post=13999"}],"version-history":[{"count":1,"href":"https:\/\/infoshareacademy.com\/blog\/wp-json\/wp\/v2\/posts\/13999\/revisions"}],"predecessor-version":[{"id":14002,"href":"https:\/\/infoshareacademy.com\/blog\/wp-json\/wp\/v2\/posts\/13999\/revisions\/14002"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/infoshareacademy.com\/blog\/wp-json\/wp\/v2\/media\/14000"}],"wp:attachment":[{"href":"https:\/\/infoshareacademy.com\/blog\/wp-json\/wp\/v2\/media?parent=13999"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/infoshareacademy.com\/blog\/wp-json\/wp\/v2\/categories?post=13999"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/infoshareacademy.com\/blog\/wp-json\/wp\/v2\/tags?post=13999"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}