{"id":18976,"date":"2025-05-07T00:00:19","date_gmt":"2025-05-06T20:30:19","guid":{"rendered":"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/"},"modified":"2025-05-07T00:00:19","modified_gmt":"2025-05-06T20:30:19","slug":"%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama","status":"publish","type":"post","link":"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/","title":{"rendered":"\u0686\u06af\u0648\u0646\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u0645 Local \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc: \u0628\u0627 Qwen 3 \u0648 Ollama \u0646\u0645\u0627\u06cc\u0646\u062f\u06af\u0627\u0646 Rag \u0648 AI \u0631\u0627\u06cc\u06af\u0627\u0646 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\"><p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0633\u0631\u0641\u0635\u0644\u0647\u0627\u06cc \u0645\u0637\u0644\u0628<\/p>\n<\/div><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d9%be%db%8c%d8%b4_%d9%86%db%8c%d8%a7%d8%b2%d9%87%d8%a7%db%8c\" >\u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d9%81%d9%87%d8%b1%d8%b3%d8%aa_%d9%85%d8%b7%d8%a7%d9%84%d8%a8\" >\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#local_%d9%82%d8%af%d8%b1%d8%aa_ai_%d8%a8%d8%a7_qwen_3_%d9%88_ollama\" >Local  \u0642\u062f\u0631\u062a AI \u0628\u0627 Qwen 3 \u0648 Ollama<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d8%a7%d9%88%d9%84%d8%a7%d9%85%d8%a7_%d8%b4%d9%85%d8%a7_local_%d8%af%d8%b1%d9%88%d8%a7%d8%b2%d9%87_llm\" >\u0627\u0648\u0644\u0627\u0645\u0627: \u0634\u0645\u0627 Local \u062f\u0631\u0648\u0627\u0632\u0647 LLM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d9%86%d9%82%d8%b4%d9%87_%d8%b1%d8%a7%d9%87_%d8%a2%d9%85%d9%88%d8%b2%d8%b4\" >\u0646\u0642\u0634\u0647 \u0631\u0627\u0647 \u0622\u0645\u0648\u0632\u0634<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%da%86%da%af%d9%88%d9%86%d9%87_%d8%ae%d9%88%d8%af_%d8%b1%d8%a7_%d8%aa%d9%86%d8%b8%db%8c%d9%85_%da%a9%d9%86%db%8c%d9%85_local_%d8%a2%d8%b2%d9%85%d8%a7%db%8c%d8%b4%da%af%d8%a7%d9%87_ai\" >\u0686\u06af\u0648\u0646\u0647 \u062e\u0648\u062f \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u0645 Local \u0622\u0632\u0645\u0627\u06cc\u0634\u06af\u0627\u0647 AI<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d8%a7%d9%88%d9%84%d8%a7%d9%85%d8%a7_%d8%b1%d8%a7_%d9%86%d8%b5%d8%a8_%da%a9%d9%86%db%8c%d8%af\" >\u0627\u0648\u0644\u0627\u0645\u0627 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d9%85%d8%af%d9%84_qwen_3_%d8%ae%d9%88%d8%af_%d8%b1%d8%a7_%d8%a7%d9%86%d8%aa%d8%ae%d8%a7%d8%a8_%da%a9%d9%86%db%8c%d8%af\" >\u0645\u062f\u0644 QWEN 3 \u062e\u0648\u062f \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#qwen_3_%d8%b1%d8%a7_%d8%a8%d8%a7_%d8%a7%d9%88%d9%84%d9%85%d8%a7_%d8%a8%da%a9%d8%b4%db%8c%d8%af_%d9%88_%d8%a7%d8%ac%d8%b1%d8%a7_%da%a9%d9%86%db%8c%d8%af\" >Qwen 3 \u0631\u0627 \u0628\u0627 \u0627\u0648\u0644\u0645\u0627 \u0628\u06a9\u0634\u06cc\u062f \u0648 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d9%85%d8%ad%db%8c%d8%b7_%d9%be%d8%a7%db%8c%d8%aa%d9%88%d9%86_%d8%ae%d9%88%d8%af_%d8%b1%d8%a7_%d8%aa%d9%86%d8%b8%db%8c%d9%85_%da%a9%d9%86%db%8c%d8%af\" >\u0645\u062d\u06cc\u0637 \u067e\u0627\u06cc\u062a\u0648\u0646 \u062e\u0648\u062f \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d8%b1%d9%88%d8%b4_%d8%b3%d8%a7%d8%ae%d8%aa_local_%d8%b3%db%8c%d8%b3%d8%aa%d9%85_rag_%d8%a8%d8%a7_qwen_3\" >\u0631\u0648\u0634 \u0633\u0627\u062e\u062a Local \u0633\u06cc\u0633\u062a\u0645 RAG \u0628\u0627 QWEN 3<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d9%85%d8%b1%d8%ad%d9%84%d9%87_1_%d8%af%d8%a7%d8%af%d9%87_%d9%87%d8%a7%db%8c_%d8%ae%d9%88%d8%af_%d8%b1%d8%a7_%d8%a2%d9%85%d8%a7%d8%af%d9%87_%da%a9%d9%86%db%8c%d8%af\" >\u0645\u0631\u062d\u0644\u0647 1: \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0622\u0645\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d9%85%d8%b1%d8%ad%d9%84%d9%87_2_%d8%a7%d8%b3%d9%86%d8%a7%d8%af_%d8%b1%d8%a7_%d8%af%d8%b1_%d9%be%d8%a7%db%8c%d8%aa%d9%88%d9%86_%d8%a8%d8%a7%d8%b1%da%af%db%8c%d8%b1%db%8c_%da%a9%d9%86%db%8c%d8%af\" >\u0645\u0631\u062d\u0644\u0647 2: \u0627\u0633\u0646\u0627\u062f \u0631\u0627 \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d9%85%d8%b1%d8%ad%d9%84%d9%87_3_%d8%a7%d8%b3%d9%86%d8%a7%d8%af_%d8%aa%d9%82%d8%b3%db%8c%d9%85_%d8%b4%d8%af%d9%87\" >\u0645\u0631\u062d\u0644\u0647 3: \u0627\u0633\u0646\u0627\u062f \u062a\u0642\u0633\u06cc\u0645 \u0634\u062f\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d9%85%d8%b1%d8%ad%d9%84%d9%87_4_%d9%85%d8%af%d9%84_%d8%aa%d8%b9%d8%a8%db%8c%d9%87_%d8%b1%d8%a7_%d8%a7%d9%86%d8%aa%d8%ae%d8%a7%d8%a8_%d9%88_%d9%be%db%8c%da%a9%d8%b1%d8%a8%d9%86%d8%af%db%8c_%da%a9%d9%86%db%8c%d8%af\" >\u0645\u0631\u062d\u0644\u0647 4: \u0645\u062f\u0644 \u062a\u0639\u0628\u06cc\u0647 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d9%85%d8%b1%d8%ad%d9%84%d9%87_5_%d8%aa%d9%86%d8%b8%db%8c%d9%85_%da%a9%d9%86%db%8c%d8%af_local_%d9%81%d8%b1%d9%88%d8%b4%da%af%d8%a7%d9%87_%d9%88%da%a9%d8%aa%d9%88%d8%b1_chromadb\" >\u0645\u0631\u062d\u0644\u0647 5: \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f Local \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0648\u06a9\u062a\u0648\u0631 (Chromadb)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d9%85%d8%b1%d8%ad%d9%84%d9%87_6_%d8%a7%d8%b3%d9%86%d8%a7%d8%af_%d9%81%d9%87%d8%b1%d8%b3%d8%aa_%d8%ac%d8%a7%d8%b3%d8%a7%d8%b2%db%8c_%d9%88_%d8%b0%d8%ae%db%8c%d8%b1%d9%87\" >\u0645\u0631\u062d\u0644\u0647 6: \u0627\u0633\u0646\u0627\u062f \u0641\u0647\u0631\u0633\u062a (\u062c\u0627\u0633\u0627\u0632\u06cc \u0648 \u0630\u062e\u06cc\u0631\u0647)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d9%85%d8%b1%d8%ad%d9%84%d9%87_7_%d8%b2%d9%86%d8%ac%db%8c%d8%b1%d9%87_%d9%be%d8%a7%d8%b1%da%86%d9%87_%d8%b1%d8%a7_%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\" >\u0645\u0631\u062d\u0644\u0647 7: \u0632\u0646\u062c\u06cc\u0631\u0647 \u067e\u0627\u0631\u0686\u0647 \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d9%85%d8%b1%d8%ad%d9%84%d9%87_8_%d8%a7%d8%b3%d9%86%d8%a7%d8%af_%d8%ae%d9%88%d8%af_%d8%b1%d8%a7_%d9%be%d8%b1%d8%b3_%d9%88_%d8%ac%d9%88_%da%a9%d9%86%db%8c%d8%af\" >\u0645\u0631\u062d\u0644\u0647 8: \u0627\u0633\u0646\u0627\u062f \u062e\u0648\u062f \u0631\u0627 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u06a9\u0646\u06cc\u062f<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d8%b1%d9%88%d8%b4_%d8%a7%db%8c%d8%ac%d8%a7%d8%af_local_%d8%b9%d9%88%d8%a7%d9%85%d9%84_ai_%d8%a8%d8%a7_qwen_3\" >\u0631\u0648\u0634 \u0627\u06cc\u062c\u0627\u062f Local \u0639\u0648\u0627\u0645\u0644 AI \u0628\u0627 Qwen 3<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d9%85%d8%b1%d8%ad%d9%84%d9%87_1_%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1%d9%87%d8%a7%db%8c_%d8%b3%d9%81%d8%a7%d8%b1%d8%b4%db%8c_%d8%b1%d8%a7_%d8%aa%d8%b9%d8%b1%db%8c%d9%81_%da%a9%d9%86%db%8c%d8%af\" >\u0645\u0631\u062d\u0644\u0647 1: \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d9%85%d8%b1%d8%ad%d9%84%d9%87_2_%d8%b9%d8%a7%d9%85%d9%84_llm_%d8%b1%d8%a7_%d8%aa%d9%86%d8%b8%db%8c%d9%85_%da%a9%d9%86%db%8c%d8%af\" >\u0645\u0631\u062d\u0644\u0647 2: \u0639\u0627\u0645\u0644 LLM \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d9%85%d8%b1%d8%ad%d9%84%d9%87_3_%d8%b3%d8%b1%db%8c%d8%b9_%d8%b9%d8%a7%d9%85%d9%84_%d8%b1%d8%a7_%d8%a7%db%8c%d8%ac%d8%a7%d8%af_%da%a9%d9%86%db%8c%d8%af\" >\u0645\u0631\u062d\u0644\u0647 3: \u0633\u0631\u06cc\u0639 \u0639\u0627\u0645\u0644 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d9%85%d8%b1%d8%ad%d9%84%d9%87_4_%d8%b9%d8%a7%d9%85%d9%84_%d8%b1%d8%a7_%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\" >\u0645\u0631\u062d\u0644\u0647 4: \u0639\u0627\u0645\u0644 \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d9%85%d8%b1%d8%ad%d9%84%d9%87_5_%d9%85%d8%ac%d8%b1%db%8c_%d9%86%d9%85%d8%a7%db%8c%d9%86%d8%af%d9%87_%d8%b1%d8%a7_%d8%a7%db%8c%d8%ac%d8%a7%d8%af_%da%a9%d9%86%db%8c%d8%af\" >\u0645\u0631\u062d\u0644\u0647 5: \u0645\u062c\u0631\u06cc \u0646\u0645\u0627\u06cc\u0646\u062f\u0647 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d9%85%d8%b1%d8%ad%d9%84%d9%87_6_%d8%b9%d8%a7%d9%85%d9%84_%d8%b1%d8%a7_%d8%a7%d8%ac%d8%b1%d8%a7_%da%a9%d9%86%db%8c%d8%af\" >\u0645\u0631\u062d\u0644\u0647 6: \u0639\u0627\u0645\u0644 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d9%85%d9%84%d8%a7%d8%ad%d8%b8%d8%a7%d8%aa_%d9%be%db%8c%d8%b4%d8%b1%d9%81%d8%aa%d9%87_%d9%88_%d8%b9%db%8c%d8%a8_%db%8c%d8%a7%d8%a8%db%8c\" >\u0645\u0644\u0627\u062d\u0638\u0627\u062a \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u0648 \u0639\u06cc\u0628 \u06cc\u0627\u0628\u06cc<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-28\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%da%a9%d9%86%d8%aa%d8%b1%d9%84_%d8%ad%d8%a7%d9%84%d8%aa_%d8%aa%d9%81%da%a9%d8%b1_qwen_3_%d8%a8%d8%a7_ollama\" >\u06a9\u0646\u062a\u0631\u0644 \u062d\u0627\u0644\u062a \u062a\u0641\u06a9\u0631 Qwen 3 \u0628\u0627 Ollama<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-29\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa_%d8%b7%d9%88%d9%84_%d8%b2%d9%85%db%8c%d9%86%d9%87_num_ctx\" >\u0645\u062f\u06cc\u0631\u06cc\u062a \u0637\u0648\u0644 \u0632\u0645\u06cc\u0646\u0647 (num_ctx)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-30\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d9%85%d8%ad%d8%af%d9%88%d8%af%db%8c%d8%aa_%d9%87%d8%a7%db%8c_%d8%b3%d8%ae%d8%aa_%d8%a7%d9%81%d8%b2%d8%a7%d8%b1_%d9%88_vram\" >\u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc \u0633\u062e\u062a \u0627\u0641\u0632\u0627\u0631 \u0648 VRAM<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-31\" href=\"https:\/\/rasanegaar.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85-local-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-%d8%a8%d8%a7-qwen-3-%d9%88-ollama\/#%d9%86%d8%aa%db%8c%d8%ac%d9%87_%da%af%db%8c%d8%b1%db%8c_%d9%88_%d9%85%d8%b1%d8%a7%d8%ad%d9%84_%d8%a8%d8%b9%d8%af%db%8c\" >\u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc \u0648 \u0645\u0631\u0627\u062d\u0644 \u0628\u0639\u062f\u06cc<\/a><\/li><\/ul><\/nav><\/div>\n<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">\u0632\u0645\u0627\u0646 \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u0645\u0637\u0627\u0644\u0639\u0647: <\/span> <span class=\"rt-time\"> 19<\/span> <span class=\"rt-label rt-postfix\">\u062f\u0642\u06cc\u0642\u0647<\/span><\/span><p> <br \/>\n<\/p>\n<section class=\"post-content \" data-test-label=\"post-content\">\n<p>\u0686\u0634\u0645 \u0627\u0646\u062f\u0627\u0632 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0628\u0647 \u0633\u0631\u0639\u062a \u062f\u0631 \u062d\u0627\u0644 \u062a\u062d\u0648\u0644 \u0627\u0633\u062a \u0648 \u06cc\u06a9\u06cc \u0627\u0632 \u0647\u06cc\u062c\u0627\u0646 \u0627\u0646\u06af\u06cc\u0632 \u062a\u0631\u06cc\u0646 \u0631\u0648\u0646\u062f\u0647\u0627 \u060c \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc \u0627\u062c\u0631\u0627\u06cc \u0645\u062f\u0644 \u0647\u0627\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0632\u0628\u0627\u0646 \u0628\u0632\u0631\u06af (LLMS) \u0628\u0647 \u0637\u0648\u0631 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0627\u0633\u062a \u0631\u0648\u06cc \u062f\u0633\u062a\u06af\u0627\u0647 \u0645\u062d\u0644\u06cc \u0634\u0645\u0627<\/p>\n<p>\u0627\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u0627\u0632 \u0627\u0639\u062a\u0645\u0627\u062f \u0628\u0647 \u0646\u0641\u0633 \u0631\u0648\u06cc API \u0647\u0627\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0627\u0628\u0631 \u0627\u0632 \u0646\u0638\u0631 \u062d\u0631\u06cc\u0645 \u062e\u0635\u0648\u0635\u06cc \u060c \u0645\u0642\u0631\u0648\u0646 \u0628\u0647 \u0635\u0631\u0641\u0647 \u0628\u0648\u062f\u0646 \u0648 \u062f\u0633\u062a\u0631\u0633\u06cc \u0622\u0641\u0644\u0627\u06cc\u0646 \u0645\u0632\u0627\u06cc\u0627\u06cc \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u0646\u062f. \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0648 \u0639\u0644\u0627\u0642\u0647 \u0645\u0646\u062f\u0627\u0646 \u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0628\u062f\u0648\u0646 \u0627\u0631\u0633\u0627\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062e\u0627\u0631\u062c\u06cc \u06cc\u0627 \u062a\u062d\u0645\u0644 \u0647\u0632\u06cc\u0646\u0647 \u0647\u0627\u06cc API \u060c \u0642\u0627\u0628\u0644\u06cc\u062a \u0647\u0627\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0631\u0627 \u0622\u0632\u0645\u0627\u06cc\u0634 \u0648 \u0645\u0633\u062a\u0642\u0631 \u06a9\u0646\u0646\u062f.<\/p>\n<p>\u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u062f\u0633\u062a \u06a9\u0627\u0631 \u0639\u0645\u0644\u06cc \u0627\u0633\u062aon \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u06cc\u0646 \u0642\u062f\u0631\u062a \u0645\u062d\u0644\u06cc \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc. \u062a\u0645\u0631\u06a9\u0632 \u062f\u0627\u0631\u062f \u0631\u0648\u06cc \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062e\u0627\u0646\u0648\u0627\u062f\u0647 Qwen 3 \u0627\u0632 LLMS \u060c \u06cc\u06a9 \u0645\u0646\u0628\u0639 \u0628\u0631\u062a\u0631 \u0645\u0646\u0628\u0639 \u0628\u0627\u0632 \u0627\u0632 Alibaba \u060c \u0647\u0645\u0631\u0627\u0647 \u0628\u0627 Ollama \u060c \u0627\u0628\u0632\u0627\u0631\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0637\u0631\u0632 \u0686\u0634\u0645\u06af\u06cc\u0631\u06cc \u06a9\u0627\u0631 LLMS \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc \u0633\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<h2 id=\"heading-prerequisites\"><span class=\"ez-toc-section\" id=\"%d9%be%db%8c%d8%b4_%d9%86%db%8c%d8%a7%d8%b2%d9%87%d8%a7%db%8c\"><\/span>\u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0642\u0628\u0644 \u0627\u0632 \u063a\u0648\u0627\u0635\u06cc \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u060c \u0628\u0627\u06cc\u062f \u062f\u0631\u06a9 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u0648 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062e\u0637 \u0641\u0631\u0645\u0627\u0646 \u0631\u0627\u062d\u062a \u0628\u0627\u0634\u06cc\u062f terminal\u0628\u0634\u0631 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 Python 3 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f \u0631\u0648\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0634\u0645\u0627<\/p>\n<p>\u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u062a\u062c\u0631\u0628\u0647 \u0642\u0628\u0644\u06cc \u0628\u0627 \u0645\u062f\u0644\u0647\u0627\u06cc AI \u06cc\u0627 \u0632\u0628\u0627\u0646 \u0628\u0632\u0631\u06af (LLMS) \u0645\u0641\u06cc\u062f \u0627\u0633\u062a \u060c \u0636\u0631\u0648\u0631\u06cc \u0646\u06cc\u0633\u062a \u060c \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0645\u0646 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0627\u0635\u0644\u06cc \u0645\u0627\u0646\u0646\u062f \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u062a\u0648\u0644\u06cc\u062f \u0634\u062f\u0647 (RAG) \u0648 \u0639\u0648\u0627\u0645\u0644 AI \u0631\u0627 \u062f\u0631 \u0637\u0648\u0644 \u0631\u0627\u0647\u0646\u0645\u0627 \u0645\u0639\u0631\u0641\u06cc \u0648 \u062a\u0648\u0636\u06cc\u062d \u0645\u06cc \u062f\u0647\u0645.<\/p>\n<p>\u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u062f\u0633\u062a \u06a9\u0627\u0631 \u0639\u0645\u0644\u06cc \u0627\u0633\u062aon \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u06cc\u0646 \u0642\u062f\u0631\u062a \u0645\u062d\u0644\u06cc \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc. \u062a\u0645\u0631\u06a9\u0632 \u062f\u0627\u0631\u062f \u0631\u0648\u06cc \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062e\u0627\u0646\u0648\u0627\u062f\u0647 Qwen 3 \u0627\u0632 LLMS \u060c \u06cc\u06a9 \u0645\u0646\u0628\u0639 \u0628\u0631\u062a\u0631 \u0645\u0646\u0628\u0639 \u0628\u0627\u0632 \u0627\u0632 Alibaba \u060c \u0647\u0645\u0631\u0627\u0647 \u0628\u0627 Ollama \u060c \u0627\u0628\u0632\u0627\u0631\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0637\u0631\u0632 \u0686\u0634\u0645\u06af\u06cc\u0631\u06cc \u06a9\u0627\u0631 LLMS \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc \u0633\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<h2 id=\"heading-table-of-contents\"><span class=\"ez-toc-section\" id=\"%d9%81%d9%87%d8%b1%d8%b3%d8%aa_%d9%85%d8%b7%d8%a7%d9%84%d8%a8\"><\/span>\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ol>\n<li>\n<p>Local  \u0642\u062f\u0631\u062a AI \u0628\u0627 Qwen 3 \u0648 Ollama<\/p>\n<ul>\n<li>\n<p>\u0627\u0648\u0644\u0627\u0645\u0627: \u0634\u0645\u0627 Local \u062f\u0631\u0648\u0627\u0632\u0647 LLM<\/p>\n<\/li>\n<li>\n<p>\u0646\u0642\u0634\u0647 \u0631\u0627\u0647 \u0622\u0645\u0648\u0632\u0634<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<ol start=\"2\">\n<li>\n<p>\u0686\u06af\u0648\u0646\u0647 \u062e\u0648\u062f \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u0645 Local \u0622\u0632\u0645\u0627\u06cc\u0634\u06af\u0627\u0647 AI<\/p>\n<ul>\n<li>\n<p>\u0627\u0648\u0644\u0627\u0645\u0627 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f<\/p>\n<\/li>\n<li>\n<p>\u0645\u062f\u0644 QWEN 3 \u062e\u0648\u062f \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f<\/p>\n<\/li>\n<li>\n<p>Qwen 3 \u0631\u0627 \u0628\u0627 \u0627\u0648\u0644\u0645\u0627 \u0628\u06a9\u0634\u06cc\u062f \u0648 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f<\/p>\n<\/li>\n<li>\n<p>\u0645\u062d\u06cc\u0637 \u067e\u0627\u06cc\u062a\u0648\u0646 \u062e\u0648\u062f \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0631\u0648\u0634 \u0633\u0627\u062e\u062a Local \u0633\u06cc\u0633\u062a\u0645 RAG \u0628\u0627 QWEN 3<\/p>\n<ul>\n<li>\n<p>\u0645\u0631\u062d\u0644\u0647 1: \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0622\u0645\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<\/p>\n<\/li>\n<li>\n<p>\u0645\u0631\u062d\u0644\u0647 2: \u0627\u0633\u0646\u0627\u062f \u0631\u0627 \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u062f<\/p>\n<\/li>\n<li>\n<p>\u0645\u0631\u062d\u0644\u0647 3: \u0627\u0633\u0646\u0627\u062f \u062a\u0642\u0633\u06cc\u0645 \u0634\u062f\u0647<\/p>\n<\/li>\n<li>\n<p>\u0645\u0631\u062d\u0644\u0647 4: \u0645\u062f\u0644 \u062a\u0639\u0628\u06cc\u0647 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f<\/p>\n<\/li>\n<li>\n<p>\u0645\u0631\u062d\u0644\u0647 5: \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f Local \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0648\u06a9\u062a\u0648\u0631 (Chromadb)<\/p>\n<\/li>\n<li>\n<p>\u0645\u0631\u062d\u0644\u0647 6: \u0627\u0633\u0646\u0627\u062f \u0641\u0647\u0631\u0633\u062a (\u062c\u0627\u0633\u0627\u0632\u06cc \u0648 \u0630\u062e\u06cc\u0631\u0647)<\/p>\n<\/li>\n<li>\n<p>\u0645\u0631\u062d\u0644\u0647 7: \u0632\u0646\u062c\u06cc\u0631\u0647 \u067e\u0627\u0631\u0686\u0647 \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f<\/p>\n<\/li>\n<li>\n<p>\u0645\u0631\u062d\u0644\u0647 8: \u0627\u0633\u0646\u0627\u062f \u062e\u0648\u062f \u0631\u0627 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u06a9\u0646\u06cc\u062f<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0631\u0648\u0634 \u0627\u06cc\u062c\u0627\u062f Local \u0639\u0648\u0627\u0645\u0644 AI \u0628\u0627 Qwen 3<\/p>\n<ul>\n<li>\n<p>\u0645\u0631\u062d\u0644\u0647 1: \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f<\/p>\n<\/li>\n<li>\n<p>\u0645\u0631\u062d\u0644\u0647 2: \u0639\u0627\u0645\u0644 LLM \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f<\/p>\n<\/li>\n<li>\n<p>\u0645\u0631\u062d\u0644\u0647 3: \u0633\u0631\u06cc\u0639 \u0639\u0627\u0645\u0644 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<\/p>\n<\/li>\n<li>\n<p>\u0645\u0631\u062d\u0644\u0647 4: \u0639\u0627\u0645\u0644 \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f<\/p>\n<\/li>\n<li>\n<p>\u0645\u0631\u062d\u0644\u0647 5: \u0645\u062c\u0631\u06cc \u0646\u0645\u0627\u06cc\u0646\u062f\u0647 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<\/p>\n<\/li>\n<li>\n<p>\u0645\u0631\u062d\u0644\u0647 6: \u0639\u0627\u0645\u0644 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0645\u0644\u0627\u062d\u0638\u0627\u062a \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u0648 \u0639\u06cc\u0628 \u06cc\u0627\u0628\u06cc<\/p>\n<ul>\n<li>\n<p>\u06a9\u0646\u062a\u0631\u0644 \u062d\u0627\u0644\u062a \u062a\u0641\u06a9\u0631 Qwen 3 \u0628\u0627 Ollama<\/p>\n<\/li>\n<li>\n<p>\u0645\u062f\u06cc\u0631\u06cc\u062a \u0637\u0648\u0644 \u0632\u0645\u06cc\u0646\u0647 (num_ctx)<\/p>\n<\/li>\n<li>\n<p>\u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc \u0633\u062e\u062a \u0627\u0641\u0632\u0627\u0631 \u0648 VRAM<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc \u0648 \u0645\u0631\u0627\u062d\u0644 \u0628\u0639\u062f\u06cc<\/p>\n<\/li>\n<\/ol>\n<h2 id=\"heading-local-ai-power-with-qwen-3-and-ollama\"><span class=\"ez-toc-section\" id=\"local_%d9%82%d8%af%d8%b1%d8%aa_ai_%d8%a8%d8%a7_qwen_3_%d9%88_ollama\"><\/span>Local  \u0642\u062f\u0631\u062a AI \u0628\u0627 Qwen 3 \u0648 Ollama<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u062c\u0631\u0627\u06cc LLM \u0647\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc \u0686\u0646\u062f\u06cc\u0646 \u0646\u06af\u0631\u0627\u0646\u06cc \u0645\u0647\u0645 \u0645\u0631\u062a\u0628\u0637 \u0628\u0627 \u062e\u062f\u0645\u0627\u062a \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0627\u0628\u0631 \u0631\u0627 \u0628\u0631\u0637\u0631\u0641 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<ul>\n<li>\n<p>\u062d\u0631\u06cc\u0645 \u062e\u0635\u0648\u0635\u06cc \u0645\u0647\u0645 \u0627\u0633\u062a &#8211; \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u067e\u0631\u062f\u0627\u0632\u0634 \u0634\u062f\u0647 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc \u0647\u0631\u06af\u0632 \u062f\u0633\u062a\u06af\u0627\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u062a\u0631\u06a9 \u0646\u0645\u06cc \u06a9\u0646\u0646\u062f.<\/p>\n<\/li>\n<li>\n<p>\u0647\u0632\u06cc\u0646\u0647 \u06cc\u06a9\u06cc \u062f\u06cc\u06af\u0631 \u0627\u0632 \u0639\u0648\u0627\u0645\u0644 \u0645\u0647\u0645 \u062f\u06cc\u06af\u0631 \u0627\u0633\u062a-\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u062f\u0644 \u0647\u0627 \u0648 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u0646\u0628\u0639 \u0628\u0627\u0632 \u0645\u0627\u0646\u0646\u062f Ollama \u0647\u0632\u06cc\u0646\u0647 \u0647\u0627\u06cc \u0627\u0634\u062a\u0631\u0627\u06a9 API \u0648 \u0647\u0632\u06cc\u0646\u0647 \u0647\u0627\u06cc \u067e\u0631\u062f\u0627\u062e\u062a \u0634\u062f\u0647 \u0631\u0627 \u0627\u0632 \u0628\u06cc\u0646 \u0645\u06cc \u0628\u0631\u062f \u0648 \u0628\u0627\u0639\u062b \u0645\u06cc \u0634\u0648\u062f \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0647\u0645\u0647 \u0628\u0627\u0634\u062f.<\/p>\n<\/li>\n<li>\n<p>Local  \u0627\u062c\u0631\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u0639\u0645\u0644\u06a9\u0631\u062f \u0622\u0641\u0644\u0627\u06cc\u0646 &#8211; \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0627\u062a\u0635\u0627\u0644 \u0627\u06cc\u0646\u062a\u0631\u0646\u062a \u063a\u06cc\u0631\u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f \u06cc\u0627 \u0646\u0627\u0645\u0637\u0644\u0648\u0628 \u0627\u0633\u062a \u060c \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a.<\/p>\n<\/li>\n<\/ul>\n<h3 id=\"heading-ollama-your-local-llm-gateway\"><span class=\"ez-toc-section\" id=\"%d8%a7%d9%88%d9%84%d8%a7%d9%85%d8%a7_%d8%b4%d9%85%d8%a7_local_%d8%af%d8%b1%d9%88%d8%a7%d8%b2%d9%87_llm\"><\/span>\u0627\u0648\u0644\u0627\u0645\u0627: \u0634\u0645\u0627 Local \u062f\u0631\u0648\u0627\u0632\u0647 LLM<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u0648\u0644\u0627\u0645\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u067e\u0644 \u0639\u0645\u0644 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0642\u062f\u0631\u062a \u0645\u062f\u0644 \u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f Qwen 3 \u0631\u0627 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0645\u06cc \u06a9\u0646\u062f \u0631\u0648\u06cc \u0633\u062e\u062a \u0627\u0641\u0632\u0627\u0631 \u0645\u062d\u0644\u06cc \u0627\u06cc\u0646 \u06cc\u06a9 \u0627\u0633\u062a command-line \u0627\u0628\u0632\u0627\u0631\u06cc \u06a9\u0647 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u060c \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0648 \u0627\u062c\u0631\u0627\u06cc LLM \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0645\u0646\u0628\u0639 \u0628\u0627\u0632 \u0631\u0627 \u062f\u0631 MacOS \u060c Linux \u0648 Windows \u0633\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>Ollama \u067e\u06cc\u0686\u06cc\u062f\u06af\u06cc \u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u062f\u0644 \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 GPU \u0631\u0627 \u06a9\u0646\u062a\u0631\u0644 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u06cc\u06a9 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0633\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0648 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc API \u0633\u0627\u0632\u06af\u0627\u0631 \u0628\u0627 OpenAI \u0631\u0627 \u062f\u0631 \u0645\u0639\u0631\u0636 \u062f\u06cc\u062f \u0642\u0631\u0627\u0631 \u0645\u06cc \u062f\u0647\u062f \u0648 \u0627\u0645\u06a9\u0627\u0646 \u0627\u062f\u063a\u0627\u0645 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u062f\u0631 \u0686\u0627\u0631\u0686\u0648\u0628 \u0647\u0627\u06cc \u0645\u062d\u0628\u0648\u0628 \u0645\u0627\u0646\u0646\u062f Langchain \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<h3 id=\"heading-tutorial-roadmap\"><span class=\"ez-toc-section\" id=\"%d9%86%d9%82%d8%b4%d9%87_%d8%b1%d8%a7%d9%87_%d8%a2%d9%85%d9%88%d8%b2%d8%b4\"><\/span>\u0646\u0642\u0634\u0647 \u0631\u0627\u0647 \u0622\u0645\u0648\u0632\u0634<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0634\u0645\u0627 \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 process \u0627\u0632:<\/p>\n<ol>\n<li>\n<p><strong>\u062a\u0646\u0638\u06cc\u0645 \u06cc\u06a9 \u0645\u062d\u06cc\u0637 AI \u0645\u062d\u0644\u06cc:<\/strong> \u0646\u0635\u0628 \u0627\u0648\u0644\u0627\u0645\u0627 \u0648 \u0627\u0646\u062a\u062e\u0627\u0628\/\u0627\u062c\u0631\u0627\u06cc \u0645\u062f\u0644 \u0647\u0627\u06cc \u0645\u0646\u0627\u0633\u0628 QWEN 3.<\/p>\n<\/li>\n<li>\n<p><strong>\u0633\u0627\u062e\u062a\u0646 \u06cc\u06a9 \u0633\u06cc\u0633\u062a\u0645 \u067e\u0627\u0631\u0686\u0647 \u0627\u06cc \u0645\u062d\u0644\u06cc:<\/strong> \u0627\u06cc\u062c\u0627\u062f \u0633\u06cc\u0633\u062a\u0645\u06cc \u06a9\u0647 \u0627\u0645\u06a9\u0627\u0646 \u0686\u062a \u0628\u0627 \u0627\u0633\u0646\u0627\u062f \u0634\u062e\u0635\u06cc \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Qwen 3 \u060c Ollama \u060c Langchain \u0648 Chromadb \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0628\u0631\u062f\u0627\u0631 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<\/li>\n<li>\n<p><strong>\u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0639\u0627\u0645\u0644 \u0627\u0635\u0644\u06cc AI \u0645\u062d\u0644\u06cc:<\/strong> \u062a\u0647\u06cc\u0647 \u06cc\u06a9 \u0639\u0627\u0645\u0644 \u0633\u0627\u062f\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 QWEN 3 \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0633\u0641\u0627\u0631\u0634\u06cc (\u062a\u0648\u0627\u0628\u0639) \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f.<\/p>\n<\/li>\n<\/ol>\n<h2 id=\"heading-how-to-set-up-your-local-ai-lab\"><span class=\"ez-toc-section\" id=\"%da%86%da%af%d9%88%d9%86%d9%87_%d8%ae%d9%88%d8%af_%d8%b1%d8%a7_%d8%aa%d9%86%d8%b8%db%8c%d9%85_%da%a9%d9%86%db%8c%d9%85_local_%d8%a2%d8%b2%d9%85%d8%a7%db%8c%d8%b4%da%af%d8%a7%d9%87_ai\"><\/span>\u0686\u06af\u0648\u0646\u0647 \u062e\u0648\u062f \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u0645 Local \u0622\u0632\u0645\u0627\u06cc\u0634\u06af\u0627\u0647 AI<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u0648\u0644\u06cc\u0646 \u0642\u062f\u0645 \u062a\u0647\u06cc\u0647 \u062f\u0633\u062a\u06af\u0627\u0647 \u0645\u062d\u0644\u06cc \u062e\u0648\u062f \u0628\u0627 \u0627\u0628\u0632\u0627\u0631\u0647\u0627 \u0648 \u0645\u062f\u0644 \u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u0627\u0633\u062a.<\/p>\n<h3 id=\"heading-install-ollama\"><span class=\"ez-toc-section\" id=\"%d8%a7%d9%88%d9%84%d8%a7%d9%85%d8%a7_%d8%b1%d8%a7_%d9%86%d8%b5%d8%a8_%da%a9%d9%86%db%8c%d8%af\"><\/span>\u0627\u0648\u0644\u0627\u0645\u0627 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Ollama \u0633\u0627\u062f\u0647 \u062a\u0631\u06cc\u0646 \u0645\u0633\u06cc\u0631 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc LLM \u0647\u0627 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<ul>\n<li>\n<p><strong>\u0644\u06cc\u0646\u0648\u06a9\u0633 \/ \u0645\u06a9\u0648\u0633:<\/strong> \u0628\u0627\u0632 terminal \u0648 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0646\u0635\u0628 \u0631\u0633\u0645\u06cc \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre><code class=\"lang-bash\">  curl -fsSL https:\/\/ollama.com\/install.sh | sh\n<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>WINDOWS:<\/strong> \u0646\u0635\u0628 \u0631\u0627 \u0627\u0632 \u0648\u0628 \u0633\u0627\u06cc\u062a Ollama (https:\/\/ollama.com\/download) \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u062f \u0648 \u062f\u0633\u062a\u0648\u0631\u0627\u0644\u0639\u0645\u0644 \u0647\u0627\u06cc \u062a\u0646\u0638\u06cc\u0645 \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<\/li>\n<\/ul>\n<p>\u067e\u0633 \u0627\u0632 \u0646\u0635\u0628 \u060c \u0622\u0646 \u0631\u0627 \u0628\u0627 \u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u06cc\u06a9 \u062c\u062f\u06cc\u062f \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f terminal \u067e\u0646\u062c\u0631\u0647 \u0648 \u062f\u0648\u06cc\u062f\u0646:<\/p>\n<pre><code class=\"lang-bash\">ollama --version\n<\/code><\/pre>\n<p>\u0627\u0648\u0644\u0627\u0645\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0639\u0645\u0648\u0644 \u0645\u062f\u0644 \u0647\u0627\u06cc \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0634\u062f\u0647 \u0631\u0627 \u062f\u0631 <code>~\/.ollama\/models<\/code> \u0631\u0648\u06cc  macOS \u0648 <code>\/usr\/share\/ollama\/.ollama\/models<\/code> \u0631\u0648\u06cc  \u0644\u06cc\u0646\u0648\u06a9\u0633\/WSL.<\/p>\n<h3 id=\"heading-choose-your-qwen-3-model\"><span class=\"ez-toc-section\" id=\"%d9%85%d8%af%d9%84_qwen_3_%d8%ae%d9%88%d8%af_%d8%b1%d8%a7_%d8%a7%d9%86%d8%aa%d8%ae%d8%a7%d8%a8_%da%a9%d9%86%db%8c%d8%af\"><\/span>\u0645\u062f\u0644 QWEN 3 \u062e\u0648\u062f \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u062f\u0644 QWEN 3 \u0631\u0627\u0633\u062a \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a \u0648 \u0628\u0633\u062a\u06af\u06cc \u062f\u0627\u0631\u062f \u0631\u0648\u06cc \u06a9\u0627\u0631 \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u0648 \u0633\u062e\u062a \u0627\u0641\u0632\u0627\u0631 \u0645\u0648\u062c\u0648\u062f \u060c \u062f\u0631 \u062f\u0631\u062c\u0647 \u0627\u0648\u0644 \u0633\u06cc\u0633\u062a\u0645 RAM \u0648 GPU VRAM. \u0627\u062c\u0631\u0627\u06cc \u0645\u062f\u0644 \u0647\u0627\u06cc \u0628\u0632\u0631\u06af\u062a\u0631 \u0628\u0647 \u0645\u0646\u0627\u0628\u0639 \u0628\u06cc\u0634\u062a\u0631\u06cc \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f \u0627\u0645\u0627 \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0644\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a \u0627\u0633\u062a\u062f\u0644\u0627\u0644 \u0628\u0647\u062a\u0631\u06cc \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<p>Qwen 3 \u062f\u0648 \u0645\u0639\u0645\u0627\u0631\u06cc \u0627\u0635\u0644\u06cc \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 Ollama \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f:<\/p>\n<ul>\n<li>\n<p><strong>\u0645\u062f\u0644 \u0647\u0627\u06cc \u0645\u062a\u0631\u0627\u06a9\u0645:<\/strong> (\u0645\u062b\u0644 <code>qwen3:0.6b<\/code>\u0628\u0627 <code>qwen3:4b<\/code>\u0628\u0627 <code>qwen3:8b<\/code>\u0628\u0627 <code>qwen3:14b<\/code>\u0628\u0627 <code>qwen3:32b<\/code>) \u0627\u06cc\u0646 \u0645\u062f\u0644 \u0647\u0627 \u062a\u0645\u0627\u0645 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u0647\u0646\u06af\u0627\u0645 \u0627\u0633\u062a\u0646\u062a\u0627\u062c \u0641\u0639\u0627\u0644 \u0645\u06cc \u06a9\u0646\u0646\u062f. \u0639\u0645\u0644\u06a9\u0631\u062f \u0622\u0646\u0647\u0627 \u0642\u0627\u0628\u0644 \u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc \u0627\u0633\u062a \u060c \u0627\u0645\u0627 \u0646\u06cc\u0627\u0632 \u0645\u0646\u0627\u0628\u0639 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0628\u0627 \u062a\u0639\u062f\u0627\u062f \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0645\u0642\u06cc\u0627\u0633 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<\/li>\n<li>\n<p><strong>\u0645\u062f\u0644 \u0647\u0627\u06cc \u0645\u062e\u0644\u0648\u0637 (MOE) \u0645\u062f\u0644 \u0647\u0627:<\/strong> (\u0645\u062b\u0644 <code>qwen3:30b-a3b<\/code>) \u0627\u06cc\u0646 \u0645\u062f\u0644 \u0647\u0627 \u062d\u0627\u0648\u06cc \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0632\u06cc\u0631 \u0634\u0628\u06a9\u0647 \u0647\u0627\u06cc &#8220;\u0645\u062a\u062e\u0635\u0635&#8221; \u0647\u0633\u062a\u0646\u062f \u0627\u0645\u0627 \u0641\u0642\u0637 \u0628\u062e\u0634 \u06a9\u0648\u0686\u06a9\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0647\u0631 \u0646\u0634\u0627\u0646\u0647 \u0648\u0631\u0648\u062f\u06cc \u0641\u0639\u0627\u0644 \u0645\u06cc \u06a9\u0646\u0646\u062f. \u0627\u06cc\u0646 \u0628\u0647 \u0622\u0646\u0647\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0647\u0632\u06cc\u0646\u0647 \u0647\u0627\u06cc \u0627\u0633\u062a\u0646\u062a\u0627\u062c \u0631\u0627 \u0628\u0647 \u06a9\u0648\u0686\u06a9\u062a\u0631 \u062e\u0648\u062f \u0646\u0632\u062f\u06cc\u06a9 \u062a\u0631 \u0645\u06cc \u06a9\u0646\u0646\u062f \u060c \u0628\u0647 \u0648\u06cc\u0698\u06af\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u062a\u0639\u062f\u0627\u062f \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u06a9\u0644 \u0628\u0632\u0631\u06af \u062e\u0648\u062f (\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u060c 30 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f) \u062f\u0633\u062a \u06cc\u0627\u0628\u0646\u062f <em>\u0641\u0639\u0627\u0644<\/em> \u062a\u0639\u062f\u0627\u062f \u067e\u0627\u0631\u0627\u0645\u062a\u0631 (\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u060c 3 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f). \u0622\u0646\u0647\u0627 \u062a\u0639\u0627\u062f\u0644 \u0642\u0627\u0646\u0639 \u06a9\u0646\u0646\u062f\u0647 \u0627\u06cc \u0627\u0632 \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc \u0648 \u06a9\u0627\u0631\u0622\u06cc\u06cc \u060c \u0628\u0647 \u0648\u06cc\u0698\u0647 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u062f\u0644\u0627\u0644 \u0648 \u06a9\u0627\u0631\u0647\u0627\u06cc \u06a9\u062f\u06af\u0630\u0627\u0631\u06cc \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u0646\u062f.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u062a\u0648\u0635\u06cc\u0647 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634:<\/strong> \u0628\u0631\u0627\u06cc \u0645\u062b\u0627\u0644\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631 \u0632\u06cc\u0631 \u0622\u0645\u062f\u0647 \u0627\u0633\u062a \u060c <code>qwen3:8b<\/code> \u062a\u0639\u0627\u062f\u0644 \u062e\u0648\u0628\u06cc \u0628\u06cc\u0646 \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc \u0648 \u0627\u0644\u0632\u0627\u0645\u0627\u062a \u0645\u0646\u0627\u0628\u0639 \u0628\u0631\u0627\u06cc \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0645\u0627\u0634\u06cc\u0646 \u0647\u0627\u06cc \u0645\u062f\u0631\u0646 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06af\u0631 \u0645\u0646\u0627\u0628\u0639 \u0645\u062d\u062f\u0648\u062f\u062a\u0631 \u0628\u0627\u0634\u0646\u062f \u060c <code>qwen3:4b<\/code> \u06cc\u06a9 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a. \u0645\u062f\u0644 MOE <code>qwen3:30b-a3b<\/code> \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0633\u06cc\u0627\u0631 \u062e\u0648\u0628\u06cc \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f \u060c \u0628\u0647 \u062e\u0635\u0648\u0635 \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0648 \u0627\u0633\u062a\u062f\u0644\u0627\u0644 \u060c \u0648 \u0628\u0647 \u0637\u0631\u0632 \u0634\u06af\u0641\u062a \u0622\u0648\u0631 \u062e\u0648\u0628\u06cc \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u062f \u0631\u0648\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0647\u0627\u06cc\u06cc \u0628\u0627 16 \u06af\u06cc\u06af\u0627\u0628\u0627\u06cc\u062a+ VRAM \u0628\u0647 \u062f\u0644\u06cc\u0644 \u0641\u0639\u0627\u0644 \u0634\u062f\u0646 \u067e\u0631\u0627\u06a9\u0646\u062f\u0647 \u0622\u0646.<\/p>\n<h3 id=\"heading-pull-and-run-qwen-3-with-ollama\"><span class=\"ez-toc-section\" id=\"qwen_3_%d8%b1%d8%a7_%d8%a8%d8%a7_%d8%a7%d9%88%d9%84%d9%85%d8%a7_%d8%a8%da%a9%d8%b4%db%8c%d8%af_%d9%88_%d8%a7%d8%ac%d8%b1%d8%a7_%da%a9%d9%86%db%8c%d8%af\"><\/span>Qwen 3 \u0631\u0627 \u0628\u0627 \u0627\u0648\u0644\u0645\u0627 \u0628\u06a9\u0634\u06cc\u062f \u0648 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u0646\u062a\u062e\u0627\u0628 \u06cc\u06a9 \u0645\u062f\u0644 \u060c \u0628\u0627\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 Ollama \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u062f (\u0622\u0646 \u0631\u0627 \u0628\u06a9\u0634\u06cc\u062f).<\/p>\n<p><strong>\u0645\u062f\u0644 \u0631\u0627 \u0628\u06a9\u0634\u06cc\u062f:<\/strong> \u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 terminal \u0648 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f (\u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f <code>qwen3:8b<\/code> \u0628\u0627 \u0628\u0631\u0686\u0633\u0628 \u0645\u0648\u0631\u062f \u0646\u0638\u0631):<\/p>\n<pre><code class=\"lang-bash\">ollama pull qwen3:8b\n<\/code><\/pre>\n<p>\u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0648\u0632\u0646 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u062f\u0644 \u0631\u0627 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p><strong>\u062a\u0639\u0627\u0645\u0644\u06cc \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f (\u062a\u0633\u062a \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc):<\/strong> \u0628\u0631\u0627\u06cc \u06af\u067e \u0632\u062f\u0646 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0628\u0627 \u0645\u062f\u0644 \u0627\u0632 \u062e\u0637 \u0641\u0631\u0645\u0627\u0646:<\/p>\n<pre><code class=\"lang-bash\">ollama run qwen3:8b\n<\/code><\/pre>\n<p>\u0646\u0648\u0639 \u0631\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f terminal\u0628\u0634\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0646 <code>\/bye<\/code> \u0628\u0631\u0627\u06cc \u062e\u0631\u0648\u062c \u0627\u0632 \u062c\u0644\u0633\u0647 \u0633\u0627\u06cc\u0631 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0645\u0641\u06cc\u062f \u062f\u0631 \u062c\u0644\u0633\u0647 \u062a\u0639\u0627\u0645\u0644\u06cc \u0634\u0627\u0645\u0644 \u0645\u06cc \u0634\u0648\u0646\u062f <code>\/?<\/code> \u0628\u0631\u0627\u06cc \u06a9\u0645\u06a9 \u0648 <code>\/set parameter &lt;name&gt; &lt;value&gt;<\/code> (\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u060c <code>\/set parameter num_ctx 8192<\/code>) \u0628\u0631\u0627\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u0645\u0648\u0642\u062a \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0645\u062f\u0644 \u0628\u0631\u0627\u06cc \u062c\u0644\u0633\u0647 \u0641\u0639\u0644\u06cc. \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0646 <code>ollama list<\/code> \u062f\u0631 \u062e\u0627\u0631\u062c \u0627\u0632 \u062c\u0644\u0633\u0647 \u0628\u0631\u0627\u06cc \u062f\u06cc\u062f\u0646 \u0645\u062f\u0644 \u0647\u0627\u06cc \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0634\u062f\u0647.<\/p>\n<p><strong>\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0633\u0631\u0648\u0631 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/strong> \u0628\u0631\u0627\u06cc \u0627\u062f\u063a\u0627\u0645 \u0628\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0647\u0627\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 (\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Langchain) \u060c \u0627\u0648\u0644\u0627\u0645\u0627 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0633\u0631\u0648\u0631 \u067e\u0633 \u0632\u0645\u06cc\u0646\u0647 \u0627\u062c\u0631\u0627 \u0634\u0648\u062f process\u060c \u062f\u0631 \u0645\u0639\u0631\u0636 API. \u0628\u0627\u0632 <em>\u062c\u062f\u0627 \u06a9\u0631\u062f\u0646<\/em> terminal  \u067e\u0646\u062c\u0631\u0647 \u0648 \u0627\u062c\u0631\u0627:<\/p>\n<pre><code class=\"lang-bash\">ollama serve\n<\/code><\/pre>\n<p>\u0627\u06cc\u0646 \u0631\u0627 \u062d\u0641\u0638 \u06a9\u0646\u06cc\u062f terminal \u067e\u0646\u062c\u0631\u0647 \u0647\u0646\u06af\u0627\u0645 \u0627\u062c\u0631\u0627\u06cc \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0647\u0627\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u0628\u0627\u0632 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0633\u0631\u0648\u0631 \u0631\u0627 \u0634\u0631\u0648\u0639 \u0645\u06cc \u06a9\u0646\u062f \u060c \u0628\u0647 \u0637\u0648\u0631 \u0645\u0639\u0645\u0648\u0644 \u06af\u0648\u0634 \u0645\u06cc \u062f\u0647\u062f \u0631\u0648\u06cc <code>http:\/\/localhost:11434<\/code>\u060c \u0627\u0631\u0627\u0626\u0647 \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc API \u0633\u0627\u0632\u06af\u0627\u0631 \u0628\u0627 OpenAI.<\/p>\n<h3 id=\"heading-set-up-your-python-environment\"><span class=\"ez-toc-section\" id=\"%d9%85%d8%ad%db%8c%d8%b7_%d9%be%d8%a7%db%8c%d8%aa%d9%88%d9%86_%d8%ae%d9%88%d8%af_%d8%b1%d8%a7_%d8%aa%d9%86%d8%b8%db%8c%d9%85_%da%a9%d9%86%db%8c%d8%af\"><\/span>\u0645\u062d\u06cc\u0637 \u067e\u0627\u06cc\u062a\u0648\u0646 \u062e\u0648\u062f \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0647\u0627 \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p><strong>\u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc:<\/strong><\/p>\n<pre><code class=\"lang-bash\">python -m venv venv\n<\/code><\/pre>\n<p><strong>\u0645\u062d\u06cc\u0637 \u0631\u0627 \u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f:<\/strong><\/p>\n<ul>\n<li>\n<p>MACOS\/LINUX: <code>source venv\/bin\/activate<\/code><\/p>\n<\/li>\n<li>\n<p>WINDOWS: <code>venv\\Scripts\\activate<\/code><\/p>\n<\/li>\n<\/ul>\n<p><strong>\u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f:<\/strong><\/p>\n<pre><code class=\"lang-bash\">pip install langchain langchain-community langchain-core langchain-ollama chromadb sentence-transformers pypdf python-dotenv unstructured[pdf] tiktoken\n<\/code><\/pre>\n<ul>\n<li>\n<p><code>langchain<\/code>\u0628\u0627 <code>langchain-community<\/code>\u0628\u0627 <code>langchain-core<\/code>: \u0686\u0627\u0631\u0686\u0648\u0628 \u0627\u0635\u0644\u06cc Langchain \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc LLM.<\/p>\n<\/li>\n<li>\n<p><code>langchain-ollama<\/code>: \u0627\u062f\u063a\u0627\u0645 \u062e\u0627\u0635 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u062f\u0644 \u0647\u0627\u06cc Ollama \u0628\u0627 Langchain.<\/p>\n<\/li>\n<li>\n<p><code>chromadb<\/code>: \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0631\u062f\u0627\u0631 \u0645\u062d\u0644\u06cc \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u062a\u0639\u0628\u06cc\u0647 \u0647\u0627\u06cc \u0633\u0646\u062f.<\/p>\n<\/li>\n<li>\n<p><code>sentence-transformers<\/code>: \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0631\u0648\u0634 \u062a\u0639\u0628\u06cc\u0647 \u0645\u062d\u0644\u06cc \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 (\u0628\u0639\u062f\u0627\u064b \u062a\u0648\u0636\u06cc\u062d \u062f\u0627\u062f\u0647 \u0634\u062f).<\/p>\n<\/li>\n<li>\n<p><code>pypdf<\/code>: \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0628\u0631\u0627\u06cc \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0627\u0633\u0646\u0627\u062f PDF.<\/p>\n<\/li>\n<li>\n<p><code>python-dotenv<\/code>: \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0645\u062d\u06cc\u0637 (\u0639\u0645\u0644\u06a9\u0631\u062f \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u0627\u0645\u0627 \u062e\u0648\u0628).<\/p>\n<\/li>\n<li>\n<p><code>unstructured[pdf]<\/code>: \u06cc\u06a9 \u0644\u0648\u062f\u0631 \u0627\u0633\u0646\u0627\u062f \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0648 \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u060c \u0628\u0647 \u0648\u06cc\u0698\u0647 \u0628\u0631\u0627\u06cc PDF \u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647.<\/p>\n<\/li>\n<li>\n<p><code>tiktoken<\/code>: \u062a\u0648\u0633\u0637 Langchain \u0628\u0631\u0627\u06cc \u0634\u0645\u0627\u0631\u0634 \u062a\u0648\u06a9\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<\/li>\n<\/ul>\n<p>\u0645\u062c\u0645\u0648\u0639\u0647 \u0645\u062d\u0644\u06cc \u0634\u0627\u0645\u0644 \u0647\u0645\u0627\u0647\u0646\u06af\u06cc \u0686\u0646\u062f\u06cc\u0646 \u0645\u0624\u0644\u0641\u0647 \u0645\u0633\u062a\u0642\u0644 \u0627\u0633\u062a: \u062e\u0648\u062f \u0627\u0648\u0644\u0627\u0645\u0627 \u060c \u0648\u0632\u0646 \u0645\u062f\u0644 \u062e\u0627\u0635 Qwen 3 \u060c \u0645\u062d\u06cc\u0637 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0648 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0645\u0627\u0646\u0646\u062f Langchain \u0648 Chromadb. \u062a\u0636\u0645\u06cc\u0646 \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u0628\u06cc\u0646 \u0627\u06cc\u0646 \u0642\u0637\u0639\u0627\u062a \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0635\u062d\u06cc\u062d \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627 (\u0645\u0627\u0646\u0646\u062f \u0627\u0646\u062f\u0627\u0632\u0647 \u067e\u0646\u062c\u0631\u0647 \u0645\u062a\u0646 \u0627\u0648\u0644\u0645\u0627 \u06cc\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06cc\u06a9 \u0645\u062f\u0644 \u0645\u0646\u0627\u0633\u0628 \u0628\u0631\u0627\u06cc VRAM \u0645\u0648\u062c\u0648\u062f) \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u062a\u062c\u0631\u0628\u0647 \u0635\u0627\u0641 \u0645\u0647\u0645 \u0627\u0633\u062a.<\/p>\n<p>\u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0627\u06cc\u0646 \u0645\u062f\u0648\u0644\u0627\u0631 \u0627\u0646\u0639\u0637\u0627\u0641 \u067e\u0630\u06cc\u0631\u06cc \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f &#8211; \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0645\u0624\u0644\u0641\u0647 \u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f LLM \u06cc\u0627 \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0648\u06a9\u062a\u0648\u0631 \u0645\u0628\u0627\u062f\u0644\u0647 \u0634\u0648\u0646\u062f &#8211; \u0627\u06cc\u0646 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062a\u0646\u0638\u06cc\u0645 \u0627\u0648\u0644\u06cc\u0647 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062a\u0648\u062c\u0647 \u062f\u0642\u06cc\u0642 \u0628\u0647 \u062c\u0632\u0626\u06cc\u0627\u062a \u062f\u0627\u0631\u062f. \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0628\u0627 \u0647\u062f\u0641 \u0627\u0631\u0627\u0626\u0647 \u0645\u0631\u0627\u062d\u0644 \u0648\u0627\u0636\u062d \u0648 \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0647\u0627\u06cc \u0645\u0639\u0642\u0648\u0644 \u0628\u0631\u0627\u06cc \u0628\u0647 \u062d\u062f\u0627\u0642\u0644 \u0631\u0633\u0627\u0646\u062f\u0646 \u0646\u0642\u0627\u0637 \u0627\u0635\u0637\u06a9\u0627\u06a9 \u0628\u0627\u0644\u0642\u0648\u0647 \u0627\u0646\u062c\u0627\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<h2 id=\"heading-how-to-build-a-local-rag-system-with-qwen-3\"><span class=\"ez-toc-section\" id=\"%d8%b1%d9%88%d8%b4_%d8%b3%d8%a7%d8%ae%d8%aa_local_%d8%b3%db%8c%d8%b3%d8%aa%d9%85_rag_%d8%a8%d8%a7_qwen_3\"><\/span>\u0631\u0648\u0634 \u0633\u0627\u062e\u062a Local \u0633\u06cc\u0633\u062a\u0645 RAG \u0628\u0627 QWEN 3<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0646\u0633\u0644 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc (RAG) \u06cc\u06a9 \u062a\u06a9\u0646\u06cc\u06a9 \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0627\u0633\u062a \u06a9\u0647 LLMS \u0631\u0627 \u0628\u0627 \u0627\u0631\u0627\u0626\u0647 \u062f\u0627\u0646\u0634 \u062e\u0627\u0631\u062c\u06cc \u0628\u0647 \u0622\u0646\u0647\u0627 \u062a\u0642\u0648\u06cc\u062a \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0628\u0647 \u062c\u0627\u06cc \u062a\u06a9\u06cc\u0647 \u0641\u0642\u0637 \u0631\u0648\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0622\u0645\u0648\u0632\u0634\u06cc \u0622\u0646 \u060c LLM \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u0631\u0628\u0648\u0637\u0647 \u0631\u0627 \u0627\u0632 \u06cc\u06a9 \u0645\u062c\u0645\u0648\u0639\u0647 \u0633\u0646\u062f \u0645\u0634\u062e\u0635 (\u0645\u0627\u0646\u0646\u062f PDF \u0647\u0627\u06cc \u0645\u062d\u0644\u06cc) \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u06a9\u0646\u062f \u0648 \u0627\u0632 \u0622\u0646 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u0631\u0627\u06cc \u067e\u0627\u0633\u062e \u0628\u0647 \u0633\u0624\u0627\u0644\u0627\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0628\u0647 \u0637\u0648\u0631 \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc &#8220;\u062a\u0648\u0647\u0645&#8221; (\u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0646\u0627\u062f\u0631\u0633\u062a \u06cc\u0627 \u0633\u0627\u062e\u062a\u06af\u06cc) \u0631\u0627 \u06a9\u0627\u0647\u0634 \u0645\u06cc \u062f\u0647\u062f \u0648 \u0628\u0647 LLM \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0628\u062f\u0648\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0622\u0645\u0648\u0632\u0634 \u060c \u0628\u0647 \u0633\u0624\u0627\u0644\u0627\u062a \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062e\u0627\u0635 \u0648 \u062e\u0635\u0648\u0635\u06cc \u067e\u0627\u0633\u062e \u062f\u0647\u062f.<\/p>\n<p>\u067e\u0627\u0631\u0686\u0647 \u0627\u0635\u0644\u06cc process \u0634\u0627\u0645\u0644:<\/p>\n<ol>\n<li>\n<p>\u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0648 \u062a\u0642\u0633\u06cc\u0645 \u0627\u0633\u0646\u0627\u062f \u0628\u0647 \u062a\u06a9\u0647 \u0647\u0627\u06cc \u0642\u0627\u0628\u0644 \u06a9\u0646\u062a\u0631\u0644.<\/p>\n<\/li>\n<li>\n<p>\u062a\u0628\u062f\u06cc\u0644 \u0627\u06cc\u0646 \u062a\u06a9\u0647 \u0647\u0627 \u0628\u0647 \u0628\u0627\u0632\u0646\u0645\u0627\u06cc\u06cc \u0647\u0627\u06cc \u0639\u062f\u062f\u06cc (\u062a\u0639\u0628\u06cc\u0647) \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 \u0645\u062f\u0644 \u062a\u0639\u0628\u06cc\u0647 \u0634\u062f\u0647.<\/p>\n<\/li>\n<li>\n<p>\u0630\u062e\u06cc\u0631\u0647 \u0627\u06cc\u0646 \u062a\u0639\u0628\u06cc\u0647 \u0647\u0627 \u062f\u0631 \u06cc\u06a9 \u0628\u0627\u0646\u06a9 \u0627\u0637\u0644\u0627\u0639\u0627\u062a\u06cc \u0628\u0631\u062f\u0627\u0631 \u0628\u0631\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc \u06a9\u0627\u0631\u0622\u0645\u062f.<\/p>\n<\/li>\n<li>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u06cc\u06a9 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0648\u0627\u0631\u062f \u0645\u06cc \u0634\u0648\u062f \u060c \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0631\u0627 \u062a\u0639\u0628\u06cc\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0631\u062f\u0627\u0631 \u0628\u0631\u0627\u06cc \u0645\u0634\u0627\u0628\u0647 \u062a\u0631\u06cc\u0646 \u062a\u06a9\u0647 \u0647\u0627\u06cc \u0633\u0646\u062f \u062c\u0633\u062a\u062c\u0648 \u0645\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<\/li>\n<li>\n<p>\u0627\u0631\u0627\u0626\u0647 \u0627\u06cc\u0646 \u0628\u062e\u0634 \u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637\u0647 (\u0632\u0645\u06cc\u0646\u0647) \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0627\u0635\u0644\u06cc \u0628\u0647 LLM \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u067e\u0627\u0633\u062e \u0622\u06af\u0627\u0647\u0627\u0646\u0647.<\/p>\n<\/li>\n<\/ol>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Qwen 3 \u060c Ollama \u060c Langchain \u0648 Chromadb \u0628\u0633\u0627\u0632\u06cc\u0645.<\/p>\n<h3 id=\"heading-step-1-prepare-your-data\"><span class=\"ez-toc-section\" id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87_1_%d8%af%d8%a7%d8%af%d9%87_%d9%87%d8%a7%db%8c_%d8%ae%d9%88%d8%af_%d8%b1%d8%a7_%d8%a2%d9%85%d8%a7%d8%af%d9%87_%da%a9%d9%86%db%8c%d8%af\"><\/span>\u0645\u0631\u062d\u0644\u0647 1: \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0622\u0645\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0628\u0647 \u0646\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f <code>data<\/code> \u062f\u0631 \u067e\u0648\u0634\u0647 \u067e\u0631\u0648\u0698\u0647 \u0633\u0646\u062f PDF \u0631\u0627 \u06a9\u0647 \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u062f \u062f\u0631 \u0627\u06cc\u0646 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u067e\u0631\u0633 \u0648 \u062c\u0648 \u06a9\u0646\u06cc\u062f \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f. \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u060c \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 PDF \u062a\u06a9 \u060c \u062f\u0631 \u062f\u0631\u062c\u0647 \u0627\u0648\u0644 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0645\u062a\u0646 (\u0645\u0627\u0646\u0646\u062f \u0645\u0642\u0627\u0644\u0647 \u062a\u062d\u0642\u06cc\u0642 \u06cc\u0627 \u06af\u0632\u0627\u0631\u0634) \u0628\u0631\u0627\u06cc \u0633\u0627\u062f\u06af\u06cc.<\/p>\n<pre><code class=\"lang-bash\">mkdir data\n<span class=\"hljs-comment\"># Copy your PDF file into the 'data' directory<\/span>\n<span class=\"hljs-comment\"># e.g., cp ~\/Downloads\/some_paper.pdf.\/data\/mydocument.pdf<\/span>\n<\/code><\/pre>\n<p>\u0627\u06af\u0631 PDF \u0631\u0627 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0646\u062f\u0627\u0631\u06cc\u062f \u06a9\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 PDF (\u0645\u0642\u0627\u0644\u0647 Llama 2) \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u062f\u0631 \u062e\u0648\u062f \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u062f terminal:<\/p>\n<pre><code class=\"lang-bash\">\nwget --user-agent <span class=\"hljs-string\">\"Mozilla\"<\/span> <span class=\"hljs-string\">\"https:\/\/arxiv.org\/pdf\/2307.09288.pdf\"<\/span> -O <span class=\"hljs-string\">\"data\/llama2.pdf\"<\/span>\n<\/code><\/pre>\n<p>\u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f <code>data<\/code> \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0648 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc PDF \u060c \u0630\u062e\u06cc\u0631\u0647 \u0622\u0646 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 <code>llama2.pdf<\/code> \u062f\u0631 \u062f\u0627\u062e\u0644 <code>data<\/code> \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0627\u06af\u0631 \u062a\u0631\u062c\u06cc\u062d \u0645\u06cc \u062f\u0647\u06cc\u062f \u0627\u0632 \u0633\u0646\u062f \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u060c \u0641\u0627\u06cc\u0644 PDF \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u0622\u0646 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f <code>data<\/code> \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0648 \u0646\u0627\u0645 \u067e\u0631\u0648\u0646\u062f\u0647 \u0631\u0627 \u062f\u0631 \u06a9\u062f \u0628\u0639\u062f\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u06cc\u062f.<\/p>\n<h3 id=\"heading-step-2-load-documents-in-python\"><span class=\"ez-toc-section\" id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87_2_%d8%a7%d8%b3%d9%86%d8%a7%d8%af_%d8%b1%d8%a7_%d8%af%d8%b1_%d9%be%d8%a7%db%8c%d8%aa%d9%88%d9%86_%d8%a8%d8%a7%d8%b1%da%af%db%8c%d8%b1%db%8c_%da%a9%d9%86%db%8c%d8%af\"><\/span>\u0645\u0631\u062d\u0644\u0647 2: \u0627\u0633\u0646\u0627\u062f \u0631\u0627 \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u062f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0645\u062d\u062a\u0648\u0627\u06cc PDF \u0627\u0632 \u0644\u0648\u062f\u0631\u0647\u0627\u06cc \u0627\u0633\u0646\u0627\u062f Langchain \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. <code>PyPDFLoader<\/code> \u0628\u0631\u0627\u06cc PDF \u0647\u0627\u06cc \u0633\u0627\u062f\u0647 \u0633\u0627\u062f\u0647 \u0627\u0633\u062a. <code>UnstructuredPDFLoader<\/code> (\u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f <code>unstructured[pdf]<\/code>) \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0637\u0631\u062d \u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u062a\u0631\u06cc \u0631\u0627 \u062a\u062d\u0645\u0644 \u06a9\u0646\u062f \u0627\u0645\u0627 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0628\u06cc\u0634\u062a\u0631\u06cc \u062f\u0627\u0631\u062f.<\/p>\n<pre><code class=\"lang-python\"><span class=\"hljs-comment\"># rag_local.py<\/span>\n<span class=\"hljs-keyword\">import<\/span> os\n<span class=\"hljs-keyword\">from<\/span> dotenv <span class=\"hljs-keyword\">import<\/span> load_dotenv\n<span class=\"hljs-keyword\">from<\/span> langchain_community.document_loaders <span class=\"hljs-keyword\">import<\/span> PyPDFLoader <span class=\"hljs-comment\"># Or UnstructuredPDFLoader<\/span>\n\nload_dotenv() <span class=\"hljs-comment\"># Optional: Loads environment variables from.env file<\/span>\n\nDATA_PATH = <span class=\"hljs-string\">\"data\/\"<\/span>\nPDF_FILENAME = <span class=\"hljs-string\">\"mydocument.pdf\"<\/span> <span class=\"hljs-comment\"># Replace with your PDF filename<\/span>\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">load_documents<\/span>():<\/span>\n    <span class=\"hljs-string\">\"\"\"Loads documents from the specified data path.\"\"\"<\/span>\n    pdf_path = os.path.join(DATA_PATH, PDF_FILENAME)\n    loader = PyPDFLoader(pdf_path)\n    <span class=\"hljs-comment\"># loader = UnstructuredPDFLoader(pdf_path) # Alternative<\/span>\n    documents = loader.load()\n    print(<span class=\"hljs-string\">f\"Loaded <span class=\"hljs-subst\">{len(documents)}<\/span> page(s) from <span class=\"hljs-subst\">{pdf_path}<\/span>\"<\/span>)\n    <span class=\"hljs-keyword\">return<\/span> documents\n\n<span class=\"hljs-comment\"># documents = load_documents() # Call this later<\/span>\n<\/code><\/pre>\n<h3 id=\"heading-step-3-split-documents\"><span class=\"ez-toc-section\" id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87_3_%d8%a7%d8%b3%d9%86%d8%a7%d8%af_%d8%aa%d9%82%d8%b3%db%8c%d9%85_%d8%b4%d8%af%d9%87\"><\/span>\u0645\u0631\u062d\u0644\u0647 3: \u0627\u0633\u0646\u0627\u062f \u062a\u0642\u0633\u06cc\u0645 \u0634\u062f\u0647<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u0633\u0646\u0627\u062f \u0628\u0632\u0631\u06af \u0628\u0627\u06cc\u062f \u0628\u0647 \u062a\u06a9\u0647 \u0647\u0627\u06cc \u06a9\u0648\u0686\u06a9\u062a\u0631 \u0645\u0646\u0627\u0633\u0628 \u0628\u0631\u0627\u06cc \u062a\u0639\u0628\u06cc\u0647 \u0648 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u062a\u0642\u0633\u06cc\u0645 \u0634\u0648\u0646\u062f. \u062f\u0631 <code>RecursiveCharacterTextSplitter<\/code> \u062a\u0644\u0627\u0634 \u0628\u0631\u0627\u06cc \u062a\u0642\u0633\u06cc\u0645 \u0645\u062a\u0646 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u0639\u0646\u0627\u06cc\u06cc (\u062f\u0631 \u0628\u0646\u062f\u0647\u0627\u06cc \u060c \u062c\u0645\u0644\u0627\u062a \u0648 \u063a\u06cc\u0631\u0647 \u0631\u0648\u06cc) \u0642\u0628\u0644 \u0627\u0632 \u062a\u0648\u0633\u0644 \u0628\u0647 \u062a\u0642\u0633\u06cc\u0645\u0627\u062a \u0627\u0646\u062f\u0627\u0632\u0647 \u062b\u0627\u0628\u062a. <code>chunk_size<\/code> \u062d\u062f\u0627\u06a9\u062b\u0631 \u0627\u0646\u062f\u0627\u0632\u0647 \u0647\u0631 \u062a\u06a9\u0647 (\u062f\u0631 \u06a9\u0627\u0631\u0627\u06a9\u062a\u0631\u0647\u0627) \u0631\u0627 \u062a\u0639\u06cc\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f \u060c \u0648 <code>chunk_overlap<\/code> \u0645\u0634\u062e\u0635 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0686\u0647 \u062a\u0639\u062f\u0627\u062f \u0634\u062e\u0635\u06cc\u062a \u0647\u0627 \u0628\u0631\u0627\u06cc \u062d\u0641\u0638 \u0632\u0645\u06cc\u0646\u0647 \u0628\u0627\u06cc\u062f \u0628\u06cc\u0646 \u062a\u06a9\u0647 \u0647\u0627\u06cc \u0645\u062a\u0648\u0627\u0644\u06cc \u0647\u0645\u067e\u0648\u0634\u0627\u0646\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0646\u062f.<\/p>\n<pre><code class=\"lang-python\"><span class=\"hljs-comment\"># rag_local.py (continued)<\/span>\n<span class=\"hljs-keyword\">from<\/span> langchain_text_splitters <span class=\"hljs-keyword\">import<\/span> RecursiveCharacterTextSplitter\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">split_documents<\/span>(<span class=\"hljs-params\">documents<\/span>):<\/span>\n    <span class=\"hljs-string\">\"\"\"Splits documents into smaller chunks.\"\"\"<\/span>\n    text_splitter = RecursiveCharacterTextSplitter(\n        chunk_size=<span class=\"hljs-number\">1000<\/span>,\n        chunk_overlap=<span class=\"hljs-number\">200<\/span>,\n        length_function=len,\n        is_separator_regex=<span class=\"hljs-literal\">False<\/span>,\n    )\n    all_splits = text_splitter.split_documents(documents)\n    print(<span class=\"hljs-string\">f\"Split into <span class=\"hljs-subst\">{len(all_splits)}<\/span> chunks\"<\/span>)\n    <span class=\"hljs-keyword\">return<\/span> all_splits\n\n<span class=\"hljs-comment\"># loaded_docs = load_documents()<\/span>\n<span class=\"hljs-comment\"># chunks = split_documents(loaded_docs) # Call this later<\/span>\n<\/code><\/pre>\n<h3 id=\"heading-step-4-choose-and-configure-embedding-model\"><span class=\"ez-toc-section\" id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87_4_%d9%85%d8%af%d9%84_%d8%aa%d8%b9%d8%a8%db%8c%d9%87_%d8%b1%d8%a7_%d8%a7%d9%86%d8%aa%d8%ae%d8%a7%d8%a8_%d9%88_%d9%be%db%8c%da%a9%d8%b1%d8%a8%d9%86%d8%af%db%8c_%da%a9%d9%86%db%8c%d8%af\"><\/span>\u0645\u0631\u062d\u0644\u0647 4: \u0645\u062f\u0644 \u062a\u0639\u0628\u06cc\u0647 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062a\u0639\u0628\u06cc\u0647 \u0647\u0627 \u0645\u062a\u0646 \u0631\u0627 \u0628\u0647 \u0628\u0631\u062f\u0627\u0631\u0647\u0627 \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u0646\u062f (\u0644\u06cc\u0633\u062a \u0627\u0639\u062f\u0627\u062f) \u0628\u0647 \u06af\u0648\u0646\u0647 \u0627\u06cc \u06a9\u0647 \u062a\u06a9\u0647 \u0647\u0627\u06cc \u0645\u062a\u0646\u06cc \u0627\u0632 \u0646\u0638\u0631 \u0645\u0639\u0646\u0627\u06cc\u06cc \u062f\u0627\u0631\u0627\u06cc \u0628\u0631\u062f\u0627\u0631\u0647\u0627\u06cc\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u062f\u0631 \u0641\u0636\u0627\u06cc \u0686\u0646\u062f \u0628\u0639\u062f\u06cc \u0628\u0647 \u0647\u0645 \u0646\u0632\u062f\u06cc\u06a9 \u0647\u0633\u062a\u0646\u062f.<\/p>\n<h4 id=\"heading-option-a-recommended-for-simplicity-ollama-embeddings\">\u06af\u0632\u06cc\u0646\u0647 A (\u0628\u0631\u0627\u06cc \u0633\u0627\u062f\u06af\u06cc \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc \u0634\u0648\u062f): Ollama Embeddings<\/h4>\n<p>\u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0627\u0632 \u0627\u0648\u0644\u0627\u0645\u0627 \u0628\u0631\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u06cc\u06a9 \u0645\u062f\u0644 \u062a\u0639\u0628\u06cc\u0647 \u0634\u062f\u0647 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f. \u0645\u062a\u0646 \u0646\u0627\u0645\u06af\u0630\u0627\u0631\u06cc \u0634\u062f\u0647 \u06cc\u06a9 \u0645\u062f\u0644 \u0645\u0646\u0628\u0639 \u0628\u0627\u0632 \u0642\u0627\u062f\u0631 \u0627\u0633\u062a \u0627\u0632 \u0637\u0631\u06cc\u0642 Ollama \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a.<\/p>\n<p>\u0627\u0628\u062a\u062f\u0627 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0645\u062f\u0644 \u062a\u0639\u0628\u06cc\u0647 \u0634\u062f\u0647 \u06a9\u0634\u06cc\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<pre><code class=\"lang-bash\">ollama pull nomic-embed-text\n<\/code><\/pre>\n<p>\u0633\u067e\u0633 \u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <code>OllamaEmbeddings<\/code> \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646:<\/p>\n<pre><code class=\"lang-python\"><span class=\"hljs-comment\"># rag_local.py (continued)<\/span>\n<span class=\"hljs-keyword\">from<\/span> langchain_ollama <span class=\"hljs-keyword\">import<\/span> OllamaEmbeddings\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">get_embedding_function<\/span>(<span class=\"hljs-params\">model_name=<span class=\"hljs-string\">\"nomic-embed-text\"<\/span><\/span>):<\/span>\n    <span class=\"hljs-string\">\"\"\"Initializes the Ollama embedding function.\"\"\"<\/span>\n    <span class=\"hljs-comment\"># Ensure Ollama server is running (ollama serve)<\/span>\n    embeddings = OllamaEmbeddings(model=model_name)\n    print(<span class=\"hljs-string\">f\"Initialized Ollama embeddings with model: <span class=\"hljs-subst\">{model_name}<\/span>\"<\/span>)\n    <span class=\"hljs-keyword\">return<\/span> embeddings\n\n<span class=\"hljs-comment\"># embedding_function = get_embedding_function() # Call this later<\/span>\n<\/code><\/pre>\n<h4 id=\"heading-option-b-alternative-sentence-transformers\">\u06af\u0632\u06cc\u0646\u0647 B (\u062c\u0627\u06cc\u06af\u0632\u06cc\u0646): \u062a\u0631\u0627\u0646\u0633\u0641\u0648\u0631\u0645\u0627\u062a\u0648\u0631 \u062c\u0645\u0644\u0647<\/h4>\n<p>\u0627\u06cc\u0646 \u0627\u0632 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u062c\u0645\u0644\u0647-\u062a\u0631\u0627\u0646\u0633\u0641\u0648\u0631\u0645\u0627\u062a\u0648\u0631 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u062f\u0631 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u067e\u0627\u06cc\u062a\u0648\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f. \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0646\u0635\u0628 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u062f\u0627\u0631\u062f (pip \u0627\u0646\u062a\u0642\u0627\u0644 \u062f\u0647\u0646\u062f\u0647 \u0647\u0627\u06cc \u062c\u0645\u0644\u0647 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f) \u0627\u0645\u0627 \u0628\u0647 \u0627\u0648\u0644\u0627\u0645\u0627 \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0627\u062d\u062a\u06cc\u0627\u062c \u0646\u062f\u0627\u0631\u062f process \u0628\u0631\u0627\u06cc \u062a\u0639\u0628\u06cc\u0647 \u0645\u062f\u0644 \u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f All-Minilm-L6-V2 \u0633\u0631\u06cc\u0639 \u0648 \u0633\u0628\u06a9 \u0647\u0633\u062a\u0646\u062f \u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 All-MPNet-Base-V2 \u06a9\u06cc\u0641\u06cc\u062a \u0628\u0627\u0644\u0627\u062a\u0631\u06cc \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<pre><code class=\"lang-python\"><span class=\"hljs-comment\"># Alternative embedding function using Sentence Transformers<\/span>\n<span class=\"hljs-keyword\">from<\/span> langchain_community.embeddings <span class=\"hljs-keyword\">import<\/span> HuggingFaceEmbeddings\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">get_embedding_function_hf<\/span>(<span class=\"hljs-params\">model_name=<span class=\"hljs-string\">\"all-MiniLM-L6-v2\"<\/span><\/span>):<\/span>\n     <span class=\"hljs-string\">\"\"\"Initializes HuggingFace embeddings (runs locally).\"\"\"<\/span>\n     embeddings = HuggingFaceEmbeddings(model_name=model_name)\n     print(<span class=\"hljs-string\">f\"Initialized HuggingFace embeddings with model: <span class=\"hljs-subst\">{model_name}<\/span>\"<\/span>)\n     <span class=\"hljs-keyword\">return<\/span> embeddings\n\nembedding_function = get_embedding_function_hf() <span class=\"hljs-comment\"># Use this if choosing Option B<\/span>\n<\/code><\/pre>\n<p>\u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u060c \u0645\u0627 \u0627\u0632 \u06af\u0632\u06cc\u0646\u0647 A \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f (Ollama \u062a\u0639\u0628\u06cc\u0647 \u0634\u062f\u0647 \u0628\u0627 <code>nomic-embed-text<\/code>) \u0628\u0631\u0627\u06cc \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u0628\u0627 \u0627\u0628\u0632\u0627\u0631.<\/p>\n<h3 id=\"heading-step-5-set-up-local-vector-store-chromadb\"><span class=\"ez-toc-section\" id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87_5_%d8%aa%d9%86%d8%b8%db%8c%d9%85_%da%a9%d9%86%db%8c%d8%af_local_%d9%81%d8%b1%d9%88%d8%b4%da%af%d8%a7%d9%87_%d9%88%da%a9%d8%aa%d9%88%d8%b1_chromadb\"><\/span>\u0645\u0631\u062d\u0644\u0647 5: \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f Local \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0648\u06a9\u062a\u0648\u0631 (Chromadb)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Chromadb \u0631\u0648\u0634\u06cc \u06a9\u0627\u0631\u0622\u0645\u062f \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0648 \u062c\u0633\u062a\u062c\u0648\u06cc \u062a\u0639\u0628\u06cc\u0647 \u0647\u0627\u06cc \u0648\u06a9\u062a\u0648\u0631 \u0645\u062d\u0644\u06cc \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f. \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 \u0645\u0634\u062a\u0631\u06cc \u0645\u062f\u0627\u0648\u0645 \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0641\u0647\u0631\u0633\u062a \u0628\u0646\u062f\u06cc \u0634\u062f\u0647 \u062f\u0631 \u062f\u06cc\u0633\u06a9 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f \u0648 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0628\u062f\u0648\u0646 \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u062c\u062f\u062f \u0627\u0633\u0646\u0627\u062f \u0647\u0631 \u0628\u0627\u0631 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0645\u062c\u062f\u062f \u0634\u0648\u0646\u062f.<\/p>\n<pre><code class=\"lang-python\"><span class=\"hljs-comment\"># rag_local.py (continued)<\/span>\n<span class=\"hljs-keyword\">from<\/span> langchain_community.vectorstores <span class=\"hljs-keyword\">import<\/span> Chroma\n\nCHROMA_PATH = <span class=\"hljs-string\">\"chroma_db\"<\/span> <span class=\"hljs-comment\"># Directory to store ChromaDB data<\/span>\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">get_vector_store<\/span>(<span class=\"hljs-params\">embedding_function, persist_directory=CHROMA_PATH<\/span>):<\/span>\n    <span class=\"hljs-string\">\"\"\"Initializes or loads the Chroma vector store.\"\"\"<\/span>\n    vectorstore = Chroma(\n        persist_directory=persist_directory,\n        embedding_function=embedding_function\n    )\n    print(<span class=\"hljs-string\">f\"Vector store initialized\/loaded from: <span class=\"hljs-subst\">{persist_directory}<\/span>\"<\/span>)\n    <span class=\"hljs-keyword\">return<\/span> vectorstore\n\nembedding_function = get_embedding_function()\nvector_store = get_vector_store(embedding_function) <span class=\"hljs-comment\"># Call this later<\/span>\n<\/code><\/pre>\n<h3 id=\"heading-step-6-index-documents-embed-and-store\"><span class=\"ez-toc-section\" id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87_6_%d8%a7%d8%b3%d9%86%d8%a7%d8%af_%d9%81%d9%87%d8%b1%d8%b3%d8%aa_%d8%ac%d8%a7%d8%b3%d8%a7%d8%b2%db%8c_%d9%88_%d8%b0%d8%ae%db%8c%d8%b1%d9%87\"><\/span>\u0645\u0631\u062d\u0644\u0647 6: \u0627\u0633\u0646\u0627\u062f \u0641\u0647\u0631\u0633\u062a (\u062c\u0627\u0633\u0627\u0632\u06cc \u0648 \u0630\u062e\u06cc\u0631\u0647)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0646\u0645\u0627\u06cc\u0647 \u0633\u0627\u0632\u06cc \u0627\u0635\u0644\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062a\u06a9\u0647 \u0647\u0627\u06cc \u0627\u0633\u0646\u0627\u062f \u0628\u0647 \u062a\u0639\u0628\u06cc\u0647 \u0647\u0627 \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u0634\u0648\u0646\u062f \u0648 \u062f\u0631 Chromadb \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f. \u062f\u0631 <code>Chroma.from_documents<\/code> \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0648 \u0646\u0645\u0627\u06cc\u0647 \u0633\u0627\u0632\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a. \u0627\u06af\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0627\u0632 \u0642\u0628\u0644 \u0648\u062c\u0648\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f \u060c \u0627\u0641\u0632\u0648\u062f\u0646\u06cc \u0647\u0627\u06cc \u0628\u0639\u062f\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0646\u062f <code>vectorstore.add_documents<\/code>\u0628\u0634\u0631<\/p>\n<pre><code class=\"lang-python\"><span class=\"hljs-comment\"># rag_local.py (continued)<\/span>\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">index_documents<\/span>(<span class=\"hljs-params\">chunks, embedding_function, persist_directory=CHROMA_PATH<\/span>):<\/span>\n    <span class=\"hljs-string\">\"\"\"Indexes document chunks into the Chroma vector store.\"\"\"<\/span>\n    print(<span class=\"hljs-string\">f\"Indexing <span class=\"hljs-subst\">{len(chunks)}<\/span> chunks...\"<\/span>)\n    <span class=\"hljs-comment\"># Use from_documents for initial creation.<\/span>\n    <span class=\"hljs-comment\"># This will overwrite existing data if the directory exists but isn't a valid Chroma DB.<\/span>\n    <span class=\"hljs-comment\"># For incremental updates, initialize Chroma first and use vectorstore.add_documents().<\/span>\n    vectorstore = Chroma.from_documents(\n        documents=chunks,\n        embedding=embedding_function,\n        persist_directory=persist_directory\n    )\n    vectorstore.persist() <span class=\"hljs-comment\"># Ensure data is saved<\/span>\n    print(<span class=\"hljs-string\">f\"Indexing complete. Data saved to: <span class=\"hljs-subst\">{persist_directory}<\/span>\"<\/span>)\n    <span class=\"hljs-keyword\">return<\/span> vectorstore\n\n<span class=\"hljs-comment\">#... (previous function calls)<\/span>\nvector_store = index_documents(chunks, embedding_function) <span class=\"hljs-comment\"># Call this for initial indexing<\/span>\n<\/code><\/pre>\n<p>\u0628\u0631\u0627\u06cc \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0645\u062f\u0627\u0648\u0645 \u0645\u0648\u062c\u0648\u062f \u0628\u0639\u062f\u0627\u064b:<\/p>\n<pre><code class=\"lang-python\">embedding_function = get_embedding_function()\nvector_store = Chroma(persist_directory=CHROMA_PATH, embedding_function=embedding_function)\n<\/code><\/pre>\n<h3 id=\"heading-step-7-build-the-rag-chain\"><span class=\"ez-toc-section\" id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87_7_%d8%b2%d9%86%d8%ac%db%8c%d8%b1%d9%87_%d9%be%d8%a7%d8%b1%da%86%d9%87_%d8%b1%d8%a7_%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\"><\/span>\u0645\u0631\u062d\u0644\u0647 7: \u0632\u0646\u062c\u06cc\u0631\u0647 \u067e\u0627\u0631\u0686\u0647 \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u060c \u0645\u0624\u0644\u0641\u0647 \u0647\u0627 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0632\u0646\u062c\u06cc\u0631\u0647 \u0632\u0628\u0627\u0646 \u0628\u06cc\u0627\u0646 Langchain (LCEL) \u062c\u0645\u0639 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0634\u0627\u0645\u0644 \u0627\u0648\u0644\u06cc\u0647 \u0633\u0627\u0632\u06cc QWEN 3 LLM \u0627\u0632 \u0637\u0631\u06cc\u0642 OLLAMA \u060c \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0628\u0627\u0632\u067e\u0631\u062f\u0627\u062e\u062a \u0627\u0632 \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0648\u06a9\u062a\u0648\u0631 \u060c \u062a\u0639\u0631\u06cc\u0641 \u06cc\u06a9 \u0641\u0648\u0631\u06cc \u0645\u0646\u0627\u0633\u0628 \u0648 \u0632\u0646\u062c\u06cc\u0631 \u06a9\u0631\u062f\u0646 \u0622\u0646\u0647\u0627 \u062f\u0631 \u06a9\u0646\u0627\u0631 \u0647\u0645 \u0627\u0633\u062a.<\/p>\n<p>\u06cc\u06a9 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0628\u062d\u0631\u0627\u0646\u06cc \u0647\u0646\u06af\u0627\u0645 \u0627\u0648\u0644\u06cc\u0647 \u0633\u0627\u0632\u06cc <code>ChatOllama<\/code> \u0628\u0631\u0627\u06cc \u0631\u0627\u06af \u0627\u0633\u062a <code>num_ctx<\/code>\u0628\u0634\u0631 \u0627\u06cc\u0646 \u0627\u0646\u062f\u0627\u0632\u0647 \u067e\u0646\u062c\u0631\u0647 \u0632\u0645\u06cc\u0646\u0647 (\u062f\u0631 \u0646\u0634\u0627\u0646\u0647 \u0647\u0627) \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 LLM \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f. \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0627\u0648\u0644\u0627\u0645\u0627 (\u0627\u063a\u0644\u0628 \u062a\u0648\u06a9\u0646 \u0647\u0627\u06cc 2048 \u06cc\u0627 4096) \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062e\u06cc\u0644\u06cc \u06a9\u0648\u0686\u06a9 \u0628\u0627\u0634\u062f \u062a\u0627 \u0647\u0645 \u062f\u0631 \u0632\u0645\u06cc\u0646\u0647 \u0633\u0646\u062f \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0634\u062f\u0647 \u0648 \u0647\u0645 \u067e\u0631\u0633 \u0648 \u062c\u0648\/\u0633\u0631\u06cc\u0639 \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u062f\u0631 \u062e\u0648\u062f \u062c\u0627\u06cc \u062f\u0647\u062f.<\/p>\n<p>\u0645\u062f\u0644 \u0647\u0627\u06cc Qwen 3 (8b \u0648 \u0628\u0632\u0631\u06af\u062a\u0631) \u0627\u0632 \u067e\u0646\u062c\u0631\u0647 \u0647\u0627\u06cc \u0645\u062a\u0646 \u0628\u0633\u06cc\u0627\u0631 \u0628\u0632\u0631\u06af\u062a\u0631 (\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u060c \u0646\u0634\u0627\u0646\u0647 \u0647\u0627\u06cc 128K) \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u0646\u062f \u060c \u0627\u0645\u0627 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc \u0639\u0645\u0644\u06cc \u0628\u0633\u062a\u06af\u06cc \u062f\u0627\u0631\u062f \u0631\u0648\u06cc RAM\/VRAM \u0645\u0648\u062c\u0648\u062f \u0634\u0645\u0627. \u062a\u0646\u0638\u06cc\u0645 <code>num_ctx<\/code> \u0628\u0647 \u0645\u0642\u062f\u0627\u0631\u06cc \u0645\u0627\u0646\u0646\u062f 8192 \u06cc\u0627 \u0628\u0627\u0644\u0627\u062a\u0631 \u0627\u063a\u0644\u0628 \u0628\u0631\u0627\u06cc \u067e\u0627\u0631\u0686\u0647 \u0645\u0624\u062b\u0631 \u0636\u0631\u0648\u0631\u06cc \u0627\u0633\u062a.<\/p>\n<pre><code class=\"lang-python\"><span class=\"hljs-comment\"># rag_local.py (continued)<\/span>\n<span class=\"hljs-keyword\">from<\/span> langchain_ollama <span class=\"hljs-keyword\">import<\/span> ChatOllama\n<span class=\"hljs-keyword\">from<\/span> langchain_core.prompts <span class=\"hljs-keyword\">import<\/span> ChatPromptTemplate\n<span class=\"hljs-keyword\">from<\/span> langchain_core.runnables <span class=\"hljs-keyword\">import<\/span> RunnablePassthrough\n<span class=\"hljs-keyword\">from<\/span> langchain_core.output_parsers <span class=\"hljs-keyword\">import<\/span> StrOutputParser\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">create_rag_chain<\/span>(<span class=\"hljs-params\">vector_store, llm_model_name=<span class=\"hljs-string\">\"qwen3:8b\"<\/span>, context_window=<span class=\"hljs-number\">8192<\/span><\/span>):<\/span>\n    <span class=\"hljs-string\">\"\"\"Creates the RAG chain.\"\"\"<\/span>\n    <span class=\"hljs-comment\"># Initialize the LLM<\/span>\n    llm = ChatOllama(\n        model=llm_model_name,\n        temperature=<span class=\"hljs-number\">0<\/span>, <span class=\"hljs-comment\"># Lower temperature for more factual RAG answers<\/span>\n        num_ctx=context_window <span class=\"hljs-comment\"># IMPORTANT: Set context window size<\/span>\n    )\n    print(<span class=\"hljs-string\">f\"Initialized ChatOllama with model: <span class=\"hljs-subst\">{llm_model_name}<\/span>, context window: <span class=\"hljs-subst\">{context_window}<\/span>\"<\/span>)\n\n    <span class=\"hljs-comment\"># Create the retriever<\/span>\n    retriever = vector_store.as_retriever(\n        search_type=<span class=\"hljs-string\">\"similarity\"<\/span>, <span class=\"hljs-comment\"># Or \"mmr\"<\/span>\n        search_kwargs={<span class=\"hljs-string\">'k'<\/span>: <span class=\"hljs-number\">3<\/span>} <span class=\"hljs-comment\"># Retrieve top 3 relevant chunks<\/span>\n    )\n    print(<span class=\"hljs-string\">\"Retriever initialized.\"<\/span>)\n\n    <span class=\"hljs-comment\"># Define the prompt template<\/span>\n    template = <span class=\"hljs-string\">\"\"\"Answer the question based ONLY \u0631\u0648\u06cc the following context:\n{context}\n\nQuestion: {question}\n\"\"\"<\/span>\n    prompt = ChatPromptTemplate.from_template(template)\n    print(<span class=\"hljs-string\">\"Prompt template created.\"<\/span>)\n\n    <span class=\"hljs-comment\"># Define the RAG chain using LCEL<\/span>\n    rag_chain = (\n        {<span class=\"hljs-string\">\"context\"<\/span>: retriever, <span class=\"hljs-string\">\"question\"<\/span>: RunnablePassthrough()}\n| prompt\n| llm\n| StrOutputParser()\n    )\n    print(<span class=\"hljs-string\">\"RAG chain created.\"<\/span>)\n    <span class=\"hljs-keyword\">return<\/span> rag_chain\n\n<span class=\"hljs-comment\">#... (previous function calls)<\/span>\nvector_store = get_vector_store(embedding_function) <span class=\"hljs-comment\"># Assuming DB is already indexed<\/span>\nrag_chain = create_rag_chain(vector_store) <span class=\"hljs-comment\"># Call this later<\/span>\n<\/code><\/pre>\n<p>\u0627\u062b\u0631\u0628\u062e\u0634\u06cc \u0633\u06cc\u0633\u062a\u0645 RAG \u0644\u0648\u0644\u0627 \u0631\u0648\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u0646\u0627\u0633\u0628 \u0647\u0631 \u0645\u0624\u0644\u0641\u0647. \u062f\u0631 <code>chunk_size<\/code> \u0648\u062a <code>chunk_overlap<\/code> \u062f\u0631 \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0646\u0646\u062f\u0647 \u0622\u0646\u0686\u0647 \u0631\u0627 \u06a9\u0647 retriever \u067e\u06cc\u062f\u0627 \u0645\u06cc \u06a9\u0646\u062f \u062a\u0623\u062b\u06cc\u0631 \u0645\u06cc \u06af\u0630\u0627\u0631\u062f. \u0627\u0646\u062a\u062e\u0627\u0628 \u0634\u0645\u0627 \u0627\u0632 <code>embedding_function<\/code> \u0628\u0627\u06cc\u062f \u0628\u06cc\u0646 \u0646\u0645\u0627\u06cc\u0647 \u0633\u0627\u0632\u06cc \u0648 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0633\u0627\u0632\u06af\u0627\u0631 \u0628\u0627\u0634\u062f. \u062f\u0631 <code>num_ctx<\/code> \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0628\u0631\u0627\u06cc <code>ChatOllama<\/code> LLM \u0628\u0627\u06cc\u062f \u0628\u0647 \u0627\u0646\u062f\u0627\u0632\u0647 \u06a9\u0627\u0641\u06cc \u0628\u0632\u0631\u06af \u0628\u0627\u0634\u062f \u062a\u0627 \u0632\u0645\u06cc\u0646\u0647 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0634\u062f\u0647 \u0648 \u062e\u0648\u062f \u0631\u0627 \u0633\u0631\u06cc\u0639 \u0646\u06af\u0647 \u062f\u0627\u0631\u062f. \u06cc\u06a9 \u0627\u0644\u06af\u0648\u06cc \u0633\u0631\u06cc\u0639 \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647 \u0646\u06cc\u0632 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f LLM \u0631\u0627 \u06af\u0645\u0631\u0627\u0647 \u06a9\u0646\u062f. \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0627\u06cc\u0646 \u0639\u0646\u0627\u0635\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0647\u06cc\u0646\u0647 \u0628\u0627 \u062f\u0642\u062a \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f.<\/p>\n<h3 id=\"heading-step-8-query-your-documents\"><span class=\"ez-toc-section\" id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87_8_%d8%a7%d8%b3%d9%86%d8%a7%d8%af_%d8%ae%d9%88%d8%af_%d8%b1%d8%a7_%d9%be%d8%b1%d8%b3_%d9%88_%d8%ac%d9%88_%da%a9%d9%86%db%8c%d8%af\"><\/span>\u0645\u0631\u062d\u0644\u0647 8: \u0627\u0633\u0646\u0627\u062f \u062e\u0648\u062f \u0631\u0627 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u06a9\u0646\u06cc\u062f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0633\u0631\u0627\u0646\u062c\u0627\u0645 \u060c \u0628\u0627 \u06cc\u06a9 \u0633\u0624\u0627\u0644 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0645\u062d\u062a\u0648\u0627\u06cc PDF \u0641\u0647\u0631\u0633\u062a \u0628\u0646\u062f\u06cc \u0634\u062f\u0647 \u060c \u0632\u0646\u062c\u06cc\u0631\u0647 \u0627\u06cc \u0627\u0632 Rag \u0631\u0627 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<pre><code class=\"lang-python\"><span class=\"hljs-comment\"># rag_local.py (continued)<\/span>\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">query_rag<\/span>(<span class=\"hljs-params\">chain, question<\/span>):<\/span>\n    <span class=\"hljs-string\">\"\"\"Queries the RAG chain and prints the response.\"\"\"<\/span>\n    print(<span class=\"hljs-string\">\"\\nQuerying RAG chain...\"<\/span>)\n    print(<span class=\"hljs-string\">f\"Question: <span class=\"hljs-subst\">{question}<\/span>\"<\/span>)\n    response = chain.invoke(question)\n    print(<span class=\"hljs-string\">\"\\nResponse:\"<\/span>)\n    print(response)\n\n<span class=\"hljs-comment\"># --- Main Execution ---<\/span>\n<span class=\"hljs-keyword\">if<\/span> __name__ == <span class=\"hljs-string\">\"__main__\"<\/span>:\n    <span class=\"hljs-comment\"># 1. Load Documents<\/span>\n    docs = load_documents()\n\n    <span class=\"hljs-comment\"># 2. Split Documents<\/span>\n    chunks = split_documents(docs)\n\n    <span class=\"hljs-comment\"># 3. Get Embedding Function<\/span>\n    embedding_function = get_embedding_function() <span class=\"hljs-comment\"># Using Ollama nomic-embed-text<\/span>\n\n    <span class=\"hljs-comment\"># 4. Index Documents (Only needs to be done once per document set)<\/span>\n    <span class=\"hljs-comment\"># Check if DB exists, if not, index. For simplicity, we might re-index here.<\/span>\n    <span class=\"hljs-comment\"># A more robust approach would check if indexing is needed.<\/span>\n    print(<span class=\"hljs-string\">\"Attempting to index documents...\"<\/span>)\n    vector_store = index_documents(chunks, embedding_function)\n    <span class=\"hljs-comment\"># To load existing DB instead:<\/span>\n    <span class=\"hljs-comment\"># vector_store = get_vector_store(embedding_function)<\/span>\n\n    <span class=\"hljs-comment\"># 5. Create RAG Chain<\/span>\n    rag_chain = create_rag_chain(vector_store, llm_model_name=<span class=\"hljs-string\">\"qwen3:8b\"<\/span>) <span class=\"hljs-comment\"># Use the chosen Qwen 3 model<\/span>\n\n    <span class=\"hljs-comment\"># 6. Query<\/span>\n    query_question = <span class=\"hljs-string\">\"What is the main topic of the document?\"<\/span> <span class=\"hljs-comment\"># Replace with a specific question<\/span>\n    query_rag(rag_chain, query_question)\n\n    query_question_2 = <span class=\"hljs-string\">\"Summarize the introduction section.\"<\/span> <span class=\"hljs-comment\"># Another example<\/span>\n    query_rag(rag_chain, query_question_2)\n<\/code><\/pre>\n<p>\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u06a9\u0627\u0645\u0644 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f (<code>python rag_local.py<\/code>). \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 <code>ollama serve<\/code> \u0641\u0631\u0645\u0627\u0646 \u062f\u0631 \u062f\u06cc\u06af\u0631\u06cc \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u062f terminal\u0628\u0634\u0631 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a PDF \u0631\u0627 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0645\u06cc \u06a9\u0646\u062f \u060c \u0622\u0646 \u0631\u0627 \u062a\u0642\u0633\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u062f \u060c \u062a\u06a9\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u062c\u0627\u0633\u0627\u0632\u06cc \u0645\u06cc \u06a9\u0646\u062f <code>nomic-embed-text<\/code> \u0627\u0632 \u0637\u0631\u06cc\u0642 Ollama \u060c \u0622\u0646\u0647\u0627 \u0631\u0627 \u062f\u0631 Chromadb \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f \u060c \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0632\u0646\u062c\u06cc\u0631\u0647 \u067e\u0627\u0631\u0686\u0647 \u0627\u06cc \u0628\u0633\u0627\u0632\u06cc\u062f <code>qwen3:8b<\/code> \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0627\u0648\u0644\u0627\u0645\u0627 \u060c \u0648 \u0633\u0631\u0627\u0646\u062c\u0627\u0645 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 print \u067e\u0627\u0633\u062e \u0647\u0627\u06cc LLM \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0631\u0648\u06cc \u0645\u062d\u062a\u0648\u0627\u06cc \u0633\u0646\u062f<\/p>\n<h2 id=\"heading-how-to-create-local-ai-agents-with-qwen-3\"><span class=\"ez-toc-section\" id=\"%d8%b1%d9%88%d8%b4_%d8%a7%db%8c%d8%ac%d8%a7%d8%af_local_%d8%b9%d9%88%d8%a7%d9%85%d9%84_ai_%d8%a8%d8%a7_qwen_3\"><\/span>\u0631\u0648\u0634 \u0627\u06cc\u062c\u0627\u062f Local \u0639\u0648\u0627\u0645\u0644 AI \u0628\u0627 Qwen 3<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0641\u0631\u0627\u062a\u0631 \u0627\u0632 \u067e\u0627\u0633\u062e \u062f\u0627\u062f\u0646 \u0628\u0647 \u0633\u0648\u0627\u0644\u0627\u062a \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0631\u0648\u06cc \u0645\u062a\u0646 \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u060c LLMS \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u0648\u062a\u0648\u0631 \u0627\u0633\u062a\u062f\u0644\u0627\u0644 \u0628\u0631\u0627\u06cc \u0639\u0648\u0627\u0645\u0644 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0639\u0645\u0644 \u06a9\u0646\u062f. \u0646\u0645\u0627\u06cc\u0646\u062f\u06af\u0627\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u062a\u0648\u0627\u0644\u06cc \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0631\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u06cc\u0632\u06cc \u06a9\u0646\u0646\u062f \u060c \u0628\u0627 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u062e\u0627\u0631\u062c\u06cc (\u0645\u0627\u0646\u0646\u062f \u062a\u0648\u0627\u0628\u0639 \u06cc\u0627 API) \u062a\u0639\u0627\u0645\u0644 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0646\u062f \u0648 \u062f\u0631 \u062c\u0647\u062a \u062f\u0633\u062a\u06cc\u0627\u0628\u06cc \u0628\u0647 \u0627\u0647\u062f\u0627\u0641 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u062a\u0631\u06cc \u06a9\u0647 \u062a\u0648\u0633\u0637 \u06a9\u0627\u0631\u0628\u0631 \u062a\u0639\u06cc\u06cc\u0646 \u0634\u062f\u0647 \u0627\u0633\u062a \u060c \u062a\u0644\u0627\u0634 \u06a9\u0646\u0646\u062f.<\/p>\n<p>\u0645\u062f\u0644 \u0647\u0627\u06cc QWEN 3 \u0628\u0647 \u0637\u0648\u0631 \u062e\u0627\u0635 \u0628\u0627 \u0642\u0627\u0628\u0644\u06cc\u062a \u062a\u0645\u0627\u0633 \u0628\u0627 \u0627\u0628\u0632\u0627\u0631 \u0642\u0648\u06cc \u0648 \u0639\u0627\u0645\u0644 \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647 \u0627\u0646\u062f. \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 Alibaba \u0686\u0627\u0631\u0686\u0648\u0628 Qwen-Agent \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f \u060c \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Langchain \u0628\u0631\u0627\u06cc \u0642\u0648\u0627\u0645 \u0627\u062f\u0627\u0645\u0647 \u062e\u0648\u0627\u0647\u062f \u06cc\u0627\u0641\u062a \u0648 \u0628\u0647 \u062f\u0644\u06cc\u0644 \u0627\u062f\u063a\u0627\u0645 \u0622\u0646 \u0628\u0627 Ollama \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0647\u0627\u06cc \u0639\u0627\u0645\u0644 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u062f\u0631 \u0645\u0648\u0627\u062f \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u0645\u0633\u062a\u0646\u062f \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0645\u0627 \u06cc\u06a9 \u0639\u0627\u0645\u0644 \u0633\u0627\u062f\u0647 \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0627\u0632 \u06cc\u06a9 \u0639\u0645\u0644\u06a9\u0631\u062f Python \u0633\u0641\u0627\u0631\u0634\u06cc \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0627\u0628\u0632\u0627\u0631\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f.<\/p>\n<h3 id=\"heading-step-1-define-custom-tools\"><span class=\"ez-toc-section\" id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87_1_%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1%d9%87%d8%a7%db%8c_%d8%b3%d9%81%d8%a7%d8%b1%d8%b4%db%8c_%d8%b1%d8%a7_%d8%aa%d8%b9%d8%b1%db%8c%d9%81_%da%a9%d9%86%db%8c%d8%af\"><\/span>\u0645\u0631\u062d\u0644\u0647 1: \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u0628\u0632\u0627\u0631\u0647\u0627 \u062a\u0648\u0627\u0628\u0639 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u067e\u0627\u06cc\u062a\u0648\u0646 \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0639\u0627\u0645\u0644 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0622\u0646 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u062f. Docstring \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a \u060c \u0632\u06cc\u0631\u0627 LLM \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f \u062a\u0627 \u0628\u0641\u0647\u0645\u062f \u0627\u0628\u0632\u0627\u0631 \u0686\u0647 \u06a9\u0627\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u062f \u0648 \u0686\u0647 \u0627\u0633\u062a\u062f\u0644\u0627\u0644\u06cc \u0631\u0627 \u0645\u06cc \u0637\u0644\u0628\u062f. \u0644\u0627\u0646\u06af\u0686\u06cc\u0646 <code>@tool<\/code> \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631 \u062a\u0648\u0627\u0628\u0639 \u0628\u0633\u062a\u0647 \u0628\u0646\u062f\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0639\u0627\u0645\u0644 \u0633\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<pre><code class=\"lang-python\"><span class=\"hljs-comment\"># agent_local.py<\/span>\n<span class=\"hljs-keyword\">import<\/span> os\n<span class=\"hljs-keyword\">from<\/span> dotenv <span class=\"hljs-keyword\">import<\/span> load_dotenv\n<span class=\"hljs-keyword\">from<\/span> langchain.agents <span class=\"hljs-keyword\">import<\/span> tool\n<span class=\"hljs-keyword\">import<\/span> datetime\n\nload_dotenv() <span class=\"hljs-comment\"># Optional<\/span>\n\n<span class=\"hljs-meta\">@tool<\/span>\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">get_current_datetime<\/span>(<span class=\"hljs-params\">format: str = <span class=\"hljs-string\">\"%Y-%m-%d %H:%M:%S\"<\/span><\/span>) -&gt; str:<\/span>\n    <span class=\"hljs-string\">\"\"\"\n    Returns the current date and time, formatted according to the provided Python strftime format string.\n    Use this tool whenever the user asks for the current date, time, or both.\n    Example format strings: '%Y-%m-%d' for date, '%H:%M:%S' for time.\n    If no format is specified, defaults to '%Y-%m-%d %H:%M:%S'.\n    \"\"\"<\/span>\n    <span class=\"hljs-keyword\">try<\/span>:\n        <span class=\"hljs-keyword\">return<\/span> datetime.datetime.now().strftime(format)\n    <span class=\"hljs-keyword\">except<\/span> Exception <span class=\"hljs-keyword\">as<\/span> e:\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">f\"Error formatting date\/time: <span class=\"hljs-subst\">{e}<\/span>\"<\/span>\n\n<span class=\"hljs-comment\"># List of tools the agent can use<\/span>\ntools = [get_current_datetime]\nprint(<span class=\"hljs-string\">\"Custom tool defined.\"<\/span>)\n<\/code><\/pre>\n<h3 id=\"heading-step-2-set-up-the-agent-llm\"><span class=\"ez-toc-section\" id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87_2_%d8%b9%d8%a7%d9%85%d9%84_llm_%d8%b1%d8%a7_%d8%aa%d9%86%d8%b8%db%8c%d9%85_%da%a9%d9%86%db%8c%d8%af\"><\/span>\u0645\u0631\u062d\u0644\u0647 2: \u0639\u0627\u0645\u0644 LLM \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0641\u0648\u0631\u06cc <code>ChatOllama<\/code> \u062f\u0648\u0628\u0627\u0631\u0647 \u0645\u062f\u0644 \u060c \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 \u0646\u0648\u0639 QWEN 3 \u0645\u0646\u0627\u0633\u0628 \u0628\u0631\u0627\u06cc \u062a\u0645\u0627\u0633 \u0628\u0627 \u0627\u0628\u0632\u0627\u0631. \u062f\u0631 <code>qwen3:8b<\/code> \u0645\u062f\u0644 \u0628\u0627\u06cc\u062f \u0642\u0627\u062f\u0631 \u0628\u0647 \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u0645\u0648\u0627\u0631\u062f \u0633\u0627\u062f\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0628\u0632\u0627\u0631 \u0628\u0627\u0634\u062f.<\/p>\n<p>\u062a\u0648\u062c\u0647 \u0628\u0647 \u0627\u06cc\u0646 \u0646\u06a9\u062a\u0647 \u062d\u0627\u0626\u0632 \u0627\u0647\u0645\u06cc\u062a \u0627\u0633\u062a \u06a9\u0647 \u0642\u0627\u0628\u0644\u06cc\u062a \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0627\u0628\u0632\u0627\u0631 \u0628\u0627 \u0645\u062f\u0644 \u0647\u0627\u06cc \u0645\u062d\u0644\u06cc \u06a9\u0647 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0627\u0648\u0644\u0627\u0645\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u0634\u0648\u062f \u060c \u06af\u0627\u0647\u06cc \u0627\u0648\u0642\u0627\u062a \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u06a9\u0645\u062a\u0631 \u0627\u0632 API \u0647\u0627\u06cc \u062a\u062c\u0627\u0631\u06cc \u0628\u0632\u0631\u06af \u0645\u0627\u0646\u0646\u062f GPT-4 \u06cc\u0627 Claude \u0628\u0627\u0634\u062f. LLM \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062f\u0631 \u0647\u0646\u06af\u0627\u0645 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0627\u0628\u0632\u0627\u0631\u06cc \u060c \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0647\u0627\u06cc \u062a\u0648\u0647\u0645 \u06cc\u0627 \u062a\u0641\u0633\u06cc\u0631 \u0646\u0627\u062f\u0631\u0633\u062a \u0627\u0632 \u062e\u0631\u0648\u062c\u06cc \u0627\u0628\u0632\u0627\u0631 \u060c \u0646\u062a\u0648\u0627\u0646\u062f \u062a\u0634\u062e\u06cc\u0635 \u062f\u0647\u062f. \u0634\u0631\u0648\u0639 \u0628\u0627 \u0627\u0631\u0633\u0627\u0644 \u0647\u0627\u06cc \u0634\u0641\u0627\u0641 \u0648 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0633\u0627\u062f\u0647 \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<pre><code class=\"lang-python\"><span class=\"hljs-comment\"># agent_local.py (continued)<\/span>\n<span class=\"hljs-keyword\">from<\/span> langchain_ollama <span class=\"hljs-keyword\">import<\/span> ChatOllama\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">get_agent_llm<\/span>(<span class=\"hljs-params\">model_name=<span class=\"hljs-string\">\"qwen3:8b\"<\/span>, temperature=<span class=\"hljs-number\">0<\/span><\/span>):<\/span>\n    <span class=\"hljs-string\">\"\"\"Initializes the ChatOllama model for the agent.\"\"\"<\/span>\n    <span class=\"hljs-comment\"># Ensure Ollama server is running (ollama serve)<\/span>\n    llm = ChatOllama(\n        model=model_name,\n        temperature=temperature <span class=\"hljs-comment\"># Lower temperature for more predictable tool use<\/span>\n        <span class=\"hljs-comment\"># Consider increasing num_ctx if expecting long conversations or complex reasoning<\/span>\n        <span class=\"hljs-comment\"># num_ctx=8192<\/span>\n    )\n    print(<span class=\"hljs-string\">f\"Initialized ChatOllama agent LLM with model: <span class=\"hljs-subst\">{model_name}<\/span>\"<\/span>)\n    <span class=\"hljs-keyword\">return<\/span> llm\n\n<span class=\"hljs-comment\"># agent_llm = get_agent_llm() # Call this later<\/span>\n<\/code><\/pre>\n<h3 id=\"heading-step-3-create-the-agent-prompt\"><span class=\"ez-toc-section\" id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87_3_%d8%b3%d8%b1%db%8c%d8%b9_%d8%b9%d8%a7%d9%85%d9%84_%d8%b1%d8%a7_%d8%a7%db%8c%d8%ac%d8%a7%d8%af_%da%a9%d9%86%db%8c%d8%af\"><\/span>\u0645\u0631\u062d\u0644\u0647 3: \u0633\u0631\u06cc\u0639 \u0639\u0627\u0645\u0644 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0646\u0645\u0627\u06cc\u0646\u062f\u06af\u0627\u0646 \u0628\u0647 \u0633\u0627\u062e\u062a\u0627\u0631\u0647\u0627\u06cc \u0633\u0631\u06cc\u0639 \u062e\u0627\u0635\u06cc \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u0646\u062f \u06a9\u0647 \u0627\u0633\u062a\u062f\u0644\u0627\u0644 \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0628\u0632\u0627\u0631 \u0622\u0646\u0647\u0627 \u0631\u0627 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc\u06cc \u0645\u06cc \u06a9\u0646\u0646\u062f. \u0627\u06cc\u0646 \u0633\u0631\u06cc\u0639 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0639\u0645\u0648\u0644 \u0634\u0627\u0645\u0644 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627 \u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u06a9\u0627\u0631\u0628\u0631 (<code>input<\/code>) \u060c \u062a\u0627\u0631\u06cc\u062e \u0645\u06a9\u0627\u0644\u0645\u0647 (<code>chat_history<\/code>) \u060c \u0648 <code>agent_scratchpad<\/code>\u0628\u0634\u0631 Scratchpad \u062c\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0639\u0627\u0645\u0644 &#8220;\u0641\u06a9\u0631&#8221; \u062f\u0627\u062e\u0644\u06cc \u062e\u0648\u062f \u0631\u0627 \u062b\u0628\u062a \u0645\u06cc \u06a9\u0646\u062f process\u060c \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062a\u0635\u0645\u06cc\u0645 \u0645\u06cc \u06af\u06cc\u0631\u062f \u0628\u0627 \u0622\u0646 \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u062f \u060c \u0648 \u0646\u062a\u0627\u06cc\u062c (\u0645\u0634\u0627\u0647\u062f\u0627\u062a) \u06a9\u0647 \u0627\u0632 \u0622\u0646 \u0627\u0628\u0632\u0627\u0631\u0647\u0627 \u0628\u0627\u0632 \u0645\u06cc \u06af\u0631\u062f\u062f. HUB Langchain Prompens \u0627\u0632 \u067e\u06cc\u0634 \u0633\u0627\u062e\u062a\u0647 \u0634\u062f\u0647 \u0645\u0646\u0627\u0633\u0628 \u0628\u0631\u0627\u06cc \u0639\u0648\u0627\u0645\u0644 \u062a\u0645\u0627\u0633 \u0628\u0627 \u0627\u0628\u0632\u0627\u0631 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<pre><code class=\"lang-python\"><span class=\"hljs-comment\"># agent_local.py (continued)<\/span>\n<span class=\"hljs-keyword\">from<\/span> langchain <span class=\"hljs-keyword\">import<\/span> hub\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">get_agent_prompt<\/span>(<span class=\"hljs-params\">prompt_hub_name=<span class=\"hljs-string\">\"hwchase17\/openai-tools-agent\"<\/span><\/span>):<\/span>\n    <span class=\"hljs-string\">\"\"\"Pulls the agent prompt template from LangChain Hub.\"\"\"<\/span>\n    <span class=\"hljs-comment\"># This prompt is designed for OpenAI but often works well with other tool-calling models.<\/span>\n    <span class=\"hljs-comment\"># Alternatively, define a custom ChatPromptTemplate.<\/span>\n    prompt = hub.pull(prompt_hub_name)\n    print(<span class=\"hljs-string\">f\"Pulled agent prompt from Hub: <span class=\"hljs-subst\">{prompt_hub_name}<\/span>\"<\/span>)\n    <span class=\"hljs-comment\"># print(\"Prompt Structure:\")<\/span>\n    <span class=\"hljs-comment\"># prompt.pretty_print() # Uncomment to see the prompt structure<\/span>\n    <span class=\"hljs-keyword\">return<\/span> prompt\n\n<span class=\"hljs-comment\"># agent_prompt = get_agent_prompt() # Call this later<\/span>\n<\/code><\/pre>\n<h3 id=\"heading-step-4-build-the-agent\"><span class=\"ez-toc-section\" id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87_4_%d8%b9%d8%a7%d9%85%d9%84_%d8%b1%d8%a7_%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\"><\/span>\u0645\u0631\u062d\u0644\u0647 4: \u0639\u0627\u0645\u0644 \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u0631 <code>create_tool_calling_agent<\/code> \u062a\u0627\u0628\u0639 \u062a\u0631\u06a9\u06cc\u0628 LLM \u060c \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0648 \u0627\u0639\u0644\u0627\u0646 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u0648\u0627\u062d\u062f \u0642\u0627\u0628\u0644 \u0627\u062c\u0631\u0627 \u06a9\u0647 \u0646\u0645\u0627\u06cc\u0627\u0646\u06af\u0631 \u0645\u0646\u0637\u0642 \u0627\u0635\u0644\u06cc \u0639\u0627\u0645\u0644 \u0627\u0633\u062a \u060c \u062a\u0631\u06a9\u06cc\u0628 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<pre><code class=\"lang-python\"><span class=\"hljs-comment\"># agent_local.py (continued)<\/span>\n<span class=\"hljs-keyword\">from<\/span> langchain.agents <span class=\"hljs-keyword\">import<\/span> create_tool_calling_agent\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">build_agent<\/span>(<span class=\"hljs-params\">llm, tools, prompt<\/span>):<\/span>\n    <span class=\"hljs-string\">\"\"\"Builds the tool-calling agent runnable.\"\"\"<\/span>\n    agent = create_tool_calling_agent(llm, tools, prompt)\n    print(<span class=\"hljs-string\">\"Agent runnable created.\"<\/span>)\n    <span class=\"hljs-keyword\">return<\/span> agent\n\n<span class=\"hljs-comment\"># agent_runnable = build_agent(agent_llm, tools, agent_prompt) # Call this later<\/span>\n<\/code><\/pre>\n<h3 id=\"heading-step-5-create-the-agent-executor\"><span class=\"ez-toc-section\" id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87_5_%d9%85%d8%ac%d8%b1%db%8c_%d9%86%d9%85%d8%a7%db%8c%d9%86%d8%af%d9%87_%d8%b1%d8%a7_%d8%a7%db%8c%d8%ac%d8%a7%d8%af_%da%a9%d9%86%db%8c%d8%af\"><\/span>\u0645\u0631\u062d\u0644\u0647 5: \u0645\u062c\u0631\u06cc \u0646\u0645\u0627\u06cc\u0646\u062f\u0647 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u0631 <code>AgentExecutor<\/code> \u0645\u0633\u0626\u0648\u0644 \u0627\u062c\u0631\u0627\u06cc \u062d\u0644\u0642\u0647 \u0639\u0627\u0645\u0644 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0639\u0627\u0645\u0644 \u0642\u0627\u0628\u0644 \u0627\u062c\u0631\u0627 \u0627\u0633\u062a \u0648 \u0627\u0628\u0632\u0627\u0631\u0647\u0627 \u060c \u0639\u0627\u0645\u0644 \u0631\u0627 \u0628\u0627 \u0648\u0631\u0648\u062f\u06cc \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f \u060c \u062e\u0631\u0648\u062c\u06cc \u0639\u0627\u0645\u0644 \u0631\u0627 \u062a\u062c\u0632\u06cc\u0647 \u0645\u06cc \u06a9\u0646\u062f (\u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u06cc\u06a9 \u067e\u0627\u0633\u062e \u0646\u0647\u0627\u06cc\u06cc \u06cc\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062a\u0645\u0627\u0633 \u0627\u0628\u0632\u0627\u0631 \u0628\u0627\u0634\u062f) \u060c \u0647\u0631\u06af\u0648\u0646\u0647 \u062a\u0645\u0627\u0633 \u0627\u0628\u0632\u0627\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0634\u062f\u0647 \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0646\u062a\u0627\u06cc\u062c \u0631\u0627 \u0628\u0647 \u0639\u0627\u0645\u0644 \u0628\u0627\u0632 \u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f \u062a\u0627 \u06cc\u06a9 \u067e\u0627\u0633\u062e \u0646\u0647\u0627\u06cc\u06cc. \u062a\u0646\u0638\u06cc\u0645 <code>verbose=True<\/code> \u062f\u0631 \u0637\u0648\u0644 \u062a\u0648\u0633\u0639\u0647 \u0628\u0631\u0627\u06cc \u0645\u0634\u0627\u0647\u062f\u0647 \u062c\u0631\u06cc\u0627\u0646 \u0645\u0631\u062d\u0644\u0647 \u0628\u0647 \u0645\u0631\u062d\u0644\u0647 \u0639\u0627\u0645\u0644 \u0628\u0633\u06cc\u0627\u0631 \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<pre><code class=\"lang-python\"><span class=\"hljs-comment\"># agent_local.py (continued)<\/span>\n<span class=\"hljs-keyword\">from<\/span> langchain.agents <span class=\"hljs-keyword\">import<\/span> AgentExecutor\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">create_agent_executor<\/span>(<span class=\"hljs-params\">agent, tools<\/span>):<\/span>\n    <span class=\"hljs-string\">\"\"\"Creates the agent executor.\"\"\"<\/span>\n    agent_executor = AgentExecutor(\n        agent=agent,\n        tools=tools,\n        verbose=<span class=\"hljs-literal\">True<\/span> <span class=\"hljs-comment\"># Set to True to see agent thoughts and tool calls<\/span>\n    )\n    print(<span class=\"hljs-string\">\"Agent executor created.\"<\/span>)\n    <span class=\"hljs-keyword\">return<\/span> agent_executor\n\n<span class=\"hljs-comment\"># agent_executor = create_agent_executor(agent_runnable, tools) # Call this later<\/span>\n<\/code><\/pre>\n<h3 id=\"heading-step-6-run-the-agent\"><span class=\"ez-toc-section\" id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87_6_%d8%b9%d8%a7%d9%85%d9%84_%d8%b1%d8%a7_%d8%a7%d8%ac%d8%b1%d8%a7_%da%a9%d9%86%db%8c%d8%af\"><\/span>\u0645\u0631\u062d\u0644\u0647 6: \u0639\u0627\u0645\u0644 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0645\u062c\u0631\u06cc \u0639\u0627\u0645\u0644 \u0631\u0627 \u0628\u0627 \u06cc\u06a9 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u06a9\u0627\u0631\u0628\u0631 \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0628\u0632\u0627\u0631 \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0631\u0627 \u062a\u062d\u0631\u06cc\u06a9 \u06a9\u0646\u062f \u060c \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<pre><code class=\"lang-python\"><span class=\"hljs-comment\"># agent_local.py (continued)<\/span>\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">run_agent<\/span>(<span class=\"hljs-params\">executor, user_input<\/span>):<\/span>\n    <span class=\"hljs-string\">\"\"\"Runs the agent executor with the given input.\"\"\"<\/span>\n    print(<span class=\"hljs-string\">\"\\nInvoking agent...\"<\/span>)\n    print(<span class=\"hljs-string\">f\"Input: <span class=\"hljs-subst\">{user_input}<\/span>\"<\/span>)\n    response = executor.invoke({<span class=\"hljs-string\">\"input\"<\/span>: user_input})\n    print(<span class=\"hljs-string\">\"\\nAgent Response:\"<\/span>)\n    print(response[<span class=\"hljs-string\">'output'<\/span>])\n\n<span class=\"hljs-comment\"># --- Main Execution ---<\/span>\n<span class=\"hljs-keyword\">if<\/span> __name__ == <span class=\"hljs-string\">\"__main__\"<\/span>:\n    <span class=\"hljs-comment\"># 1. Define Tools (already done above)<\/span>\n\n    <span class=\"hljs-comment\"># 2. Get Agent LLM<\/span>\n    agent_llm = get_agent_llm(model_name=<span class=\"hljs-string\">\"qwen3:8b\"<\/span>) <span class=\"hljs-comment\"># Use the chosen Qwen 3 model<\/span>\n\n    <span class=\"hljs-comment\"># 3. Get Agent Prompt<\/span>\n    agent_prompt = get_agent_prompt()\n\n    <span class=\"hljs-comment\"># 4. Build Agent Runnable<\/span>\n    agent_runnable = build_agent(agent_llm, tools, agent_prompt)\n\n    <span class=\"hljs-comment\"># 5. Create Agent Executor<\/span>\n    agent_executor = create_agent_executor(agent_runnable, tools)\n\n    <span class=\"hljs-comment\"># 6. Run Agent<\/span>\n    run_agent(agent_executor, <span class=\"hljs-string\">\"What is the current date?\"<\/span>)\n    run_agent(agent_executor, <span class=\"hljs-string\">\"What time is it right now? Use HH:MM format.\"<\/span>)\n    run_agent(agent_executor, <span class=\"hljs-string\">\"Tell me a joke.\"<\/span>) <span class=\"hljs-comment\"># Should not use the tool<\/span>\n<\/code><\/pre>\n<p>\u062f\u0648\u06cc\u062f\u0646 <code>python agent_local.py<\/code> (\u0628\u0627 <code>ollama serve<\/code> \u0641\u0639\u0627\u0644) \u0639\u0627\u0645\u0644 \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f. \u062f\u0631 <code>verbose=True<\/code> \u062a\u0646\u0638\u06cc\u0645 print \u062e\u0631\u0648\u062c\u06cc \u0634\u0628\u06cc\u0647 \u0628\u0647 \u0686\u0627\u0631\u0686\u0648\u0628 React (\u0627\u0633\u062a\u062f\u0644\u0627\u0644 \u0648 \u0628\u0627\u0632\u06cc\u06af\u0631\u06cc) \u060c \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0646 &#8220;\u0627\u0641\u06a9\u0627\u0631&#8221; \u062f\u0627\u062e\u0644\u06cc \u0639\u0627\u0645\u0644 \u0631\u0648\u06cc \u0686\u06af\u0648\u0646\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0627\u062f\u0627\u0645\u0647 \u062f\u0627\u062f \u060c &#8220;\u0639\u0645\u0644&#8221; \u062a\u0635\u0645\u06cc\u0645 \u0645\u06cc \u06af\u06cc\u0631\u062f (\u062a\u0635\u0645\u06cc\u0645 \u0628\u06af\u06cc\u0631\u062f (\u06cc\u06a9 \u0627\u0628\u0632\u0627\u0631 \u062e\u0627\u0635 \u0628\u0627 \u0627\u0633\u062a\u062f\u0644\u0627\u0644) \u0648 &#8220;\u0645\u0634\u0627\u0647\u062f\u0647&#8221; (\u0646\u062a\u06cc\u062c\u0647 \u0628\u0631\u06af\u0634\u062a\u06cc \u062a\u0648\u0633\u0637 \u0627\u0628\u0632\u0627\u0631).<\/p>\n<p>\u0627\u06cc\u062c\u0627\u062f \u0639\u0648\u0627\u0645\u0644 \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f \u0628\u0627 \u0645\u062f\u0644 \u0647\u0627\u06cc \u0645\u062d\u0644\u06cc \u0686\u0627\u0644\u0634 \u0647\u0627\u06cc \u0645\u0646\u062d\u0635\u0631 \u0628\u0647 \u0641\u0631\u062f\u06cc \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f. \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc LLM \u062f\u0631 \u062a\u0641\u0633\u06cc\u0631 \u0635\u062d\u06cc\u062d \u0633\u0631\u06cc\u0639 \u060c \u062f\u0631\u06a9 \u0627\u06cc\u0646\u06a9\u0647 \u0686\u0647 \u0632\u0645\u0627\u0646\u06cc \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u060c \u0627\u0628\u0632\u0627\u0631 \u0645\u0646\u0627\u0633\u0628 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f \u060c \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0647\u0627\u06cc \u0645\u0639\u062a\u0628\u0631 \u062a\u0648\u0644\u06cc\u062f \u06a9\u0646\u06cc\u062f \u0648 process \u062e\u0631\u0648\u062c\u06cc \u0627\u0628\u0632\u0627\u0631 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a.<\/p>\n<p>Local  \u0645\u062f\u0644 \u0647\u0627 \u060c \u0628\u0647 \u0648\u06cc\u0698\u0647 \u0645\u062f\u0644 \u0647\u0627\u06cc \u06a9\u0648\u0686\u06a9\u062a\u0631 \u06cc\u0627 \u0628\u0647 \u0634\u062f\u062a \u06a9\u0645 \u0646\u0638\u06cc\u0631 \u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062f\u0631 \u0645\u0642\u0627\u06cc\u0633\u0647 \u0628\u0627 \u0647\u0645\u062a\u0627\u06cc\u0627\u0646 \u0628\u0632\u0631\u06af\u062a\u0631 \u0648 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0627\u0628\u0631 \u0628\u0627 \u0627\u06cc\u0646 \u0645\u0631\u0627\u062d\u0644 \u0627\u0633\u062a\u062f\u0644\u0627\u0644 \u0645\u0628\u0627\u0631\u0632\u0647 \u06a9\u0646\u0646\u062f. \u0627\u06af\u0631 <code>qwen3:8b<\/code> \u0645\u062f\u0644 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u062a\u0631 \u0639\u0627\u0645\u0644 \u063a\u06cc\u0631 \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f \u0627\u0633\u062a \u060c \u062a\u0644\u0627\u0634 \u0631\u0627 \u062f\u0631 \u0646\u0638\u0631 \u0628\u06af\u06cc\u0631\u06cc\u062f <code>qwen3:14b<\/code> \u06cc\u0627 \u06a9\u0627\u0631\u0622\u0645\u062f <code>qwen3:30b-a3b<\/code> \u0627\u06af\u0631 \u0633\u062e\u062a \u0627\u0641\u0632\u0627\u0631 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u06af\u0631\u062f\u0634 \u06a9\u0627\u0631 \u0628\u0633\u06cc\u0627\u0631 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u06cc\u0627 \u062f\u0648\u0644\u062a\u06cc \u060c \u06a9\u0627\u0648\u0634 \u062f\u0631 \u0686\u0627\u0631\u0686\u0648\u0628 \u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f Langgraph \u060c \u06a9\u0647 \u06a9\u0646\u062a\u0631\u0644 \u0628\u06cc\u0634\u062a\u0631\u06cc \u0628\u0631 \u062c\u0631\u06cc\u0627\u0646 \u0627\u062c\u0631\u0627\u06cc \u0639\u0627\u0645\u0644 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f \u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0645\u0641\u06cc\u062f \u0628\u0627\u0634\u062f.<\/p>\n<h2 id=\"heading-advanced-considerations-and-troubleshooting\"><span class=\"ez-toc-section\" id=\"%d9%85%d9%84%d8%a7%d8%ad%d8%b8%d8%a7%d8%aa_%d9%be%db%8c%d8%b4%d8%b1%d9%81%d8%aa%d9%87_%d9%88_%d8%b9%db%8c%d8%a8_%db%8c%d8%a7%d8%a8%db%8c\"><\/span>\u0645\u0644\u0627\u062d\u0638\u0627\u062a \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u0648 \u0639\u06cc\u0628 \u06cc\u0627\u0628\u06cc<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u062c\u0631\u0627\u06cc LLMS \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc \u0627\u0646\u0639\u0637\u0627\u0641 \u067e\u0630\u06cc\u0631\u06cc \u0628\u0633\u06cc\u0627\u0631 \u062e\u0648\u0628\u06cc \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f \u060c \u0627\u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u062c\u0646\u0628\u0647 \u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u062e\u0627\u0635 \u0648 \u0645\u0633\u0627\u0626\u0644 \u0628\u0627\u0644\u0642\u0648\u0647 \u0631\u0627 \u0645\u0639\u0631\u0641\u06cc \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<h3 id=\"heading-controlling-qwen-3s-thinking-mode-with-ollama\"><span class=\"ez-toc-section\" id=\"%da%a9%d9%86%d8%aa%d8%b1%d9%84_%d8%ad%d8%a7%d9%84%d8%aa_%d8%aa%d9%81%da%a9%d8%b1_qwen_3_%d8%a8%d8%a7_ollama\"><\/span>\u06a9\u0646\u062a\u0631\u0644 \u062d\u0627\u0644\u062a \u062a\u0641\u06a9\u0631 Qwen 3 \u0628\u0627 Ollama<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u0633\u062a\u0646\u0628\u0627\u0637 \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0645\u0646\u062d\u0635\u0631 \u0628\u0647 \u0641\u0631\u062f Qwen 3 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0628\u06cc\u0646 \u06cc\u06a9 \u062d\u0627\u0644\u062a &#8220;\u062a\u0641\u06a9\u0631&#8221; \u0639\u0645\u06cc\u0642 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u062f\u0644\u0627\u0644 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0648 \u06cc\u06a9 \u062d\u0627\u0644\u062a \u0633\u0631\u06cc\u0639\u062a\u0631 &#8220;\u063a\u06cc\u0631 \u0641\u06a9\u0631&#8221; \u0628\u0631\u0627\u06cc \u06af\u067e \u0639\u0645\u0648\u0645\u06cc \u062c\u0627\u0628\u062c\u0627 \u0634\u0648\u062f. \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0686\u0627\u0631\u0686\u0648\u0628 \u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u0628\u063a\u0644 \u06a9\u0631\u062f\u0646 \u062a\u0631\u0627\u0646\u0633\u0641\u0648\u0631\u0645\u0627\u062a\u0648\u0631\u0647\u0627\u06cc \u0635\u0648\u0631\u062a \u06cc\u0627 VLLM \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0635\u0631\u06cc\u062d \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f (<code>enable_thinking<\/code>) \u060c \u0631\u0627\u0647 \u0627\u0635\u0644\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0647\u0646\u06af\u0627\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Ollama \u0627\u0632 \u0637\u0631\u06cc\u0642 &#8220;\u0633\u0648\u0626\u06cc\u0686 \u0647\u0627\u06cc \u0646\u0631\u0645&#8221; \u062a\u0639\u0628\u06cc\u0647 \u0634\u062f\u0647 \u062f\u0631 \u0633\u0631\u06cc\u0639 \u0627\u0633\u062a.<\/p>\n<p>\u0636\u0645\u06cc\u0645\u0647 \u06a9\u0631\u062f\u0646 <code>\/think<\/code> \u062a\u0627 \u067e\u0627\u06cc\u0627\u0646 \u06cc\u06a9 \u06a9\u0627\u0631\u0628\u0631 \u0633\u0631\u06cc\u0639\u0627\u064b \u0627\u0633\u062a\u062f\u0644\u0627\u0644 \u06af\u0627\u0645 \u0628\u0647 \u06af\u0627\u0645 \u0631\u0627 \u062a\u0634\u0648\u06cc\u0642 \u0645\u06cc \u06a9\u0646\u062f \u060c \u06cc\u0627 <code>\/no_think<\/code> \u0628\u0631\u0627\u06cc \u067e\u0627\u0633\u062e \u0633\u0631\u06cc\u0639\u062a\u0631 \u0648 \u0645\u0633\u062a\u0642\u06cc\u0645. \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 Ollama CLI \u06cc\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0628\u0627\u0644\u0642\u0648\u0647 \u062f\u0631 \u0627\u0639\u0644\u0627\u0646 \u0647\u0627\u06cc \u0627\u0631\u0633\u0627\u0644 \u0634\u062f\u0647 \u0627\u0632 \u0637\u0631\u06cc\u0642 API\/Langchain \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f.<\/p>\n<pre><code class=\"lang-python\"><span class=\"hljs-comment\"># Example using LangChain's ChatOllama<\/span>\n<span class=\"hljs-keyword\">from<\/span> langchain_ollama <span class=\"hljs-keyword\">import<\/span> ChatOllama\n\nllm_think = ChatOllama(model=<span class=\"hljs-string\">\"qwen3:8b\"<\/span>)\nllm_no_think = ChatOllama(model=<span class=\"hljs-string\">\"qwen3:8b\"<\/span>) <span class=\"hljs-comment\"># Could also set system prompt<\/span>\n\n<span class=\"hljs-comment\"># Invoke with prompt modification<\/span>\nresponse_think = llm_think.invoke(<span class=\"hljs-string\">\"Solve the equation 2x + 5 = 15 \/think\"<\/span>)\nprint(<span class=\"hljs-string\">\"Thinking Response:\"<\/span>, response_think)\n\nresponse_no_think = llm_no_think.invoke(<span class=\"hljs-string\">\"What is the capital of France? \/no_think\"<\/span>)\nprint(<span class=\"hljs-string\">\"Non-Thinking Response:\"<\/span>, response_no_think)\n\n<span class=\"hljs-comment\"># Alternatively, set via system message (might be less reliable turn-by-turn)<\/span>\nllm_system_no_think = ChatOllama(model=<span class=\"hljs-string\">\"qwen3:8b\"<\/span>, system=<span class=\"hljs-string\">\"\/no_think\"<\/span>)\nresponse_system = llm_system_no_think.invoke(<span class=\"hljs-string\">\"What is 2+2?\"<\/span>)\nprint(<span class=\"hljs-string\">\"System No-Think Response:\"<\/span>, response_system)\n<\/code><\/pre>\n<p>\u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u067e\u0627\u06cc\u062f\u0627\u0631\u06cc \u0627\u06cc\u0646 \u0628\u0631\u0686\u0633\u0628 \u0647\u0627 \u062f\u0631 \u0686\u0646\u062f\u06cc\u0646 \u0686\u0631\u062e\u0634 \u062f\u0631 \u06cc\u06a9 \u0645\u06a9\u0627\u0644\u0645\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0633\u0631\u06cc\u0639 \u062f\u0642\u06cc\u0642 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f.<\/p>\n<h3 id=\"heading-managing-context-length-numctx\"><span class=\"ez-toc-section\" id=\"%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa_%d8%b7%d9%88%d9%84_%d8%b2%d9%85%db%8c%d9%86%d9%87_num_ctx\"><\/span>\u0645\u062f\u06cc\u0631\u06cc\u062a \u0637\u0648\u0644 \u0632\u0645\u06cc\u0646\u0647 (<code>num_ctx<\/code>)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u067e\u0646\u062c\u0631\u0647 \u0632\u0645\u06cc\u0646\u0647 (<code>num_ctx<\/code>) \u062a\u0639\u06cc\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0686\u0642\u062f\u0631 \u0627\u0637\u0644\u0627\u0639\u0627\u062a (\u0633\u0631\u06cc\u0639 \u060c \u062a\u0627\u0631\u06cc\u062e \u060c \u0627\u0633\u0646\u0627\u062f \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0634\u062f\u0647) LLM \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u06cc\u06a9\u0628\u0627\u0631\u0647 \u0631\u0627 \u062f\u0631 \u0646\u0638\u0631 \u0628\u06af\u06cc\u0631\u062f. \u0645\u062f\u0644 \u0647\u0627\u06cc Qwen 3 (8b+) \u0627\u0632 \u0637\u0648\u0644 \u0632\u0645\u06cc\u0646\u0647 \u0647\u0627\u06cc \u0628\u0648\u0645\u06cc \u0628\u0632\u0631\u06af (\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u060c \u062a\u0648\u06a9\u0646 128K) \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u0646\u062f \u060c \u0627\u0645\u0627 \u0627\u0648\u0644\u0627\u0645\u0627 \u0627\u063a\u0644\u0628 \u0628\u0647 \u06cc\u06a9 \u067e\u0646\u062c\u0631\u0647 \u0628\u0633\u06cc\u0627\u0631 \u06a9\u0648\u0686\u06a9\u062a\u0631 (\u0645\u0627\u0646\u0646\u062f 2048 \u06cc\u0627 4096) \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0645\u06cc \u0634\u0648\u062f. \u0628\u0631\u0627\u06cc RAG \u06cc\u0627 \u0645\u06a9\u0627\u0644\u0645\u0647 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062d\u0627\u0641\u0638\u0647 \u0646\u0648\u0628\u062a \u0647\u0627\u06cc \u0642\u0628\u0644\u06cc \u062f\u0627\u0631\u0646\u062f \u060c \u0627\u06cc\u0646 \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0627\u063a\u0644\u0628 \u06a9\u0627\u0641\u06cc \u0646\u06cc\u0633\u062a.<\/p>\n<p>\u062a\u0646\u0638\u06cc\u0645 \u06a9\u0631\u062f\u0646 <code>num_ctx<\/code> \u0647\u0646\u06af\u0627\u0645 \u0634\u0631\u0648\u0639 \u06a9\u0627\u0631 <code>ChatOllama<\/code> \u06cc\u0627 <code>OllamaLLM<\/code> \u062f\u0631 \u0644\u0627\u0646\u06af\u0686\u06cc\u0646:<\/p>\n<pre><code class=\"lang-python\"><span class=\"hljs-comment\"># Example setting context window to 8192 tokens<\/span>\nllm = ChatOllama(model=<span class=\"hljs-string\">\"qwen3:8b\"<\/span>, num_ctx=<span class=\"hljs-number\">8192<\/span>)\n<\/code><\/pre>\n<p>\u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0628\u0632\u0631\u06af\u062a\u0631 <code>num_ctx<\/code> \u0645\u0642\u0627\u062f\u06cc\u0631 \u0628\u0647 \u0637\u0648\u0631 \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u0645\u0635\u0631\u0641 RAM \u0648 VRAM \u0631\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u062f. \u0627\u0645\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0628\u06cc\u0634 \u0627\u0632 \u062d\u062f \u0622\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0645\u0646\u062c\u0631 \u0628\u0647 &#8220;\u0641\u0631\u0627\u0645\u0648\u0634 \u06a9\u0631\u062f\u0646&#8221; \u0645\u062f\u0644 \u06cc\u0627 \u062d\u062a\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u062d\u0644\u0642\u0647 \u0647\u0627\u06cc \u062a\u06a9\u0631\u0627\u0631\u06cc \u0634\u0648\u062f. \u0645\u0642\u062f\u0627\u0631\u06cc \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0627 \u0642\u0627\u0628\u0644\u06cc\u062a \u0647\u0627\u06cc \u0633\u062e\u062a \u0627\u0641\u0632\u0627\u0631\u06cc \u0645\u062a\u0639\u0627\u062f\u0644 \u06a9\u0646\u062f.<\/p>\n<h3 id=\"heading-hardware-limitations-and-vram\"><span class=\"ez-toc-section\" id=\"%d9%85%d8%ad%d8%af%d9%88%d8%af%db%8c%d8%aa_%d9%87%d8%a7%db%8c_%d8%b3%d8%ae%d8%aa_%d8%a7%d9%81%d8%b2%d8%a7%d8%b1_%d9%88_vram\"><\/span>\u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc \u0633\u062e\u062a \u0627\u0641\u0632\u0627\u0631 \u0648 VRAM<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u062c\u0631\u0627\u06cc LLMS \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc \u0645\u0646\u0627\u0628\u0639 \u067e\u0631\u0631\u0646\u06af \u0627\u0633\u062a.<\/p>\n<ul>\n<li>\n<p><strong>VRAM:<\/strong> \u06cc\u06a9 GPU \u0627\u062e\u062a\u0635\u0627\u0635\u06cc (NVIDIA \u06cc\u0627 SILICON APPLE) \u0628\u0627 VRAM \u06a9\u0627\u0641\u06cc \u0628\u0631\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u0642\u0627\u0628\u0644 \u0642\u0628\u0648\u0644 \u0628\u0633\u06cc\u0627\u0631 \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc \u0634\u0648\u062f. \u0645\u0642\u062f\u0627\u0631 VRAM \u0628\u0632\u0631\u06af\u062a\u0631\u06cc\u0646 \u0627\u0646\u062f\u0627\u0632\u0647 \u0645\u062f\u0644 \u0631\u0627 \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0637\u0648\u0631 \u0645\u0624\u062b\u0631 \u0627\u062c\u0631\u0627 \u06a9\u0646\u062f \u060c \u062f\u06cc\u06a9\u062a\u0647 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0631\u0627\u06cc \u062a\u062e\u0645\u06cc\u0646 \u0628\u0647 \u062c\u062f\u0648\u0644 \u062f\u0631 \u0628\u062e\u0634 2 \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<\/li>\n<li>\n<p><strong>RAM:<\/strong> RAM \u0633\u06cc\u0633\u062a\u0645 \u0646\u06cc\u0632 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a \u060c \u0628\u0647 \u062e\u0635\u0648\u0635 \u0627\u06af\u0631 \u0627\u06cc\u0646 \u0645\u062f\u0644 \u06a9\u0627\u0645\u0644\u0627\u064b \u062f\u0631 VRAM \u062c\u0627\u06cc \u0646\u06af\u06cc\u0631\u062f. \u0627\u0648\u0644\u0627\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0627\u0632 RAM \u0633\u06cc\u0633\u062a\u0645 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0628\u0627\u0632\u067e\u0631\u062f\u0627\u062e\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f \u060c \u0627\u0645\u0627 \u0627\u06cc\u0646 \u0628\u0647 \u0637\u0648\u0631 \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u06a9\u0646\u062f\u062a\u0631 \u0627\u0633\u062a.<\/p>\n<\/li>\n<li>\n<p><strong>\u06a9\u0645\u06cc\u062a:<\/strong> \u0627\u0648\u0644\u0627\u0645\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0639\u0645\u0648\u0644 \u0645\u062f\u0644\u0647\u0627\u06cc \u06a9\u0645\u06cc\u062a (\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u060c 4 \u0628\u06cc\u062a\u06cc \u06cc\u0627 5 \u0628\u06cc\u062a\u06cc) \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f \u060c \u06a9\u0647 \u0627\u0646\u062f\u0627\u0632\u0647 \u0645\u062f\u0644 \u0648 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc VRAM \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u062f\u0631 \u0645\u0642\u0627\u06cc\u0633\u0647 \u0628\u0627 \u0645\u062f\u0644\u0647\u0627\u06cc \u0628\u0627 \u062f\u0642\u062a \u06a9\u0627\u0645\u0644 \u06a9\u0627\u0647\u0634 \u0645\u06cc \u062f\u0647\u062f \u060c \u0627\u063a\u0644\u0628 \u0628\u0627 \u062d\u062f\u0627\u0642\u0644 \u062a\u062e\u0631\u06cc\u0628 \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0631\u0627\u06cc \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u06a9\u0627\u0631\u0647\u0627. \u0628\u0631\u0686\u0633\u0628 \u0647\u0627 \u0645\u0627\u0646\u0646\u062f <code>:4b<\/code>\u0628\u0627 <code>:8b<\/code> \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u062d\u0627\u06a9\u06cc \u0627\u0632 \u06cc\u06a9 \u0633\u0637\u062d \u06a9\u0645\u06cc\u062a \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0627\u0633\u062a.<\/p>\n<\/li>\n<\/ul>\n<p>\u0627\u06af\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f \u06a9\u0646\u062f \u0627\u0633\u062a \u06cc\u0627 \u062e\u0637\u0627\u0647\u0627 \u0628\u0647 \u062f\u0644\u06cc\u0644 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0645\u0646\u0627\u0628\u0639 \u0631\u062e \u0645\u06cc \u062f\u0647\u062f \u060c \u062f\u0631 \u0646\u0638\u0631 \u0628\u06af\u06cc\u0631\u06cc\u062f:<\/p>\n<ul>\n<li>\n<p>\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 \u0645\u062f\u0644 \u06a9\u0648\u0686\u06a9\u062a\u0631 QWEN 3 (\u0645\u0627\u0646\u0646\u062f 4b \u0628\u0647 \u062c\u0627\u06cc 8b).<\/p>\n<\/li>\n<li>\n<p>\u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0627\u0648\u0644\u0627\u0645\u0627 \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u062f\u0631 \u062d\u0627\u0644 \u062a\u0634\u062e\u06cc\u0635 \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 GPU \u0627\u0633\u062a (\u0633\u06cc\u0627\u0647\u0647\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 Ollama \u06cc\u0627 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0646\u0638\u0627\u0631\u062a \u0628\u0631 \u0633\u06cc\u0633\u062a\u0645 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f).<\/p>\n<\/li>\n<li>\n<p>\u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0633\u0627\u06cc\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0641\u0634\u0631\u062f\u0647 \u0645\u0646\u0627\u0628\u0639.<\/p>\n<\/li>\n<\/ul>\n<h2 id=\"heading-conclusion-and-next-steps\"><span class=\"ez-toc-section\" id=\"%d9%86%d8%aa%db%8c%d8%ac%d9%87_%da%af%db%8c%d8%b1%db%8c_%d9%88_%d9%85%d8%b1%d8%a7%d8%ad%d9%84_%d8%a8%d8%b9%d8%af%db%8c\"><\/span>\u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc \u0648 \u0645\u0631\u0627\u062d\u0644 \u0628\u0639\u062f\u06cc<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0628\u0631\u0627\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u062d\u06cc\u0637 AI \u0645\u062d\u0644\u06cc \u062e\u0648\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062e\u0627\u0646\u0648\u0627\u062f\u0647 \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0648 \u0628\u0627\u0632 QWEN 3 LLM \u0628\u0627 \u0627\u0628\u0632\u0627\u0631 \u06a9\u0627\u0631\u0628\u0631 \u067e\u0633\u0646\u062f Ollama \u060c \u0628\u0647 \u0634\u0645\u0627 \u06cc\u06a9 \u067e\u06cc\u0627\u062f\u0647 \u0631\u0648\u06cc \u0639\u0645\u0644\u06cc \u062f\u0627\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u0627\u06cc\u0646 \u0645\u0631\u0627\u062d\u0644 \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f \u060c \u0628\u0627\u06cc\u062f \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a:<\/p>\n<ol>\n<li>\n<p>Ollama \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0631\u062f\u0647 \u0648 \u0645\u062f\u0644 QWEN 3 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0648 \u0627\u062c\u0631\u0627 \u06a9\u0631\u062f.<\/p>\n<\/li>\n<li>\n<p>\u062e\u0637 \u0644\u0648\u0644\u0647 \u062a\u0648\u0644\u06cc\u062f \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc (RAG) \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Langchain \u0648 Chromadb \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0627\u0632 \u0627\u0633\u0646\u0627\u062f \u0645\u062d\u0644\u06cc \u0633\u0627\u062e\u062a\u0647 \u0627\u0633\u062a.<\/p>\n<\/li>\n<li>\n<p>\u06cc\u06a9 \u0639\u0627\u0645\u0644 \u0627\u0635\u0644\u06cc \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0642\u0627\u062f\u0631 \u0628\u0647 \u0627\u0633\u062a\u062f\u0644\u0627\u0644 \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u0627\u0633\u062a.<\/p>\n<\/li>\n<\/ol>\n<p>\u0627\u062c\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0633\u06cc\u0633\u062a\u0645 \u0647\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc \u0645\u0632\u0627\u06cc\u0627\u06cc \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u0631\u0627 \u062f\u0631 \u062d\u0631\u06cc\u0645 \u062e\u0635\u0648\u0635\u06cc \u060c \u0647\u0632\u06cc\u0646\u0647 \u0648 \u0633\u0641\u0627\u0631\u0634\u06cc \u0633\u0627\u0632\u06cc \u0628\u0627\u0632 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0628\u0627\u0639\u062b \u0645\u06cc \u0634\u0648\u062f \u0642\u0627\u0628\u0644\u06cc\u062a \u0647\u0627\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0627\u0632 \u0647\u0645\u06cc\u0634\u0647 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0628\u0627\u0634\u062f. \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0627\u0632 \u0639\u0645\u0644\u06a9\u0631\u062f Qwen 3 \u0648 \u0645\u062c\u0648\u0632 \u0622\u0632\u0627\u062f \u0628\u0627 \u0633\u0647\u0648\u0644\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0648\u0644\u0645\u0627 \u060c \u06cc\u06a9 \u0628\u0633\u062a\u0631 \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0628\u0631\u0627\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634 \u0648 \u062a\u0648\u0633\u0639\u0647 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p><strong>\u0645\u0646\u0627\u0628\u0639 \u0631\u0633\u0645\u06cc:<\/strong><\/p>\n<ul>\n<li>\n<p><strong>Qwen 3:<\/strong> github \u060c Documentation<\/p>\n<\/li>\n<li>\n<p><strong>\u0627\u0648\u0644\u0627\u0645\u0627:<\/strong> \u0648\u0628 \u0633\u0627\u06cc\u062a \u060c \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0645\u062f\u0644 \u060c github<\/p>\n<\/li>\n<li>\n<p><strong>Langchain:<\/strong> \u067e\u06cc\u062a\u0648\u0646 Documentation<\/p>\n<\/li>\n<li>\n<p><strong>Chromadb:<\/strong> Documentation<\/p>\n<\/li>\n<li>\n<p><strong>\u062a\u0631\u0627\u0646\u0633\u0641\u0648\u0631\u0645\u0627\u062a\u0648\u0631 \u062c\u0645\u0644\u0647:<\/strong> Documentation<\/p>\n<\/li>\n<\/ul>\n<p>\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u060c \u0631\u0627\u06cc\u06af\u0627\u0646 \u0648 \u0645\u0646\u0628\u0639 \u0628\u0627\u0632 \u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0647\u0645\u0686\u0646\u0627\u0646 \u0628\u0647 \u0645\u0631\u0632\u0647\u0627\u06cc \u0622\u0646\u0686\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0627\u0632 AI \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0628\u0627\u0634\u062f \u060c \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u06cc\u062f \u0631\u0648\u06cc \u0633\u062e\u062a \u0627\u0641\u0632\u0627\u0631 \u0634\u062e\u0635\u06cc \u0634\u0645\u0627<\/p>\n<\/section>\n<p><br \/>\n<br \/>\u0645\u0646\u062a\u0634\u0631 \u0634\u062f\u0647 \u062f\u0631 1404-05-07 00:00:09<br \/>\n<\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-center kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;center&quot;,&quot;id&quot;:&quot;18976&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;0&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;0&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;5&quot;,&quot;greet&quot;:&quot;\u0627\u0645\u062a\u06cc\u0627\u0632 \u0634\u0645\u0627 \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0637\u0644\u0628&quot;,&quot;legend&quot;:&quot;0\\\/5 (0 \u0631\u0627\u06cc)&quot;,&quot;size&quot;:&quot;30&quot;,&quot;title&quot;:&quot;\u0686\u06af\u0648\u0646\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u0645 Local \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc: \u0628\u0627 Qwen 3 \u0648 Ollama \u0646\u0645\u0627\u06cc\u0646\u062f\u06af\u0627\u0646 Rag \u0648 AI \u0631\u0627\u06cc\u06af\u0627\u0646 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f&quot;,&quot;width&quot;:&quot;0&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} ({count} \u0631\u0627\u06cc)&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 0px;\">\n            <div class=\"kksr-star\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 24px;\">\n            <span class=\"kksr-muted\">\u0627\u0645\u062a\u06cc\u0627\u0632 \u0634\u0645\u0627 \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0637\u0644\u0628<\/span>\n    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">\u0632\u0645\u0627\u0646 \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u0645\u0637\u0627\u0644\u0639\u0647: <\/span> <span class=\"rt-time\"> 19<\/span> <span class=\"rt-label rt-postfix\">\u062f\u0642\u06cc\u0642\u0647<\/span><\/span>\u0686\u0634\u0645 \u0627\u0646\u062f\u0627\u0632 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0628\u0647 \u0633\u0631\u0639\u062a \u062f\u0631 \u062d\u0627\u0644 \u062a\u062d\u0648\u0644 \u0627\u0633\u062a \u0648 \u06cc\u06a9\u06cc \u0627\u0632 \u0647\u06cc\u062c\u0627\u0646 \u0627\u0646\u06af\u06cc\u0632 \u062a\u0631\u06cc\u0646 \u0631\u0648\u0646\u062f\u0647\u0627 \u060c \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc \u0627\u062c\u0631\u0627\u06cc \u0645\u062f\u0644 \u0647\u0627\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0632\u0628\u0627\u0646 \u0628\u0632\u0631\u06af (LLMS) \u0628\u0647 \u0637\u0648\u0631 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0627\u0633\u062a \u0631\u0648\u06cc \u062f\u0633\u062a\u06af\u0627\u0647 \u0645\u062d\u0644\u06cc \u0634\u0645\u0627 \u0627\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u0627\u0632 \u0627\u0639\u062a\u0645\u0627\u062f \u0628\u0647 \u0646\u0641\u0633 \u0631\u0648\u06cc API \u0647\u0627\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0627\u0628\u0631 \u0627\u0632 \u0646\u0638\u0631 \u062d\u0631\u06cc\u0645 \u062e\u0635\u0648\u0635\u06cc \u060c \u0645\u0642\u0631\u0648\u0646 \u0628\u0647 \u0635\u0631\u0641\u0647 \u0628\u0648\u062f\u0646 [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":18977,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1743,1686],"tags":[5418,5927,4637,6206,6205,1917,1844,1920,1936,1779,1924,1822,1802,1803,2158,1806,2346,6207,1745,2345],"class_list":["post-18976","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","category-ai","tag-rag","tag-5927","tag-local","tag-ollama","tag-qwen","tag--python","tag-1844","tag-1920","tag-1936","tag-1779","tag-1924","tag-1822","tag-1802","tag-1803","tag-2158","tag-1806","tag-2346","tag-6207","tag-1745","tag-2345"],"acf":[],"_links":{"self":[{"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/posts\/18976","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/comments?post=18976"}],"version-history":[{"count":0,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/posts\/18976\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/media\/18977"}],"wp:attachment":[{"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/media?parent=18976"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/categories?post=18976"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/tags?post=18976"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}