{"id":28989,"date":"2026-09-08T10:58:41","date_gmt":"2026-09-08T10:58:41","guid":{"rendered":"https:\/\/umang.pk\/2026\/09\/08\/%d8%ac%db%8c%d9%85%d9%86%db%8c-%d8%a7%d9%88%d8%b1-%d9%88%d8%b1%d8%b3%d9%84-%d8%b3%d8%b1%d9%88%d8%b1-%d9%84%db%8c%d8%b3-%d9%81%d9%86%da%a9%d8%b4%d9%86%d8%b2-%da%a9%d8%a7-%d8%a7%d8%b3%d8%aa%d8%b9%d9%85\/"},"modified":"2026-09-08T10:58:43","modified_gmt":"2026-09-08T10:58:43","slug":"%d8%ac%db%8c%d9%85%d9%86%db%8c-%d8%a7%d9%88%d8%b1-%d9%88%d8%b1%d8%b3%d9%84-%d8%b3%d8%b1%d9%88%d8%b1-%d9%84%db%8c%d8%b3-%d9%81%d9%86%da%a9%d8%b4%d9%86%d8%b2-%da%a9%d8%a7-%d8%a7%d8%b3%d8%aa%d8%b9%d9%85","status":"publish","type":"post","link":"https:\/\/umang.pk\/en_us\/2026\/09\/08\/%d8%ac%db%8c%d9%85%d9%86%db%8c-%d8%a7%d9%88%d8%b1-%d9%88%d8%b1%d8%b3%d9%84-%d8%b3%d8%b1%d9%88%d8%b1-%d9%84%db%8c%d8%b3-%d9%81%d9%86%da%a9%d8%b4%d9%86%d8%b2-%da%a9%d8%a7-%d8%a7%d8%b3%d8%aa%d8%b9%d9%85\/","title":{"rendered":"\u062c\u06cc\u0645\u0646\u06cc \u0627\u0648\u0631 \u0648\u0631\u0633\u0644 \u0633\u0631\u0648\u0631 \u0644\u06cc\u0633 \u0641\u0646\u06a9\u0634\u0646\u0632 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 AI \u0686\u06cc\u0679 \u0628\u0648\u0679 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2"},"content":{"rendered":"\n<div id=\"\">\n<p>\u06a9\u0686\u06be \u0645\u06c1\u06cc\u0646\u06d2 \u067e\u06c1\u0644\u06d2 \u0645\u06cc\u06ba \u0646\u06d2 React\u060c Node.js \u0627\u0648\u0631 Vercel Serverless Functions \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u06cc\u06a9 \u0686\u06cc\u0679 \u0628\u0648\u0679 \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u0628\u0646\u0627\u0626\u06cc\u060c \u062c\u0633\u06d2 \u0645\u06cc\u06ba \u0646\u06d2 \u0627\u06cc\u06a9 \u0648\u06cc\u0628 \u0627\u06cc\u067e buildcv.makeadifference.app \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627\u06d4<\/p>\n<p>\u0627\u0633 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u0645\u06cc\u06ba\u060c \u0645\u06cc\u06ba \u0622\u067e \u06a9\u0648 \u0628\u0627\u0644\u06a9\u0644 \u0628\u062a\u0627\u0624\u06ba \u06af\u0627 \u06a9\u06c1 \u0645\u06cc\u06ba \u0646\u06d2 \u0627\u0633\u06d2 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627\u060c \u0628\u06cc\u06a9 \u0627\u06cc\u0646\u0688 \u0633\u0631\u0648\u0631 \u0644\u06cc\u0633 \u0641\u0646\u06a9\u0634\u0646 \u0633\u06d2 \u062c\u0648 \u06af\u0648\u06af\u0644 \u06a9\u06d2 Gemini API \u0633\u06d2 \u0628\u0627\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u06cc\u06a9 React \u0686\u06cc\u0679 \u0648\u06cc\u062c\u06cc\u0679 \u062a\u06a9 \u062c\u0648 AI \u0633\u06d2 \u0631\u062f\u0639\u0645\u0644 \u0638\u0627\u06c1\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u06a9\u0648 \u0645\u06a9\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0622\u067e \u0633\u0645\u062c\u06be \u062c\u0627\u0626\u06cc\u06ba \u06af\u06d2:<\/p>\n<ol>\n<li>\n<p>\u06cc\u06c1\u0627\u06ba \u0627\u06cc\u06a9 Vercel Serverless \u0641\u0646\u06a9\u0634\u0646 \u06a9\u0648 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1 \u06c1\u06d2 \u062c\u0648 Gemini \u06a9\u0648 \u06a9\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633 \u06a9\u06d2 \u062c\u0648\u0627\u0628 \u06a9\u0648 \u0628\u0631\u0627\u0624\u0632\u0631 \u0645\u06cc\u06ba \u0645\u062a\u0646 \u06a9\u06d2 \u0686\u06be\u0648\u0679\u06d2 \u0679\u06a9\u0691\u0648\u06ba \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u06cc\u06c1 \u0646\u0642\u0637\u06c1 \u0646\u0638\u0631 \u0686\u06cc\u0679 \u0628\u0648\u0679 \u06a9\u0648 \u0627\u06cc\u06a9 \u06c1\u06cc \u0648\u0642\u062a \u0645\u06cc\u06ba \u067e\u0648\u0631\u06d2 \u062c\u0648\u0627\u0628 \u06a9\u06d2 \u0648\u0627\u067e\u0633 \u0622\u0646\u06d2 \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0631 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u06cc\u0632 \u0627\u0648\u0631 \u0632\u06cc\u0627\u062f\u06c1 \u062c\u0648\u0627\u0628\u062f\u06c1 \u06a9\u06cc\u0648\u06ba \u0645\u062d\u0633\u0648\u0633 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u061f<\/p>\n<\/li>\n<li>\n<p>\u0627\u06cc\u06a9 React \u062c\u0632\u0648 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u062c\u0648 \u0633\u0679\u0631\u06cc\u0645\u0646\u06af \u06a9\u06d2 \u062c\u0648\u0627\u0628\u0627\u062a \u06a9\u0648 \u067e\u0691\u06be\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0646\u06cc\u0627 \u0645\u062a\u0646 \u0622\u0646\u06d2 \u067e\u0631 \u0686\u06cc\u0679 \u0648\u0646\u0688\u0648 \u06a9\u0648 \u062d\u0642\u06cc\u0642\u06cc \u0648\u0642\u062a \u0645\u06cc\u06ba \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ol>\n<p>\u06c1\u0645 \u0627\u0633 \u0628\u0627\u062a \u06a9\u0627 \u0628\u06be\u06cc \u0627\u062d\u0627\u0637\u06c1 \u06a9\u0631\u06cc\u06ba \u06af\u06d2 \u06a9\u06c1 \u0622\u067e \u06a9\u06d2 UI \u06a9\u0648 \u062c\u0648\u0691\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u0648\u0631 \u0627\u0635\u0644 \u0645\u06cc\u06ba \u067e\u0648\u0631\u06cc \u0686\u06cc\u0632 \u06a9\u0648 Vercel \u067e\u0631 \u062a\u0639\u06cc\u0646\u0627\u062a \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u067e\u0646\u06d2 \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0646\u0642\u0637\u0648\u06ba \u06a9\u0648 \u062c\u0627\u0646\u0686\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 curl \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0633\u06d2 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1 \u062a\u0645\u0627\u0645 \u0679\u06a9\u0646\u0627\u0644\u0648\u062c\u06cc \u06a9\u06d2 \u0627\u0631\u062f \u06af\u0631\u062f \u0645\u0631\u06a9\u0648\u0632 \u06c1\u06d2 \u062c\u06cc\u0633\u06d2: <strong>\u0633\u0627\u062f\u06c1 \u0645\u062a\u0646 \u06a9\u0627 \u062d\u0635\u06c1 \u0633\u0644\u0633\u0644\u06c1 \u0628\u0646\u062f\u06cc<\/strong>. AI \u06a9\u0627 \u067e\u0648\u0631\u0627 \u062c\u0648\u0627\u0628 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0631 \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u067e\u06be\u0631 \u0627\u0633\u06d2 \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be \u0628\u0631\u0627\u0624\u0632\u0631 \u06a9\u0648 \u0648\u0627\u067e\u0633 \u0628\u06be\u06cc\u062c\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u0627\u06cc\u06a9 \u0633\u0631\u0648\u0631 \u0644\u06cc\u0633 \u0641\u0646\u06a9\u0634\u0646 \u062c\u0648\u0627\u0628 \u06a9\u0648 \u0645\u062a\u0646 \u06a9\u06d2 \u0686\u06be\u0648\u0679\u06d2 \u0679\u06a9\u0691\u0648\u06ba \u06a9\u06cc \u0627\u06cc\u06a9 \u0633\u06cc\u0631\u06cc\u0632 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0686\u0644\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062a\u06cc\u0627\u0631 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc \u06c1\u0631 \u0627\u06cc\u06a9 \u06a9\u0648 \u0628\u0631\u0627\u0624\u0632\u0631 \u067e\u0631 \u0644\u06a9\u06be \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1\u06cc \u0686\u06cc\u0632 \u0686\u06cc\u0679 \u0628\u0648\u0679\u0633 \u06a9\u0648 \u062c\u062f\u06cc\u062f AI \u0686\u06cc\u0679 \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u0645\u06cc\u06ba \u067e\u0627\u0626\u06cc \u062c\u0627\u0646\u06d2 \u0648\u0627\u0644\u06cc \u062c\u0648\u0627\u0628\u06cc &quot;\u0679\u0627\u0626\u067e\u0646\u06af&#8221; \u06a9\u0627 \u0627\u062d\u0633\u0627\u0633 \u062f\u06cc\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u0637\u0648\u06cc\u0644 \u0648\u0642\u0641\u06d2 \u06a9\u06d2 \u0628\u0639\u062f \u067e\u0648\u0631\u0627 \u062c\u0648\u0627\u0628 \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be \u0638\u0627\u06c1\u0631 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u0627\u06d4<\/p>\n<h3 id=\"heading-what-well-cover\">\u06c1\u0645 \u06a9\u06cc\u0627 \u0627\u062d\u0627\u0637\u06c1 \u06a9\u0631\u06cc\u06ba \u06af\u06d2:<\/h3>\n<h2 id=\"heading-architecture-overview\"> \u0641\u0646 \u062a\u0639\u0645\u06cc\u0631 \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1<\/h2>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062f\u0648 \u0627\u06c1\u0645 \u062d\u0635\u0648\u06ba \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 \u06c1\u06d2: UI \u062c\u0632\u0648 \u0627\u06cc\u06a9 \u0631\u06cc \u0627\u06cc\u06a9\u0679 \u0686\u06cc\u0679 \u0648\u06cc\u062c\u06cc\u0679 \u06c1\u06d2 \u062c\u0648 \u0627\u0633 \u0648\u0642\u062a \u062f\u0648\u0628\u0627\u0631\u06c1 \u067e\u06cc\u0634 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u0635\u0627\u0631\u0641 \u06a9\u0648\u0626\u06cc \u067e\u06cc\u063a\u0627\u0645 \u0679\u0627\u0626\u067e \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0633 \u0645\u06cc\u06ba AI \u06a9\u06d2 \u0631\u0633\u067e\u0627\u0646\u0633 \u0627\u0633\u0679\u0631\u06cc\u0645\u0646\u06af \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u0628\u06cc\u06a9 \u0627\u06cc\u0646\u0688 \u0627\u06cc\u06a9 Vercel \u0633\u0631\u0648\u0631 \u0644\u06cc\u0633 \u0641\u0646\u06a9\u0634\u0646 \u06c1\u06d2\u060c \u062c\u06cc\u0633\u06d2\u06d4 <code>api\/chat<\/code>) \u0622\u0646\u06d2 \u0648\u0627\u0644\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06cc \u062a\u0648\u062b\u06cc\u0642 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062c\u06cc\u0645\u0646\u06cc \u06a9\u0648 \u06a9\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0622\u0624\u0679 \u067e\u0679 \u06a9\u0648 \u0628\u0631\u0627\u0624\u0632\u0631 \u067e\u0631 \u0648\u0627\u067e\u0633 \u0686\u0644\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0622\u067e \u0633\u0631\u06a9\u0627\u0631\u06cc \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u0645\u06cc\u06ba \u0648\u0631\u0633\u0644 \u06a9\u06cc \u0633\u0631\u0648\u0631 \u0644\u06cc\u0633 \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0645\u0632\u06cc\u062f \u062c\u0627\u0646 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0634\u0631\u0648\u0639 \u0633\u06d2 \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u062a\u06a9 \u067e\u0648\u0631\u0627 \u0628\u06c1\u0627\u0624 \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: \u0628\u0631\u0627\u0624\u0632\u0631 \u0648\u0631\u0633\u0644 \u0641\u0646\u06a9\u0634\u0646 \u06a9\u0648 \u0627\u06cc\u06a9 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2\u060c \u0648\u0631\u0633\u0644 \u0641\u0646\u06a9\u0634\u0646 \u062c\u06cc\u0645\u0646\u06cc API \u06a9\u0648 \u06a9\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u062c\u06cc\u0645\u0646\u06cc \u06a9\u0627 \u062c\u0648\u0627\u0628 \u0679\u06a9\u0691\u0648\u06ba \u0645\u06cc\u06ba \u0628\u0631\u0627\u0624\u0632\u0631 \u067e\u0631 \u0648\u0627\u067e\u0633 \u0686\u0644\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0639\u0645\u0644\u06cc \u0637\u0648\u0631 \u067e\u0631\u060c \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0628\u06cc\u06a9 \u0627\u06cc\u0646\u0688 \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u06a9\u0648 \u062c\u0648\u0627\u0628 \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2 \u062c\u06cc\u0633\u06d2 \u06c1\u06cc \u06cc\u06c1 \u062f\u0633\u062a\u06cc\u0627\u0628 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u060c \u0628\u062c\u0627\u0626\u06d2 \u0627\u0633 \u06a9\u06d2 \u06a9\u06c1 \u0635\u0627\u0631\u0641 \u06a9\u0648 \u06a9\u0686\u06be \u0628\u06be\u06cc \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u067e\u0648\u0631\u06d2 \u062c\u0648\u0627\u0628 \u06a9\u06d2 \u062a\u06cc\u0627\u0631 \u06c1\u0648\u0646\u06d2 \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0631 \u06a9\u0631\u06d2\u06d4<\/p>\n<h2 id=\"heading-prerequisites\"> \u0634\u0631\u0627\u0626\u0637<\/h2>\n<p>\u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06c1\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p>\u0645\u0642\u0627\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u062f\u06c1 Node.js (\u0646\u0648\u0688 18 \u06cc\u0627 \u0627\u0633 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1)<\/p>\n<\/li>\n<li>\n<p>Google AI \u0627\u0633\u0679\u0648\u0688\u06cc\u0648 \u06a9\u06d2 \u0644\u06cc\u06d2 Gemini API \u06a9\u0644\u06cc\u062f <\/p>\n<\/li>\n<li>\n<p>\u0648\u0631\u0633\u0644 \u0627\u06a9\u0627\u0624\u0646\u0679 \u0627\u0648\u0631 \u0648\u0631\u0633\u0644 \u0633\u06cc \u0627\u06cc\u0644 \u0622\u0626\u06cc<\/p>\n<\/li>\n<li>\n<p>\u06a9\u06c1 <code>@google\/genai<\/code> \u0641\u0646\u06a9\u0634\u0646 \u06a9\u06d2 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0645\u06cc\u06ba \u0646\u0635\u0628 \u067e\u06cc\u06a9\u062c\u0632 (\u0686\u0644 \u06a9\u0631 \u0634\u0627\u0645\u0644 \u06a9\u06cc\u06d2 \u062c\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba: <code>npm install @google\/genai<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u0622\u067e \u06a9\u0644\u06cc\u062f \u06a9\u0648 \u0645\u0627\u062d\u0648\u0644 \u06a9\u06d2 \u0645\u062a\u063a\u06cc\u0631 \u0645\u06cc\u06ba \u0627\u0633 \u0637\u0631\u062d \u0630\u062e\u06cc\u0631\u06c1 \u06a9\u0631\u0646\u0627 \u0628\u06be\u06cc \u0686\u0627\u06c1\u06cc\u06ba \u06af\u06d2: <code>process.env.GOOGLE_API_KEY<\/code> \u0627\u06af\u0631 \u0622\u067e \u0645\u0642\u0627\u0645\u06cc \u062a\u0631\u0642\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u0639\u06cc\u0646\u0627\u062a \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u067e\u0646\u06d2 Vercel \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u06d2 \u0688\u06cc\u0634 \u0628\u0648\u0631\u0688 (\u062a\u0631\u062a\u06cc\u0628\u0627\u062a\u060c \u0645\u0627\u062d\u0648\u0644\u06cc\u0627\u062a\u06cc \u0645\u062a\u063a\u06cc\u0631\u0627\u062a \u06a9\u06d2 \u062a\u062d\u062a) \u0645\u06cc\u06ba \u0627\u0633\u06cc \u0645\u062a\u063a\u06cc\u0631 \u06a9\u0648 \u0634\u0627\u0645\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0622\u067e \u06a9\u06cc \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06a9\u06cc \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc \u06a9\u06d2 \u0628\u0639\u062f \u0622\u067e \u06a9\u06cc API \u06a9\u0644\u06cc\u062f \u06a9\u0648 \u0635\u062d\u06cc\u062d \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u0627\u0679\u06be\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4<\/p>\n<h2 id=\"heading-api-contract\">API \u0645\u0639\u0627\u06c1\u062f\u06c1<\/h2>\n<p>\u06a9\u0648\u0688 \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u0627\u0648\u0631 \u0628\u06cc\u06a9 \u0627\u06cc\u0646\u0688 \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 &quot;\u0645\u0639\u0627\u06c1\u062f\u06c1&#8221; \u06a9\u0648 \u0633\u0645\u062c\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0644\u0645\u062d\u06c1 \u0646\u06a9\u0627\u0644\u0646\u0627 \u0645\u0641\u06cc\u062f \u06c1\u06d2: \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u0633\u06d2 \u06a9\u06cc\u0627 \u0628\u06be\u06cc\u062c\u0646\u06d2 \u06a9\u06cc \u062a\u0648\u0642\u0639 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633 \u06a9\u06d2 \u0628\u062f\u0644\u06d2 \u0645\u06cc\u06ba \u0628\u06cc\u06a9 \u0627\u06cc\u0646\u0688 \u0633\u06d2 \u06a9\u06cc\u0627 \u0645\u0644\u0646\u06d2 \u06a9\u06cc \u062a\u0648\u0642\u0639 \u06c1\u06d2\u06d4<\/p>\n<p>\u062c\u0628 \u06a9\u0648\u0626\u06cc \u0635\u0627\u0631\u0641 \u0686\u06cc\u0679 \u0648\u06cc\u062c\u06cc\u0679 \u0645\u06cc\u06ba \u067e\u06cc\u063a\u0627\u0645 \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 POST \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2\u06d4 <code>\/api\/chat<\/code> \u0627\u06cc\u06a9 JSON \u0628\u0627\u0688\u06cc \u06c1\u06d2 \u062c\u0633 \u0645\u06cc\u06ba \u0635\u0627\u0631\u0641 \u06a9\u0627 \u0627\u0628\u06be\u06cc \u062f\u0627\u062e\u0644 \u06a9\u0631\u062f\u06c1 \u067e\u06cc\u063a\u0627\u0645 \u0627\u0648\u0631 \u0627\u06cc\u067e \u0645\u06cc\u06ba \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06c1\u06cc \u0631\u06cc\u0632\u06cc\u0648\u0645\u06d2 \u06a9\u0627 \u0688\u06cc\u0679\u0627 \u0628\u06be\u0631\u0627 \u06c1\u0648\u0627 \u06c1\u06d2 (\u0686\u0648\u0646\u06a9\u06c1 \u06cc\u06c1 \u0645\u062e\u0635\u0648\u0635 \u0686\u06cc\u0679 \u0628\u0648\u0679 \u0631\u06cc\u0632\u06cc\u0648\u0645\u06d2 \u06a9\u0648\u0686 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2)\u06d4 \u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u0628\u06cc\u06a9 \u0627\u06cc\u0646\u0688 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u06a9\u06d2 \u062f\u0648 \u0679\u06a9\u0691\u0648\u06ba \u06a9\u0648 \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u06cc\u06a9 \u062c\u0648\u0627\u0628 \u067e\u06cc\u062f\u0627 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062c\u0648 \u062f\u0631\u062d\u0642\u06cc\u0642\u062a \u0627\u0633 \u0635\u0627\u0631\u0641 \u06a9\u06d2 \u0631\u06cc\u0632\u06cc\u0648\u0645\u06d2 \u0633\u06d2 \u0645\u062a\u0639\u0644\u0642 \u06c1\u0648\u060c \u0628\u062c\u0627\u0626\u06d2 \u0627\u0633 \u06a9\u06d2 \u06a9\u06c1 \u0639\u0627\u0645 \u062c\u0648\u0627\u0628 \u06a9\u06d2\u06d4<\/p>\n<p><strong>\u062f\u0631\u062e\u0648\u0627\u0633\u062a:<\/strong><\/p>\n<pre><code class=\"language-plaintext\">POST \/api\/chat\n{\n  \"message\": \"How can I improve my resume summary?\",\n  \"resume\": { \"name\": \"...\", \"experience\": [...], \"skills\": [...] }\n}\n<\/code><\/pre>\n<h2 id=\"heading-backend-the-vercel-serverless-function\"> \u0628\u06cc\u06a9 \u0627\u06cc\u0646\u0688 (\u0648\u0631\u0633\u0644 \u0633\u0631\u0648\u0631 \u0644\u06cc\u0633 \u0641\u0646\u06a9\u0634\u0646\u0632)<\/h2>\n<p>\u06cc\u06c1 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0627 \u062f\u0644 \u06c1\u06d2\u06d4 \u06cc\u0639\u0646\u06cc\u060c \u0627\u06cc\u06a9 \u0648\u0627\u062d\u062f Vercel \u0633\u0631\u0648\u0631 \u0644\u06cc\u0633 \u0641\u0646\u06a9\u0634\u0646 \u062c\u0648 \u0686\u06cc\u0679 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc\u06ba \u0648\u0635\u0648\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0646 \u06a9\u06cc \u062a\u0648\u062b\u06cc\u0642 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0646\u06c1\u06cc\u06ba Gemini \u062a\u06a9 \u067e\u06c1\u0646\u0686\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 AI \u06a9\u06d2 \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f\u06c1 \u062c\u0648\u0627\u0628\u0627\u062a \u06a9\u0648 \u0628\u0631\u0627\u0624\u0632\u0631 \u067e\u0631 \u0648\u0627\u067e\u0633 \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0630\u06cc\u0644 \u0645\u06cc\u06ba \u0645\u06a9\u0645\u0644 \u06c1\u06cc\u0646\u0688\u0644\u0631 \u06c1\u06d2\u06d4 \u067e\u0648\u0631\u06d2 \u06c1\u06cc\u0646\u0688\u0644\u0631 \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0622\u0626\u06cc\u06d2 \u062f\u06cc\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u06c1\u06cc\u0646\u0688\u0644\u0631 \u06a9\u0627 \u06c1\u0631 \u062d\u0635\u06c1 \u06a9\u06cc\u0627 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-jsx\">const { GoogleGenAI } = require(\"@google\/genai\");\nconst ai = new GoogleGenAI({\n    apiKey: process.env.GOOGLE_API_KEY,  \/\/ GOOGLE_API_KEY can be configured in Vercel\n});\nconst MAX_TEXT_LENGTH = 2000;\nconst MAX_ARRAY_LENGTH = 50;\n\nfunction sanitizeString(input = \"\") {\n    \/\/ sanitize your input string here\n}\n\nfunction sanitizeObject(obj = {}) {\n    \/\/ sanitize your resume object\n}\n\nconst allowCors = fn => async (req, res) => {\n\n    res.setHeader('Access-Control-Allow-Origin', '<<your web=\"\" app=\"\" url=\"\" goes=\"\" here=\"\">>');\n    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');\n    res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');\n\n    \/\/ &#x2705; Handle preflight request\n    if (req.method === 'OPTIONS') {\n        return res.status(200).end();\n    }\n    \/\/ another option\n    res.setHeader('Access-Control-Allow-Methods', 'GET, HEAD, OPTIONS, POST, PUT, DELETE')\n    res.setHeader(\n        'Access-Control-Allow-Headers',\n        'X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version'\n    )\n    if (req.method === 'OPTIONS') {\n        res.status(200).end()\n        return\n    }\n    return await fn(req, res)\n};\n\nconst handler = async (req, res) => {\n\n    if (req.url === '\/api\/chat' && req.method === 'POST') {\n\n        const { message, resume } = req.body || {};\n\n        const safeMessage = sanitizeString(message);\n        const safeResume = sanitizeObject(resume);\n\n        if (!safeMessage) {\n            return res.status(400).json({ error: \"Invalid message\" });\n        }\n\n        if (!safeMessage || !safeResume) {\n            return res.status(400).json({ error: 'Missing message or resume data' });\n        }\n\n        try {\n            const stream = await ai.models.generateContentStream({\n                model: \"<<gemini model=\"\" goes=\"\" here=\"\">>\",\n                contents: `\n            You are a professional Resume Coach AI.\n\n            - Always respond clearly, politely, and professionally.\n            - <<add descriptive=\"\" instruction=\"\" for=\"\" the=\"\" prompt=\"\" based=\"\" on=\"\" your=\"\" requirement=\"\">>\n            - Resume data:\n${JSON.stringify(safeResume, null, 2)}\n\nUser question:\n${safeMessage}\n`,\n            });\n            res.setHeader(\"Content-Type\", \"text\/plain; charset=utf-8\");\n            res.setHeader(\"Cache-Control\", \"no-cache\");\n\n            for await (const chunk of stream) {\n                const text = chunk.text;\n                if (text) {\n                    res.write(text);\n                }\n            }\n\n            res.end();\n        } catch (error) {\n            console.error('Gemini Error:', error);\n            res.status(500).json({ error: 'AI request failed' });\n        }\n    }\n\n    \/\/ I have added a health check for testing the handler\n    if (req.url === '\/api\/chat?type=healthcheck' && req.method === 'GET') {\n        res.status(200).json({ message: 'Hello from the chat endpoint!' });\n    }\n}\n\nmodule.exports = allowCors(handler)\n<\/add><\/gemini><\/your><\/code><\/pre>\n<p>\u0627\u0628 \u0627\u06cc\u06a9 \u0627\u06cc\u06a9 \u06a9\u0631\u06a9\u06d2 \u0627\u0633\u06d2 \u062a\u0648\u0691\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<ul>\n<li>\n<p><strong>\u062c\u06cc\u0645\u0646\u06cc \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a:<\/strong> \u0641\u0627\u0626\u0644 \u06a9\u06d2 \u0627\u0648\u067e\u0631\u06cc \u062d\u0635\u06d2 \u0645\u06cc\u06ba \u062f\u0631\u062c \u0630\u06cc\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba: <code>GoogleGenAI<\/code> \u06a9\u0644\u0627\u0626\u0646\u0679 \u067e\u0631 \u0630\u062e\u06cc\u0631\u06c1 \u0634\u062f\u06c1 API \u06a9\u0644\u06cc\u062f \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u0627 <code>GOOGLE_API_KEY<\/code> \u0645\u0627\u062d\u0648\u0644\u06cc\u0627\u062a\u06cc \u0645\u062a\u063a\u06cc\u0631\u0627\u062a\u06d4 \u0627\u0633 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u0648 \u0641\u06cc\u0686\u0631 \u06a9\u06d2 \u0628\u0627\u0642\u06cc \u062d\u0635\u0648\u06ba \u0645\u06cc\u06ba \u062c\u06cc\u0645\u0646\u06cc \u0633\u06d2 \u0628\u0627\u062a \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0627\u0646 \u067e\u0679 \u06a9\u0648 \u062d\u0630\u0641 \u06a9\u0631\u0646\u0627:<\/strong> \u0622\u0646\u06d2 \u0648\u0627\u0644\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u06c1\u0645 \u067e\u06cc\u063a\u0627\u0645 \u0686\u0644\u0627\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0633 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba: <code>sanitizeString<\/code> \u0627\u0648\u0631 <code>sanitizeObject<\/code>. \u06cc\u06c1 \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u06a9\u0633\u06cc \u0628\u06be\u06cc \u063a\u06cc\u0631 \u0645\u062a\u0648\u0642\u0639 \u06cc\u0627 \u0627\u0648\u0646\u0686\u06cc \u0622\u0648\u0627\u0632 \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631 \u062f\u06cc\u062a\u06cc \u06c1\u06cc\u06ba\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u0622\u067e \u0646\u0627\u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f \u0635\u0627\u0631\u0641 \u06a9\u06d2 \u0627\u0646 \u067e\u0679 \u06a9\u0648 \u067e\u06c1\u0644\u06d2 \u0686\u06cc\u06a9 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a AI \u06a9\u0648 \u0645\u0646\u062a\u0642\u0644 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>CORS \u06c1\u06cc\u0646\u0688\u0644\u0646\u06af:<\/strong> \u06a9\u06c1 <code>allowCors<\/code> \u0631\u06cc\u067e\u0631 \u0641\u0646\u06a9\u0634\u0646 \u06c1\u06cc\u0646\u0688\u0644\u0631\u0632 \u06a9\u06d2 \u0627\u0631\u062f \u06af\u0631\u062f \u0628\u06cc\u0679\u06be\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u06a9\u0631\u0627\u0633 \u0627\u0648\u0631\u06cc\u062c\u0646 \u0631\u06cc\u0633\u0648\u0631\u0633 \u0634\u06cc\u0626\u0631\u0646\u06af \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0686\u06cc\u0679 \u0648\u06cc\u062c\u0679 \u062e\u0648\u062f Vercel \u062e\u0635\u0648\u0635\u06cc\u062a \u06a9\u06d2 \u0639\u0644\u0627\u0648\u06c1 \u0688\u0648\u0645\u06cc\u0646\u0632 \u0645\u06cc\u06ba \u0633\u0631\u0627\u06cc\u062a \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0644\u06c1\u0630\u0627 \u0622\u067e \u06a9\u0648 \u0627\u0646 \u0688\u0648\u0645\u06cc\u0646\u0632 \u0633\u06d2 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u06cc \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u0646\u06cc \u0686\u0627\u06c1\u06cc\u06d2\u06d4 <code>OPTIONS<\/code> \u0627\u06cc\u06a9 \u067e\u0631\u06cc \u0641\u0644\u0627\u0626\u0679 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062c\u0648 \u0628\u0631\u0627\u0624\u0632\u0631 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0627\u0635\u0644 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2\u06d4 <code>POST<\/code> \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06af\u0632\u0631 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u062a\u0648\u062b\u06cc\u0642 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u06cc\u06ba:<\/strong> \u06c1\u06cc\u0646\u0688\u0644\u0631 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u06c1\u06cc \u06c1\u0645 \u062f\u0648\u0646\u0648\u06ba \u06a9\u0648 \u0686\u06cc\u06a9 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>message<\/code> \u0627\u0648\u0631 <code>resume<\/code> \u062c\u0631\u0627\u062b\u06cc\u0645 \u06a9\u0634\u06cc \u06a9\u0627\u0645\u06cc\u0627\u0628\u06cc \u0633\u06d2 \u0645\u06a9\u0645\u0644 \u06c1\u0648 \u06af\u0626\u06cc \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u06a9\u0648\u0626\u06cc \u0627\u06cc\u06a9 \u063a\u0627\u0626\u0628 \u06cc\u0627 \u063a\u0644\u0637 \u06c1\u06d2\u060c \u062a\u0648 \u06cc\u06c1 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u063a\u0644\u0637 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u067e\u0631 \u062c\u06cc\u0645\u0646\u06cc \u06a9\u0627\u0644 \u06a9\u0648 \u0636\u0627\u0626\u0639 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 400 \u06a9\u06cc \u063a\u0644\u0637\u06cc \u0644\u0648\u0679\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u062c\u06cc\u0645\u0646\u06cc \u06a9\u0627\u0644 \u0627\u0648\u0631 \u0631\u0633\u067e\u0627\u0646\u0633 \u0627\u0633\u0679\u0631\u06cc\u0645\u0646\u06af:<\/strong> \u06cc\u06c1 \u067e\u0648\u0631\u06d2 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u06a9\u0627 \u06a9\u0644\u06cc\u062f\u06cc \u062d\u0635\u06c1 \u06c1\u06d2\u06d4 \u0645\u0639\u0645\u0648\u0644 \u06a9\u06d2 &quot;\u0645\u0648\u0627\u062f \u062a\u062e\u0644\u06cc\u0642 \u06a9\u0631\u06cc\u06ba&#8221; \u06a9\u06d2 \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u0627\u0631 \u06a9\u0648 \u06a9\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u0645\u06a9\u0645\u0644 \u062c\u0648\u0627\u0628 \u06a9\u06d2 \u0648\u0627\u067e\u0633 \u0622\u0646\u06d2 \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u06c1\u0645 \u06a9\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba: <code>generateContentStream<\/code>\u0627\u06cc\u06a9 \u063a\u06cc\u0631 \u0645\u0637\u0627\u0628\u0642\u062a \u067e\u0630\u06cc\u0631 \u062a\u06a9\u0631\u0627\u0631\u06cc \u0644\u0648\u0679\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u06c1\u0645 \u0627\u0633 \u0633\u0644\u0633\u0644\u06d2 \u06a9\u0648 \u0627\u0633 \u0637\u0631\u062d \u062f\u06c1\u0631\u0627\u062a\u06d2 \u06c1\u06cc\u06ba: <code>for await...of<\/code> \u06cc\u06c1 \u0627\u06cc\u06a9 \u0644\u0648\u067e \u0686\u0644\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062c\u0628 \u0628\u06be\u06cc \u0645\u062a\u0646 \u06a9\u0627 \u06a9\u0648\u0626\u06cc \u0646\u06cc\u0627 \u062d\u0635\u06c1 \u0622\u062a\u0627 \u06c1\u06d2\u060c \u06cc\u06c1 \u0641\u0648\u0631\u0627\u064b \u0627\u0633\u06d2 \u062c\u0648\u0627\u0628 \u0645\u06cc\u06ba \u0644\u06a9\u06be \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 <code>res.write(text)<\/code>. \u06cc\u06c1 \u0648\u06c1\u06cc \u06c1\u06d2 \u062c\u0648 \u0628\u0631\u0627\u0624\u0632\u0631 \u06a9\u0648 \u0645\u062a\u0646 \u0648\u0635\u0648\u0644 \u06a9\u0631\u0646\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u0627\u0633 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06a9\u06c1 \u062c\u06cc\u0645\u0646\u06cc \u0645\u06a9\u0645\u0644 \u062c\u0648\u0627\u0628 \u062a\u06cc\u0627\u0631 \u06a9\u0631 \u0644\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u062e\u0631\u0627\u0628\u06cc \u0633\u06d2 \u0646\u0645\u0679\u0646\u06d2 \u0627\u0648\u0631 \u062d\u06cc\u062b\u06cc\u062a \u06a9\u06cc \u062c\u0627\u0646\u0686:<\/strong> \u0627\u06af\u0631 \u062c\u06cc\u0645\u0646\u06cc \u0633\u06d2 \u0628\u0627\u062a \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u06a9\u0686\u06be \u063a\u0644\u0637 \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u06cc\u06c1 \u063a\u0644\u0637\u06cc \u06a9\u0648 \u067e\u06a9\u0691 \u06a9\u0631 \u0644\u0627\u06af \u0627\u0646 \u06a9\u0631\u06d2 \u06af\u0627 \u0627\u0648\u0631 500 \u062c\u0648\u0627\u0628 \u0648\u0627\u067e\u0633 \u06a9\u0631 \u062f\u06d2 \u06af\u0627 \u062a\u0627\u06a9\u06c1 \u0622\u067e \u06a9\u0648 \u0645\u0639\u0644\u0648\u0645 \u06c1\u0648 \u06a9\u06c1 \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u067e\u0631 \u06a9\u0648\u0626\u06cc \u0645\u0633\u0626\u0644\u06c1 \u06c1\u06d2\u06d4 \u0633\u0627\u062f\u06c1 \u0686\u06cc\u0632\u06cc\u06ba \u0628\u06be\u06cc \u06c1\u06cc\u06ba <code>GET<\/code> \u0627\u0633 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06a9\u06c1 \u0622\u067e \u0686\u06cc\u0679 \u06a9\u06d2 \u0627\u0635\u0644 \u0628\u06c1\u0627\u0624 \u06a9\u06cc \u062c\u0627\u0646\u0686 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u060c \u0622\u067e \u06c1\u06cc\u0644\u062a\u06be \u0686\u06cc\u06a9 \u0627\u06cc\u0646\u0688 \u067e\u0648\u0627\u0626\u0646\u0679 \u06a9\u0648 \u0627\u0633 \u0628\u0627\u062a \u06a9\u0648 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0627\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0641\u0639\u0627\u0644\u06cc\u062a \u0686\u0644 \u0631\u06c1\u06cc \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<h2 id=\"heading-testing-the-endpoint-before-wiring-up-the-ui\"> UI \u06a9\u0648 \u0645\u0631\u0628\u0648\u0637 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u067e\u0648\u0627\u0626\u0646\u0679\u0633 \u06a9\u06cc \u062c\u0627\u0646\u0686 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0627\u0633 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06a9\u06c1 \u0622\u067e \u0627\u067e\u0646\u0627 \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u0628\u0646\u0627\u0646\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u060c \u06cc\u06c1 \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0631\u0646\u0627 \u0627\u0686\u06be\u0627 \u062e\u06cc\u0627\u0644 \u06c1\u06d2 \u06a9\u06c1 \u0622\u067e \u06a9\u0627 \u0633\u0631\u0648\u0631 \u0644\u06cc\u0633 \u0641\u0646\u06a9\u0634\u0646 \u062f\u0631\u062d\u0642\u06cc\u0642\u062a \u062a\u0648\u0642\u0639 \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u0679\u06a9\u0691\u0648\u06ba \u06a9\u0648 \u0633\u0679\u0631\u06cc\u0645 \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4 \u0622\u067e \u0627\u0633\u06d2 \u0627\u06cc\u06a9 \u0633\u0627\u062f\u06c1 \u06a9\u0631\u0644 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-bash\">curl -N -X POST \"https:\/\/YOUR_APP.vercel.app\/api\/chat?type=chat\" \n  -H \"Content-Type: application\/json\" \n  -d '{\"message\":\"Give me 3 resume summary tips\",\"resume\":{\"name\":\"Test\"}}'\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>-N<\/code> \u062c\u06be\u0646\u0688\u0627 \u06a9\u0631\u0644 \u06a9\u06cc \u0622\u0624\u0679 \u067e\u0679 \u0628\u0641\u0631\u0646\u06af \u06a9\u0648 \u063a\u06cc\u0631 \u0641\u0639\u0627\u0644 \u06a9\u0631 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 \u0622\u067e \u062f\u06cc\u06a9\u06be\u06cc\u06ba \u06af\u06d2 \u06a9\u06c1 \u0645\u062a\u0646 \u0622\u067e \u06a9\u06d2 \u0679\u0631\u0645\u06cc\u0646\u0644 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u06c1\u06cc \u0628\u0627\u0631 \u06a9\u06cc \u0628\u062c\u0627\u0626\u06d2 \u0622\u06c1\u0633\u062a\u06c1 \u0622\u06c1\u0633\u062a\u06c1 \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u067e \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u06a9\u0648\u0688 \u06a9\u06cc \u0627\u06cc\u06a9 \u0644\u0627\u0626\u0646 \u0644\u06a9\u06be\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0622\u067e \u06a9\u06cc \u0627\u0633\u0679\u0631\u06cc\u0645\u0646\u06af \u0627\u06cc\u0646\u0688 \u0679\u0648 \u0627\u06cc\u0646\u0688 \u06a9\u0627\u0645 \u06a9\u0631 \u0631\u06c1\u06cc \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-frontend-reading-the-response-stream\"> \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688: \u062c\u0648\u0627\u0628\u06cc \u0633\u0644\u0633\u0644\u06c1 \u067e\u0691\u06be\u06cc\u06ba<\/h2>\n<p>\u0630\u06cc\u0644 \u0645\u06cc\u06ba \u0686\u06cc\u0679 \u0648\u06cc\u062c\u06cc\u0679 UI \u06a9\u06d2 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0634\u0627\u0679\u0633 \u06c1\u06cc\u06ba \u062c\u0648 \u0645\u06cc\u06ba \u0646\u06d2 React \u0645\u06cc\u06ba \u0628\u0646\u0627\u06cc\u0627 \u062a\u06be\u0627:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/09\/1788865121_306_\u062c\u06cc\u0645\u0646\u06cc-\u0627\u0648\u0631-\u0648\u0631\u0633\u0644-\u0633\u0631\u0648\u0631-\u0644\u06cc\u0633-\u0641\u0646\u06a9\u0634\u0646\u0632-\u06a9\u0627-\u0627\u0633\u062a\u0639\u0645\u0627\u0644-\u06a9\u0631\u062a\u06d2-\u06c1\u0648\u0626\u06d2.png\" alt=\"3c726767-0fbc-4784-9ce0-24f9d94ae549\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u06c1\u0645 \u0622\u067e \u06a9\u0648 \u06cc\u06c1\u0627\u06ba \u0634\u0631\u0648\u0639 \u0633\u06d2 \u0627\u0633 UI \u06a9\u06cc \u062a\u0639\u0645\u06cc\u0631 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0646\u06c1\u06cc\u06ba \u0686\u0644\u0627\u0626\u06cc\u06ba \u06af\u06d2\u06d4 \u062a\u0631\u062a\u06cc\u0628\u060c \u0627\u0646\u062f\u0627\u0632\u060c \u0627\u0648\u0631 \u067e\u06cc\u063a\u0627\u0645 \u06a9\u06cc \u0641\u06c1\u0631\u0633\u062a \u0648\u0627\u0642\u0639\u06cc \u0622\u067e \u0627\u0648\u0631 \u0622\u067e \u06a9\u06cc \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u06cc \u062a\u0631\u062c\u06cc\u062d\u0627\u062a \u067e\u0631 \u0645\u0646\u062d\u0635\u0631 \u06c1\u06d2\u06d4<\/p>\n<p>\u06c1\u0645 \u062c\u0633 \u0686\u06cc\u0632 \u06a9\u0627 \u0627\u062d\u0627\u0637\u06c1 \u06a9\u0631\u06cc\u06ba \u06af\u06d2 \u0648\u06c1 \u0641\u0639\u0627\u0644\u06cc\u062a \u06c1\u06d2 \u062c\u0648 \u0627\u0633\u06d2 \u0627\u0635\u0644 \u0645\u06cc\u06ba \u0686\u0644\u0627\u062a\u06cc \u06c1\u06d2\u06d4 \u0628\u06be\u06cc\u062c\u06cc\u06ba \u0628\u0679\u0646 \u06a9\u06d2 \u067e\u06cc\u0686\u06be\u06d2 \u0645\u0648\u062c\u0648\u062f \u06a9\u0648\u0688 \u0635\u0627\u0631\u0641 \u06a9\u06d2 \u0627\u0646 \u067e\u0679 \u06a9\u0648 \u0633\u0631\u0648\u0631 \u0644\u06cc\u0633 \u0641\u0646\u06a9\u0634\u0646 \u0645\u06cc\u06ba \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0633\u0679\u0631\u06cc\u0645\u0646\u06af \u06a9\u06d2 \u062c\u0648\u0627\u0628 \u06a9\u0648 \u0648\u0627\u067e\u0633 \u067e\u0691\u06be\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0633 \u0633\u06d2 \u0648\u06cc\u062c\u06cc\u0679 \u062c\u0628 \u0628\u06be\u06cc \u0622\u062a\u0627 \u06c1\u06d2 AI \u06a9\u0627 \u0631\u062f\u0639\u0645\u0644 \u0638\u0627\u06c1\u0631 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u060c \u062c\u06cc\u0633\u0627 \u06a9\u06c1 \u0622\u067e \u0627\u0648\u067e\u0631 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0634\u0627\u0679 \u0645\u06cc\u06ba \u062f\u06cc\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u0633 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06a9\u06c1 \u06c1\u0645 \u0627\u0633 \u0641\u0646\u06a9\u0634\u0646 \u0645\u06cc\u06ba \u062c\u0627\u0626\u06cc\u06ba\u060c \u06c1\u0645\u0627\u0631\u06d2 \u0627\u0646\u062f\u0631 \u0627\u06cc\u06a9 \u0634\u06cc\u0644 \u06c1\u06d2 \u062a\u0627\u06a9\u06c1 \u06c1\u0645 \u062f\u06cc\u06a9\u06be \u0633\u06a9\u06cc\u06ba \u06a9\u06c1 \u0627\u062c\u0632\u0627\u0621 \u06a9\u06c1\u0627\u06ba \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-jsx\">function ChatWidget({ resume }) {\n  const [messages, setMessages] = useState([]);\n  const [input, setInput] = useState(\"\");\n  const [loading, setLoading] = useState(false);\n  const [error, setError] = useState(null);\n\n  async function sendMessage() {\n    \/\/ ...actual function is added below\n  }\n\n  return (\n    <p>\n      {\/* message list, input box, and a send button that calls sendMessage() *\/}\n    <\/p>\n  );\n}\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0648\u06c1 \u0634\u06cc\u0644 \u06c1\u06d2 \u062c\u0633 \u0645\u06cc\u06ba \u0641\u0646\u06a9\u0634\u0646 \u0631\u06c1\u062a\u0627 \u06c1\u06d2\u06d4 \u067e\u06cc\u063a\u0627\u0645 \u06a9\u06cc \u0641\u06c1\u0631\u0633\u062a\u060c \u0627\u0646 \u067e\u0679 \u0628\u0627\u06a9\u0633\u060c \u0644\u0648\u0688\u0646\u06af \u067e\u0631\u0686\u0645\u060c \u0627\u0648\u0631 \u063a\u0644\u0637\u06cc \u06a9\u06cc \u0633\u0644\u0627\u0679 \u06a9\u06cc \u062d\u06cc\u062b\u06cc\u062a\u06d4 <code>sendMessage<\/code> \u062c\u0628 \u0622\u067e \u0628\u06be\u06cc\u062c\u06cc\u06ba \u0628\u0679\u0646 \u067e\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0648 \u06cc\u06c1 \u0686\u0644\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u06a9\u0645\u0644 \u0641\u0639\u0627\u0644\u06cc\u062a \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u06c1\u06d2: <code>sendMessage<\/code>\u0686\u0644\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u0628\u06be\u06cc \u0635\u0627\u0631\u0641 \u067e\u0631\u0627\u0645\u067e\u0679 \u062f\u0627\u062e\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0628\u06be\u06cc\u062c\u06cc\u06ba \u067e\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u06a9\u0648\u0688 \u06a9\u0627 \u0679\u06a9\u0691\u0627 \u06c1\u06d2 \u062c\u0648 \u0627\u0648\u067e\u0631 \u062f\u06a9\u06be\u0627\u0626\u06d2 \u06af\u0626\u06d2 UI \u06a9\u0648 \u0627\u0633 \u0628\u06cc\u06a9 \u0627\u06cc\u0646\u0688 \u0633\u06d2 \u062c\u0648\u0691\u062a\u0627 \u06c1\u06d2 \u062c\u0633\u06d2 \u06c1\u0645 \u0646\u06d2 \u0627\u0628\u06be\u06cc \u0628\u0646\u0627\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-jsx\">async function sendMessage() {\n    const messageText = input.trim();\n    if (!messageText || loading) return;\n\n    const userMessage = { role: \"user\", text: messageText };\n    setMessages((message) => [...message, userMessage]);\n    setInput(\"\");\n    setLoading(true);\n    setError(null);\n\n    try {\n      const res = await fetch(\"<<your vercel=\"\" serverless=\"\" function=\"\" url=\"\" goes=\"\" here=\"\">>\/api\/chat\", {\n        method: \"POST\",\n        headers: { \"Content-Type\": \"application\/json\" },\n        body: JSON.stringify({ message: messageText, resume })\n      });\n\n      if (!res.ok) {\n        throw new Error(`Failed to get response: ${res.status}`);\n      }\n\n      const reader = res.body.getReader();\n      const decoder = new TextDecoder();\n\n      let fullText = \"\";\n      setMessages((message) => [...message, { role: \"assistant\", text: \"\" }]);\n\n      while (true) {\n        const { value, done } = await reader.read();\n        if (done) break;\n\n        const chunk = decoder.decode(value);\n        fullText += chunk;\n\n        setMessages((message) => {\n          const updated = [...message];\n          updated[updated.length - 1] = { role: \"assistant\", text: fullText };\n          return updated;\n        });\n      }\n\n    } catch (err) {\n      setError(\"Failed to send message. Please try again.\");\n      setMessages((m) => [...m, {\n        role: \"assistant\",\n        text: \"Sorry, I encountered an error. Please try again later.\"\n      }]);\n    } finally {\n      setLoading(false);\n    }\n  }\n<\/your><\/code><\/pre>\n<p>\u06cc\u06c1\u0627\u06ba \u0642\u062f\u0645 \u0628\u06c1 \u0642\u062f\u0645 \u067e\u06cc\u0634\u0631\u0641\u062a \u06c1\u06d2:<\/p>\n<p>\u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u062c\u0628 \u0635\u0627\u0631\u0641 \u0628\u06be\u06cc\u062c\u06cc\u06ba \u067e\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062f\u0631\u062c \u06a9\u0631\u062f\u06c1 \u067e\u06cc\u063a\u0627\u0645 \u06a9\u0648 \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0628\u0627\u0632\u06cc\u0627\u0641\u062a \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code>messages<\/code> \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u062c\u0628 \u0622\u067e \u0627\u0646 \u06a9\u0627 \u0628\u0646\u062f\u0648\u0628\u0633\u062a \u06a9\u0631 \u0644\u06cc\u06ba \u06af\u06d2\u060c \u062a\u0648 \u0648\u06c1 \u0641\u0648\u0631\u0627\u064b \u0686\u06cc\u0679 \u0645\u06cc\u06ba \u0646\u0638\u0631 \u0622\u0626\u06cc\u06ba \u06af\u06d2\u06d4<\/p>\n<p>\u067e\u06be\u0631 \u06c1\u0645 <code>POST<\/code> \u06c1\u0645 \u0633\u06d2 \u067e\u0648\u0686\u06be\u06cc\u06ba <code>\/api\/chat<\/code> \u06cc\u06c1 \u067e\u06cc\u063a\u0627\u0645\u0627\u062a \u0627\u0648\u0631 \u0631\u06cc\u0632\u06cc\u0648\u0645 \u0688\u06cc\u0679\u0627 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0646\u0642\u0637\u06c1 \u06c1\u06d2\u06d4 \u062c\u0628 \u06c1\u0645\u06cc\u06ba \u062c\u0648\u0627\u0628 \u0645\u0644\u06d2 \u06af\u0627\u060c \u06c1\u0645 \u0622\u067e \u06a9\u0648 \u06a9\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u06af\u06d2\u06d4 <code>res.body.getReader()<\/code> \u062d\u0627\u0635\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u0626\u06d2 <code>ReadableStreamDefaultReader<\/code> \u062c\u0648\u0627\u0628\u06cc \u062c\u0633\u0645 \u0645\u06cc\u06ba \u06c1\u0645\u0627\u0631\u06d2 \u067e\u0627\u0633 \u06c1\u06d2\u06d4 <code>TextDecoder<\/code> \u062e\u0627\u0645 \u0628\u0627\u0626\u0679\u0633 \u06a9\u06d2 \u06c1\u0631 \u0679\u06a9\u0691\u06d2 \u06a9\u0648 \u067e\u0691\u06be\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u0645\u062a\u0646 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0648\u06c1\u0627\u06ba \u0633\u06d2 \u06c1\u0645 \u062f\u06c1\u0631\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u06cc\u06a9 \u0648\u0642\u062a \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u062d\u0635\u06c1 \u067e\u0691\u06be\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0633\u06d2 \u0628\u0691\u06be\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u062d\u0635\u06d2 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>fullText<\/code> \u06c1\u0631 \u0628\u0627\u0631 \u062c\u0628 \u0622\u067e \u0633\u0679\u0631\u0646\u06af \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0633 \u067e\u0631 \u0627\u0639\u0627\u062f\u06c1 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u06cc\u06c1 \u0627\u0633 \u0645\u062a\u0646 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0686\u06cc\u0679 \u0645\u06cc\u06ba \u0622\u062e\u0631\u06cc \u067e\u06cc\u063a\u0627\u0645 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0644\u0648\u067e \u0648\u06c1\u06cc \u06c1\u06d2 \u062c\u0648 &quot;\u0679\u0627\u0626\u067e\u0646\u06af&#8221; \u0627\u062b\u0631 \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0622\u067e \u0627\u0648\u067e\u0631 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0634\u0627\u0679 \u0645\u06cc\u06ba \u062f\u06cc\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0686\u06cc\u0679 \u0648\u06cc\u062c\u06cc\u0679 \u0645\u06cc\u06ba \u0627\u0633\u0633\u0679\u0646\u0679 \u06a9\u06d2 \u067e\u06cc\u063a\u0627\u0645\u0627\u062a \u0644\u0641\u0638 \u0628\u06c1 \u0644\u0641\u0638 \u0646\u0645\u0627\u06cc\u0627\u06ba \u0637\u0648\u0631 \u067e\u0631 \u0628\u0691\u06be\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u06cc\u0633\u06d2 \u06c1\u06cc \u0646\u0626\u06d2 \u0679\u06a9\u0691\u06d2 \u0622\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0646\u06c1 \u06a9\u06c1 \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be\u06d4 \u06cc\u06c1 \u067e\u06cc\u0679\u0631\u0646 \u0639\u0627\u0645 \u067e\u06cc\u0679\u0631\u0646 \u0633\u06d2 \u062a\u06be\u0648\u0691\u0627 \u0645\u062e\u062a\u0644\u0641 \u06c1\u06d2. <code>fetch().then(res => res.json())<\/code> \u06a9\u0627\u0644 \u062c\u0627\u0646\u06cc \u067e\u06c1\u0686\u0627\u0646\u06cc \u06c1\u0648\u06af\u06cc\u060c \u0644\u06c1\u0630\u0627 \u0627\u06af\u0631 \u0622\u067e \u0646\u06d2 \u0627\u0633 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06a9\u0628\u06be\u06cc \u0628\u0627\u0632\u06cc\u0627\u0641\u062a \u06a9\u0627 \u062c\u0648\u0627\u0628 \u0646\u06c1\u06cc\u06ba \u0686\u0644\u0627\u06cc\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0622\u067e \u0627\u06cc\u06a9 \u0644\u0645\u062d\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0631\u0648\u06a9\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06ba \u06af\u06d2\u06d4<\/p>\n<h2 id=\"heading-deploying\"> \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc<\/h2>\n<p>\u0627\u0633 \u0628\u0627\u062a \u06a9\u0648 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f \u06a9\u06c1 \u0622\u067e \u06a9\u06d2 \u0627\u0641\u0639\u0627\u0644 \u0627\u0648\u0631 UI \u062f\u0648\u0646\u0648\u06ba \u0645\u0642\u0627\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u0645\u06cc\u06ba \u062a\u06cc\u0646 \u0645\u0631\u0627\u062d\u0644 \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba:<\/p>\n<ol>\n<li>\n<p><strong>Vercel \u0645\u06cc\u06ba \u0645\u0627\u062d\u0648\u0644\u06cc\u0627\u062a\u06cc \u0645\u062a\u063a\u06cc\u0631\u0627\u062a \u0633\u06cc\u0679 \u06a9\u0631\u06cc\u06ba\u06d4<\/strong> \u0627\u067e\u0646\u06d2 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0688\u06cc\u0634 \u0628\u0648\u0631\u0688 \u0645\u06cc\u06ba\u060c \u062a\u0631\u062a\u06cc\u0628\u0627\u062a\u060c \u0645\u0627\u062d\u0648\u0644\u06cc\u0627\u062a\u06cc \u0645\u062a\u063a\u06cc\u0631\u0627\u062a \u067e\u0631 \u062c\u0627\u0626\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0646\u06c1\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>GOOGLE_API_KEY<\/code> \u0648\u06c1\u06cc \u0627\u0642\u062f\u0627\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u062c\u0648 \u0622\u067e \u0645\u0642\u0627\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>CORS \u06a9\u06cc \u0627\u0635\u0644 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 URL \u062d\u0627\u0635\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/strong> \u0628\u06cc\u06a9 \u0627\u06cc\u0646\u0688 \u0645\u06cc\u06ba \u067e\u0648\u0627\u0626\u0646\u0679\u0633 <code>allowCors<\/code>\u0627\u06cc\u0633 <code>Access-Control-Allow-Origin<\/code> \u06cc\u06c1 \u0627\u0635\u0644 \u062a\u0639\u06cc\u0646\u0627\u062a \u06a9\u0631\u062f\u06c1 \u0688\u0648\u0645\u06cc\u0646 \u06a9\u0627 \u06c1\u06cc\u0688\u0631 \u06c1\u06d2\u06d4 \u0633\u0627\u0645\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0633\u0631\u06d2 \u067e\u0631 <code>fetch<\/code> \u0644\u0648\u06a9\u0644 \u06c1\u0648\u0633\u0679 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0627\u0633\u06cc \u062a\u0639\u06cc\u0646\u0627\u062a \u06a9\u0631\u062f\u06c1 \u0641\u0646\u06a9\u0634\u0646 \u06cc\u0648 \u0622\u0631 \u0627\u06cc\u0644 \u06a9\u0648 \u06a9\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u062a\u0642\u0633\u06cc\u0645<\/strong>\u0630\u06cc\u0644 \u06a9\u06d2 \u062f\u0648 \u0627\u062e\u062a\u06cc\u0627\u0631\u0627\u062a \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u062c\u0648 \u0622\u067e \u06a9\u06d2 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u06c1\u0648\u06ba\u06d4<\/p>\n<\/li>\n<\/ol>\n<h4 id=\"heading-option-a-deploy-from-the-cli\">\u0627\u062e\u062a\u06cc\u0627\u0631 A: CLI \u0633\u06d2 \u062a\u0639\u06cc\u0646\u0627\u062a \u06a9\u0631\u06cc\u06ba\u06d4<\/h4>\n<pre><code class=\"language-bash\">npm install -g vercel   # if you haven't already\nvercel login\nvercel --prod\n<\/code><\/pre>\n<p><code>vercel login<\/code>    \u0627\u067e\u0646\u06d2 \u06a9\u0645\u067e\u06cc\u0648\u0679\u0631 \u06a9\u06cc \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0631\u06cc\u06ba\u06d4 <code>vercel --prod<\/code> \u0627\u067e\u0646\u06cc \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u0633\u06d2 \u06c1\u06cc \u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u0645\u06cc\u06ba \u0628\u0646\u0627\u0626\u06cc\u06ba \u0627\u0648\u0631 \u0628\u06be\u06cc\u062c\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u06a9\u06cc \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u062b\u0627\u0644\u06cc \u06c1\u06d2 \u06cc\u0627 \u062c\u0628 \u0622\u067e \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u06c1\u0648\u0646\u06d2 \u067e\u0631 \u0645\u06a9\u0645\u0644 \u06a9\u0646\u0679\u0631\u0648\u0644 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h4 id=\"heading-option-b-deploy-via-github-integration\">\u0622\u067e\u0634\u0646 B: GitHub \u0627\u0646\u0636\u0645\u0627\u0645 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u062a\u0639\u06cc\u0646\u0627\u062a \u06a9\u0631\u06cc\u06ba\u06d4<\/h4>\n<ol>\n<li>\n<p>\u0627\u067e\u0646\u06d2 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u0648 \u0627\u067e\u0646\u06d2 GitHub \u0630\u062e\u06cc\u0631\u06d2 \u0645\u06cc\u06ba \u062f\u06be\u06a9\u06cc\u0644\u06cc\u06ba (\u0627\u06af\u0631 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2)\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0648\u0631\u0633\u0644 \u0688\u06cc\u0634 \u0628\u0648\u0631\u0688 \u0633\u06d2 <strong>\u0646\u06cc\u0627 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/strong> \u067e\u06be\u0631 <strong>\u067e\u0631\u0648\u062c\u06cc\u06a9\u0679<\/strong>\u060c \u067e\u06be\u0631 \u0627\u06cc\u06a9 \u0630\u062e\u06cc\u0631\u06c1 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0648\u0631\u0633\u0644 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0622\u067e \u06a9\u06d2 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u06a9\u0627 \u067e\u062a\u06c1 \u0644\u06af\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4 <strong>\u062a\u0642\u0633\u06cc\u0645<\/strong>.<\/p>\n<\/li>\n<li>\n<p>\u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u0633\u06d2\u060c \u0688\u06cc\u0641\u0627\u0644\u0679 \u0628\u0631\u0627\u0646\u0686 \u0645\u06cc\u06ba \u06c1\u0631 \u062f\u06be\u06a9\u0627 \u0627\u06cc\u06a9 \u062e\u0648\u062f\u06a9\u0627\u0631 \u062f\u0648\u0628\u0627\u0631\u06c1 \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u06a9\u0648 \u0645\u062a\u062d\u0631\u06a9 \u06a9\u0631\u06d2 \u06af\u0627\u06d4<\/p>\n<\/li>\n<\/ol>\n<p>\u0645\u06cc\u06ba \u0646\u06d2 \u06c1\u0645\u06cc\u0634\u06c1 \u0627\u0633 \u0622\u067e\u0634\u0646 \u06a9\u0648 \u062a\u0631\u062c\u06cc\u062d \u062f\u06cc \u06c1\u06d2\u060c \u0627\u06af\u0631 \u0622\u067e \u06a9\u0633\u06cc \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u067e\u0631 \u0641\u0639\u0627\u0644 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0639\u0627\u062f\u06c1 \u06a9\u0631 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba \u062a\u0648 \u06cc\u06c1 \u0632\u06cc\u0627\u062f\u06c1 \u0622\u0633\u0627\u0646 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0622\u067e \u06a9\u0648 \u062e\u0648\u062f deploy \u06a9\u0645\u0627\u0646\u0688 \u06a9\u0648 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06cc\u0627\u062f \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<p>\u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u0645\u06a9\u0645\u0644 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c Vercel \u0622\u067e \u06a9\u0648 \u0622\u067e \u06a9\u06cc \u0627\u06cc\u067e \u06a9\u0627 \u0627\u0635\u0644 URL \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u06d2 \u06af\u0627\u06d4 \u067e\u06c1\u0644\u06d2 \u06a9\u06cc \u0637\u0631\u062d \u06c1\u06cc curl \u06a9\u0645\u0627\u0646\u0688 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u06cc\u0648 \u0622\u0631 \u0627\u06cc\u0644 \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06a9\u06d2 \u0627\u0633 \u06a9\u06cc \u062c\u0627\u0646\u0686 \u06a9\u0631\u06cc\u06ba\u060c \u0627\u0648\u0631 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u06a9\u06cc \u0627\u0633\u0679\u0631\u06cc\u0645\u0646\u06af \u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u0645\u06cc\u06ba \u0635\u062d\u06cc\u062d \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u0627\u0633 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06a9\u06c1 \u0622\u067e \u0627\u0633\u06d2 \u0645\u06a9\u0645\u0644 \u0633\u0645\u062c\u06be\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0622\u067e \u0627\u0633 \u0686\u06cc\u0679 \u0648\u06cc\u062c\u06cc\u0679 \u06a9\u0648 \u06a9\u0633\u06cc \u0627\u06cc\u0633\u06cc \u0648\u06cc\u0628 \u0633\u0627\u0626\u0679 \u0645\u06cc\u06ba \u0627\u06cc\u0645\u0628\u06cc\u0688 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0648 \u0622\u067e \u06a9\u06d2 Vercel \u0627\u06cc\u067e \u0633\u06d2 \u0645\u062e\u062a\u0644\u0641 \u0688\u0648\u0645\u06cc\u0646 \u067e\u0631 \u06c1\u06d2 (\u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0645\u0627\u0631\u06a9\u06cc\u0679\u0646\u06af \u0633\u0627\u0626\u0679 \u067e\u0631 \u0648\u06cc\u062c\u06cc\u0679 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u062c\u0628 \u06a9\u06c1 \u0641\u06cc\u0686\u0631 \u062e\u0648\u062f \u06a9\u06c1\u06cc\u06ba \u0627\u0648\u0631 \u062a\u0639\u06cc\u0646\u0627\u062a \u06c1\u06d2)\u060c CORS \u067e\u0627\u0628\u0646\u062f\u06cc\u0627\u06ba \u0628\u0637\u0648\u0631 \u0688\u06cc\u0641\u0627\u0644\u0679 \u0644\u0627\u06af\u0648 \u06c1\u0648\u06ba \u06af\u06cc\u06d4 \u0628\u0631\u0627\u0624\u0632\u0631 \u062f\u0648\u0633\u0631\u06d2 \u0630\u0631\u0627\u0626\u0639 \u0633\u06d2 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u0631\u0648\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u0633\u0631\u0648\u0631 \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u0627\u0646 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u0646\u06c1 \u062f\u06d2\u06d4<\/p>\n<p>\u0627\u0633\u06d2 \u0635\u062d\u06cc\u062d \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u0633\u0646\u0628\u06be\u0627\u0644\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0622\u067e \u06a9\u06d2 \u0633\u0631\u0648\u0631 \u0644\u06cc\u0633 \u0641\u0646\u06a9\u0634\u0646 \u06a9\u0648 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0627 \u062c\u0648\u0627\u0628 \u062f\u06cc\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2: <code>OPTIONS<\/code> \u0627\u06cc\u06a9 \u067e\u0631\u06cc \u0641\u0644\u0627\u0626\u0679 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062c\u0648 \u0628\u0631\u0627\u0624\u0632\u0631 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0627\u0635\u0644 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2\u06d4 <code>POST<\/code> \u0622\u067e \u06a9\u0648 \u0627\u06cc\u06a9 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0648\u0631 \u0633\u06cc\u0679 \u06a9\u0631\u0646\u0627 \u0636\u0631\u0648\u0631\u06cc \u06c1\u06d2: <code>Access-Control-Allow-Origin<\/code> \u0627\u06cc\u06a9 \u06c1\u06cc\u0688\u0631 \u062c\u0648 \u0627\u0633 \u0688\u0648\u0645\u06cc\u0646 \u0633\u06d2 \u0645\u06cc\u0644 \u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2 \u062c\u0633 \u067e\u0631 \u0648\u06cc\u062c\u06cc\u0679 \u062f\u0631\u0627\u0635\u0644 \u0686\u0644 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4 \u0628\u0633\u06d4 <code>allowCors<\/code> \u0627\u0633 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0627\u0648\u067e\u0631 \u0648\u0627\u0644\u06d2 \u0628\u06cc\u06a9 \u0627\u06cc\u0646\u0688 \u06a9\u0648\u0688 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0631\u06cc\u067e\u0631 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-conclusion\"> \u0646\u062a\u06cc\u062c\u06c1<\/h2>\n<p>\u0633\u0627\u062f\u06c1 \u0645\u062a\u0646 \u06a9\u06d2 \u0679\u06a9\u0691\u0648\u06ba \u06a9\u0648 \u0633\u0679\u0631\u06cc\u0645 \u06a9\u0631\u0646\u0627 \u0648\u06c1 \u0686\u06cc\u0632 \u06c1\u06d2 \u062c\u0648 \u0648\u0631\u0633\u0644 \u0645\u06cc\u06ba \u0686\u06cc\u0679 \u0628\u0648\u0679 \u06a9\u0648 \u062c\u0648\u0627\u0628\u062f\u06c1 \u0645\u062d\u0633\u0648\u0633 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u0635\u0627\u0631\u0641\u06cc\u0646 \u062c\u0648\u0627\u0628\u0627\u062a \u06a9\u0648 \u0628\u062a\u062f\u0631\u06cc\u062c \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u06d2 \u062f\u06cc\u06a9\u06be \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u0627\u0646\u06c1\u06cc\u06ba \u0627\u0633\u06a9\u0631\u06cc\u0646 \u067e\u0631 \u0622\u0626\u0679\u0645\u0632 \u06a9\u06d2 \u0638\u0627\u06c1\u0631 \u06c1\u0648\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0645\u06a9\u0645\u0644 \u062c\u0648\u0627\u0628 \u062a\u06cc\u0627\u0631 \u06c1\u0648\u0646\u06d2 \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0631 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u0646\u0627 \u067e\u0691\u06d2 \u06af\u0627\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0622\u067e \u0627\u0633 \u06a9\u06cc \u062a\u0639\u0645\u06cc\u0631 \u062c\u0627\u0631\u06cc \u0631\u06a9\u06be\u0646\u0627 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0648\u060c \u06cc\u06c1\u0627\u06ba \u063a\u0648\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0686\u06be \u0642\u062f\u0631\u062a\u06cc \u0627\u06af\u0644\u06d2 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u06c1\u06cc\u06ba: \u0627\u0646 \u0645\u06cc\u06ba \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0646\u0642\u0637\u06c1 \u06a9\u06d2 \u063a\u0644\u0637 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0648 \u0631\u0648\u06a9\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0634\u0631\u062d \u06a9\u06cc \u062d\u062f \u06a9\u0648 \u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u0627\u060c KV\u060c Redis \u06cc\u0627 Postgres \u062c\u06cc\u0633\u06d2 \u0628\u0627\u062a \u0686\u06cc\u062a \u06a9\u06cc \u0627\u0633\u062a\u0642\u0627\u0645\u062a \u06a9\u0648 \u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u0627 \u062a\u0627\u06a9\u06c1 \u06cc\u06c1 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u06d2 \u06a9\u06c1 \u0686\u06cc\u0679 \u06a9\u06cc \u0633\u0631\u06af\u0632\u0634\u062a \u0631\u06cc\u0641\u0631\u06cc\u0634 \u067e\u0631 \u0636\u0627\u0626\u0639 \u0646\u06c1 \u06c1\u0648\u060c \u0627\u0648\u0631 \u0648\u06cc\u062c\u06cc\u0679 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0627\u0633\u0679\u0627\u067e \u0628\u0679\u0646 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba \u062a\u0627\u06a9\u06c1 \u0635\u0627\u0631\u0641 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062f\u06c1 \u062c\u0648\u0627\u0628 \u06a9\u0648 \u0645\u0646\u0633\u0648\u062e \u06a9\u0631 \u0633\u06a9\u06d2\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0622\u067e \u0627\u0633 \u0646\u0642\u0637\u06c1 \u0646\u0638\u0631 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0686\u06be \u0628\u0646\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0645\u06cc\u06ba \u0627\u0633 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0633\u0646\u0646\u0627 \u067e\u0633\u0646\u062f \u06a9\u0631\u0648\u06ba \u06af\u0627! \u062c\u06cc\u0645\u0646\u06cc \u0627\u0648\u0631 \u0648\u0631\u0633\u0644 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0622\u067e \u06a9\u06cc\u0627 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u0627 \u0627\u0631\u0627\u062f\u06c1 \u0631\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u061f<\/p>\n<p>\u0627\u0645\u06cc\u062f \u06c1\u06d2 \u06a9\u06c1 \u0622\u067e \u06a9\u0627 \u06c1\u0641\u062a\u06c1 \u062e\u0648\u0634\u06af\u0648\u0627\u0631 \u06af\u0632\u0631\u06d2! <\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u06a9\u0686\u06be \u0645\u06c1\u06cc\u0646\u06d2 \u067e\u06c1\u0644\u06d2 \u0645\u06cc\u06ba \u0646\u06d2 React\u060c Node.js \u0627\u0648\u0631 Vercel Serverless Functions \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u06cc\u06a9 \u0686\u06cc\u0679 \u0628\u0648\u0679 \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u0628\u0646\u0627\u0626\u06cc\u060c \u062c\u0633\u06d2 \u0645\u06cc\u06ba \u0646\u06d2 \u0627\u06cc\u06a9 \u0648\u06cc\u0628 \u0627\u06cc\u067e buildcv.makeadifference.app \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627\u06d4 \u0627\u0633 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u0645\u06cc\u06ba\u060c \u0645\u06cc\u06ba \u0622\u067e \u06a9\u0648 \u0628\u0627\u0644\u06a9\u0644 \u0628\u062a\u0627\u0624\u06ba \u06af\u0627 \u06a9\u06c1 \u0645\u06cc\u06ba \u0646\u06d2 \u0627\u0633\u06d2 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627\u060c \u0628\u06cc\u06a9 \u0627\u06cc\u0646\u0688 \u0633\u0631\u0648\u0631 \u0644\u06cc\u0633 \u0641\u0646\u06a9\u0634\u0646 \u0633\u06d2 \u062c\u0648 \u06af\u0648\u06af\u0644 \u06a9\u06d2 [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":28990,"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-28989","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/28989","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=28989"}],"version-history":[{"count":1,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/28989\/revisions"}],"predecessor-version":[{"id":28991,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/28989\/revisions\/28991"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/media\/28990"}],"wp:attachment":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/media?parent=28989"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/categories?post=28989"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/tags?post=28989"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}