{"id":1935,"date":"2026-03-03T08:00:00","date_gmt":"2026-03-03T07:00:00","guid":{"rendered":"https:\/\/olgamironczuk.pl\/?page_id=1935"},"modified":"2026-03-03T13:10:50","modified_gmt":"2026-03-03T12:10:50","slug":"warkan","status":"publish","type":"page","link":"https:\/\/olgamironczuk.pl\/en\/warkan\/","title":{"rendered":"Warkan"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Meet Warkan the wolf, my digital companion. He lives between the lines of \u201cFrom the Analyst\u2019s Diary\u201d and knows all its hidden paths.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you ever lose your way in the forest of posts, you don\u2019t have to wander. Just whisper what you\u2019re looking for, and he will pick up the trail and lead you to the right place. He was trained for a single task: to guide you through this digital forest.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">His heart beats in Python, so even when the AI layer falls silent for a moment, Warkan can still find the right paths.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Try it. \ud83d\udc3e<\/p>\n\n\n\n<div class=\"wp-block-buttons btn-olive is-content-justification-right is-layout-flex wp-container-core-buttons-is-layout-0fbcd071 wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/olgamironczuk.pl\/en\/warkan-swiadomy-kosztowo-asystent-ai-dla-bloga\/\">Check out the project description<\/a><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:20%\">\n<figure class=\"wp-block-video\"><video height=\"720\" style=\"aspect-ratio: 960 \/ 720;\" width=\"960\" autoplay loop muted src=\"https:\/\/olgamironczuk.pl\/wp-content\/uploads\/2026\/03\/Warkan_no_background.webm\" playsinline><\/video><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:80%\">\n<div id=\"warkan-chat\">\n  <div id=\"warkan-log\"><\/div>\n\n  <div class=\"warkan-input-row\">\n    <input id=\"warkan-input\" placeholder=\"Ask about the posts\u2026\">\n    <button id=\"warkan-send\" type=\"button\">Send<\/button>\n  <\/div>\n<\/div>\n\n<script>\n(function(){\n  const API_URL = \"https:\/\/warkan-backend.onrender.com\";\n\n  const log = document.getElementById(\"warkan-log\");\n  const input = document.getElementById(\"warkan-input\");\n  const btn = document.getElementById(\"warkan-send\");\n\n  function addMsg(role, text){\n\n    const div = document.createElement(\"div\");\n\n    \/\/ klasy do stylowania\n    let msgClass = \"warkan-msg\";\n\n    if(role === \"Ty\"){\n      msgClass += \" warkan-user\";\n    } \n    else if(role === \"Linki\"){\n      msgClass += \" warkan-links\";\n    } \n    else {\n      msgClass += \" warkan-bot\";\n    }\n\n    div.className = msgClass;\n    div.innerHTML = \"<b>\" + role + \":<\/b> \" + text;\n\n    log.appendChild(div);\n    log.scrollTop = log.scrollHeight;\n  }\n\n  async function send(){\n    const q = input.value.trim();\n    if(!q) return;\n\n    input.value = \"\";\n    addMsg(\"Ty\", q);\n    btn.disabled = true;\n\n    try{\n      const res = await fetch(API_URL + \"\/ask\", {\n        method: \"POST\",\n        headers: {\"Content-Type\":\"application\/json\"},\n        body: JSON.stringify({ question: q })\n      });\n\n      const data = await res.json();\n\n      addMsg(\"Warkan\", (data.answer || \"\").replace(\/\\n\/g, \"<br>\"));\n\n      if(Array.isArray(data.results) && data.results.length){\n        const links = data.results.map(r =>\n          `\u2022 <a href=\"${r.url}\" target=\"_blank\" rel=\"noopener\">${r.title}<\/a>`\n        ).join(\"<br>\");\n        addMsg(\"Linki\", links);\n      }\n\n    } catch(e){\n      addMsg(\"Warkan\", \"B\u0142\u0105d po\u0142\u0105czenia z serwerem.\");\n    } finally {\n      btn.disabled = false;\n    }\n  }\n\n  btn.addEventListener(\"click\", send);\n  input.addEventListener(\"keydown\", (e) => {\n    if(e.key === \"Enter\") send();\n  });\n\n  addMsg(\"Warkan\", \"Las pami\u0119tnika skrywa wiele \u015blad\u00f3w. Podaj s\u0142owo klucz, a podejm\u0119 trop. Najpewniej odnajduj\u0119 wpisy po konkretnych has\u0142ach, takich jak: CV, ATS, portfolio, GA4.\");\n})();\n<\/script>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Poznaj wilka Warkana, mojego cyfrowego przyjaciela. Mieszka mi\u0119dzy wierszami \u201eZ pami\u0119tnika analityka\u201d i zna wszystkie jego tajemne \u015bcie\u017cki. Je\u015bli zgubisz si\u0119 w lesie wpis\u00f3w, nie musisz b\u0142\u0105dzi\u0107. Wystarczy, \u017ce wyszeptasz mu, czego szukasz. On podejmie trop i zaprowadzi Ci\u0119 do w\u0142a\u015bciwego miejsca. Zosta\u0142 wyszkolony do jednego zadania: prowadzi\u0107 przez ten cyfrowy las. Jego serce bije&#8230;<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1935","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/olgamironczuk.pl\/en\/wp-json\/wp\/v2\/pages\/1935","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/olgamironczuk.pl\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/olgamironczuk.pl\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/olgamironczuk.pl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/olgamironczuk.pl\/en\/wp-json\/wp\/v2\/comments?post=1935"}],"version-history":[{"count":44,"href":"https:\/\/olgamironczuk.pl\/en\/wp-json\/wp\/v2\/pages\/1935\/revisions"}],"predecessor-version":[{"id":2258,"href":"https:\/\/olgamironczuk.pl\/en\/wp-json\/wp\/v2\/pages\/1935\/revisions\/2258"}],"wp:attachment":[{"href":"https:\/\/olgamironczuk.pl\/en\/wp-json\/wp\/v2\/media?parent=1935"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}