{"id":23043,"date":"2026-04-25T07:25:43","date_gmt":"2026-04-25T07:25:43","guid":{"rendered":"https:\/\/umang.pk\/2026\/04\/25\/%d8%b9%d9%84%d9%85-%da%a9%db%8c-%d8%b9%da%a9%d8%a7%d8%b3%db%8c-%da%a9%db%92-%d8%b0%d8%b1%db%8c%d8%b9%db%92-%d8%ae%d9%88%d8%af-%d8%b3%db%8c%da%a9%da%be%d9%86%db%92-%d9%88%d8%a7%d9%84%d8%a7-rag-%d8%b3\/"},"modified":"2026-04-25T07:25:43","modified_gmt":"2026-04-25T07:25:43","slug":"%d8%b9%d9%84%d9%85-%da%a9%db%8c-%d8%b9%da%a9%d8%a7%d8%b3%db%8c-%da%a9%db%92-%d8%b0%d8%b1%db%8c%d8%b9%db%92-%d8%ae%d9%88%d8%af-%d8%b3%db%8c%da%a9%da%be%d9%86%db%92-%d9%88%d8%a7%d9%84%d8%a7-rag-%d8%b3","status":"publish","type":"post","link":"https:\/\/umang.pk\/en_us\/2026\/04\/25\/%d8%b9%d9%84%d9%85-%da%a9%db%8c-%d8%b9%da%a9%d8%a7%d8%b3%db%8c-%da%a9%db%92-%d8%b0%d8%b1%db%8c%d8%b9%db%92-%d8%ae%d9%88%d8%af-%d8%b3%db%8c%da%a9%da%be%d9%86%db%92-%d9%88%d8%a7%d9%84%d8%a7-rag-%d8%b3\/","title":{"rendered":"\u0639\u0644\u0645 \u06a9\u06cc \u0639\u06a9\u0627\u0633\u06cc \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u062e\u0648\u062f \u0633\u06cc\u06a9\u06be\u0646\u06d2 \u0648\u0627\u0644\u0627 RAG \u0633\u0633\u0679\u0645 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4"},"content":{"rendered":"\n<div id=\"\">\n<p>\u062a\u0645\u0627\u0645 RAG \u0633\u0633\u0679\u0645\u0632 \u062c\u0646 \u06a9\u0648 \u0645\u06cc\u06ba \u0646\u06d2 \u062f\u06cc\u06a9\u06be\u0627 \u06c1\u06d2\u060c \u0628\u0634\u0645\u0648\u0644 \u0627\u0633 \u0633\u0627\u0626\u0679 \u067e\u0631 \u06c1\u06cc\u0646\u0688 \u0628\u06a9 \u06a9\u0631\u062f\u06c1\u060c \u0627\u06cc\u06a9 \u06c1\u06cc \u0628\u0646\u06cc\u0627\u062f\u06cc \u0645\u0633\u0626\u0644\u06c1 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0646\u06c1\u06cc\u06ba \u0633\u06cc\u06a9\u06be\u062a\u0627\u06d4<\/p>\n<p>500 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u062c\u0645\u0639 \u06a9\u0631\u06cc\u06ba\u06d4 \u0622\u067e \u0627\u06cc\u06a9 \u0633\u0648\u0627\u0644 \u067e\u0648\u0686\u06be\u06cc\u06ba\u06d4 \u0633\u0633\u0679\u0645 \u062a\u06cc\u0646 \u0633\u0628 \u0633\u06d2 \u0645\u0644\u062a\u06d2 \u062c\u0644\u062a\u06d2 \u0679\u06a9\u0691\u0648\u06ba \u06a9\u0648 \u062a\u0644\u0627\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0646\u06c1\u06cc\u06ba LLM \u062a\u06a9 \u067e\u06c1\u0646\u0686\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u062f\u0631\u062c \u0630\u06cc\u0644 \u0633\u0648\u0627\u0644\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u06c1\u0631\u0627\u0626\u06cc\u06ba:<\/p>\n<p>\u0633\u0633\u0679\u0645 \u0628\u0627\u0644\u06a9\u0644 \u0627\u062a\u0646\u0627 \u06c1\u06cc \u062c\u0627\u0646\u062a\u0627 \u06c1\u06d2 \u062c\u062a\u0646\u0627 \u0627\u0633 \u0646\u06d2 \u067e\u06c1\u0644\u06d2 \u062f\u0646 \u06a9\u06cc\u0627 \u062a\u06be\u0627\u06d4 \u0627\u06cc\u06a9 \u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc \u062c\u0648 \u06a9\u0627\u0631\u0688 \u06a9\u0627 \u06a9\u06cc\u0679\u0644\u0627\u06af \u0646\u06c1\u06cc\u06ba \u0628\u0646\u0627\u062a\u06cc\u060c \u0627\u067e\u0646\u06d2 \u0634\u06cc\u0644\u0641 \u06a9\u0627 \u062d\u0648\u0627\u0644\u06c1 \u0646\u06c1\u06cc\u06ba \u062f\u06cc\u062a\u06cc\u060c \u0627\u0648\u0631 \u06cc\u06c1 \u0628\u06be\u06cc \u0646\u06c1\u06cc\u06ba \u062f\u06cc\u06a9\u06be\u062a\u06cc \u06a9\u06c1 \u062a\u06cc\u0646 \u06a9\u062a\u0627\u0628\u06cc\u06ba \u0645\u062a\u0636\u0627\u062f \u0628\u0627\u062a\u06cc\u06ba \u06a9\u06c1\u06c1 \u0631\u06c1\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1 \u0648\u06c1\u06cc \u06c1\u06d2 \u062c\u0633\u06d2 \u06c1\u0645 \u0646\u06d2 \u0639\u0644\u0645 \u06a9\u06cc \u0639\u06a9\u0627\u0633\u06cc \u067e\u0631\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062a\u0631\u0645\u06cc\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u06cc\u0627 \u06c1\u06d2\u06d4 \u062a\u0645\u0627\u0645 \u0645\u062c\u0645\u0648\u0639\u0648\u06ba \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0633\u0633\u0679\u0645 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0645\u06cc\u06ba \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06c1\u06cc \u0645\u0639\u0646\u0648\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0645\u062a\u0639\u0644\u0642\u06c1 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u062a\u0644\u0627\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 LLM \u0633\u06d2 \u0646\u0626\u06d2 \u0645\u0648\u0627\u062f \u06a9\u06cc \u062a\u0631\u06a9\u06cc\u0628 \u06a9\u0631\u0646\u06d2\u060c \u0627\u0646 \u06a9\u0648 \u062c\u0648\u0691\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1\u060c \u0627\u0648\u0631 \u06a9\u0648\u0626\u06cc \u0628\u06be\u06cc \u0628\u0627\u0642\u06cc \u0645\u0627\u0646\u062f\u06c1 \u062e\u0644\u0627 \u067e\u06cc\u062f\u0627 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u06c1\u062a\u0627 \u06c1\u06d2\u06d4 \u0648\u06c1 \u0645\u0631\u06a9\u0628\u0627\u062a \u062a\u0644\u0627\u0634 \u06a9\u06d2 \u0646\u062a\u0627\u0626\u062c \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644\u060c \u0630\u062e\u06cc\u0631\u06c1\u060c \u0627\u0648\u0631 \u0628\u06c1\u062a\u0631 \u06a9\u06cc\u06d2 \u06af\u0626\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0622\u067e \u062c\u062a\u0646\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0636\u0627\u0645\u06cc\u0646 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba \u06af\u06d2\u060c \u0622\u067e \u06a9\u06d2 \u0639\u0644\u0645 \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u0627\u062a\u0646\u06cc \u06c1\u06cc \u0628\u06c1\u062a\u0631 \u06c1\u0648\u062a\u06cc \u062c\u0627\u0626\u06d2 \u06af\u06cc\u06d4 \u06cc\u06c1 \u0635\u0631\u0641 \u0633\u0627\u0626\u0632 \u0645\u06cc\u06ba \u0627\u0636\u0627\u0641\u06c1 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627.<\/p>\n<p>\u06cc\u06c1 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u0622\u067e \u06a9\u0648 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0627\u0633\u06d2 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/p>\n<h2 id=\"heading-table-of-contents\">\u0627\u0646\u0688\u06cc\u06a9\u0633<\/h2>\n<ol>\n<li>\n<p>\u06a9\u06cc\u0627 \u062a\u0639\u0645\u06cc\u0631 \u06a9\u0631\u0646\u0627 \u06c1\u06d2<\/p>\n<\/li>\n<li>\n<p>\u0634\u0631\u0637\u06cc\u06ba<\/p>\n<\/li>\n<li>\n<p>\u0628\u0646\u06cc\u0627\u062f\u06cc \u0646\u0638\u0627\u0645 \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0645\u0639\u06cc\u0627\u0631\u06cc RAGs \u0645\u06cc\u06ba \u0645\u06cc\u0645\u0648\u0631\u06cc \u06a9\u06d2 \u0645\u0633\u0627\u0626\u0644 \u06a9\u06cc\u0648\u06ba \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0645\u0631\u062d\u0644\u06c1 1: \u0627\u067e\u0646\u0627 \u0633\u06a9\u06cc\u0645\u0627 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0645\u0631\u062d\u0644\u06c1 2: \u0631\u06cc\u0641\u0644\u06cc\u06a9\u0634\u0646 \u0627\u0646\u062c\u0646<\/p>\n<\/li>\n<li>\n<p>\u0645\u0631\u062d\u0644\u06c1 3: \u0627\u0646\u0636\u0645\u0627\u0645<\/p>\n<\/li>\n<li>\n<p>\u0645\u0631\u062d\u0644\u06c1 4: \u06a9\u0644\u06cc\u06a9\u0634\u0646 \u06c1\u06cc\u0646\u0688\u0644\u0631 \u0633\u06d2 \u062c\u0691\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0645\u0631\u062d\u0644\u06c1 5: \u062a\u0644\u0627\u0634 \u0645\u06cc\u06ba \u0639\u06a9\u0627\u0633\u06cc \u06a9\u0648 \u0628\u06c1\u062a\u0631 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/p>\n<\/li>\n<li>\n<p>\u0645\u0631\u062d\u0644\u06c1 6: doc_type \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u0641\u0644\u0679\u0631 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u0633 \u06a9\u06cc \u062a\u0639\u0645\u06cc\u0631 \u06a9\u06d2 \u0628\u0639\u062f \u06a9\u06cc\u0627 \u062a\u0628\u062f\u06cc\u0644\u06cc\u0627\u06ba \u0622\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u062a\u0639\u06cc\u0646\u0627\u062a\u06cc<\/p>\n<\/li>\n<li>\n<p>\u0622\u06af\u06d2 \u06a9\u06cc\u0627 \u0628\u0646\u0627\u0646\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ol>\n<h2 id=\"heading-what-you-will-build\">\u06a9\u06cc\u0627 \u062a\u0639\u0645\u06cc\u0631 \u06a9\u0631\u0646\u0627 \u06c1\u06d2<\/h2>\n<p>\u0627\u0633 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u0645\u06cc\u06ba\u060c \u0622\u067e \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u0645\u062c\u0645\u0648\u0639\u06c1 \u0627\u0648\u0631 \u0639\u06a9\u0627\u0633\u06cc \u067e\u0627\u0626\u067e \u0644\u0627\u0626\u0646 \u0628\u0646\u0627\u062a\u06d2 \u06c1\u06cc\u06ba:<\/p>\n<ol>\n<li>\n<p>\u062c\u0628 \u0628\u06be\u06cc \u06a9\u0648\u0626\u06cc \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u0627\u06a9\u0679\u06be\u0627 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u062a\u0648 \u06cc\u06c1 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0686\u0644\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0639\u0646\u0648\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0645\u062a\u0639\u0644\u0642\u06c1 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u062a\u0644\u0627\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0645\u06cc\u06ba \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0645\u0648\u062c\u0648\u062f \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>Kimi K2.5 \u0633\u06d2 \u062a\u06cc\u0646 \u062c\u0645\u0644\u0648\u06ba \u06a9\u06cc \u0628\u0635\u06cc\u0631\u062a \u06a9\u06cc \u062a\u0631\u06a9\u06cc\u0628 \u06a9\u0631\u0646\u06d2 \u06a9\u0648 \u06a9\u06c1\u06cc\u06ba \u062c\u0648 \u0627\u06cc\u06a9 \u0646\u0626\u06cc \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0648 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0639\u0644\u0645 \u0633\u06d2 \u062c\u0648\u0691\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0639\u06a9\u0627\u0633\u06cc \u06a9\u06cc \u062f\u06a9\u0627\u0646 <code>doc_type=reflection<\/code> \u0622\u067e \u06a9\u06cc \u062a\u0644\u0627\u0634 \u06a9\u06d2 \u0646\u062a\u0627\u0626\u062c \u06a9\u06cc \u062f\u0631\u062c\u06c1 \u0628\u0646\u062f\u06cc \u0645\u06cc\u06ba 1.5x \u0628\u06c1\u062a\u0631\u06cc \u0622\u0626\u06d2 \u06af\u06cc\u06d4<\/p>\n<\/li>\n<li>\n<p>\u062a\u06cc\u0646\u0648\u06ba \u0645\u062c\u0645\u0648\u0639\u0648\u06ba \u0645\u06cc\u06ba \u0633\u06d2 \u06c1\u0631 \u0627\u06cc\u06a9 \u06a9\u06d2 \u0645\u0638\u0627\u06c1\u0631 \u06a9\u0648 \u0627\u06cc\u06a9 \u062e\u0644\u0627\u0635\u06c1 \u0645\u06cc\u06ba \u06cc\u06a9\u062c\u0627 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ol>\n<p>\u0628\u0627\u0644\u0622\u062e\u0631\u060c \u062c\u0628 \u0622\u067e \u0646\u0627\u0644\u062c \u0628\u06cc\u0633 \u06a9\u0648 \u062a\u0644\u0627\u0634 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0622\u067e \u06a9\u0648 \u062e\u0627\u0645 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u06d2 \u0679\u06a9\u0691\u06d2 \u0627\u0648\u0631 \u0639\u06a9\u0627\u0633\u06cc \u06a9\u06d2 \u0646\u0645\u0648\u0646\u06d2 \u0646\u0638\u0631 \u0622\u0626\u06cc\u06ba \u06af\u06d2 \u062c\u0648 \u0646\u0638\u0627\u0645 \u0646\u06d2 \u0627\u062f\u062e\u0627\u0644 \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646 \u0628\u0646\u0627\u0626\u06d2 \u062a\u06be\u06d2\u06d4<\/p>\n<h2 id=\"heading-prerequisites\">\u0634\u0631\u0637\u06cc\u06ba<\/h2>\n<p>\u0622\u067e \u06a9\u0648 \u0636\u0631\u0648\u0631\u062a \u06c1\u0648 \u06af\u06cc:<\/p>\n<ul>\n<li>\n<p>Cloudflare \u0627\u06a9\u0627\u0624\u0646\u0679 &#8211; \u0645\u0641\u062a \u062f\u0631\u062c\u06d2 \u06a9\u06d2 \u06a9\u0627\u0645<\/p>\n<\/li>\n<li>\n<p>Node.js v18+ \u0627\u0648\u0631 Wrangler CLI \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba (<code>npm install -g wrangler<\/code>)<\/p>\n<\/li>\n<li>\n<p>\u0628\u0646\u06cc\u0627\u062f\u06cc TypeScript \u0648\u0627\u0642\u0641\u06cc\u062a<\/p>\n<\/li>\n<\/ul>\n<p>\u06a9\u0648\u0626\u06cc \u0628\u06cc\u0631\u0648\u0646\u06cc API \u06a9\u0644\u06cc\u062f \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0633\u0628 \u06a9\u0686\u06be Cloudflare \u06a9\u06d2 \u0627\u0646\u0641\u0631\u0627\u0633\u0679\u0631\u06a9\u0686\u0631 \u067e\u0631 \u0686\u0644\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-how-to-set-up-the-base-system\">\u0628\u0646\u06cc\u0627\u062f\u06cc \u0646\u0638\u0627\u0645 \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/h2>\n<p>\u0627\u06af\u0631 \u0622\u067e \u0646\u06d2 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u0645\u06cc\u0631\u06cc \u0641\u0631\u06cc \u06a9\u0648\u0688 \u06a9\u06cc\u0645\u067e \u06c1\u06cc\u0646\u0688 \u0628\u06a9 \u0633\u06d2 \u0622\u0631 \u0627\u06d2 \u062c\u06cc \u0633\u0633\u0679\u0645 \u0628\u0646\u0627\u06cc\u0627 \u06c1\u06d2 \u062a\u0648 \u0627\u0633 \u0633\u06cc\u06a9\u0634\u0646 \u06a9\u0648 \u0686\u06be\u0648\u0691 \u062f\u06cc\u06ba\u06d4 \u0646\u0638\u0627\u0645 \u0639\u06a9\u0627\u0633 \u062a\u06c1\u0648\u06ba \u06a9\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u06cc\u0627\u0631 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0622\u067e \u0646\u0626\u06d2 \u0633\u0631\u06d2 \u0633\u06d2 \u0634\u0631\u0648\u0639\u0627\u062a \u06a9\u0631 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u06cc\u06c1 \u0633\u06cc\u06a9\u0634\u0646 \u0622\u067e \u06a9\u0648 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b 15 \u0645\u0646\u0679 \u0645\u06cc\u06ba \u0622\u067e \u06a9\u06d2 \u0622\u067e\u0631\u06cc\u0634\u0646\u0632 \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u067e\u0631 \u067e\u06c1\u0646\u0686\u0627 \u062f\u06d2 \u06af\u0627\u06d4<\/p>\n<h3 id=\"heading-scaffold-the-project\">\u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0633\u06c1\u0627\u0631\u0648\u06ba<\/h3>\n<pre><code class=\"language-bash\">npm create cloudflare@latest rag-reflection-system\ncd rag-reflection-system\n<\/code><\/pre>\n<p>\u0627\u0646\u062a\u062e\u0627\u0628: Hello World \u0645\u062b\u0627\u0644 \u2192 TypeScript \u2192 \u0627\u0628\u06be\u06cc \u062a\u06a9 \u06a9\u0648\u0626\u06cc \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-create-the-vectorize-index-and-d1-database\">\u0648\u06cc\u06a9\u0679\u0631\u0627\u0626\u0632\u0688 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0627\u0648\u0631 D1 \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h3>\n<pre><code class=\"language-bash\">npx wrangler vectorize create rag-index --dimensions=384 --metric=cosine\nnpx wrangler d1 create rag-db\n<\/code><\/pre>\n<h3 id=\"heading-configure-wranglertoml\">wrangler.toml \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646<\/h3>\n<pre><code class=\"language-toml\">name = \"rag-reflection-system\"\nmain = \"src\/index.ts\"\ncompatibility_date = \"2026-01-01\"\n\n[[vectorize]]\nbinding = \"VECTORIZE\"\nindex_name = \"rag-index\"\n\n[[d1_databases]]\nbinding = \"DB\"\ndatabase_name = \"rag-db\"\ndatabase_id = \"YOUR_DB_ID\"\n\n[ai]\nbinding = \"AI\"\n<\/code><\/pre>\n<h3 id=\"heading-create-the-documents-table\">\u0646\u0633\u0644 <code>documents<\/code> \u0645\u06cc\u0632<\/h3>\n<pre><code class=\"language-sql\">-- migrations\/001_init.sql\nCREATE TABLE IF NOT EXISTS documents (\n  id TEXT PRIMARY KEY,\n  content TEXT NOT NULL,\n  source TEXT,\n  date_created TEXT DEFAULT (datetime('now'))\n);\n<\/code><\/pre>\n<pre><code class=\"language-bash\">npx wrangler d1 execute rag-db --remote --file=.\/migrations\/001_init.sql\n<\/code><\/pre>\n<h3 id=\"heading-add-the-ingest-and-search-endpoints\">\u0627\u0636\u0627\u0641\u06c1 <code>ingest<\/code> \u0627\u0648\u0631 <code>search<\/code> \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0646\u0642\u0637\u06c1<\/h3>\n<p>\u062a\u0628\u062f\u06cc\u0644\u06cc <code>src\/index.ts<\/code> \u0627\u0633 \u06a9\u0645 \u0633\u06d2 \u06a9\u0645 \u06a9\u0627\u0645 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0646\u0638\u0627\u0645 \u06a9\u06d2 \u0633\u0627\u062a\u06be:<\/p>\n<pre><code class=\"language-typescript\">export interface Env {\n  VECTORIZE: VectorizeIndex;\n  DB: D1Database;\n  AI: Ai;\n}\n\nexport default {\n  async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<response> {\n    const url = new URL(request.url);\n\n    if (url.pathname === '\/ingest' && request.method === 'POST') {\n      const { id, content, source } = await request.json() as any;\n\n      const embResult = await env.AI.run('@cf\/baai\/bge-small-en-v1.5', {\n        text: [content.slice(0, 512)],\n      }) as any;\n      const vector = embResult.data[0];\n\n      await env.VECTORIZE.upsert([{\n        id,\n        values: vector,\n        metadata: { content: content.slice(0, 1000), source, doc_type: 'raw' },\n      }]);\n\n      await env.DB.prepare(\n        'INSERT OR REPLACE INTO documents (id, content, source) VALUES (?, ?, ?)'\n      ).bind(id, content, source ?? '').run();\n\n      return Response.json({ success: true, id });\n    }\n\n    if (url.pathname === '\/search' && request.method === 'POST') {\n      const { query } = await request.json() as any;\n\n      const embResult = await env.AI.run('@cf\/baai\/bge-small-en-v1.5', {\n        text: [query],\n      }) as any;\n      const vector = embResult.data[0];\n\n      const results = await env.VECTORIZE.query(vector, {\n        topK: 5,\n        returnMetadata: 'all',\n      });\n\n      const context = results.matches\n        .map(m => m.metadata?.content as string)\n        .filter(Boolean)\n        .join('\\n\\n');\n\n      const answer = await env.AI.run('@cf\/moonshotai\/kimi-k2.5', {\n        messages: [\n          { role: 'system', content: 'Answer using only the context provided.' },\n          { role: 'user', content: `Context:\\n\\({context}\\n\\nQuestion: \\){query}` },\n        ],\n        max_tokens: 256,\n      }) as any;\n\n      return Response.json({ answer: answer.response, sources: results.matches.map(m => m.id) });\n    }\n\n    return new Response('RAG system running', { status: 200 });\n  },\n};\n<\/response><\/code><\/pre>\n<h3 id=\"heading-deploy-and-verify\">\u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u0627\u0648\u0631 \u062a\u0635\u062f\u06cc\u0642<\/h3>\n<pre><code class=\"language-bash\">npx wrangler deploy\n<\/code><\/pre>\n<p>\u0627\u0633\u06d2 \u0622\u0632\u0645\u0627\u0626\u06cc\u06ba:<\/p>\n<pre><code class=\"language-bash\"># Ingest a document\ncurl -X POST https:\/\/your-worker.workers.dev\/ingest \\\n  -H \"Content-Type: application\/json\" \\\n  -d '{\"id\": \"doc-001\", \"content\": \"Cursor pagination beats offset pagination for live-updating datasets because offset becomes unreliable when rows are inserted or deleted during pagination.\"}'\n\n# Search\ncurl -X POST https:\/\/your-worker.workers.dev\/search \\\n  -H \"Content-Type: application\/json\" \\\n  -d '{\"query\": \"what pagination approach should I use?\"}'\n<\/code><\/pre>\n<p>\u0627\u06af\u0631 \u0622\u067e \u06a9\u0648 \u0632\u0645\u06cc\u0646\u06cc \u062c\u0648\u0627\u0628 \u0645\u0644\u062a\u0627 \u06c1\u06d2 \u062a\u0648 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0646\u0638\u0627\u0645 \u06a9\u0627\u0645 \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4 \u0627\u06af\u0644\u06d2 \u062d\u0635\u06d2 \u0645\u06cc\u06ba \u06c1\u0645 \u0627\u0633 \u0641\u0627\u0624\u0646\u0688\u06cc\u0634\u0646 \u06a9\u06d2 \u0627\u0648\u067e\u0631 \u0627\u06cc\u06a9 \u0639\u06a9\u0627\u0633 \u062a\u06c1\u06c1 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba \u06af\u06d2\u06d4<\/p>\n<h2 id=\"heading-why-standard-rag-has-a-memory-problem\">\u0645\u0639\u06cc\u0627\u0631\u06cc RAGs \u0645\u06cc\u06ba \u0645\u06cc\u0645\u0648\u0631\u06cc \u06a9\u06d2 \u0645\u0633\u0627\u0626\u0644 \u06a9\u06cc\u0648\u06ba \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/h2>\n<p>\u0645\u0639\u06cc\u0627\u0631\u06cc RAG \u062a\u0644\u0627\u0634\u06cc\u06ba \u0628\u06d2 \u0648\u0637\u0646 \u06c1\u06cc\u06ba\u06d4 \u062a\u0645\u0627\u0645 \u0633\u0648\u0627\u0644\u0627\u062a \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4 \u0627\u0633 \u0646\u0638\u0627\u0645 \u06a9\u06d2 \u067e\u0627\u0633 \u067e\u0686\u06be\u0644\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a\u0648\u06ba \u06a9\u06cc \u06a9\u0648\u0626\u06cc \u06cc\u0627\u062f \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u0627\u0633 \u06a9\u06cc \u06a9\u0648\u0626\u06cc \u062a\u0631\u06a9\u06cc\u0628 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u06a9\u06c1 \u0627\u0633 \u0646\u06d2 \u062a\u0645\u0627\u0645 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u0645\u06cc\u06ba \u06a9\u06cc\u0627 \u0633\u06cc\u06a9\u06be\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0646\u06c1 \u06c1\u06cc \u0627\u0633 \u0628\u0627\u062a \u06a9\u06cc \u0628\u0691\u06be\u062a\u06cc \u06c1\u0648\u0626\u06cc \u0633\u0645\u062c\u06be \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0646 \u0633\u0648\u0627\u0644\u0627\u062a \u06a9\u0627 \u062c\u0648\u0627\u0628 \u0646\u06c1\u06cc\u06ba \u0645\u0644\u062a\u0627\u06d4<\/p>\n<p>\u0641\u0631\u0636 \u06a9\u0631\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u0646\u06d2 \u0627\u067e\u0646\u06d2 \u067e\u0631\u0648\u0688\u06a9\u0679 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba 200 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u062c\u0645\u0639 \u06a9\u06cc \u06c1\u06cc\u06ba\u06d4 \u0627\u0646 \u0645\u06cc\u06ba \u0633\u06d2 \u0628\u0627\u0631\u06c1 \u067e\u0686\u06be\u0644\u06d2 \u0633\u0627\u0644 \u0645\u06cc\u06ba \u06a9\u06cc\u06d2 \u06af\u0626\u06d2 \u0642\u06cc\u0645\u062a\u0648\u06ba \u06a9\u06d2 \u0641\u06cc\u0635\u0644\u0648\u06ba \u06a9\u0627 \u0627\u062d\u0627\u0637\u06c1 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u067e\u0648\u0631\u06cc \u062a\u0635\u0648\u06cc\u0631 \u06a9\u0633\u06cc \u06a9\u06d2 \u067e\u0627\u0633 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0633\u06c1 \u0645\u0627\u06c1\u06cc \u0631\u067e\u0648\u0631\u0679\u0633\u060c \u0645\u06cc\u0679\u0646\u06af \u0645\u0646\u0679\u0633\u060c \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0633\u0633\u062a \u0628\u0631\u0622\u0645\u062f\u0627\u062a\u060c \u0686\u0646\u062f \u062a\u0635\u0648\u0631\u0627\u062a\u06cc \u0635\u0641\u062d\u0627\u062a \u067e\u0631 \u067e\u06be\u06cc\u0644\u06cc \u06c1\u0648\u0626\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0635\u0627\u0631\u0641\u06cc\u0646 \u067e\u0648\u0686\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u060c &quot;\u0622\u067e \u0646\u06d2 \u0627\u067e\u0646\u06cc \u0642\u06cc\u0645\u062a\u0648\u06ba \u06a9\u0627 \u0688\u06be\u0627\u0646\u0686\u06c1 \u06a9\u06cc\u0648\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u06cc\u0627\u061f&#8221;<\/p>\n<p>\u0645\u0639\u06cc\u0627\u0631\u06cc RAG \u062a\u06cc\u0646 \u0633\u0628 \u0633\u06d2 \u0645\u0644\u062a\u06d2 \u062c\u0644\u062a\u06d2 \u062d\u0635\u0648\u06ba \u06a9\u0648 \u062a\u0644\u0627\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0628\u06c1\u062a \u0627\u0686\u06be\u0627 \u06c1\u0648\u06af\u0627 \u0627\u06af\u0631 \u0627\u0646 \u062a\u06cc\u0646\u0648\u06ba \u062d\u0635\u0648\u06ba \u06a9\u0627 \u0627\u062c\u062a\u0645\u0627\u0639\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0648\u0626\u06cc \u062c\u0648\u0627\u0628 \u06c1\u0648\u06d4 \u0627\u06af\u0631 \u0627\u06cc\u0633\u0627 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 (\u0627\u06af\u0631 \u0622\u067e \u06a9\u0648 \u062d\u0642\u06cc\u0642\u06cc \u062c\u0648\u0627\u0628 \u062d\u0627\u0635\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u0645\u0627\u0645 12 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u06cc \u062a\u0631\u06a9\u06cc\u0628 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2)\u060c \u062a\u0648 \u0633\u0633\u0679\u0645 \u06a9\u06d2 \u067e\u0627\u0633 \u0627\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0648\u0626\u06cc \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u0627\u0631 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u0679\u06a9\u0691\u0627 \u0644\u0648\u0679\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u0644 \u0627\u06cc\u0644 \u0627\u06cc\u0645 \u0627\u067e\u0646\u0627 \u0628\u06c1\u062a\u0631\u06cc\u0646 \u0627\u0646\u062f\u0627\u0632\u06c1 \u0644\u06af\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0639\u06a9\u0627\u0633 \u067e\u0631\u062a\u06cc\u06ba \u0627\u0633 \u0645\u0633\u0626\u0644\u06d2 \u06a9\u0648 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u062d\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 \u0627\u06cc\u06a9 \u0628\u0627\u0631 12\u0648\u06cc\u06ba \u0642\u06cc\u0645\u062a \u06a9\u0627 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u0627\u06a9\u0679\u06be\u0627 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0646\u0638\u0627\u0645 \u06a9\u0648 11 \u0645\u062a\u0639\u0644\u0642\u06c1 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u0645\u0644 \u062c\u0627\u062a\u06cc \u06c1\u06cc\u06ba\u060c \u0627\u0646 \u0627\u0634\u06cc\u0627\u0621 \u06a9\u06cc \u062a\u0631\u06a9\u06cc\u0628 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0627\u0646 \u0633\u06d2 \u0645\u0646\u0633\u0644\u06a9 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0627\u0633 \u062a\u0631\u06a9\u06cc\u0628 \u06a9\u0648 \u062a\u0644\u0627\u0634 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u0646\u0645\u0648\u0646\u06d2 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u0633 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06a9\u06c1 \u06a9\u0648\u0626\u06cc \u067e\u0648\u0686\u06be\u06d2\u060c &quot;\u06c1\u0645 \u0646\u06d2 \u0627\u067e\u0646\u06cc \u0642\u06cc\u0645\u062a\u0648\u06ba \u06a9\u0627 \u0688\u06be\u0627\u0646\u0686\u06c1 \u06a9\u06cc\u0648\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u06cc\u0627&#8221; \u06a9\u0627 \u062c\u0648\u0627\u0628 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0645\u06cc\u06ba \u0645\u0648\u062c\u0648\u062f \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u06c1\u0648\u0634\u06cc\u0627\u0631 \u062a\u0644\u0627\u0634 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u06cc\u06c1 \u06c1\u0648\u0634\u06cc\u0627\u0631 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u0633\u0627\u0632\u06cc \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-step-1-schema-update\">\u0645\u0631\u062d\u0644\u06c1 1: \u0627\u067e\u0646\u0627 \u0633\u06a9\u06cc\u0645\u0627 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0639\u06a9\u0627\u0633\u06cc \u067e\u0631\u062a \u06a9\u0648 D1 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u06cc \u0645\u06cc\u0632 \u0645\u06cc\u06ba \u062f\u0648 \u0646\u0626\u06d2 \u0641\u06cc\u0644\u0688\u0632 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4 \u062f\u0631\u062c \u0630\u06cc\u0644 \u0645\u0646\u062a\u0642\u0644\u06cc \u06a9\u0648 \u0686\u0644\u0627\u0626\u06cc\u06ba:<\/p>\n<pre><code class=\"language-sql\">-- migrations\/003_add_reflection_fields.sql\nALTER TABLE documents ADD COLUMN doc_type TEXT DEFAULT 'raw';\nALTER TABLE documents ADD COLUMN reflection_score REAL DEFAULT 0;\nALTER TABLE documents ADD COLUMN parent_reflection_id TEXT;\n<\/code><\/pre>\n<p>\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062f\u06cc\u06ba:<\/p>\n<pre><code class=\"language-bash\">wrangler d1 execute mcp-knowledge-db --remote --file=.\/migrations\/003_add_reflection_fields.sql\n<\/code><\/pre>\n<p><code>doc_type<\/code>    \u062e\u0627\u0645 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0641\u0631\u0642 \u06a9\u0631\u06cc\u06ba (<code>raw<\/code>)\u060c \u0648\u0627\u062d\u062f \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u06cc \u0639\u06a9\u0627\u0633\u06cc (<code>reflection<\/code>) \u0627\u0648\u0631 \u0645\u0631\u0628\u0648\u0637 \u06a9\u062b\u06cc\u0631 \u0639\u06a9\u0627\u0633\u06cc \u06a9\u0627 \u062e\u0644\u0627\u0635\u06c1 (<code>summary<\/code>)\u06d4 \u0641\u0644\u0679\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633 \u0641\u06cc\u0644\u0688 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u06cc\u0639\u0646\u06cc\u060c \u06cc\u0627 \u062a\u0648 \u0635\u0631\u0641 \u0627\u0646 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0639\u06a9\u0627\u0633\u06cc \u06a9\u0648 \u0638\u0627\u06c1\u0631 \u06a9\u0631\u06cc\u06ba \u062c\u0648 \u0688\u0633\u0679\u0644\u0688 \u0648\u06cc\u0648 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u06cc\u0627 \u0627\u0646 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u06cc \u0639\u06a9\u0627\u0633\u06cc \u06a9\u0648 \u062e\u0627\u0631\u062c \u06a9\u0631\u062f\u06cc\u06ba \u062c\u0648 \u062e\u0627\u0645 \u0645\u0627\u062e\u0630 \u06a9\u0627 \u062d\u0635\u06c1 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-step-2-the-reflection-engine\">\u0645\u0631\u062d\u0644\u06c1 2: \u0631\u06cc\u0641\u0644\u06cc\u06a9\u0634\u0646 \u0627\u0646\u062c\u0646<\/h2>\n<p>\u0628\u0646\u0627\u0646\u0627 <code>src\/engines\/reflection.ts<\/code>. \u06cc\u06c1 \u062a\u06c1\u0648\u06ba \u06a9\u06cc \u06a9\u0644\u06cc\u062f \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-typescript\">import { Env } from '..\/types\/env';\nimport { resolveEmbeddingModel, resolveReflectionModel } from '..\/config\/models';\n\nconst REFLECTION_BOOST = 1.5;\nconst CONSOLIDATION_THRESHOLD = 3; \/\/ consolidate every N new reflections\n\nexport async function reflect(\n  newDocId: string,\n  newDocContent: string,\n  env: Env\n): Promise<void> {\n  \/\/ 1. Find semantically related documents already in the index\n  const embModel = resolveEmbeddingModel(env.EMBEDDING_MODEL);\n  const embResult = await env.AI.run(embModel.id as any, {\n    text: [newDocContent.slice(0, 512)],\n  });\n  const queryVector = (embResult as any).data?.[0];\n  if (!queryVector) return;\n\n  const related = await env.VECTORIZE.query(queryVector, {\n    topK: 5,\n    filter: { doc_type: { $eq: 'raw' } },\n    returnMetadata: 'all',\n  });\n\n  const relatedDocs = (related.matches ?? []).filter(\n    m => m.id !== newDocId && (m.score ?? 0) > 0.65\n  );\n\n  if (relatedDocs.length === 0) return; \/\/ nothing related yet \u2014 skip\n\n  \/\/ 2. Build synthesis prompt\n  const relatedSummaries = relatedDocs\n    .slice(0, 3)\n    .map((m, i) => `Document \\({i + 1}: \\){String(m.metadata?.content ?? '').slice(0, 300)}`)\n    .join('\\n\\n');\n\n  const prompt = `You are synthesising knowledge across documents in a knowledge base.\n\nNew document:\n${newDocContent.slice(0, 600)}\n\nRelated existing documents:\n${relatedSummaries}\n\nWrite exactly three sentences:\n1. What the new document adds that the existing documents don't already cover\n2. How the new document connects to or extends the existing documents\n3. What gap or question remains unanswered across all these documents\n\nBe specific. Reference actual content. Do not summarise \u2014 synthesise.`;\n\n  \/\/ 3. Call the reflection model\n  const reflModel = resolveReflectionModel(env.REFLECTION_MODEL);\n  const llmResp = await env.AI.run(reflModel.id as any, {\n    messages: [{ role: 'user', content: prompt }],\n    max_tokens: 180,\n  });\n\n  const reflectionText = (llmResp as any)?.response?.trim();\n  if (!reflectionText || reflectionText.length < 40) return;\n\n  \/\/ 4. Embed and store the reflection\n  const reflEmbResult = await env.AI.run(embModel.id as any, {\n    text: [reflectionText],\n  });\n  const reflVector = (reflEmbResult as any).data?.[0];\n  if (!reflVector) return;\n\n  const reflectionId = `refl_\\({newDocId}_\\){Date.now()}`;\n\n  await env.VECTORIZE.upsert([\n    {\n      id: reflectionId,\n      values: reflVector,\n      metadata: {\n        content: reflectionText,\n        doc_type: 'reflection',\n        parent_id: newDocId,\n        reflection_score: REFLECTION_BOOST,\n        source_doc_ids: relatedDocs.map(m => m.id).join(','),\n        date_created: new Date().toISOString(),\n      },\n    },\n  ]);\n\n  await env.DB.prepare(\n    `INSERT INTO documents\n     (id, content, doc_type, reflection_score, parent_id, date_created)\n     VALUES (?, ?, 'reflection', ?, ?, ?)`\n  )\n    .bind(reflectionId, reflectionText, REFLECTION_BOOST, newDocId, new Date().toISOString())\n    .run();\n\n  \/\/ 5. Check if consolidation is due\n  const recentCount = await env.DB\n    .prepare(`SELECT COUNT(*) as cnt FROM documents WHERE doc_type=\"reflection\" AND date_created > datetime('now', '-1 hour')`)\n    .first<{ cnt: number }>();\n\n  if ((recentCount?.cnt ?? 0) >= CONSOLIDATION_THRESHOLD) {\n    await consolidate(env);\n  }\n}\n<\/void><\/code><\/pre>\n<p>\u06cc\u06c1\u0627\u06ba \u062f\u0648 \u0628\u0627\u062a\u06cc\u06ba \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u06c1 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0633\u06cc\u0645\u0646\u0679\u06a9 \u062d\u062f (<code>score > 0.65<\/code>) \u0627\u06c1\u0645 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u06cc\u06c1 \u0628\u06c1\u062a \u06a9\u0645 \u06c1\u06d2 \u062a\u0648 \u0622\u067e \u063a\u06cc\u0631 \u0645\u062a\u0639\u0644\u0642\u06c1 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u0648 \u06a9\u0645\u067e\u0648\u0632 \u06a9\u0631 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u06cc\u06c1 \u0628\u06c1\u062a \u0632\u06cc\u0627\u062f\u06c1 \u06c1\u06d2\u060c \u062a\u0648 \u0622\u067e \u0628\u0645\u0634\u06a9\u0644 \u06a9\u0646\u06a9\u0634\u0646 \u062a\u0644\u0627\u0634 \u06a9\u0631 \u067e\u0627\u0626\u06cc\u06ba \u06af\u06d2\u06d4 0.65 \u0627\u0633 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u0686\u06be\u06cc \u0637\u0631\u062d \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>bge-small<\/code>. \u0622\u067e \u0627\u0633\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 0.72 \u062a\u06a9 \u0628\u0691\u06be\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba: <code>qwen3-0.6b<\/code> (1024d) \u0648\u06c1 \u062c\u06af\u06c1 \u06c1\u06d2 \u062c\u06c1\u0627\u06ba \u0627\u0633\u06a9\u0648\u0631 \u06a9\u0644\u0633\u0679\u0631 \u0632\u06cc\u0627\u062f\u06c1 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0641\u0648\u0631\u06cc \u0688\u06be\u0627\u0646\u0686\u06c1 \u062c\u0627\u0646 \u0628\u0648\u062c\u06be \u06a9\u0631 \u06c1\u06d2\u06d4 \u062a\u06cc\u0646\u0648\u06ba \u062c\u0645\u0644\u0648\u06ba \u0645\u06cc\u06ba \u0633\u06d2 \u06c1\u0631 \u0627\u06cc\u06a9 \u0645\u062e\u0635\u0648\u0635 \u06a9\u0627\u0645 \u0627\u0646\u062c\u0627\u0645 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u0646\u06cc\u0627 \u06a9\u06cc\u0627 \u06c1\u06d2\u060c \u06a9\u06cc\u0633\u06d2 \u062c\u0691\u0646\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u06a9\u06cc\u0627 \u0628\u0686\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0639\u06a9\u0627\u0633\u06cc \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0648 \u062a\u0644\u0627\u0634 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0641\u06cc\u062f \u06c1\u06d2\u06d4 \u0622\u0632\u0627\u062f \u0634\u06a9\u0644 \u06a9\u06cc \u062a\u0631\u06a9\u06cc\u0628 \u0633\u06d2 \u062e\u0648\u0628\u0635\u0648\u0631\u062a \u0646\u062b\u0631 \u067e\u06cc\u062f\u0627 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0627\u0686\u06be\u06cc \u0637\u0631\u062d \u0633\u06d2 \u062a\u0644\u0627\u0634 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0688\u06be\u0627\u0646\u0686\u06c1 \u062a\u0644\u0627\u0634 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u0646\u0645\u0648\u0646\u06d2 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-step-3-consolidation\">\u0645\u0631\u062d\u0644\u06c1 3: \u0627\u0646\u0636\u0645\u0627\u0645<\/h2>\n<p>\u062c\u06cc\u0633\u06d2 \u062c\u06cc\u0633\u06d2 \u0645\u0638\u0627\u06c1\u0631 \u062c\u0645\u0639 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0646\u06c1\u06cc\u06ba \u0627\u067e\u0646\u06cc \u06a9\u0645\u067e\u0648\u0632\u0679\u0646\u06af \u067e\u0631\u062a \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u0628\u0635\u0648\u0631\u062a \u062f\u06cc\u06af\u0631\u060c \u0622\u067e \u062a\u062c\u0631\u06cc\u062f \u06a9\u06cc \u0627\u0639\u0644\u06cc \u0633\u0637\u062d \u067e\u0631 \u0634\u0648\u0631 \u0688\u0627\u0644 \u0631\u06c1\u06d2 \u06c1\u0648\u06ba \u06af\u06d2\u06d4<\/p>\n<p>\u0627\u0633 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba <code>src\/engines\/reflection.ts<\/code>:<\/p>\n<pre><code class=\"language-typescript\">export async function consolidate(env: Env): Promise<void> {\n  \/\/ Fetch recent reflections not yet consolidated\n  const recent = await env.DB\n    .prepare(\n      `SELECT id, content FROM documents\n       WHERE doc_type=\"reflection\"\n       AND id NOT IN (\n         SELECT DISTINCT parent_id FROM documents\n         WHERE doc_type=\"summary\" AND parent_id IS NOT NULL\n       )\n       ORDER BY date_created DESC\n       LIMIT 6`\n    )\n    .all<{ id: string; content: string }>();\n\n  if (!recent.results || recent.results.length < CONSOLIDATION_THRESHOLD) return;\n\n  const reflectionTexts = recent.results.map((r, i) => `Reflection \\({i + 1}: \\){r.content}`).join('\\n\\n');\n\n  const prompt = `You are consolidating multiple knowledge reflections into a single compressed insight.\n\n${reflectionTexts}\n\nWrite two to three sentences that capture the most important cross-cutting pattern or tension across these reflections. What does the knowledge base now understand that it didn't before these documents were added? What's the most important open question?\n\nBe precise. No preamble.`;\n\n  const reflModel = resolveReflectionModel(env.REFLECTION_MODEL);\n  const llmResp = await env.AI.run(reflModel.id as any, {\n    messages: [{ role: 'user', content: prompt }],\n    max_tokens: 320,\n  });\n\n  const summaryText = (llmResp as any)?.response?.trim();\n  if (!summaryText || summaryText.length < 40) return;\n\n  const embModel = resolveEmbeddingModel(env.EMBEDDING_MODEL);\n  const embResult = await env.AI.run(embModel.id as any, { text: [summaryText] });\n  const summaryVector = (embResult as any).data?.[0];\n  if (!summaryVector) return;\n\n  const summaryId = `summary_${Date.now()}`;\n\n  await env.VECTORIZE.upsert([\n    {\n      id: summaryId,\n      values: summaryVector,\n      metadata: {\n        content: summaryText,\n        doc_type: 'summary',\n        reflection_score: REFLECTION_BOOST * 1.2,\n        source_reflection_ids: recent.results.map(r => r.id).join(','),\n        date_created: new Date().toISOString(),\n      },\n    },\n  ]);\n\n  await env.DB.prepare(\n    `INSERT INTO documents (id, content, doc_type, reflection_score, date_created)\n     VALUES (?, ?, 'summary', ?, ?)`\n  )\n    .bind(summaryId, summaryText, REFLECTION_BOOST * 1.2, new Date().toISOString())\n    .run();\n}\n<\/void><\/code><\/pre>\n<p>\u062e\u0644\u0627\u0635\u06c1 \u0628\u06cc\u0633 \u0631\u06cc\u0641\u0644\u06cc\u06a9\u0633 \u0628\u0648\u0633\u0679 \u06a9\u06d2 \u0627\u0648\u067e\u0631 1.2x \u0636\u0631\u0628 \u062d\u0627\u0635\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u062a\u0644\u0627\u0634 \u06a9\u06d2 \u0646\u062a\u0627\u0626\u062c \u0645\u06cc\u06ba\u060c 12 \u0645\u062a\u0639\u0644\u0642\u06c1 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u0627 \u062e\u0644\u0627\u0635\u06c1 \u0648\u0633\u06cc\u0639 \u062a\u0635\u0648\u0631 \u06a9\u06d2 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u0645\u06cc\u06ba \u06a9\u0633\u06cc \u0627\u06cc\u06a9 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u06d2 \u062d\u0635\u06d2 \u0633\u06d2 \u0628\u06c1\u062a\u0631 \u062f\u0631\u062c\u06c1 \u0628\u0646\u062f\u06cc \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 \u06a9\u0686\u06be \u062d\u0642\u0627\u0626\u0642 \u06a9\u06d2 \u0633\u0648\u0627\u0644\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u062e\u0627\u0645 \u062d\u0635\u06c1 \u0632\u06cc\u0627\u062f\u06c1 \u0627\u0633\u06a9\u0648\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u062f\u0631\u062c\u06c1 \u0628\u0646\u062f\u06cc \u062e\u0648\u062f \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u06ba \u06af\u06d2\u06d4<\/p>\n<h2 id=\"heading-step-4-wire-it-into-your-ingest-handler\">\u0645\u0631\u062d\u0644\u06c1 4: \u06a9\u0644\u06cc\u06a9\u0634\u0646 \u06c1\u06cc\u0646\u0688\u0644\u0631 \u0633\u06d2 \u062c\u0691\u06cc\u06ba\u06d4<\/h2>\n<p>\u0639\u06a9\u0627\u0633\u06cc \u0627\u06cc\u06a9 \u067e\u0633 \u0645\u0646\u0638\u0631 \u06a9\u06d2 \u06a9\u0627\u0645 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0686\u0644\u062a\u0627 \u06c1\u06d2\u06d4 \u062c\u0645\u0639 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u062c\u0648\u0627\u0628\u0627\u062a \u06a9\u0648 \u0645\u0633\u062f\u0648\u062f \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u06c1\u0631 \u06a9\u0644\u06cc\u06a9\u0634\u0646 \u06a9\u0627\u0644 \u0645\u06cc\u06ba 2 \u0633\u06d2 3 \u0633\u06cc\u06a9\u0646\u0688 \u06a9\u0627 \u0627\u0636\u0627\u0641\u06c1 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0622\u067e \u06a9\u0627 <code>src\/handlers\/ingest.ts<\/code>\u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f:<\/p>\n<pre><code class=\"language-typescript\">import { reflect } from '..\/engines\/reflection';\n\n\/\/ ... existing ingest logic ...\n\n\/\/ After VECTORIZE.upsert() and DB insert succeed:\nctx.waitUntil(\n  reflect(documentId, content, env).catch(err => {\n    console.warn('[reflection] failed for', documentId, err.message);\n  })\n);\n\nreturn new Response(JSON.stringify({\n  success: true,\n  documentId,\n  chunks: chunkCount,\n  \/\/ ... rest of response\n}), { headers: { 'Content-Type': 'application\/json' } });\n<\/code><\/pre>\n<p><code>ctx.waitUntil()<\/code>    \u067e\u0633 \u0645\u0646\u0638\u0631 \u06a9\u06d2 \u06a9\u0627\u0645\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0644\u0627\u0624\u0688 \u0641\u0644\u06cc\u0626\u0631 \u0648\u0631\u06a9\u0631\u0632 \u067e\u0631\u0627\u0626\u0645\u06cc\u0679\u0648\u0632\u06d4 \u0627\u06cc\u06a9 \u062c\u0648\u0627\u0628 \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0648\u0627\u067e\u0633 \u0622 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0639\u06a9\u0627\u0633\u06cc \u0633\u0646\u0628\u06be\u0627\u0644 \u0644\u06cc\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u062f\u062e\u0627\u0644 API \u062a\u06cc\u0632 \u0631\u06c1\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06a9\u06c1 <code>.catch()<\/code> \u06cc\u06c1 \u0636\u0631\u0648\u0631\u06cc \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u0646\u0627\u06a9\u0627\u0645 \u0639\u06a9\u0627\u0633\u06cc \u062c\u0645\u0639 \u06a9\u0631\u0646\u06d2 \u0645\u06cc\u06ba \u0646\u0627\u06a9\u0627\u0645 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2\u06d4 \u062e\u0627\u0645 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u0633\u0686\u0627\u0626\u06cc \u06a9\u0627 \u0630\u0631\u06cc\u0639\u06c1 \u06c1\u06cc\u06ba\u06d4 \u0639\u06a9\u0627\u0633\u06cc \u0627\u062e\u0630 \u06a9\u0631\u062f\u06c1 \u0627\u0642\u062f\u0627\u0631 \u06c1\u06cc\u06ba\u06d4 \u0645\u0641\u06cc\u062f\u060c \u0644\u06cc\u06a9\u0646 \u0627\u06cc\u06a9 \u0627\u06c1\u0645 \u0631\u0627\u0633\u062a\u06c1 \u0646\u06c1\u06cc\u06ba.<\/p>\n<h2 id=\"heading-step-5-boost-reflections-in-search\">\u0645\u0631\u062d\u0644\u06c1 5: \u062a\u0644\u0627\u0634 \u0645\u06cc\u06ba \u0639\u06a9\u0627\u0633\u06cc \u06a9\u0648 \u0628\u06c1\u062a\u0631 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h2>\n<p>\u0627\u067e\u0646\u06cc \u062f\u0631\u062c\u06c1 \u0628\u0646\u062f\u06cc \u06a9\u06cc \u0645\u0646\u0637\u0642 \u0645\u06cc\u06ba \u0639\u06a9\u0627\u0633\u06cc \u0645\u06cc\u06ba \u0627\u0636\u0627\u0641\u06c1 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>src\/engines\/hybrid.ts<\/code>. RRF \u0641\u06cc\u0648\u0698\u0646 \u06a9\u06d2 \u0628\u0639\u062f \u0627\u0648\u0631 \u0646\u062a\u0627\u0626\u062c \u0648\u0627\u067e\u0633 \u0622\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2:<\/p>\n<pre><code class=\"language-typescript\">\/\/ Apply reflection boost\nconst boosted = results.map(r => ({\n  ...r,\n  score: r.doc_type === 'reflection' || r.doc_type === 'summary'\n    ? r.score * (r.reflection_score ?? 1.5)\n    : r.score,\n}));\n\nreturn boosted.sort((a, b) => b.score - a.score);\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u067e\u0648\u0633\u0679 \u0641\u06cc\u0648\u0698\u0646 \u0628\u0648\u0633\u0679 \u06c1\u06d2\u060c \u067e\u0631\u06cc \u0641\u06cc\u0648\u0698\u0646 \u0631\u06cc\u0646\u06a9 \u0646\u06c1\u06cc\u06ba\u06d4 \u0627\u0646\u0641\u0631\u0646\u0633: \u06c1\u0645 \u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 RRF \u06a9\u0648 \u062a\u0645\u0627\u0645 \u0646\u062a\u0627\u0626\u062c \u067e\u0631 \u0644\u0627\u06af\u0648 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0627\u06a9\u06c1 \u0639\u06a9\u0627\u0633\u06cc \u06a9\u0648 \u0628\u06c1\u062a\u0631 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u0627\u0633 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06a9\u06c1 \u062e\u0627\u0645 \u0645\u0637\u0627\u0628\u0642\u062a \u067e\u0631 \u067e\u0648\u0632\u06cc\u0634\u0646 \u062d\u0627\u0635\u0644 \u06a9\u06cc \u062c\u0627\u0626\u06d2\u06d4 \u0645\u0638\u0627\u06c1\u0631 \u062c\u0648 \u062e\u0627\u0645 \u0645\u0645\u0627\u062b\u0644\u062a \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u0679\u0627\u067e 20 \u0645\u06cc\u06ba \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba \u0635\u0631\u0641 \u0627\u0633 \u0648\u062c\u06c1 \u0633\u06d2 \u0638\u0627\u06c1\u0631 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u0646\u06d2 \u0686\u0627\u06c1\u0626\u06cc\u06ba \u06a9\u06c1 \u0627\u0646 \u0645\u06cc\u06ba \u0628\u0648\u0633\u0679 \u0636\u0631\u0628 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-step-6-filtering-by-doctype\">\u0645\u0631\u062d\u0644\u06c1 6: \u0641\u0644\u0679\u0631\u0646\u06af \u06a9\u0627 \u0645\u0639\u06cc\u0627\u0631 <code>doc_type<\/code><\/h2>\n<p>\u062a\u0644\u0627\u0634 \u06a9\u06d2 \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0646\u0642\u0637\u06c1 \u06a9\u0648 \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u0646\u06cc \u0686\u0627\u06c1\u06cc\u06d2: <code>doc_type<\/code> \u0641\u0644\u0679\u0631 \u06a9\u0631\u06cc\u06ba \u062a\u0627\u06a9\u06c1 \u06a9\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u0631 \u0633\u06a9\u06cc\u06ba \u06a9\u06c1 \u0648\u06c1 \u06a9\u06cc\u0627 \u062f\u06cc\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-typescript\">\/\/ In your search request handler:\nconst docTypeFilter = body.filters?.doc_type;\n\n\/\/ Pass to Vectorize query:\nconst vectorFilter: Record<string unknown=\"\"> = {};\nif (docTypeFilter) {\n  vectorFilter.doc_type = docTypeFilter;\n}\n<\/string><\/code><\/pre>\n<p>\u06cc\u06c1 \u0628\u06be\u06cc\u062c\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06a9\u0648 \u062a\u06cc\u0646 \u0637\u0631\u06cc\u0642\u0648\u06ba \u06a9\u06cc \u067e\u06cc\u0634\u06a9\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-bash\"># Only reflections and summaries\nPOST \/search\n{ \"query\": \"pricing decisions\", \"filters\": { \"doc_type\": { \"$in\": [\"reflection\", \"summary\"] } } }\n\n# Only source documents\nPOST \/search\n{ \"query\": \"pricing decisions\", \"filters\": { \"doc_type\": { \"$eq\": \"raw\" } } }\n\n# Default: all types, reflections boosted\nPOST \/search\n{ \"query\": \"pricing decisions\" }\n<\/code><\/pre>\n<p>\u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 (\u06a9\u0648\u0626\u06cc \u0641\u0644\u0679\u0631 \u0646\u06c1\u06cc\u06ba) \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0641\u06cc\u062f \u06c1\u06d2\u06d4 \u0641\u0631\u0648\u063a \u06a9\u0648 \u0627\u067e\u0646\u0627 \u06a9\u0627\u0645 \u06a9\u0631\u0646\u06d2 \u062f\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u0627\u0642\u062a\u0628\u0627\u0633\u0627\u062a \u0636\u0631\u0648\u0631\u06cc \u06c1\u0648\u06ba \u062a\u0648 \u0628\u0631\u0627\u06c1 \u06a9\u0631\u0645 \u0627\u0646\u06c1\u06cc\u06ba \u0627\u0635\u0644 \u062a\u06a9 \u0645\u062d\u062f\u0648\u062f \u0631\u06a9\u06be\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u0622\u067e \u0627\u06cc\u06a9 \u062c\u0627\u0645\u0639 \u0645\u0646\u0638\u0631 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0627\u0633\u06d2 \u0645\u0638\u0627\u06c1\u0631 \u062a\u06a9 \u0645\u062d\u062f\u0648\u062f \u0631\u06a9\u06be\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-what-changes-after-you-build-this\">\u0627\u0633 \u06a9\u06cc \u062a\u0639\u0645\u06cc\u0631 \u06a9\u06d2 \u0628\u0639\u062f \u06a9\u06cc\u0627 \u062a\u0628\u062f\u06cc\u0644\u06cc\u0627\u06ba \u0622\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/h2>\n<p>200 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be\u060c \u0641\u0631\u0642 \u0646\u0645\u0627\u06cc\u0627\u06ba \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u062c\u0633 \u0646\u06d2 \u067e\u06c1\u0644\u06d2 \u067e\u0627\u0646\u0686 \u0628\u06a9\u06be\u0631\u06d2 \u06c1\u0648\u0626\u06d2 \u0679\u06a9\u0691\u0648\u06ba \u06a9\u0648 \u0648\u0627\u067e\u0633 \u06a9\u06cc\u0627 \u062a\u06be\u0627 \u0627\u0628 \u0627\u06cc\u06a9 \u0639\u06a9\u0627\u0633\u06cc \u0638\u0627\u06c1\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0633 \u0646\u06d2 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u0627\u0646 \u0679\u06a9\u0691\u0648\u06ba \u06a9\u0648 \u0645\u0631\u06a9\u0628 \u06a9\u06cc\u0627 \u06c1\u06d2\u06d4 \u0648\u0633\u06cc\u0639 \u062a\u0635\u0648\u0631\u0627\u062a\u06cc \u0633\u0648\u0627\u0644 &#8211; &quot;\u06c1\u0645 X \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u06a9\u06cc\u0627 \u062c\u0627\u0646\u062a\u06d2 \u06c1\u06cc\u06ba\u061f&#8221; &#8211; \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0644\u062a\u06d2 \u062c\u0644\u062a\u06d2 \u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u067e\u06cc\u0631\u0627\u06af\u0631\u0627\u0641 \u06a9\u06cc \u0628\u062c\u0627\u0626\u06d2 \u0648\u0627\u0642\u0639\u06cc \u0645\u0641\u06cc\u062f \u062e\u0644\u0627\u0635\u06d2 \u0648\u0627\u067e\u0633 \u06a9\u0631\u0646\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>2,000 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be\u060c \u0639\u06a9\u0627\u0633\u06cc \u067e\u0631\u062a \u0646\u0638\u0627\u0645 \u06a9\u0627 \u0633\u0628 \u0633\u06d2 \u0627\u06c1\u0645 \u062d\u0635\u06c1 \u06c1\u06d2\u06d4 \u062e\u0627\u0645 \u0679\u06a9\u0691\u06d2 \u0645\u062e\u0635\u0648\u0635 \u062d\u0642\u0627\u0626\u0642 \u067e\u0631 \u0645\u0628\u0646\u06cc \u0633\u0648\u0627\u0644\u0627\u062a \u06a9\u06d2 \u062c\u0648\u0627\u0628\u0627\u062a \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0639\u06a9\u0627\u0633\u06cc \u0627\u0648\u0631 \u062e\u0644\u0627\u0635\u06d2 \u062a\u0635\u0648\u0631\u0627\u062a\u06cc \u0633\u0648\u0627\u0644\u0627\u062a \u06a9\u06d2 \u062c\u0648\u0627\u0628\u0627\u062a \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0646 \u06a9\u0627 \u062c\u0648\u0627\u0628 \u06a9\u0633\u06cc \u0627\u06cc\u06a9 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u0645\u06cc\u06ba \u0646\u06c1\u06cc\u06ba \u062f\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627\u06d4 \u0633\u0633\u0679\u0645 \u0646\u06d2 \u0627\u06cc\u0633\u0627 \u0645\u0648\u0627\u062f \u0633\u06cc\u06a9\u06be\u0627 \u062c\u0648 \u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u0645\u06cc\u06ba \u0645\u0648\u062c\u0648\u062f \u0646\u06c1\u06cc\u06ba \u062a\u06be\u0627\u06d4<\/p>\n<p>\u0627\u06cc\u06a9 \u0646\u0627\u06a9\u0627\u0645\u06cc \u0645\u0648\u0688 \u062c\u0633 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0622\u067e \u06a9\u0648 \u0622\u06af\u0627\u06c1 \u06c1\u0648\u0646\u0627 \u0636\u0631\u0648\u0631\u06cc \u06c1\u06d2: \u062c\u0628 \u0622\u067e \u06a9\u06d2 \u0627\u06cc\u0645\u0628\u06cc\u0688\u0646\u06af \u0645\u0627\u0688\u0644 \u0645\u06cc\u06ba \u06a9\u0644\u0633\u0679\u0631\u0646\u06af \u06a9\u06d2 \u062e\u0631\u0627\u0628 \u0645\u0636\u0645\u0631\u0627\u062a \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba &#8211; \u067e\u0631\u0627\u0646\u0627 <code>bge-small<\/code> \u0645\u062e\u0644\u0648\u0637 \u0688\u0648\u0645\u06cc\u0646 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u06d2 384d \u0645\u06cc\u06ba \u0645\u062a\u0639\u0644\u0642\u06c1 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u06cc \u0628\u0627\u0632\u06cc\u0627\u0641\u062a \u06a9\u0627 \u0645\u0631\u062d\u0644\u06c1 \u06a9\u0645\u0632\u0648\u0631 \u0631\u0627\u0628\u0637\u0648\u06ba \u06a9\u0648 \u0638\u0627\u06c1\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u06a9\u0645 \u0639\u06a9\u0627\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 0.65 \u06a9\u06cc \u062d\u062f \u0627\u0633 \u0645\u06cc\u06ba \u0633\u06d2 \u0628\u06cc\u0634\u062a\u0631 \u06a9\u0648 \u0641\u0644\u0679\u0631 \u06a9\u0631 \u062f\u06d2 \u06af\u06cc\u060c \u0644\u06cc\u06a9\u0646 \u0627\u06af\u0631 \u0622\u067e \u0645\u0648\u0636\u0648\u0639 \u0633\u06d2 \u06c1\u0679 \u06a9\u0631 \u0639\u06a9\u0627\u0633\u06cc \u062f\u06cc\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0627\u06cc\u0645\u0628\u06cc\u0688\u0646\u06af \u067e\u06c1\u0644\u06cc \u0686\u06cc\u0632 \u06c1\u0648\u0646\u06cc \u0686\u0627\u06c1\u06cc\u06d2 \u062c\u0633\u06d2 \u0622\u067e \u0686\u06cc\u06a9 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-deploying\">\u062a\u0639\u06cc\u0646\u0627\u062a\u06cc<\/h2>\n<pre><code class=\"language-bash\">wrangler d1 execute mcp-knowledge-db --remote --file=.\/migrations\/003_add_reflection_fields.sql\nwrangler deploy\n<\/code><\/pre>\n<p>\u067e\u06be\u0631 \u06a9\u0686\u06be \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u062c\u0645\u0639 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u062f\u06cc\u06a9\u06be\u06cc\u06ba \u06a9\u06c1 \u06a9\u06cc\u0627 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-bash\"># Ingest document 1\ncurl -X POST https:\/\/your-worker.workers.dev\/ingest \\\n  -H \"Authorization: Bearer YOUR_KEY\" \\\n  -H \"Content-Type: application\/json\" \\\n  -d '{\"id\": \"doc-001\", \"content\": \"Your document text here...\"}'\n\n# After a few seconds, check if a reflection was created\ncurl \"https:\/\/your-worker.workers.dev\/search\" \\\n  -H \"Authorization: Bearer YOUR_KEY\" \\\n  -H \"Content-Type: application\/json\" \\\n  -d '{\"query\": \"your topic\", \"filters\": {\"doc_type\": {\"$eq\": \"reflection\"}}}'\n<\/code><\/pre>\n<p>\u0639\u06a9\u0627\u0633\u06cc \u0627\u0633 \u0648\u0642\u062a \u062a\u06a9 \u0638\u0627\u06c1\u0631 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u06cc \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u062c\u0627\u0645\u0639 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0648\u0626\u06cc \u0645\u062a\u0639\u0644\u0642\u06c1 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u0646\u06c1 \u06c1\u0648\u06d4 \u0627\u06cc\u06a9 \u062c\u06cc\u0633\u06d2 \u0645\u0648\u0636\u0648\u0639\u0627\u062a \u067e\u0631 \u0645\u0636\u0627\u0645\u06cc\u0646 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06a9\u0645 \u0627\u0632 \u06a9\u0645 \u062a\u06cc\u0646 \u0645\u0636\u0627\u0645\u06cc\u0646 \u062c\u0645\u0639 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u06a9\u0648\u0634\u0634 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-what-to-build-next\">\u0622\u06af\u06d2 \u06a9\u06cc\u0627 \u0628\u0646\u0627\u0646\u0627 \u06c1\u06d2\u06d4<\/h2>\n<p>\u06cc\u06c1\u0627\u06ba \u0628\u06cc\u0627\u0646 \u06a9\u0631\u062f\u06c1 \u0639\u06a9\u0627\u0633\u06cc \u067e\u0631\u062a \u06c1\u0631 \u062d\u0635\u0648\u0644 \u06a9\u06d2 \u0628\u0639\u062f \u0686\u0644\u062a\u06cc \u06c1\u06d2\u06d4 \u0628\u0691\u06d2 \u0645\u062c\u0645\u0648\u0639\u06d2 \u0645\u06c1\u0646\u06af\u06d2 \u06c1\u0648 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u0645\u06cc\u06ba \u0628\u06cc\u0686\u0648\u06ba \u0645\u06cc\u06ba 10,000 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u0644\u0627 \u0631\u06c1\u0627 \u06c1\u0648\u06ba\u060c \u062a\u0648 \u0645\u06cc\u06ba 10,000 \u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u0639\u06a9\u0627\u0633\u06cc \u06a9\u0627\u0644\u0632 \u0646\u06c1\u06cc\u06ba \u0686\u0627\u06c1\u062a\u0627 \u06c1\u0648\u06ba\u06d4<\/p>\n<p>\u0628\u0644\u06a9 \u062c\u0645\u0639 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u06af\u06cc\u0679 \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af: \u06a9\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>reflect()<\/code> \u06cc\u06c1 \u0635\u0631\u0641 \u0627\u0633 \u0635\u0648\u0631\u062a \u0645\u06cc\u06ba \u0644\u0627\u06af\u0648 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u06cc \u0645\u0645\u0627\u062b\u0644\u062a \u062a\u0644\u0627\u0634 \u06a9\u06cc \u0648\u0627\u067e\u0633\u06cc 0.8 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u06cc\u0627 \u0627\u0633 \u06a9\u06d2 \u0628\u0631\u0627\u0628\u0631 \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u060c \u06cc\u0627 \u0627\u06af\u0631 \u0628\u0644\u06a9 \u0627\u0645\u067e\u0648\u0631\u0679 \u0645\u06a9\u0645\u0644 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f \u0628\u06cc\u0686 \u06a9\u06d2 \u0639\u0645\u0644 \u06a9\u06cc \u0639\u06a9\u0627\u0633\u06cc \u0648\u0627\u067e\u0633 \u0622\u062a\u06cc \u06c1\u06d2\u06d4 \u06a9\u06c1 <code>POST \/ingest\/batch<\/code> \u067e\u0648\u0631\u06d2 \u0630\u062e\u06cc\u0631\u06d2 \u06a9\u0627 \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0646\u0642\u0637\u06c1 \u06cc\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u062a\u0639\u0645\u06cc\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u062f\u0648\u0633\u0631\u06cc \u0686\u06cc\u0632 \u0628\u0635\u0631\u06cc \u0627\u0645\u062a\u06cc\u0627\u0632 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06c1 UI \u0645\u06cc\u06ba \u0639\u06a9\u0627\u0633\u06cc \u06a9\u0648 \u0628\u06cc\u0631\u0648\u0646\u06cc \u0628\u0646\u0627\u0646\u0627 \u06c1\u06d2\u06d4 \u0639\u06a9\u0627\u0633\u06cc \u0634\u062f\u06c1 \u062a\u0644\u0627\u0634 \u06a9\u06d2 \u0646\u062a\u0627\u0626\u062c \u062e\u0627\u0645 \u062d\u0635\u0648\u06ba \u0633\u06d2 \u0645\u062e\u062a\u0644\u0641 \u0646\u0638\u0631 \u0622\u0646\u06d2 \u0686\u0627\u06c1\u0626\u06cc\u06ba\u06d4 \u0631\u06cc\u067e\u0648\u0632\u0679\u0631\u06cc \u0645\u06cc\u06ba \u0645\u0648\u062c\u0648\u062f \u0688\u06cc\u0634 \u0628\u0648\u0631\u0688 \u067e\u0631 \u0631\u06cc\u0641\u0644\u06cc\u06a9\u0634\u0646 \u06c1\u06d2\u06d4 <code>&#x1f4a1;<\/code> \u0628\u06cc\u062c \u0627\u0648\u0631 &quot;N \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u0633\u06d2 \u062a\u0631\u06a9\u06cc\u0628 \u0634\u062f\u06c1&#8221; \u0646\u0648\u0679\u06d4<\/p>\n<p>github.com\/dannwaneri\/Vectorize-mcp-worker \u067e\u0631 \u0645\u06a9\u0645\u0644 \u0645\u0627\u062e\u0630 \u2014 \u0631\u06cc\u0641\u0644\u06cc\u06a9\u0634\u0646 \u0627\u0646\u062c\u0646\u060c \u0627\u0646\u0679\u06cc\u06af\u0631\u06cc\u0634\u0646\u0632\u060c \u0628\u06cc\u0686 \u06a9\u0644\u06cc\u06a9\u0634\u0646\u060c \u0688\u06cc\u0634 \u0628\u0648\u0631\u0688\u060c \u0627\u0648\u067e\u0646 \u0627\u06d2 \u067e\u06cc \u0622\u0626\u06cc \u0627\u0633\u067e\u06cc\u06a9\u06d4<\/p>\n<p>\u06a9\u0648\u0688\u0628\u06cc\u0633 TypeScript \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633\u06d2 \u0648\u0627\u062d\u062f \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u062a\u0642\u0633\u06cc\u0645 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code>wrangler deploy<\/code>\u0631\u0648\u0632\u0627\u0646\u06c1 10,000 \u0633\u0648\u0627\u0644\u0627\u062a \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u062a\u06d2 \u0648\u0642\u062a \u06cc\u06c1 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b $1-$5 \u0645\u0627\u06c1\u0627\u0646\u06c1 \u0686\u0644\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u0639\u06cc\u0627\u0631\u06cc RAG \u062a\u0644\u0627\u0634\u06d4 \u06cc\u06c1 \u0633\u06cc\u06a9\u06be\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u062a\u0645\u0627\u0645 RAG \u0633\u0633\u0679\u0645\u0632 \u062c\u0646 \u06a9\u0648 \u0645\u06cc\u06ba \u0646\u06d2 \u062f\u06cc\u06a9\u06be\u0627 \u06c1\u06d2\u060c \u0628\u0634\u0645\u0648\u0644 \u0627\u0633 \u0633\u0627\u0626\u0679 \u067e\u0631 \u06c1\u06cc\u0646\u0688 \u0628\u06a9 \u06a9\u0631\u062f\u06c1\u060c \u0627\u06cc\u06a9 \u06c1\u06cc \u0628\u0646\u06cc\u0627\u062f\u06cc \u0645\u0633\u0626\u0644\u06c1 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0646\u06c1\u06cc\u06ba \u0633\u06cc\u06a9\u06be\u062a\u0627\u06d4 500 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u062c\u0645\u0639 \u06a9\u0631\u06cc\u06ba\u06d4 \u0622\u067e \u0627\u06cc\u06a9 \u0633\u0648\u0627\u0644 \u067e\u0648\u0686\u06be\u06cc\u06ba\u06d4 \u0633\u0633\u0679\u0645 \u062a\u06cc\u0646 \u0633\u0628 \u0633\u06d2 \u0645\u0644\u062a\u06d2 \u062c\u0644\u062a\u06d2 \u0679\u06a9\u0691\u0648\u06ba \u06a9\u0648 \u062a\u0644\u0627\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0646\u06c1\u06cc\u06ba LLM \u062a\u06a9 \u067e\u06c1\u0646\u0686\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u062f\u0631\u062c \u0630\u06cc\u0644 \u0633\u0648\u0627\u0644\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u06c1\u0631\u0627\u0626\u06cc\u06ba: [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-23043","post","type-post","status-publish","format-standard","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/23043","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/comments?post=23043"}],"version-history":[{"count":0,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/23043\/revisions"}],"wp:attachment":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/media?parent=23043"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/categories?post=23043"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/tags?post=23043"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}