![]()
अघिल्लो पाठले एजेन्टहरूलाई क्लाउडमा ठूलो बनायो । यो एकले तिनीहरूलाई एकल मेसिनमा सानो बनाउँछ । अन्त्यसम्म तपाईं सँग एउटा कार्यशील इन्जिनियरिङ सहायक हुनेछ जुन तर्क गर्छ, उपकरणहरू बोलाउँछ, तपाईंका फाइलहरू पढ्छ, र तपाईंको कागजातहरू खोज्छ — एक पनि क्लाउड इन्फेरेन्स कल बिना।
किन तपाईं यस्तो चाहनुहुन्छ? वास्तविक इन्जिनियरिङ कार्यमा नियमित रूपमा आउने तीन कारणहरू:
बाधा के हो भने तपाईं एक सीमित क्लाउड मोडेलको सट्टा तपाईंको CPU, GPU, वा NPU मा चल्ने सानो भाषा मोडेल (SLM) प्रयोग गर्दै हुनुहुन्छ। यो पाठ यस्तो एजेन्टहरू बनाउन बारे हो जुन त्यो सीमामा राम्रो हुन्छ, न कि त्यो सीमा छैन भनेर नाटक गर्ने।
यस पाठले समेट्छ:
यस पाठ पूरा गरेपछि, तपाईं जान्ने हुनेछ:
यस पाठले अगाडिका पाठहरू पूरा गरेको र निम्नसँग सहज हुनु पर्नेछ:
तपाईंलाई यो पनि चाहिन्छ:
requirements.txt, साथै यस पाठका लागि foundry-local-sdk, openai, र chromadb।एक अग्रगामी क्लाउड मोडेलमा सयौं अर्बहरू प्यारामिटर हुन्छन् र एउटा डाटासेन्टर हुन्छ। SLM मा केही अर्ब प्यारामिटर हुन्छन् र त्यो तपाईंको ल्यापटपको RAM मा फिट हुनुपर्छ। त्यो फरकले स्पष्ट अपेक्षा सेट गर्छ।
SLM हरू राम्रो छन्:
SLM हरू कमजोर छन्:
त्यसैले लोकल एजेन्टको विजयी रणनीति छ : SLM लाई व्यवस्थापन गर्न दिनुहोस्, र उपकरणहरूलाई भारी काम गर्न दिनुहोस्। मोडेलले तपाईंको कोडबेस जान्न आवश्यक छैन — यसले कहिले read_file र search_docs कल गर्ने वा नभएको थाहा पाउनु पर्छ। त्यो SLM को शक्तिमा सिधै खेल्छ।
flowchart LR
U[विकासकर्ता] --> A[स्थानीय SLM एजेन्ट]
A -->|कुन उपकरण प्रयोग गर्ने निर्णय गर्दछ| T1[read_file]
A -->|कुन उपकरण प्रयोग गर्ने निर्णय गर्दछ| T2[search_docs RAG]
A -->|कुन उपकरण प्रयोग गर्ने निर्णय गर्दछ| T3[analyze_code]
T1 --> A
T2 --> A
T3 --> A
A --> R[उत्तर, पूर्ण रूपमा उपकरणमै]
Microsoft Foundry Local एक हल्का रनटाइम हो जसले तपाईंको मेसिनमा पूर्णतया मोडेलहरू डाउनलोड, व्यवस्थापन र सेवा दिन्छ। यसको सबैभन्दा महत्वपूर्ण सुविधा हो कि यसले OpenAI-समर्थित HTTP अन्त बिन्दु खोल्छ — जसको अर्थ OpenAI SDK र Microsoft एजेन्ट फ्रेमवर्कको OpenAI क्लाइन्ट यसलाई base_url मात्र परिवर्तन गरी प्रयोग गर्न सक्छन्। एजेन्ट बनाउन सिकेका सबै कुरा सिधै सारिन्छन्; केवल अन्त बिन्दु क्लाउडबाट localhost मा जान्छ।
Foundry Local पनि तपाईंको हार्डवेयरका लागि मोडेलको सबैभन्दा राम्रो बिल्ड (CPU बिल्ड, CUDA/GPU बिल्ड, वा NPU बिल्ड) स्वचालित रूपमा चयन गर्छ — तपाईंले मेसिन अनुसार अनुकूलन गर्नुपर्दैन।
Foundry Local स्थापना गर्नुहोस् (तपाईंको OS को लागि डकुमेन्टेशन हेर्नुहोस्), त्यसपछि काम गर्छ कि छैन पुष्टि गर्नुहोस्:
# स्थापना गर्नुहोस् (उदाहरण; आफ्नो प्लेटफर्मका लागि कागजातहरू पालना गर्नुहोस्)
winget install Microsoft.FoundryLocal # विन्डोज
# brew install microsoft/foundrylocal/foundrylocal # macOS
# Qwen मोडेल डाउनलोड गरी चलाउनुहोस्, त्यसपछि स्थानीय सेवा सुरु गर्नुहोस्
foundry model run qwen2.5-7b-instruct
foundry service status
सेवा चलिरहेको छ भने तपाईंलाई लोकल, OpenAI-समर्थित अन्त बिन्दु छ (सामान्यतया http://localhost:PORT/v1)। नोटबुक foundry-local-sdk प्रयोग गरी अन्त बिन्दु स्वचालित रूपमा पत्ता लगाउँछ, त्यसैले पोर्ट हार्ड-कोड गर्न आवश्यक छैन।
एजेन्ट तब मात्र एजेन्ट हो जब यसले उपकरणहरू कल गर्न सक्छ। धेरै SLM हरू च्याट गर्न सक्छन् तर अविश्वसनीय, बिग्रिएका उपकरण कलहरू उत्पादन गर्छन्। Qwen मोडेलहरू फङ्क्शन कलिङको लागि तालिमप्राप्त छन् र राम्रो बनाइएको उपकरण कल संरचनाहरू नियमित रूपमा उत्पादन गर्छन् — जुन त्यही हो जसले लोकल च्याट मोडेललाई लोकल एजेन्ट बनाउँछ।
प्रवाह तपाईंले पहिले देखि जान्नु भएको सामान्य उपकरण-कल गर्ने लूप हो, मात्र डिभाइसमा चलिरहेको:
sequenceDiagram
participant U as प्रयोगकर्ता
participant A as क्युएन एजेन्ट (स्थानीय)
participant T as स्थानीय उपकरण
U->>A: "auth.py के गर्छ?"
A->>A: निर्णय गर्नुहोस्: read_file कल गर्नुहोस्
A->>T: read_file("auth.py")
T-->>A: फाइल सामग्रीहरू
A->>A: सामग्रीहरूमा तर्क गर्नुहोस्
A-->>U: व्याख्या
कागजात खोजाइ त्यही हो जहाँ लोकल एजेन्टहरूले आफ्नो काम देखाउँछन्। SLM ले तपाईंको फ्रेमवर्कका कागजातहरू स्मरण गरेको आशा गर्ने सट्टा, तपाईं ती कागजातहरूलाई लोकल भेक्टर डेटाबेस मा एम्बेड गर्नुहुन्छ र एजेन्टलाई आवश्यक समयमा सम्बन्धित खण्डहरू फेला पार्न दिनुहुन्छ।
हामी Chroma प्रयोग गर्छौं, जुन एम्बेड गरिएको भेक्टर स्टोर हो र कुनै सर्भर व्यवस्थापन बिना प्रक्रियामै चल्छ। पाइपलाइन पूर्णतया लोकल छ: लोकल एम्बेडिङ मोडेल → लोकल भेक्टर → लोकल पुनरुद्घार → लोकल SLM।
flowchart TB
D[तपाईंको कागजातहरू / कोड] --> E[स्थानीय एम्बेडिङ मोडेल]
E --> V[(क्राउमा भेक्टर डीबी - डिस्कमा)]
Q[एजेन्ट प्रश्न] --> QE[प्रश्नलाई स्थानीय रूपमा एम्बेड गर्नुहोस्]
QE --> V
V -->|शीर्ष-k खण्डहरू| A[क्वेन एजेन्ट]
A --> Ans[आधारभूत उत्तर]
यो सहि पाठ 5 को एजेन्टिक RAG ढाँचाझैं हो — मात्र फरक के हो भने सबै कम्पोनेन्टहरू तपाईंको मेसिनमा चलिरहेका छन्।
MCP एक ट्रान्सपोर्ट हो, क्लाउड सेवा होइन। एउटा MCP सर्भर stdio मा लोकल प्रक्रिया रूपमा चल्न सक्छ, एजेन्टलाई आफ्ना उपकरणहरू मानक प्रोटोकलमार्फत उपलब्ध गराउँदै। यसले विकास भइरहेका MCP सर्भरहरूको इकोसिस्टम पुन: प्रयोग गर्न अनुमति दिन्छ — फाइल सिस्टम पहुँच, git अपरेसनहरू, डेटाबेस क्वेरीहरू — पूर्ण रूपले अफलाइन।
सुरक्षा दृष्टिकोण क्लाउडबाट फरक छ, तर अनुपस्थित छैन: लोकल MCP सर्भर तपाईंको प्रयोगकर्ता अनुमतिहरूमा चल्छ, त्यसैले यसले के छुन सक्छ त्यसको दायरा निर्धारण गर्नुहोस् (जस्तै परियोजना डाइरेक्टरी, तपाईंको सम्पूर्ण होम फोल्डर होइन) र यसको आउटपुटहरूलाई इनपुटको रूपमा उपचार गरी मान्य गर्नुहोस्।
लोकल-प्रथम भनेको केवल लोकल मात्र होइन। परिपक्व प्रणालीहरूले संवेदनशीलता र कठिनाई अनुसार मार्ग निर्धारण गर्छन्:
| अवस्था | कहाँ चल्छ |
|---|---|
| संवेदनशील कोड / डेटा, वा अफलाइन | लोकल SLM |
| सरल, सीमित काम | लोकल SLM (सस्तो, छिटो) |
| गैर-संवेदनशील डाटामा कठिन बहु-कदम तर्क | क्लाउड मोडेल |
| सबै कुरा, आउटेजको समयमा | लोकल SLM (सौम्य गिरावट) |
यो पाठ 16 को मोडेल राउटिङ विचारसँग मेल खान्छ — तर एक “मोडेल” अब तपाईंको आफ्नै मेसिन हो। एक बलियो डिजाइनले क्लाउड उपलब्ध नभएमा लोकलमा फर्कन्छ, जसले एजेन्टको गुणस्तर घटाउँछ तर पूर्ण रुपमा विफल हुँदैन।
flowchart LR
Q[अनुरोध] --> S{संवेदनशील वा अफलाइन?}
S -->|हो| L[स्थानीय SLM]
S -->|होइन| C{गहिरो तर्क आवश्यक छ?}
C -->|होइन| L
C -->|हो| Cloud[क्लाउड मोडेल]
L --> Out[प्रतिक्रिया]
Cloud --> Out
खोल्नुहोस् code_samples/17-local-agent-foundry-local.ipynb र यसलाई पूरा गर्नुहोस्। तपाईं एउटा पूर्णतया तपाईंको कार्यस्थलमा चल्ने लोकल इन्जिनियरिङ सहायक बनाउनु हुनेछ जुन सक्छ:
कुनै पनि बिन्दुमा क्लाउड इन्फेरेन्स प्रयोग हुँदैन।
सहायक OpenAI-समर्थित अन्त बिन्दु मार्फत Foundry Local सँग जडान हुन्छ, त्यसैले एजेन्ट कोड लगभग क्लाउड पाठहरू जस्तै देखिन्छ — केवल क्लाइन्ट फरक छ:
from foundry_local import FoundryLocalManager
from openai import OpenAI
# फाउन्ड्री लोकल मोडेल पत्ता लगाउँछ/डाउनलोड गर्दछ र हामीलाई स्थानीय अन्त बिन्दु दिन्छ।
manager = FoundryLocalManager(\"qwen2.5-7b-instruct\")
client = OpenAI(base_url=manager.endpoint, api_key=manager.api_key) # api_key एक स्थानीय प्लेसहोल्डर हो
उपकरणहरू सामान्य Python फङ्क्शनहरू हुन् जुन परियोजना डाइरेक्टरीमा स्कोप छन्:
def read_file(path: str) -> str:
\"\"\"Read a file, but only inside the sandboxed project directory.\"\"\"
full = (PROJECT_ROOT / path).resolve()
if PROJECT_ROOT not in full.parents and full != PROJECT_ROOT:
return \"Access denied: path is outside the project directory.\"
return full.read_text(encoding=\"utf-8\")
स्यान्डबक्स जाँच ध्यान दिनुहोस् — यहाँसम्म कि लोकलमा पनि, यस्तो उपकरण जुन अनियमित पथ पढ्छ जोखिमपूर्ण हुन्छ। नोटबुकले प्रत्येक उपकरणलाई एक परियोजना रुटमा मात्र स्कोप गर्छ।
काम सुरु गर्नु अघि आफ्नो बुझाइ परीक्षण गर्नुहोस्।
1. एजेन्टलाई लोकलमा चलाउनुको दुई स्पष्ट कारणहरू दिनुहोस् क्लाउडको सट्टा।
2. लोकल एजेन्टमा SLM र यसको उपकरणहरू बीच सिफारिस गरिएको काम विभाजन के हो, र किन?
3. Foundry Local सँग क्लाउड एजेन्ट कोड पुन: प्रयोग सम्भव बनाउन के हुन्छ?
4. किन हामी कुनै SLM को सट्टा विशेष रूपमा Qwen फङ्क्शन-कलिङ मोडेल प्रयोग गर्छौं?
5. लोकल RAG पाइपलाइनमा कुन कम्पोनेन्टहरू मेसिनमा चल्छन्?
6. लोकल MCP सर्भर तपाईंको मेसिनमा चल्छ। के यसले स्वचालित रूपमा सुरक्षित बनाउँछ? के सावधानी लिनु पर्ने हो?
7. लोकल मोडेल समेट्ने उपयुक्त हाइब्रिड राउटिङ नियम वर्णन गर्नुहोस्।
8. यस पाठमा लोकल एजेन्ट चलाउन यथार्थपरक न्यूनतम RAM कति हो, र बढी RAM ले के फाइदा दिन्छ?
लोकल इन्जिनियरिङ सहायकलाई तपाईंको रोजाइको सानो परियोजनाको लागि लोकल कागजात समीक्षक मा विस्तार गर्नुहोस् (यदि चाहनुभयो भने यस रिपोजिटोरीका पाठ फोल्डरहरू मध्ये एक प्रयोग गर्नुहोस्)।
तपाईंको सबमिशनले:
एउटा find_todos उपकरण थप्ने जसले परियोजनामा TODO/FIXME टिप्पणीहरू स्क्यान गर्छ र फाइल र पंक्ति नम्बर सहित फिर्ता दिन्छ — read_file जस्तै स्यान्डबक्स जाँच राख्दै।
पछि छोटो अनुच्छेद लेख्नुहोस् कि यस समीक्षकका लागि तपाईं के क्लाउडमा सार्नुहुनेछ र के स्थानीय रूपमा राख्नुहुनेछ, र किन। तपाईंको मूल्याङ्कन स्थानीय घटकहरूले सही रूपमा जडित छन् कि छैनन् र तपाईंको हाइब्रिड तर्कसंगत छ कि छैनमा आधारित हुनेछ — मोडेल गुणस्तरमा होइन।
यस पाठमा तपाईंले पूर्ण रूपमा आफ्नै मेसिनमा चल्ने एउटा एजेन्ट निर्माण गर्नुभयो:
यसले परिनियोजन चक्र पूरा गर्दछ: पाठ 16 मा एजेन्टहरू Microsoft Foundry मा स्केल गरियो, र यस पाठले तिनीहरूलाई एकल वर्कस्टेशनमा स्केल गर्यो। अर्को पाठले परिनियोजित एजेन्टहरूलाई सुरक्षित राख्ने कुरामा केन्द्रित गर्दछ।
अस्वीकरण: यो दस्तावेज़ AI अनुवाद सेवा Co-op Translator प्रयोग गरेर अनुवाद गरिएको हो। हामी सही हुन प्रयास गर्छौं, तर कृपया जानकार हुनुस् कि स्वचालित अनुवादमा त्रुटिहरू वा अशुद्धताहरू हुन सक्छन्। मूल दस्तावेज़ यसको मूल भाषामा आधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीका लागि व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न कुनै पनि गलत बुझाइ वा त्रुटिको लागि हामी जिम्मेवार छैनौं।