![]()
अघिल्लो पाठले एजेन्टहरूलाई क्लाउडमा ठूलो बनायो। यो पाठले तिनीहरूलाई एकल मेसिनमा सानो बनाउँछ। अन्त्यमा तपाईं सँग यस्तो इन्जिनियरिङ सहायक हुनेछ जुन तर्क गर्छ, उपकरणहरू कल गर्छ, तपाईंका फाइलहरू पढ्दछ, र तपाईंको डकुमेन्टेसन खोज्दछ — एक पनि क्लाउड इन्फेरेन्स कल बिना।
तपाईलाई किन यो चाहियो होला? तीन कारणहरू जुन वास्तविक इन्जिनियरिङ काममा निरन्तर आउँछन्:
समस्या यो हो कि तपाईं फ्रन्टियर क्लाउड मोडेलको सट्टा सानो भाषा मोडेल (SLM) प्रयोग गर्दै हुनुहुन्छ जुन तपाईंको CPU, GPU, वा NPU मा चल्छ। यो पाठ त्यस्ता एजेन्टहरू बनाउने बारेमा हो जुन उक्त सिमिततामा सही हुन्छन् न कि सिमितता नभएको जस्तो अभिनय गर्दछन्।
यो पाठले समेट्ने कुरा:
यो पाठपछि, तपाईं जान्नुहुनेछ कसरी:
यो पाठले पूर्व पाठहरू पूरा गरेको र तपाईंलाई सजिलो देखाउने छ:
तपाईंलाई यी पनि चाहिन्छ:
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 Agent Framework को OpenAI क्लाइंट यसमा काम गर्छ base_url मात्र परिवर्तन गरेर। एजेन्ट बनाउने सबै कुरा सिधै स्थानान्तरण हुन्छ; केवल अन्त्यबिन्दु क्लाउडबाट localhost मा सर्छ।
Foundry Local ले तपाईको हार्डवेयरको लागि मोडेलको सबैभन्दा राम्रो बिल्ड पनि स्वत: छान्छ — CPU बिल्ड, CUDA/GPU बिल्ड, वा NPU बिल्ड — जसले तपाईलाई प्रति मेसिन हातले अनुकूलन गर्नुपर्ने काम घटाउँछ।
Foundry Local स्थापना गर्नुहोस् (तपाईंको OS को लागि डकुमेन्टेसन हेर्नुहोस्), र काम गर्छ कि गर्छ भनेर प्रमाणित गर्नुहोस्:
# इन्स्टल गर्नुहोस् (उदाहरणका लागि; आफ्नो प्लेटफर्मको लागि दस्तावेजहरू अनुसरण गर्नुहोस्)
winget install Microsoft.FoundryLocal # विन्डोज
# brew install microsoft/foundrylocal/foundrylocal # म्याकओएस
# 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[आधारभूत उत्तर]
यो पाठ ५ बाटको Agentic RAG नमूना हो — फरक भनेको सबै कम्पोनेन्ट तपाईंको मेसिनमा चलिरहेको छ।
MCP एउटा ट्रान्सपोर्ट हो, क्लाउड सेवा होइन। MCP सर्भरstdio मा स्थानीय प्रक्रिया रूपमा चल्न सक्छ, एजेन्टलाई उपकरणहरू उपलब्ध गराउने सामान्य प्रोटोकल मार्फत। यसले तपाईंलाई विकासशील MCP सर्भरहरूको इकोसिस्टम पुन: प्रयोग गर्न दिन्छ — फाइलसिस्टम पहुँच, git अपरेसनहरू, डाटाबेस क्वेरीहरू — पूर्ण रूपमा अफलाइन।
सुरक्षा स्थिति क्लाउडसँग फरक छ, तर अनुपस्थित छैन: स्थानीय MCP सर्भर तपाईंको प्रयोगकर्ताको अनुमतिसँगै चल्छ, त्यसैले यसले के छोइरहेको छ नियन्त्रण गर्नुहोस् (जस्तै, एउटा प्रोजेक्ट डाइरेक्टरी, सम्पूर्ण होम फोल्डर होइन) र यसको आउटपुटलाई इन्स्पेक्शनका लागि इनपुटको रूपमा लिनुहोस्।
स्थानीय-प्रथम भनेर स्थानीय मात्र होइन। पुगेका प्रणालीहरूले संवेदनशीलता र कठिनाइ अनुसार मार्ग निर्धारण गर्छन्:
| स्थिति | कहाँ चल्छ |
|---|---|
| संवेदनशील कोड / डेटा, वा अफलाइन | स्थानीय SLM |
| सरल, सीमित कार्य | स्थानीय SLM (सस्तो, छिटो) |
| संवेदनशील नभएको डेटा माथि कठिन धेरै-कदम तर्क | क्लाउड मोडेल |
| सबै, आउटेजको समयमा | स्थानीय SLM (नरम गिरावट) |
यो पाठ १६ को मोडेल राउटिङ विचारसँग मेल खान्छ — तर “मोडेलहरूमध्ये” एक अब तपाईंको आफ्नै मेसिन हो। एक पुष्ट डिजाइन उपलब्ध नभएको क्लाउडको बेला स्थानीयमा फर्कन्छ, जसले गर्दा एजेन्ट सम्पूर्ण रूपमा असफल नहुने, गुणस्तरमा झर्ने गर्दछ।
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 खोल्नुहोस् र काम सुरू गर्नुहोस्। तपाईंले एउटा स्थानीय इन्जिनियरिङ सहायक बनाउनुहुनेछ जो पूर्ण रूपमा तपाईंको वर्कस्टेशनमा चल्छ र गर्न सक्दछ:
कुनै पनि बिन्दुमा क्लाउड इन्फेरेन्स प्रयोग हुँदैन।
सहायक Foundry Local मा OpenAI-संगत अन्त्यबिन्दु मार्फत जडान हुन्छ, त्यसैले एजेन्ट कोड क्लाउड पाठहरू जस्तै देखिन्छ — केवल क्लाइन्ट फरक छ:
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\")
स्यान्डबक्स जाँच नोट गर्नुहोस् — स्थानीय भए पनि, जुनसुकै बाटो पढ्ने उपकरण जोखिम हो। नोटबुकले हरेक उपकरणलाई एक प्रोजेक्ट रुटमा सीमित राख्छ।
असाइनमेन्टमा जानु अघि आफ्नो समझदारी परीक्षण गर्नुहोस्।
१. एजेन्टलाई क्लाउड होइन स्थानीय रूपमा चलाउने दुई ठोस कारणहरू के हुन्?
२. स्थानीय एजेन्टमा SLM र यसको उपकरणहरू बीचको सिफारिस गरिएको कार्य विभाजन के हो र किन?
३. Foundry Local सँग क्लाउड एजेन्ट कोडलाई पुन: प्रयोग सम्भव बनाउन के छ?
४. हामी विशेषगरी Qwen फंक्शन-कलिङ मोडेल किन प्रयोग गर्छौं जुन कुनै पनि SLM भन्दा फरक हुन्छ?
५. स्थानीय RAG पाइपलाइनमा कुन कम्पोनेन्टहरू मेसिनमा चल्छन्?
६. स्थानीय MCP सर्भर तपाईंको मेसिनमा चल्छ। के त्यसले यसलाई स्वयंकृत रूपमा सुरक्षित बनाउँछ? तपाईंले के सुरक्षात्मक कदम लिनु पर्छ?
७. स्थानीय मोडेल समावेश गर्ने उपयुक्त हाइब्रिड राउटिङ नियम वर्णन गर्नुहोस्।
८. यस पाठमा स्थानीय एजेन्ट चलाउनको लागि यथार्थपरक न्यूनतम RAM कति हो, र बढी RAM ले के सुविधा दिन्छ?
स्थानीय इन्जिनियरिङ सहायकलाई बढाएर आफ्नो रोजाइको सानो प्रोजेक्टका लागि स्थानीय डकुमेन्टेसन समीक्षक बनाउनुहोस् (यदि चाहनु भए यस रिपोको पाठ फोल्डरहरू मध्ये एक प्रयोग गर्नुहोस्)।
तपाईंको पेशकशले समावेश गर्नुपर्छ:
find_todos उपकरण थप्ने जुन प्रोजेक्टमा TODO / FIXME कमेन्टहरू स्क्यान गरी फाइल र लाइन नम्बर सहित फर्काउँछ — read_file जस्तै स्यान्डबक्स चेक कायम राख्दै।
त्यसपछि छोटो अनुच्छेद लेख्नुहोस् कि के तपाईंले क्लाउडमा के सार्ने र के स्थानीयमा राख्ने समीक्षा कर्तालागि, र किन। तपाईंलाई स्थानीय कम्पोनेन्टहरू सही तरिकाले तार जोडिएको छन् कि छैन र तपाईंको हाइब्रिड तर्क सही छ कि छैन आधारमा मूल्यांकन गरिन्छ — मोडेल गुणस्तरमा होइन।
यस पाठमा तपाईंले यस्तो एजेन्ट बनाउनु भयो जुन पूर्ण रूपमा तपाईंको आफ्नै मेसिनमा चल्छ:
यसले परिचालन चक्र पूरा गर्छ: पाठ १६ ले एजेन्टहरूलाई Microsoft Foundry मा स्केल गर्यो, र यस पाठले तिनीहरूलाई एकल कार्यस्थलसम्म स्केल गर्यो। अर्को पाठले परिचालित एजेन्टहरूलाई सुरक्षित राख्नको विषयमा जान्छ।
AI एजेन्टहरूलाई सुरक्षित बनाउँदै
अस्वीकरण: यो दस्तावेज़ AI अनुवाद सेवा Co-op Translator प्रयोग गरेर अनुवाद गरिएको हो। हामी सही हुन प्रयास गर्छौं, तर कृपया जानकार हुनुस् कि स्वचालित अनुवादमा त्रुटिहरू वा अशुद्धताहरू हुन सक्छन्। मूल दस्तावेज़ यसको मूल भाषामा आधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीका लागि व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न कुनै पनि गलत बुझाइ वा त्रुटिको लागि हामी जिम्मेवार छैनौं।