{"id":24962,"date":"2026-06-05T22:09:09","date_gmt":"2026-06-05T22:09:09","guid":{"rendered":"https:\/\/umang.pk\/2026\/06\/05\/qvac-%d8%a7%d9%88%d8%b1-expo-%da%a9%d8%a7-%d8%a7%d8%b3%d8%aa%d8%b9%d9%85%d8%a7%d9%84-%da%a9%d8%b1%d8%aa%db%92-%db%81%d9%88%d8%a6%db%92-%d8%a7%d9%be%d9%86%db%92-%d9%81%d9%88%d9%86-%d9%be%d8%b1-%d9%85\/"},"modified":"2026-06-05T22:09:09","modified_gmt":"2026-06-05T22:09:09","slug":"qvac-%d8%a7%d9%88%d8%b1-expo-%da%a9%d8%a7-%d8%a7%d8%b3%d8%aa%d8%b9%d9%85%d8%a7%d9%84-%da%a9%d8%b1%d8%aa%db%92-%db%81%d9%88%d8%a6%db%92-%d8%a7%d9%be%d9%86%db%92-%d9%81%d9%88%d9%86-%d9%be%d8%b1-%d9%85","status":"publish","type":"post","link":"https:\/\/umang.pk\/en_us\/2026\/06\/05\/qvac-%d8%a7%d9%88%d8%b1-expo-%da%a9%d8%a7-%d8%a7%d8%b3%d8%aa%d8%b9%d9%85%d8%a7%d9%84-%da%a9%d8%b1%d8%aa%db%92-%db%81%d9%88%d8%a6%db%92-%d8%a7%d9%be%d9%86%db%92-%d9%81%d9%88%d9%86-%d9%be%d8%b1-%d9%85\/","title":{"rendered":"QVAC \u0627\u0648\u0631 Expo \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u067e\u0646\u06d2 \u0641\u0648\u0646 \u067e\u0631 \u0645\u0642\u0627\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 LLM \u06a9\u06cc\u0633\u06d2 \u0686\u0644\u0627\u0626\u06cc\u06ba\u06d4"},"content":{"rendered":"\n<div id=\"\">\n<p>\u0645\u062c\u06be\u06d2 \u0648\u06c1 Samsung Galaxy Note 3 Android \u0641\u0648\u0646 \u06cc\u0627\u062f \u06c1\u06d2 \u062c\u0648 \u0645\u06cc\u0631\u06cc \u0648\u0627\u0644\u062f\u06c1 \u0646\u06d2 \u0627\u067e\u0646\u06d2 \u0628\u0644\u06cc\u06a9 \u0628\u06cc\u0631\u06cc \u06a9\u06d2 \u06a9\u06be\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f \u0628\u0686\u067e\u0646 \u0645\u06cc\u06ba \u062e\u0631\u06cc\u062f\u0627 \u062a\u06be\u0627\u06d4 \u0627\u0633 \u0648\u0642\u062a\u060c 16GB \u0633\u0679\u0648\u0631\u06cc\u062c \u0648\u0627\u0644\u06d2 \u0641\u0648\u0646\u0632 \u06a9\u0648 \u062c\u062f\u06cc\u062f \u0679\u06cc\u06a9\u0646\u0627\u0644\u0648\u062c\u06cc \u0633\u0645\u062c\u06be\u0627 \u062c\u0627\u062a\u0627 \u062a\u06be\u0627\u06d4 \u0627\u06cc\u06a9 \u0641\u0648\u0646 \u067e\u0631 \u067e\u0627\u0646\u0686 720p \u0679\u0648\u0631\u06cc\u0646\u0679 \u0641\u0644\u0645\u0648\u06ba \u06a9\u0648 \u0627\u0633\u0679\u0648\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u06c1\u0648\u0646\u0627 \u0627\u06cc\u0645\u0627\u0646\u062f\u0627\u0631\u06cc \u0633\u06d2 \u063a\u06cc\u0631 \u062d\u0642\u06cc\u0642\u06cc \u062a\u06be\u0627\u06d4<\/p>\n<p>\u0627\u0633 \u0648\u0642\u062a\u060c \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u0641\u0644\u06cc\u06af \u0634\u067e \u0622\u0644\u0627\u062a 2GB \u0627\u0648\u0631 8GB \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 RAM \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0622\u062a\u06d2 \u062a\u06be\u06d2 \u0627\u0648\u0631 GPUs \u0627\u0633 \u06a9\u06d2 \u0642\u0631\u06cc\u0628 \u0646\u06c1\u06cc\u06ba \u062a\u06be\u06d2 \u062c\u0648 \u06c1\u0645 \u0622\u062c \u0644\u06d2 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0645\u06cc\u0631\u06cc \u0645\u0627\u06ba \u06a9\u06d2 \u06af\u0644\u06cc\u06a9\u0633\u06cc \u0646\u0648\u0679 3 \u0645\u06cc\u06ba Qualcomm Adreno 330 GPU \u062a\u06be\u0627 \u062c\u0633 \u0645\u06cc\u06ba 32 \u0627\u0646\u0679\u06cc\u06af\u0631\u06cc\u0679\u0688 \u0634\u06cc\u0688\u0631 \u06a9\u0648\u0631 578 \u0645\u06cc\u06af\u0627\u06c1\u0631\u0679\u0632 \u062a\u06a9 \u0686\u0644 \u0631\u06c1\u06d2 \u062a\u06be\u06d2\u060c \u062c\u0648 \u0627\u0633 \u0648\u0642\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u06c1\u062a\u0631\u06cc\u0646 \u062a\u06be\u0627\u06d4<\/p>\n<p>\u0622\u062c\u060c \u06c1\u0645\u0627\u0631\u06cc \u062c\u06cc\u0628\u0648\u06ba \u0645\u06cc\u06ba \u0645\u0648\u062c\u0648\u062f \u0633\u06cc\u0644 \u0641\u0648\u0646\u0632 \u0628\u06c1\u062a \u0632\u06cc\u0627\u062f\u06c1 \u0637\u0627\u0642\u062a\u0648\u0631\u060c \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0648\u062b\u0631\u060c \u0627\u0648\u0631 \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631\u060c \u0648\u06c1 \u06a9\u0627\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u06c1\u06cc\u06ba \u062c\u0646\u06c1\u06cc\u06ba \u0627\u0633 \u0648\u0642\u062a \u0644\u0648\u06af \u0633\u0627\u0626\u0646\u0633 \u0641\u06a9\u0634\u0646 \u0633\u0645\u062c\u06be\u062a\u06d2 \u062a\u06be\u06d2\u06d4<\/p>\n<p>\u0644\u06cc\u06a9\u0646 \u0645\u0627\u06ba \u06a9\u06cc \u0641\u0648\u0646 \u06a9\u0627\u0644 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u06a9\u0627\u0641\u06cc \u06c1\u06d2\u06d4 \u0645\u06cc\u06ba \u0648\u0627\u0642\u0639\u06cc \u0645\u06cc\u06ba \u06cc\u06c1 \u06a9\u06c1\u0646\u06d2 \u06a9\u06cc \u06a9\u0648\u0634\u0634 \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u0648\u06ba \u06a9\u06c1 AI \u0633\u0628\u0633\u06a9\u0631\u067e\u0634\u0646\u0632 \u0627\u0648\u0631 \u0679\u0648\u06a9\u0646\u0632 \u067e\u0631 \u06c1\u0631 \u0645\u0627\u06c1 \u0633\u06cc\u06a9\u0691\u0648\u06ba \u0688\u0627\u0644\u0631 \u062e\u0631\u0686 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u06c1\u0645 \u0627\u0646 \u0646\u0627\u0642\u0627\u0628\u0644 \u06cc\u0642\u06cc\u0646 \u062d\u062f \u062a\u06a9 \u0637\u0627\u0642\u062a\u0648\u0631 \u0622\u0644\u0627\u062a \u0633\u06d2 \u0641\u0627\u0626\u062f\u06c1 \u0627\u0679\u06be\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0648 \u06c1\u0645 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u06c1\u0631 \u0631\u0648\u0632 \u0627\u067e\u0646\u06d2 \u0633\u0627\u062a\u06be \u0631\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u062c\u062f\u06cc\u062f \u0633\u0645\u0627\u0631\u0679 \u0641\u0648\u0646\u0632 \u0645\u06cc\u06ba \u0627\u0628 AI \u0627\u06cc\u06a9\u0633\u0644\u0631\u06cc\u0634\u0646\u060c \u0645\u062a\u0627\u062b\u0631 \u06a9\u0646 \u062a\u06be\u0631\u0645\u0644 \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc\u060c \u0627\u0648\u0631 \u06c1\u0644\u06a9\u06d2 \u0648\u0632\u0646 \u0648\u0627\u0644\u06d2 \u0644\u06cc\u0646\u06af\u0648\u06cc\u062c \u0645\u0627\u0688\u0644\u0632 \u06a9\u0648 \u0645\u0642\u0627\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0627\u0648\u0631 \u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u0622\u0641 \u0644\u0627\u0626\u0646 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u0641\u06cc \u06a9\u0645\u067e\u06cc\u0648\u0679 \u067e\u0627\u0648\u0631 \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u0631\u0627\u0632\u062f\u0627\u0631\u06cc \u0645\u06cc\u06ba \u0627\u0636\u0627\u0641\u06c1\u060c \u0622\u067e \u06a9\u06cc \u0686\u06cc\u0679 \u06a9\u06cc \u0633\u0631\u06af\u0632\u0634\u062a \u067e\u0631 \u0645\u06a9\u0645\u0644 \u06a9\u0646\u0679\u0631\u0648\u0644\u060c \u06a9\u0645 \u062a\u0627\u062e\u06cc\u0631\u060c \u0627\u0648\u0631 \u06a9\u0644\u0627\u0624\u0688 \u0633\u0631\u0648\u0633\u0632 \u067e\u0631 \u0645\u06a9\u0645\u0644 \u0627\u0646\u062d\u0635\u0627\u0631 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 AI \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0635\u0644\u0627\u062d\u06cc\u062a\u06d4<\/p>\n<p>\u0627\u0633 \u0645\u0636\u0645\u0648\u0646 \u0645\u06cc\u06ba\u060c \u06c1\u0645 \u0627\u06cc\u06a9 React Native \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646 \u0628\u0646\u0627\u0626\u06cc\u06ba \u06af\u06d2 \u062c\u0648 LLM \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062a\u0639\u0627\u0645\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0688\u06cc\u0648\u0627\u0626\u0633 \u067e\u0631 \u0686\u0644\u062a\u0627 \u06c1\u06d2\u06d4 \u0646\u0641\u0627\u0630 \u06a9\u06d2 \u0645\u0631\u0627\u06a9\u0632 QVAC \u06a9\u06d2 \u0627\u0631\u062f \u06af\u0631\u062f \u06c1\u06cc\u06ba\u060c \u062e\u0627\u0635 \u0637\u0648\u0631 \u067e\u0631 \u0645\u0642\u0627\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 AI \u0645\u0627\u0688\u0644\u0632 \u06a9\u0648 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u0631\u062f\u06c1 \u0627\u0646\u0641\u0631\u0646\u0633 \u0679\u0648\u0644\u0632 \u06a9\u0627 \u0627\u06cc\u06a9 \u0645\u062c\u0645\u0648\u0639\u06c1\u06d4<\/p>\n<h2 id=\"heading-table-of-contents\">\u0627\u0646\u0688\u06cc\u06a9\u0633<\/h2>\n<h2 id=\"heading-prerequisites\">\u0634\u0631\u0627\u0626\u0637<\/h2>\n<p>\u0627\u0633 \u0645\u0636\u0645\u0648\u0646 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0641\u0627\u0626\u062f\u06c1 \u0627\u0679\u06be\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0622\u067e \u06a9\u0648 \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u0688\u06cc\u0648\u0644\u067e\u0645\u0646\u0679 \u0627\u0648\u0631 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u0631\u062f\u0639\u0645\u0644 \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f\u06cc \u0633\u0645\u062c\u06be \u06c1\u0648\u0646\u06cc \u0686\u0627\u06c1\u06cc\u06d2\u06d4 \u0622\u067e \u06a9\u0648 \u0645\u0648\u0628\u0627\u0626\u0644 \u0688\u0648\u06cc\u0644\u067e\u0631 \u0628\u0646\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 React \u06a9\u0648 \u0633\u0645\u062c\u06be\u0646\u06d2 \u0633\u06d2 \u0622\u067e \u06a9\u0648 \u0628\u06c1\u062a \u0645\u062f\u062f \u0645\u0644\u06d2 \u06af\u06cc\u06d4<\/p>\n<h2 id=\"heading-what-is-qvac\">QVAC \u06a9\u06cc\u0627 \u06c1\u06d2\u061f<\/h2>\n<p>QVAC (QuantumVerse Automatic Computer) \u0627\u06cc\u06a9 \u0645\u0642\u0627\u0645\u06cc-\u067e\u06c1\u0644\u0627 AI \u0627\u0646\u0641\u0631\u0646\u0633 \u067e\u0644\u06cc\u0679 \u0641\u0627\u0631\u0645 \u06c1\u06d2 \u062c\u0633\u06d2 Tether \u0646\u06d2 \u062a\u06cc\u0627\u0631 \u06a9\u06cc\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0645\u0635\u0646\u0648\u0639\u06cc \u0630\u06c1\u0627\u0646\u062a \u06a9\u0648 \u0633\u0646\u0679\u0631\u0644\u0627\u0626\u0632\u0688 \u06a9\u0644\u0627\u0624\u0688 \u0633\u0633\u0679\u0645 \u0633\u06d2 \u062f\u0648\u0631 \u0644\u06d2 \u062c\u0627\u0646\u06d2 \u0627\u0648\u0631 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u06d2 \u0627\u067e\u0646\u06d2 \u0622\u0644\u0627\u062a \u067e\u0631 \u06a9\u0645\u067e\u06cc\u0648\u0679\u06cc\u0634\u0646 \u06a9\u0648 \u0648\u0627\u067e\u0633 \u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u062c\u062f\u06cc\u062f AI \u0679\u0648\u0644\u0632 \u0631\u06cc\u0645\u0648\u0679 \u0633\u0631\u0648\u0631\u0632\u060c API \u06a9\u06cc\u0632\u060c \u0627\u0648\u0631 \u0686\u0646\u062f \u06a9\u0645\u067e\u0646\u06cc\u0648\u06ba \u06a9\u06d2 \u0632\u06cc\u0631 \u0627\u0646\u062a\u0638\u0627\u0645 \u06a9\u0644\u0627\u0624\u0688 \u0627\u0646\u0641\u0631\u0627\u0633\u0679\u0631\u06a9\u0686\u0631 \u067e\u0631 \u0628\u06c1\u062a \u0632\u06cc\u0627\u062f\u06c1 \u0627\u0646\u062d\u0635\u0627\u0631 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u06af\u0631\u0686\u06c1 \u06cc\u06c1 AI \u06a9\u0648 \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u060c \u06cc\u06c1 \u0631\u0627\u0632\u062f\u0627\u0631\u06cc\u060c \u0633\u0646\u0633\u0631\u0634\u067e\u060c \u0648\u06cc\u0646\u0688\u0631 \u0644\u0627\u06a9 \u0627\u0646\u060c \u0627\u0646\u0679\u0631\u0646\u06cc\u0679 \u067e\u0631 \u0627\u0646\u062d\u0635\u0627\u0631\u060c \u0627\u0648\u0631 \u0635\u0627\u0631\u0641 \u06a9\u06d2 \u0688\u06cc\u0679\u0627 \u06a9\u06cc \u0645\u0644\u06a9\u06cc\u062a \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0628\u06be\u06cc \u0628\u0691\u06d2 \u062e\u062f\u0634\u0627\u062a \u06a9\u0648 \u062c\u0646\u0645 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u06c1\u0631 \u067e\u0631\u0627\u0645\u067e\u0679\u060c \u06af\u0641\u062a\u06af\u0648\u060c \u06cc\u0627 \u0627\u067e \u0644\u0648\u0688 \u06a9\u0631\u062f\u06c1 \u0641\u0627\u0626\u0644 \u0627\u06a9\u062b\u0631 \u062a\u06be\u0631\u0688 \u067e\u0627\u0631\u0679\u06cc \u0633\u0631\u0648\u0631\u0632 \u0633\u06d2 \u06af\u0632\u0631\u062a\u06cc \u06c1\u06d2 \u062c\u0633 \u067e\u0631 \u0622\u067e \u06a9\u0627 \u0628\u06c1\u062a \u06a9\u0645 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>QVAC \u06a9\u0648 AI \u0645\u0627\u0688\u0644\u0632 \u0627\u0648\u0631 \u0627\u06cc\u062c\u0646\u0679\u0633 \u06a9\u0648 \u0633\u0645\u0627\u0631\u0679 \u0641\u0648\u0646\u0632\u060c \u0644\u06cc\u067e \u0679\u0627\u067e\u0633 \u0627\u0648\u0631 \u0627\u06cc\u0645\u0628\u06cc\u0688\u0688 \u0633\u0633\u0679\u0645 \u062c\u06cc\u0633\u06d2 \u0622\u0644\u0627\u062a \u067e\u0631 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06d2 \u06a9\u0631 \u0627\u0646 \u0645\u0633\u0627\u0626\u0644 \u06a9\u0648 \u062d\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u060c \u0686\u0627\u06c1\u06d2 \u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u0622\u0641 \u0644\u0627\u0626\u0646 \u06c1\u0648\u06d4 \u0630\u0627\u062a\u06cc \u06af\u0641\u062a\u06af\u0648 \u0627\u0648\u0631 \u062d\u0633\u0627\u0633 \u0688\u06cc\u0679\u0627 \u06a9\u0644\u0627\u0624\u0688 \u067e\u0631 \u0628\u06be\u06cc\u062c\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u0635\u0627\u0631\u0641 \u0627\u067e\u0646\u06d2 \u06c1\u0627\u0631\u0688 \u0648\u06cc\u0626\u0631 \u067e\u0631 \u0645\u0642\u0627\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06c1\u0631 \u0686\u06cc\u0632 \u06a9\u0648 \u0633\u0646\u0628\u06be\u0627\u0644 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1 \u067e\u0644\u06cc\u0679 \u0641\u0627\u0631\u0645 \u067e\u06cc\u0626\u0631 \u0679\u0648 \u067e\u06cc\u0626\u0631 (P2P) \u06a9\u0645\u06cc\u0648\u0646\u06cc\u06a9\u06cc\u0634\u0646 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0648\u06a9\u0646\u062f\u0631\u06cc\u0642\u0631\u062a \u06a9\u0648 \u0628\u06be\u06cc \u0627\u067e\u0646\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0645\u0631\u06a9\u0632\u06cc \u0628\u0646\u06cc\u0627\u062f\u06cc \u0688\u06be\u0627\u0646\u0686\u06d2 \u067e\u0631 \u0627\u0646\u062d\u0635\u0627\u0631 \u06a9\u0648 \u06a9\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0646\u0627\u06a9\u0627\u0645\u06cc \u06a9\u06d2 \u0648\u0627\u062d\u062f \u0646\u06a9\u0627\u062a \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0646\u0642\u0637\u06c1 \u0646\u0638\u0631 AI \u0633\u0633\u0679\u0645\u0632 \u06a9\u0648 \u0632\u06cc\u0627\u062f\u06c1 \u0646\u062c\u06cc\u060c \u0644\u0686\u06a9\u062f\u0627\u0631\u060c \u062e\u0648\u062f \u0645\u062e\u062a\u0627\u0631 \u0627\u0648\u0631 \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062e\u0627\u0635 \u0637\u0648\u0631 \u067e\u0631 \u0645\u062d\u062f\u0648\u062f \u0627\u0646\u0679\u0631\u0646\u06cc\u0679 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u06cc\u0627 \u0688\u06cc\u0679\u0627 \u067e\u0631\u0627\u0626\u06cc\u0648\u06cc\u0633\u06cc \u06a9\u06d2 \u0633\u062e\u062a \u062a\u0642\u0627\u0636\u0648\u06ba \u0648\u0627\u0644\u06d2 \u0645\u0627\u062d\u0648\u0644 \u0645\u06cc\u06ba\u06d4<\/p>\n<p>\u0633\u0627\u062f\u06c1 \u0644\u0641\u0638\u0648\u06ba \u0645\u06cc\u06ba\u060c QVAC \u0627\u0633 \u0628\u0627\u062a \u06a9\u0648 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0648\u062c\u0648\u062f \u06c1\u06d2 \u06a9\u06c1 \u0635\u0627\u0631\u0641\u06cc\u0646 \u062d\u0642\u06cc\u0642\u06cc \u0645\u0639\u0646\u0648\u06ba \u0645\u06cc\u06ba AI \u06a9\u06d2 \u0645\u0627\u0644\u06a9 \u06c1\u06cc\u06ba\u06d4 \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u06cc\u06c1 \u0645\u0642\u0627\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0628\u0637\u0648\u0631 \u0688\u06cc\u0641\u0627\u0644\u0679 \u0646\u062c\u06cc\u060c \u0627\u0648\u0631 \u0645\u0631\u06a9\u0632\u06cc \u06a9\u0646\u0679\u0631\u0648\u0644 \u0633\u06d2 \u0622\u0632\u0627\u062f \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-environment-setup\">\u062a\u0631\u062c\u06cc\u062d\u0627\u062a<\/h2>\n<p>\u0639\u0645\u0644 \u06a9\u0648 \u062a\u06cc\u0632 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u06c1\u0645 \u0646\u06d2 \u062a\u0645\u0627\u0645 \u0627\u0646\u062d\u0635\u0627\u0631 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9 React Native Starter \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u062a\u06cc\u0627\u0631 \u06a9\u06cc\u0627 \u06c1\u06d2\u06d4 \u0644\u06cc\u06a9\u0646 \u0686\u0648\u0646\u06a9\u06c1 \u06cc\u06c1 \u06c1\u0645\u0627\u0631\u0627 \u0645\u0631\u06a9\u0632\u06cc \u0645\u0648\u0636\u0648\u0639 \u06c1\u06d2\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u06c1\u0645 \u0627\u0633 \u0645\u0636\u0645\u0648\u0646 \u0645\u06cc\u06ba QVAC \u06a9\u0648 \u0627\u0646\u0633\u0679\u0627\u0644 \u0627\u0648\u0631 \u0633\u06cc\u0679 \u0627\u067e \u06a9\u0631\u06cc\u06ba \u06af\u06d2\u06d4 \u06cc\u06c1\u0627\u06ba \u0630\u062e\u06cc\u0631\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0627\u06cc\u06a9 \u0644\u0646\u06a9 \u06c1\u06d2:<\/p>\n<p>\u0645\u062a\u0628\u0627\u062f\u0644 \u0637\u0648\u0631 \u067e\u0631\u060c \u0622\u067e \u0646\u06cc\u0686\u06d2 \u062f\u06cc \u06af\u0626\u06cc \u06a9\u0645\u0627\u0646\u0688 \u06a9\u0648 \u0686\u0644\u0627 \u06a9\u0631 \u0633\u0679\u0627\u0631\u0679 \u0627\u067e \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u0648 \u06a9\u0644\u0648\u0646 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba:<\/p>\n<pre><code class=\"language-shell\">git clone --branch ft-ui-implementation --single-branch https:\/\/github.com\/DjibrilM\/QVAC-offline-Chatbot-Article-Project-\n<\/code><\/pre>\n<h3 id=\"heading-qvac-installation\">HVAC \u06a9\u06cc \u062a\u0646\u0635\u06cc\u0628<\/h3>\n<p>SDK \u06a9\u0648 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0645\u0627\u0646\u0688 \u06a9\u0648 \u0686\u0644\u0627\u0626\u06cc\u06ba: <code>npm i @qvac\/sdk<\/code>. \u0622\u067e \u062c\u0648 \u0628\u06be\u06cc \u067e\u06cc\u06a9\u06cc\u062c \u0645\u06cc\u0646\u06cc\u062c\u0631 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba \u0628\u0644\u0627 \u062c\u06be\u062c\u06be\u06a9 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u0645\u06cc\u06ba \u0686\u06cc\u0632\u0648\u06ba \u06a9\u0648 \u0622\u0633\u0627\u0646 \u0631\u06a9\u06be\u0648\u06ba \u06af\u0627\u06d4 <code>npm.<\/code><\/p>\n<p>\u067e\u06be\u0631 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06c1\u0645 \u0645\u0631\u062a\u0628\u06c1 \u0627\u0646\u062d\u0635\u0627\u0631: <code>package.json<\/code>:<\/p>\n<pre><code class=\"language-json\">{\n  \"dependencies\": {\n    \"@qvac\/sdk\": \"^0.7.0\",\n+   \"bare-rpc\": \"^1.0.0\", \n    \"expo\": \"~54.0.33\",\n    \"expo-status-bar\": \"~3.0.9\",\n    \"react\": \"19.1.0\",\n    \"react-native\": \"0.81.5\",\n+   \"react-native-bare-kit\": \"^0.11.5\"  \n  },\n  \"devDependencies\": {\n    \"@types\/react\": \"~19.1.0\",\n    \"bare-pack\": \"^1.5.1\", \n    \"typescript\": \"~5.9.2\"\n  }\n}\n<\/code><\/pre>\n<p>\u062f\u0631\u062c \u0630\u06cc\u0644 \u0627\u0636\u0627\u0641\u06cc \u0627\u0646\u062d\u0635\u0627\u0631 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba:<\/p>\n<pre><code class=\"language-shell\">npx expo install expo-file-system expo-build-properties expo-device\n<\/code><\/pre>\n<p>\u067e\u06be\u0631 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u06ba\u06d4 <code>expo-build-properties<\/code> \u0627\u0648\u0631 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba <code>@qvac\/sdk\/expo-plugin<\/code> \u06a9\u0648 <code>plugins<\/code> \u0622\u067e \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0645 <code>app.json<\/code>:<\/p>\n<pre><code class=\"language-json\">{\n  \"expo\": {\n    \"plugins\": [\n      \"expo-router\",\n      \"@qvac\/sdk\/expo-plugin\",\n      [\n        \"expo-splash-screen\",\n        {\n          \"backgroundColor\": \"#208AEF\",\n          \"android\": {\n            \"image\": \".\/assets\/images\/splash-icon.png\",\n            \"imageWidth\": 76\n          }\n        }\n      ]\n    ]\n  }\n}\n<\/code><\/pre>\n<p>\u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0645\u0627\u0646\u0688 \u06a9\u0648 \u0686\u0644\u0627 \u06a9\u0631 \u0645\u0642\u0627\u0645\u06cc \u0645\u0627\u0688\u06cc\u0648\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba:<\/p>\n<pre><code class=\"language-shell\">npx expo prebuild\n<\/code><\/pre>\n<p><strong>\u0645\u06cc\u0645\u0648:<\/strong> QVAC \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0637\u0648\u0631 \u067e\u0631 llama.cpp \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0635\u0644\u0627\u062d \u06a9\u06cc \u0636\u0631\u0648\u0631\u06cc\u0627\u062a \u0627\u0648\u0631 \u0628\u0646\u06cc\u0627\u062f\u06cc \u06c1\u0627\u0631\u0688\u0648\u06cc\u0626\u0631 \u0627\u0646\u062d\u0635\u0627\u0631 \u06a9\u06cc \u0648\u062c\u06c1 \u0633\u06d2\u060c QVAC SDK \u0627\u06cc\u0645\u0648\u0644\u06cc\u0679\u0631 \u067e\u0631 \u0646\u06c1\u06cc\u06ba \u0686\u0644\u062a\u0627 \u06c1\u06d2\u06d4 \u0622\u067e \u06a9\u0648 \u0627\u0633 \u06a9\u06cc \u062c\u0627\u0646\u0686 \u0627\u06cc\u06a9 \u062d\u0642\u06cc\u0642\u06cc \u062c\u0633\u0645\u0627\u0646\u06cc \u0688\u06cc\u0648\u0627\u0626\u0633 \u067e\u0631 \u06a9\u0631\u0646\u06cc \u0686\u0627\u06c1\u06cc\u06d2 \u062c\u0633 \u0645\u06cc\u06ba \u0688\u06cc\u0648\u0644\u067e\u0631 \u0645\u0648\u0688 \u0641\u0639\u0627\u0644 \u06c1\u0648\u06d4<\/p>\n<p>\u0627\u06cc\u067e \u06a9\u0648 \u062d\u0642\u06cc\u0642\u06cc \u0688\u06cc\u0648\u0627\u0626\u0633 \u067e\u0631 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0686\u0644\u0627\u0626\u06cc\u06ba:<\/p>\n<pre><code class=\"language-shell\"># For Android:\nnpx expo run:android --device\n\n# For iOS:\nnpx expo run:ios --device\n<\/code><\/pre>\n<h2 id=\"heading-model-management\">\u0645\u0627\u0688\u0644 \u0645\u06cc\u0646\u062c\u0645\u0646\u0679<\/h2>\n<p>QVAC \u0645\u0627\u0688\u0644 \u0645\u06cc\u0646\u062c\u0645\u0646\u0679 \u0633\u0633\u0679\u0645 \u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u0644\u0648\u06a9\u0644 \u0641\u0631\u0633\u0679 \u0627\u0648\u0631 \u0688\u06cc \u0633\u06cc\u0646\u0679\u0631\u0644\u0627\u0626\u0632\u0688 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0641\u0627\u0626\u0644 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688\u0632 \u0633\u06d2 \u0644\u06d2 \u06a9\u0631 \u0644\u0627\u0626\u0641 \u0633\u0627\u0626\u06cc\u06a9\u0644 \u0622\u067e\u0679\u06cc\u0645\u0627\u0626\u0632\u06cc\u0634\u0646 \u062a\u06a9 \u067e\u0648\u0631\u06d2 \u0644\u0627\u0626\u0641 \u0633\u0627\u0626\u06cc\u06a9\u0644 \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u06a9\u0644\u06cc\u0646 \u06cc\u0648\u0679\u06cc\u0644\u06cc\u0679\u06cc API \u06a9\u06d2 \u067e\u06cc\u0686\u06be\u06d2 \u06c1\u0631 \u0686\u06cc\u0632 \u06a9\u0627 \u062e\u0644\u0627\u0635\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-resumable-amp-deduplicated-downloading-downloadasset\">\u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u0627\u0648\u0631 \u0646\u0642\u0644 \u0634\u062f\u06c1 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688\u0632 (<code>downloadAsset<\/code>)<\/h3>\n<p>\u0645\u0642\u0627\u0645\u06cc \u0688\u0633\u06a9 \u067e\u0631 \u0639\u0627\u0631\u0636\u06cc \u0679\u06a9\u0691\u0648\u06ba \u06a9\u0648 \u0644\u06a9\u06be\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u0646\u06cc\u0679 \u0648\u0631\u06a9 \u06a9\u06cc \u0628\u0646\u062f\u0634 \u06c1\u0648\u062a\u06cc \u06c1\u06d2 \u062a\u0648\u060c \u062c\u0632\u0648\u06cc \u0641\u0627\u0626\u0644\u06cc\u06ba \u0645\u062d\u0641\u0648\u0638 \u06c1\u0648\u062c\u0627\u062a\u06cc \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u06af\u0644\u06cc \u06a9\u0627\u0644 \u067e\u0631 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06c1\u0648\u062c\u0627\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 \u0645\u0632\u06cc\u062f \u0628\u0631\u0622\u06ba\u060c \u062c\u0628 \u0645\u062a\u0639\u062f\u062f \u0627\u062c\u0632\u0627\u0621 \u0627\u06cc\u06a9 \u06c1\u06cc \u0627\u062b\u0627\u062b\u06c1 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u06cc\u06a9 \u0648\u0642\u062a \u0688\u0627\u0624\u0646 \u0644\u0648\u0688\u0632 \u06a9\u0648 \u06a9\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 QVAC \u0627\u06cc\u06a9 \u0646\u06cc\u0679 \u0648\u0631\u06a9 \u0627\u0633\u0679\u0631\u06cc\u0645 \u0633\u06d2 \u0627\u0633\u0679\u0631\u06cc\u0645\u0646\u06af \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-memory-lifecycle-loadmodel-amp-unloadmodel\">\u0645\u06cc\u0645\u0648\u0631\u06cc \u0644\u0627\u0626\u0641 \u0633\u0627\u0626\u06cc\u06a9\u0644 (<code>loadModel<\/code> \u0627\u0648\u0631 <code>unloadModel<\/code>)<\/h3>\n<p><code>loadModel<\/code>    \u0627\u062b\u0627\u062b\u06c1 \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u0648 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0645\u06cc\u0645\u0648\u0631\u06cc \u0645\u06cc\u06ba \u0646\u0642\u0634\u06c1 \u0628\u0646\u0627\u0626\u06cc\u06ba\u060c \u0627\u0646\u06c1\u06cc\u06ba \u06c1\u0627\u0631\u0688\u0648\u06cc\u0626\u0631 \u0627\u06c1\u062f\u0627\u0641 (\u062c\u06cc\u0633\u06d2 \u0688\u06cc\u0648\u0627\u0626\u0633 GPU) \u067e\u0631 \u0646\u0642\u0634\u06c1 \u0628\u0646\u0627\u0626\u06cc\u06ba\u060c \u0627\u0648\u0631 \u067e\u06be\u0631 \u0639\u0627\u0631\u0636\u06cc \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u0648 \u0628\u06d2 \u0646\u0642\u0627\u0628 \u06a9\u0631\u06cc\u06ba\u06d4 <code>modelId<\/code>. \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0645\u0642\u0627\u0645\u06cc \u0627\u0646\u062f\u0627\u0632\u06c1 \u0645\u0648\u0628\u0627\u0626\u0644 \u0622\u0644\u0627\u062a \u067e\u0631 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u06cc\u0645\u0648\u0631\u06cc \u06c1\u06d2\u06d4 <code>unloadModel<\/code> \u0688\u0633\u06a9 \u067e\u0631 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u06cc \u06af\u0626\u06cc \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0633\u0633\u0679\u0645 \u0631\u06cc\u0645 \u06a9\u0648 \u0622\u0632\u0627\u062f \u06a9\u0631 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-custom-models\">\u0627\u067e\u0646\u06cc \u0645\u0631\u0636\u06cc \u06a9\u06d2 \u0645\u0627\u0688\u0644<\/h3>\n<p>QVAC \u0627\u0648\u067e\u0646 \u0633\u0648\u0631\u0633 AI \u0645\u0627\u062d\u0648\u0644\u06cc\u0627\u062a\u06cc \u0646\u0638\u0627\u0645 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u0639\u0644\u06cc \u0645\u0637\u0627\u0628\u0642\u062a \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06cc\u06c1 llama.cpp \u06a9\u06cc \u0628\u06c1\u062a\u0631\u06cc\u0646 \u0634\u0627\u062e\u0648\u06ba \u067e\u0631 \u0627\u0646\u062d\u0635\u0627\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0622\u067e \u062d\u0633\u0628 \u0636\u0631\u0648\u0631\u062a \u0645\u0627\u0688\u0644 \u0644\u0648\u0688 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0627\u0631\u0627\u062f\u06c1 \u0631\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba \u06a9\u06c1 \u06cc\u06c1 \u062f\u0631\u062c \u0630\u06cc\u0644 \u0645\u0639\u06cc\u0627\u0631\u0627\u062a \u067e\u0631 \u0639\u0645\u0644 \u067e\u06cc\u0631\u0627 \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p><strong>\u0641\u0627\u0631\u0645\u06cc\u0679:<\/strong> GGUF \u0645\u06cc\u06ba \u06c1\u0648\u0646\u0627 \u0636\u0631\u0648\u0631\u06cc \u06c1\u06d2 (<code>.gguf<\/code>) \u0641\u0627\u0631\u0645\u06cc\u0679\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u06a9\u0648\u0627\u0646\u0679\u0627\u0626\u0632\u06cc\u0634\u0646:<\/strong> \u062c\u0628 \u0645\u0648\u0628\u0627\u0626\u0644 \u0627\u0648\u0631 \u06a9\u0646\u0627\u0631\u06d2 \u06a9\u06cc \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc\u0648\u06ba \u06a9\u06cc \u0628\u0627\u062a \u06c1\u0648 \u062a\u0648 \u06c1\u0645\u06cc\u0634\u06c1 \u062a\u0631\u062c\u06cc\u062d \u062f\u06cc\u06ba\u06d4 <code>Q4_0<\/code>\u060c <code>Q4_K_M<\/code>\u06cc\u0627 <code>Q8_0<\/code> \u0627\u0633\u06d2 \u0627\u067e\u0646\u06d2 \u0645\u0648\u0628\u0627\u0626\u0644 \u06c1\u0627\u0631\u0688\u0648\u06cc\u0626\u0631 RAM \u06a9\u06cc \u0631\u06a9\u0627\u0648\u0679\u0648\u06ba \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0645\u062d\u0641\u0648\u0638 \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u0641\u0679 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<h2 id=\"heading-complete-implementation\">\u0645\u06a9\u0645\u0644 \u0646\u0641\u0627\u0630<\/h2>\n<p>\u0627\u0628 \u0622\u0626\u06cc\u06d2 UI \u06a9\u0646\u0679\u06cc\u0646\u0631 \u0644\u06d2 \u0622\u0624\u0679\u060c \u0635\u0627\u0631\u0641 \u06a9\u06d2 \u062a\u0639\u0627\u0645\u0644 \u06a9\u06cc \u062d\u0627\u0644\u062a\u060c \u0645\u0627\u0688\u0644 \u0644\u0627\u0626\u0641 \u0633\u0627\u0626\u06cc\u06a9\u0644 \u0633\u06cc\u0679\u0646\u06af\u0632\u060c \u0627\u0648\u0631 \u0631\u06cc\u0626\u0644 \u0679\u0627\u0626\u0645 \u0627\u0646\u0641\u0631\u0646\u0633 \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af \u06a9\u0648 \u0627\u06cc\u06a9 \u0645\u0631\u0628\u0648\u0637 \u0688\u06be\u0627\u0646\u0686\u06d2 \u0645\u06cc\u06ba \u06cc\u06a9\u062c\u0627 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2\u060c \u0628\u0646\u06cc\u0627\u062f\u06cc \u0641\u0627\u0626\u0644 \u06a9\u0648\u0688\u0628\u06cc\u0633 \u0645\u0646\u0637\u0642 \u06a9\u0648 \u0645\u06a9\u0645\u0644 \u0646\u0641\u0627\u0630 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u067e\u0646\u06cc \u0622\u0626\u0679\u0645 \u0641\u0627\u0626\u0644 \u06a9\u0648 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0648\u0688 \u0633\u06d2 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba:<\/p>\n<pre><code class=\"language-typescript\">import { ChatInput } from \"@\/components\/chat-input\";\nimport { ChatMessage, Message } from \"@\/components\/chat-message\";\nimport { ModelLoader } from \"@\/components\/model-loader\";\nimport { Button } from \"@\/components\/ui\/button\";\nimport { Text } from \"@\/components\/ui\/text\";\n\nimport {\n  completion,\n  deleteCache,\n  downloadAsset,\n  LLAMA_3_2_1B_INST_Q4_0,\n  loadModel,\n  type ModelProgressUpdate,\n  VERBOSITY,\n} from \"@qvac\/sdk\";\nimport { SymbolView } from \"expo-symbols\";\nimport { useEffect, useRef, useState } from \"react\";\n\nimport {\n  Clipboard,\n  KeyboardAvoidingView,\n  Platform,\n  SafeAreaView,\n  ScrollView,\n  View,\n} from \"react-native\";\n\nconst makeId = () => Math.random().toString(36).substring(2, 9);\n\nexport default function Index() {\n  const [messages, setMessages] = useState<message>([]);\n  const [input, setInput] = useState(\"\");\n  const [isGenerating, setIsGenerating] = useState(false);\n\n  \/\/ Model loading state\n  const [modelId, setModelId] = useState<string null=\"\">(null);\n  const [isModelLoaded, setIsModelLoaded] = useState(false);\n  const [isDownloading, setIsDownloading] = useState(false);\n  const [downloadProgress, setDownloadProgress] = useState(0);\n\n  const scrollViewRef = useRef<scrollview>(null);\n  const messagesRef = useRef<message>([]);\n\n  useEffect(() => {\n    messagesRef.current = messages;\n  }, [messages]);\n\n  const startDownload = () => {\n    setIsDownloading(true);\n    setupModel();\n  };\n\n  \/\/ Automatically scroll to bottom when messages list updates\n  useEffect(() => {\n    if (scrollViewRef.current) {\n      setTimeout(() => {\n        scrollViewRef.current?.scrollToEnd({ animated: true });\n      }, 100);\n    }\n  }, [messages, isGenerating]);\n\n  const copyToClipboard = (text: string) => {\n    if (Platform.OS === \"web\") {\n      navigator.clipboard.writeText(text);\n    } else {\n      Clipboard.setString(text);\n    }\n  };\n\n  const setupModel = async () => {\n    try {\n      setIsDownloading(true);\n      setDownloadProgress(0);\n      \n      \/\/ 1. Local download path execution\n      await downloadAsset({\n        assetSrc: LLAMA_3_2_1B_INST_Q4_0,\n        onProgress: (progress: ModelProgressUpdate) => {\n          setDownloadProgress(progress.percentage \/ 100);\n        },\n      });\n\n      setDownloadProgress(1);\n\n      \/\/ 2. Load model into runtime memory\n      const loadedModel = await loadModel({\n        modelSrc: LLAMA_3_2_1B_INST_Q4_0,\n        modelType: \"llm\",\n        modelConfig: {\n          device: \"gpu\",\n          ctx_size: 2048,\n          verbosity: VERBOSITY.ERROR,\n        },\n      });\n\n      setModelId(loadedModel);\n      setIsModelLoaded(true);\n      setIsDownloading(false);\n    } catch (e: any) {\n      console.error(\"Error setting up model:\", e);\n      setIsDownloading(false);\n    }\n  };\n\n  async function handleSend() {\n    \/\/ Guard against sending before the model is ready or while generating.\n    if (!modelId || isGenerating) return;\n\n    const trimmed = input.trim();\n    if (!trimmed) return;\n\n    setInput(\"\");\n    setIsGenerating(true);\n\n    \/\/ Append user message and a placeholder assistant message for streaming.\n    const userMsg: Message = {\n      id: makeId(),\n      role: \"user\",\n      content: trimmed,\n    };\n\n    const assistantId = makeId();\n\n    const assistantMsg: Message = {\n      id: assistantId,\n      role: \"assistant\",\n      content: \"\",\n    };\n\n    setMessages((prev) => [...prev, userMsg, assistantMsg]);\n\n    try {\n      \/\/ Build chat history for the completion request.\n      const history = [...messagesRef.current, userMsg].map((m) => ({\n        role: m.role,\n        content: m.content,\n      }));\n\n      \/\/ Run a streaming completion and update the last assistant bubble.\n      const result = completion({\n        modelId,\n        history,\n        stream: true,\n      });\n\n      let acc = \"\";\n\n      for await (const token of result.tokenStream) {\n        acc += token;\n\n        \/\/ Update only the last assistant message content\n        setMessages((prev) =>\n          prev.map((m) =>\n            m.id === assistantId ? { ...m, content: acc } : m\n          )\n        );\n      }\n\n      \/\/ Optional: Log completion performance stats\n      try {\n        const stats = await result.stats;\n        console.log(\"&#x1f4ca; Completion stats:\", stats);\n      } catch {}\n\n    } catch (e: any) {\n      \/\/ Show any error in the assistant bubble.\n      setMessages((prev) =>\n        prev.map((m) =>\n          m.id === assistantId\n            ? { ...m, content: `&#x274c; Error: ${e?.message ?? String(e)}` }\n            : m\n        )\n      );\n    } finally {\n      setIsGenerating(false);\n    }\n  }\n\n  if (!isModelLoaded) {\n    return (\n      <modelloader ondownload=\"{startDownload}\" isdownloading=\"{isDownloading}\" progress=\"{downloadProgress}\"\/>\n    );\n  }\n\n  return (\n    <safeareaview classname=\"flex-1 bg-background\">\n      <keyboardavoidingview behavior=\"{Platform.OS\" :=\"\" classname=\"flex-1\">\n        <view classname=\"flex-row items-center justify-between p-4 border-b border-border\">\n          <view classname=\"flex-row items-center gap-2\">\n            <view classname=\"w-2 h-2 rounded-full bg-emerald-500\"\/>\n            <text classname=\"font-semibold text-lg\">Local Llama 3.2<\/text>\n          <\/view>\n          <text classname=\"text-xs text-muted-foreground\">Offline Engine<\/text>\n        <\/view>\n\n        <scrollview ref=\"{scrollViewRef}\" classname=\"flex-1 px-4\" contentcontainerstyle=\"{{\" paddingvertical:=\"\" gap:=\"\">\n          {messages.filter(m => m.content !== \"\" || m.role === \"assistant\").map((msg) => (\n            <chatmessage key=\"{msg.id}\" message=\"{msg}\" oncopy=\"{()\"> copyToClipboard(msg.content)}\n            \/>\n          ))}\n        <\/chatmessage><\/scrollview>\n\n        <chatinput value=\"{input}\" onchangetext=\"{setInput}\" onsend=\"{handleSend}\" disabled=\"{isGenerating}\" placeholder=\"{isGenerating\" :=\"\" a=\"\" message...=\"\"\/>\n      <\/keyboardavoidingview>\n    <\/safeareaview>\n  );\n}\n<\/message><\/scrollview><\/string><\/message><\/code><\/pre>\n<h3 id=\"heading-codebase-breakdown\">\u06a9\u0648\u0688 \u0628\u06cc\u0633 \u062a\u062c\u0632\u06cc\u06c1<\/h3>\n<p>\u0622\u0626\u06cc\u06d2 \u0627\u0633 \u067e\u0631 \u06af\u06c1\u0631\u06cc \u0646\u0638\u0631 \u0688\u0627\u0644\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u06cc\u06c1 \u0645\u0631\u0628\u0648\u0637 \u062c\u0632\u0648 \u06a9\u0633 \u0637\u0631\u062d \u0645\u0642\u0627\u0645\u06cc \u0645\u0627\u0688\u0644 \u06a9\u06d2 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u0627\u0648\u0631 \u0631\u06cc\u0626\u0644 \u0679\u0627\u0626\u0645 UI \u0627\u0633\u0679\u0631\u06cc\u0645\u0646\u06af \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h4 id=\"heading-1-tracking-model-state-amp-asynchronous-synchronization\">1. \u0645\u0627\u0688\u0644 \u0627\u0633\u0679\u06cc\u0679 \u0679\u0631\u06cc\u06a9\u0646\u06af \u0627\u0648\u0631 \u063a\u06cc\u0631 \u0645\u0637\u0627\u0628\u0642\u062a \u067e\u0630\u06cc\u0631 \u06c1\u0645 \u0622\u06c1\u0646\u06af\u06cc\u06d4<\/h4>\n<p>\u0635\u0627\u0631\u0641 \u06a9\u0627 \u0633\u0627\u0645\u0646\u0627 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u06a9\u06cc \u062d\u0627\u0644\u062a \u0627\u0648\u0631 \u062c\u0632\u0648 \u06a9\u06cc \u062c\u0691 \u0645\u06cc\u06ba \u0628\u0646\u06cc\u0627\u062f\u06cc QVAC \u0631\u0646 \u0679\u0627\u0626\u0645 \u06c1\u06cc\u0646\u0688\u0644 \u062f\u0648\u0646\u0648\u06ba \u06a9\u0648 \u0679\u0631\u06cc\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-typescript\">const [messages, setMessages] = useState<message>([]);\nconst [modelId, setModelId] = useState<string null=\"\">(null);\nconst [isModelLoaded, setIsModelLoaded] = useState(false);\nconst [isDownloading, setIsDownloading] = useState(false);\nconst [downloadProgress, setDownloadProgress] = useState(0);\n<\/string><\/message><\/code><\/pre>\n<p>\u0631\u06cc \u0627\u06cc\u06a9\u0679 \u06a9\u06d2 \u0627\u0633\u0679\u06cc\u0679 \u0633\u06cc\u0679\u0631\u0632 \u063a\u06cc\u0631 \u0645\u0637\u0627\u0628\u0642\u062a \u067e\u0630\u06cc\u0631 \u06c1\u06cc\u06ba\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u0633\u0679\u0631\u06cc\u0645\u0646\u06af \u0644\u0648\u067e\u0633 \u063a\u0644\u0637\u06cc \u0633\u06d2 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0686\u06cc\u0679 \u0644\u0627\u06af \u06a9\u06cc \u0628\u0627\u0633\u06cc \u0646\u0645\u0627\u0626\u0646\u062f\u06af\u06cc \u06a9\u0648 \u067e\u06a9\u0691 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u0633 \u0633\u06d2 \u0628\u0686\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0642\u0627\u0628\u0644 \u062a\u0628\u062f\u06cc\u0644\u06cc <code>messagesRef<\/code> \u06cc\u06c1 \u0641\u0639\u0627\u0644 \u0633\u06cc\u0634\u0646 \u06a9\u06cc \u062d\u06cc\u062b\u06cc\u062a \u06a9\u06d2 \u0644\u0626\u06d2 \u062d\u0642\u06cc\u0642\u06cc \u0648\u0642\u062a \u06a9\u06d2 \u0648\u0627\u062d\u062f \u0630\u0631\u06cc\u0639\u06c1 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-typescript\">const messagesRef = useRef<message>([]);\n\nuseEffect(() => {\n  messagesRef.current = messages;\n}, [messages]);\n<\/message><\/code><\/pre>\n<h4 id=\"heading-2-orchestrating-download-amp-memory-instantiation\">2. \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u0627\u0648\u0631 \u0645\u06cc\u0645\u0648\u0631\u06cc \u0627\u0646\u0633\u0679\u06cc\u0679\u06cc\u0634\u0646 \u06a9\u0648 \u0627\u06cc\u0688\u062c\u0633\u0679 \u06a9\u0631\u06cc\u06ba\u06d4<\/h4>\n<p>\u062c\u0628 \u0635\u0627\u0631\u0641 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u0628\u0679\u0646 \u0627\u06cc\u06a9\u0634\u0646 \u0679\u0631\u06af\u0631 \u062f\u0628\u0627\u062a\u0627 \u06c1\u06d2 \u062a\u0648 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0686\u0644\u062a\u06cc \u06c1\u06d2\u06d4 <code>setupModel()<\/code>. \u06cc\u06c1 \u062e\u0635\u0648\u0635\u06cc\u062a \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0627\u0645\u0648\u06ba \u06a9\u0648 \u0645\u0642\u0627\u0645\u06cc \u0627\u0633\u0679\u0648\u0631\u06cc\u062c \u06a9\u06cc\u0634\u0646\u06af \u0627\u0648\u0631 \u0641\u0639\u0627\u0644 \u06c1\u0627\u0631\u0688\u0648\u06cc\u0626\u0631 \u0645\u062e\u062a\u0635 \u062f\u0631\u062c\u0627\u062a \u0645\u06cc\u06ba \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-typescript\">await downloadAsset({\n  assetSrc: LLAMA_3_2_1B_INST_Q4_0,\n  onProgress: (progress: ModelProgressUpdate) => {\n    setDownloadProgress(progress.percentage \/ 100);\n  },\n});\n<\/code><\/pre>\n<ul>\n<li>\n<p><strong>\u0627\u0633\u0679\u0648\u0631\u06cc\u062c \u06a9\u06cc \u0645\u0637\u0627\u0628\u0642\u062a \u067e\u0630\u06cc\u0631\u06cc:<\/strong> <code>downloadAsset<\/code>    \u0645\u062e\u0635\u0648\u0635 \u0645\u0639\u06cc\u0627\u0631\u06cc \u0645\u0627\u0688\u0644 \u06a9\u06d2 \u062f\u0633\u062a\u062e\u0637 \u06a9\u0648 \u0645\u0648\u0628\u0627\u0626\u0644 \u0688\u06cc\u0648\u0627\u0626\u0633 \u0688\u0633\u06a9 \u0641\u0627\u0626\u0644 \u0645\u06cc\u06ba \u062f\u0631\u0622\u0645\u062f \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u067e\u06c1\u0646\u0686 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u06c1\u0627\u0631\u0688 \u0648\u06cc\u0626\u0631 \u0628\u0627\u0626\u0646\u0688\u0646\u06af:<\/strong> \u0627\u06af\u0631 \u06cc\u06c1 \u0688\u0633\u06a9 \u067e\u0631 \u0645\u062d\u0641\u0648\u0638 \u06c1\u06d2\u06d4 <code>loadModel<\/code> \u0627\u0646\u062c\u0646 \u06a9\u06d2 \u0631\u0646 \u0679\u0627\u0626\u0645 \u06a9\u0648 \u062c\u06af\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0648\u0691\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"language-typescript\">const loadedModel = await loadModel({\n  modelSrc: LLAMA_3_2_1B_INST_Q4_0,\n  modelType: \"llm\",\n  modelConfig: {\n    device: \"gpu\",\n    ctx_size: 2048,\n    verbosity: VERBOSITY.ERROR,\n  },\n});\n<\/code><\/pre>\n<p>\u06af\u0632\u0631\u0646\u0627 <code>device: \"gpu\"<\/code> \u06cc\u06c1 QVAC \u06a9\u0648 \u0633\u0645\u0627\u0631\u0679 \u0641\u0648\u0646 \u06a9\u06d2 \u06af\u0631\u0627\u0641\u06a9\u0633 \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af \u06c1\u0627\u0631\u0688\u0648\u06cc\u0626\u0631 \u0641\u0646 \u062a\u0639\u0645\u06cc\u0631 \u0645\u06cc\u06ba \u06c1\u0627\u0631\u0688 \u0648\u06cc\u0626\u0631 \u06a9\u06d2 \u062a\u06cc\u0632 \u062f\u0627\u0646\u06d2 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06cc \u06c1\u062f\u0627\u06cc\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0633 \u0633\u06d2 \u062a\u06cc\u0632 \u0631\u0641\u062a\u0627\u0631 \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u06a9\u06d2 \u0645\u06cc\u0679\u0631\u06a9\u0633 \u06a9\u0648 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0627\u0633 \u06a9\u06d2 \u06a9\u06c1 \u0627\u06cc\u06a9 \u0633\u0633\u062a \u0633\u06cc \u067e\u06cc \u06cc\u0648 \u0644\u0648\u067e \u0645\u06cc\u06ba \u0639\u0645\u0644\u062f\u0631\u0622\u0645\u062f \u06a9\u0648 \u0644\u0627\u06a9 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/p>\n<h4 id=\"heading-3-pipeline-ingest-amp-streaming-generation-loop\">3. \u067e\u0627\u0626\u067e \u0644\u0627\u0626\u0646 \u0627\u062f\u062e\u0627\u0644 \u0627\u0648\u0631 \u0627\u0633\u0679\u0631\u06cc\u0645\u0646\u06af \u062a\u062e\u0644\u06cc\u0642 \u0644\u0648\u067e<\/h4>\n<p>\u0627\u06cc\u06a9 \u0628\u0627\u0631 \u062c\u0628 \u0635\u0627\u0631\u0641 \u06a9\u06cc \u062a\u0635\u062f\u06cc\u0642 \u0627\u0633 \u0628\u0627\u062a \u06a9\u06cc \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u06a9\u06c1 \u067e\u0631\u0627\u0645\u067e\u0679 \u062a\u06cc\u0627\u0631 \u06c1\u06d2: <code>handleSend()<\/code> \u0679\u0648\u06a9\u0646 \u0622\u0624\u0679 \u067e\u0679 \u0633\u06cc\u06af\u0645\u0646\u0679 \u06a9\u06cc\u067e\u0686\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0635\u0627\u0631\u0641 \u06a9\u0627 \u0628\u0644\u0628\u0644\u06c1 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u06ba \u0627\u0648\u0631 \u0627\u06cc\u06a9 \u062e\u0627\u0644\u06cc \u062b\u0627\u0646\u0648\u06cc \u067e\u0644\u06cc\u0633 \u06c1\u0648\u0644\u0688\u0631 \u06a9\u0627\u0631\u0688 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<p>\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06d2 \u0646\u0642\u0634\u06d2 \u062d\u0648\u0627\u0644\u06c1 \u062c\u0627\u062a \u06a9\u0627 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u062a\u0631\u062c\u0645\u06c1 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>messagesRef.current<\/code> \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0633\u0627\u062e\u062a\u06cc \u062a\u0627\u0631\u06cc\u062e \u06a9\u06d2 \u0646\u062d\u0648 \u06a9\u06d2 \u0633\u0627\u062a\u06be:<\/p>\n<pre><code class=\"language-typescript\">const result = completion({\n  modelId,\n  history,\n  stream: true,\n});\n<\/code><\/pre>\n<p>\u06a9\u06d2 \u0633\u0627\u062a\u06be <code>stream: true<\/code> \u0641\u0639\u0627\u0644 \u06c1\u0648\u0646\u06d2 \u067e\u0631\u060c QVAC \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062a\u06be\u0631\u06cc\u0688\u0632 \u06a9\u0648 \u0644\u0645\u0628\u06d2 \u0633\u0679\u0631\u0646\u06af \u0633\u06cc\u06a9\u0648\u06cc\u0646\u0633 \u06a9\u06d2 \u0645\u06a9\u0645\u0644 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0627\u0646\u062a\u0638\u0627\u0631 \u0645\u06cc\u06ba \u062a\u0627\u062e\u06cc\u0631 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u06d2 \u06af\u0627\u06d4 \u0627\u0633 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u06cc\u06c1 \u0627\u06cc\u06a9 \u063a\u06cc\u0631 \u0645\u0637\u0627\u0628\u0642\u062a \u067e\u0630\u06cc\u0631 \u0631\u06cc\u067e\u06cc\u0679 \u0627\u06cc\u0628\u0644 \u0627\u0633\u0679\u0631\u06cc\u0645 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0646\u0626\u06cc \u0627\u067e \u0688\u06cc\u0679\u0633 \u06a9\u0648 \u0622\u06af\u06d2 \u0628\u0691\u06be\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-typescript\">let acc = \"\";\n\nfor await (const token of result.tokenStream) {\n  acc += token;\n\n  setMessages((prev) =>\n    prev.map((m) =>\n      m.id === assistantId ? { ...m, content: acc } : m\n    )\n  );\n}\n<\/code><\/pre>\n<p>\u0644\u0648\u067e \u0679\u0648\u06a9\u0646 \u0679\u06cc\u06a9\u0633\u0679 \u0645\u062a\u063a\u06cc\u0631 \u06a9\u0648 \u062c\u0645\u0639 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0645\u06cc\u06ba \u0679\u0631\u06cc\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 (<code>acc<\/code>) \u067e\u0644\u06cc\u0633 \u06c1\u0648\u0644\u0688\u0631 \u0634\u0646\u0627\u062e\u062a \u06a9\u0646\u0646\u062f\u06c1 (<code>assistantId<\/code>)\u06d4 \u06cc\u06c1 \u0635\u0627\u0631\u0641 \u06a9\u06d2 \u0641\u0632\u06cc\u06a9\u0644 \u0688\u06cc\u0648\u0627\u0626\u0633 \u06c1\u0627\u0631\u0688 \u0648\u06cc\u0626\u0631 \u067e\u0631 \u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u0622\u0641 \u0644\u0627\u0626\u0646 \u0686\u0644\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u062a\u06cc\u0632 \u0631\u0641\u062a\u0627\u0631 \u0679\u0627\u0626\u067e\u0646\u06af \u0627\u06cc\u0646\u06cc\u0645\u06cc\u0634\u0646 \u06a9\u0627 \u062a\u062c\u0631\u0628\u06c1 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-conclusion\">\u0646\u062a\u06cc\u062c\u06c1<\/h2>\n<p>\u0645\u0642\u0627\u0645\u06cc-\u067e\u06c1\u0644\u06cc AI \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632 \u06a9\u06cc \u062a\u0639\u0645\u06cc\u0631 \u0627\u0628 \u0635\u0631\u0641 \u0627\u0639\u0644\u06cc\u0670 \u062f\u0631\u062c\u06d2 \u06a9\u06d2 \u0688\u06cc\u0633\u06a9 \u0679\u0627\u067e\u0633 \u06cc\u0627 \u062e\u0635\u0648\u0635\u06cc \u0644\u06cc\u0628\u0632 \u062a\u06a9 \u0645\u062d\u062f\u0648\u062f \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u062c\u06cc\u0633\u0627 \u06a9\u06c1 \u06c1\u0645 \u0646\u06d2 \u062f\u06cc\u06a9\u06be\u0627 \u06c1\u06d2\u060c \u062c\u0648 \u0627\u0633\u0645\u0627\u0631\u0679 \u0641\u0648\u0646\u0632 \u06c1\u0645 \u06c1\u0631 \u0631\u0648\u0632 \u0627\u067e\u0646\u06cc \u062c\u06cc\u0628\u0648\u06ba \u0645\u06cc\u06ba \u0631\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0646 \u0645\u06cc\u06ba \u06a9\u0627\u0641\u06cc \u06a9\u0645\u067e\u06cc\u0648\u0679\u06cc\u0634\u0646\u0644 \u067e\u0627\u0648\u0631 \u0627\u0648\u0631 \u06c1\u0627\u0631\u0688 \u0648\u06cc\u0626\u0631 \u0627\u06cc\u06a9\u0633\u0644\u0631\u06cc\u0679\u0631 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0648 \u0627\u0639\u0644\u06cc\u0670 \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u0648\u0627\u0644\u06d2 \u0644\u06cc\u0646\u06af\u0648\u06cc\u062c \u0645\u0627\u0688\u0644\u0632 \u06a9\u0648 \u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u0622\u0641 \u0644\u0627\u0626\u0646 \u0686\u0644\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06c1\u0645 \u0646\u06d2 React Native \u0627\u0648\u0631 QVAC SDK \u06a9\u0627 \u0641\u0627\u0626\u062f\u06c1 \u0627\u0679\u06be\u0627 \u06a9\u0631 \u0631\u0648\u0627\u06cc\u062a\u06cc \u06a9\u0644\u0627\u0624\u0688 \u067e\u0631 \u0645\u0646\u062d\u0635\u0631 \u0641\u0646 \u062a\u0639\u0645\u06cc\u0631 \u06a9\u0648 \u06a9\u0627\u0645\u06cc\u0627\u0628\u06cc \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0646\u0638\u0631\u0627\u0646\u062f\u0627\u0632 \u06a9\u06cc\u0627\u06d4 \u06cc\u06c1 \u067e\u06cc\u0686\u06cc\u062f\u06c1 \u0633\u0631\u0648\u0631 \u0627\u0646\u0641\u0631\u0627\u0633\u0679\u0631\u06a9\u0686\u0631\u060c API \u06a9\u0644\u06cc\u062f\u06cc \u0646\u0638\u0645 \u0648 \u0646\u0633\u0642\u060c \u0627\u0648\u0631 \u0628\u0627\u0631 \u0628\u0627\u0631 \u0686\u0644\u0646\u06d2 \u0648\u0627\u0644\u06cc \u0679\u0648\u06a9\u0646 \u0633\u0628\u0633\u06a9\u0631\u067e\u0634\u0646 \u0641\u06cc\u0633 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0622\u067e \u06a9\u06d2 \u0622\u0644\u06d2 \u067e\u0631 \u06c1\u0627\u0626\u067e\u0631 \u067e\u0631\u0633\u0646\u0644\u060c \u06a9\u0645 \u0644\u06cc\u0679\u0646\u0633\u06cc \u0627\u0633\u0679\u0631\u06cc\u0645\u0646\u06af \u0686\u06cc\u0679 \u06a9\u0627 \u062a\u062c\u0631\u0628\u06c1 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0686\u0648\u0646\u06a9\u06c1 \u0627\u0648\u067e\u0646 \u0633\u0648\u0631\u0633 \u0645\u0627\u0688\u0644 \u0633\u0627\u0626\u0632 \u0645\u06cc\u06ba \u0633\u06a9\u0691\u062a\u06d2 \u0631\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0641\u0639\u0627\u0644\u06cc\u062a \u0645\u06cc\u06ba \u0627\u0636\u0627\u0641\u06c1 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u060c \u06a9\u0646\u0627\u0631\u06d2 \u06a9\u0627 \u0627\u0646\u062f\u0627\u0632\u06c1 \u0627\u0646 \u0688\u0648\u06cc\u0644\u067e\u0631\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0636\u0631\u0648\u0631\u06cc \u0641\u0646 \u062a\u0639\u0645\u06cc\u0631 \u0628\u0646 \u062c\u0627\u0626\u06d2 \u06af\u0627 \u062c\u0648 \u0631\u0627\u0632\u062f\u0627\u0631\u06cc\u060c \u0622\u0641 \u0644\u0627\u0626\u0646 \u0644\u0686\u06a9 \u0627\u0648\u0631 \u0644\u0627\u06af\u062a \u06a9\u06cc \u062a\u0627\u062b\u06cc\u0631 \u06a9\u0648 \u062a\u0631\u062c\u06cc\u062d \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06a9\u0645\u067e\u06cc\u0648\u0679\u0646\u06af \u067e\u0627\u0648\u0631 \u0648\u0627\u067e\u0633 \u0622 \u06af\u0626\u06cc \u06c1\u06d2 \u062c\u06c1\u0627\u06ba \u0633\u06d2 \u0627\u0633 \u06a9\u0627 \u062a\u0639\u0644\u0642 \u06c1\u06d2: \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u06d2 \u06c1\u0627\u062a\u06be \u0645\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-resources-amp-further-reading\">\u0648\u0633\u0627\u0626\u0644 \u0627\u0648\u0631 \u0627\u0636\u0627\u0641\u06cc \u0648\u0633\u0627\u0626\u0644<\/h3>\n<p>\u0645\u0642\u0627\u0645\u06cc \u062a\u062e\u0645\u06cc\u0646\u06c1 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0645\u0632\u06cc\u062f \u062c\u0627\u0646\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0633\u0648\u0631\u0633 \u06a9\u0648\u0688 \u06a9\u0627 \u0645\u0639\u0627\u0626\u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u060c \u06cc\u0627 \u0645\u0648\u0628\u0627\u0626\u0644 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u0632 \u06a9\u06cc \u062c\u062f\u06cc\u062f \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u06cc\u06ba\u060c \u062f\u0631\u062c \u0630\u06cc\u0644 \u0648\u0633\u0627\u0626\u0644 \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p><strong>QVAC \u0627\u06cc\u06a9\u0633\u067e\u0648 \u0627\u0646\u0679\u06cc\u06af\u0631\u06cc\u0634\u0646 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644<\/strong> &#8211; \u0627\u06cc\u06a9\u0633\u067e\u0648 \u06a9\u06d2 \u0627\u0646\u062f\u0631 QVAC \u06a9\u0648 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0646\u06d2 \u0627\u0648\u0631 \u0645\u0642\u0627\u0645\u06cc \u0645\u0627\u062d\u0648\u0644\u06cc\u0627\u062a\u06cc \u0646\u0638\u0627\u0645 \u06a9\u0648 \u0631\u062f \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u0627\u0636\u0627\u0628\u0637\u06c1 \u0645\u0631\u062d\u0644\u06c1 \u0648\u0627\u0631 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 GitHub \u0630\u062e\u06cc\u0631\u06c1<\/strong> &#8211; \u0645\u06a9\u0645\u0644 \u0633\u0648\u0631\u0633 \u06a9\u0648\u0688 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u062d\u0627\u0635\u0644 \u06a9\u0631\u06cc\u06ba\u060c \u0628\u0634\u0645\u0648\u0644 UI \u0644\u06d2 \u0622\u0624\u0679 \u06a9\u06d2 \u0627\u062c\u0632\u0627\u0621\u060c \u0633\u0679\u0627\u0631\u0679 \u0627\u067e \u062a\u06be\u06cc\u0645\u060c \u0627\u0648\u0631 \u0627\u0633 \u06af\u0627\u0626\u06cc\u0688 \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc \u06af\u0626\u06cc \u0645\u06a9\u0645\u0644 \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646 \u0641\u0627\u0626\u0644\u0632\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>Llama.cpp \u0622\u0641\u06cc\u0634\u0644 \u0631\u06cc\u067e\u0648\u0632\u0679\u0631\u06cc<\/strong> &#8211; \u0628\u0646\u06cc\u0627\u062f\u06cc \u0627\u0646\u0641\u0631\u0646\u0633 \u0627\u0646\u062c\u0646 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0645\u0632\u06cc\u062f \u062c\u0627\u0646\u06cc\u06ba \u062c\u0648 QVAC \u06a9\u06d2 \u06c1\u0627\u0631\u0688\u0648\u06cc\u0626\u0631 \u062a\u06cc\u0632 \u0631\u0641\u062a\u0627\u0631 \u0645\u0642\u0627\u0645\u06cc \u0639\u0645\u0644 \u06a9\u0648 \u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u06af\u0644\u06d2 \u0645\u0644\u0646\u06d2 \u0648\u0627\u0644\u0627 \u0686\u06c1\u0631\u06c1 GGUF \u0645\u0627\u0688\u0644<\/strong> &#8211; \u06c1\u0632\u0627\u0631\u0648\u06ba \u0627\u0648\u067e\u0646 \u0633\u0648\u0631\u0633 \u06a9\u0648\u0627\u0646\u0679\u0627\u0626\u0632\u06cc\u0634\u0646 \u0645\u0627\u0688\u0644\u0632 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u06cc\u06ba \u062c\u0646\u06c1\u06cc\u06ba \u0622\u067e \u0627\u067e\u0646\u06cc \u0645\u0642\u0627\u0645\u06cc \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0645\u06cc\u06ba \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u0627\u0648\u0631 \u062a\u062c\u0631\u0628\u06c1 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0645\u062c\u06be\u06d2 \u0648\u06c1 Samsung Galaxy Note 3 Android \u0641\u0648\u0646 \u06cc\u0627\u062f \u06c1\u06d2 \u062c\u0648 \u0645\u06cc\u0631\u06cc \u0648\u0627\u0644\u062f\u06c1 \u0646\u06d2 \u0627\u067e\u0646\u06d2 \u0628\u0644\u06cc\u06a9 \u0628\u06cc\u0631\u06cc \u06a9\u06d2 \u06a9\u06be\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f \u0628\u0686\u067e\u0646 \u0645\u06cc\u06ba \u062e\u0631\u06cc\u062f\u0627 \u062a\u06be\u0627\u06d4 \u0627\u0633 \u0648\u0642\u062a\u060c 16GB \u0633\u0679\u0648\u0631\u06cc\u062c \u0648\u0627\u0644\u06d2 \u0641\u0648\u0646\u0632 \u06a9\u0648 \u062c\u062f\u06cc\u062f \u0679\u06cc\u06a9\u0646\u0627\u0644\u0648\u062c\u06cc \u0633\u0645\u062c\u06be\u0627 \u062c\u0627\u062a\u0627 \u062a\u06be\u0627\u06d4 \u0627\u06cc\u06a9 \u0641\u0648\u0646 \u067e\u0631 \u067e\u0627\u0646\u0686 720p \u0679\u0648\u0631\u06cc\u0646\u0679 \u0641\u0644\u0645\u0648\u06ba \u06a9\u0648 \u0627\u0633\u0679\u0648\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u06c1\u0648\u0646\u0627 \u0627\u06cc\u0645\u0627\u0646\u062f\u0627\u0631\u06cc \u0633\u06d2 \u063a\u06cc\u0631 \u062d\u0642\u06cc\u0642\u06cc \u062a\u06be\u0627\u06d4 [&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-24962","post","type-post","status-publish","format-standard","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/24962","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=24962"}],"version-history":[{"count":0,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/24962\/revisions"}],"wp:attachment":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/media?parent=24962"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/categories?post=24962"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/tags?post=24962"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}