جلسه ۱: شروع به کار با Foundry Local

January 29, 2026 · View on GitHub

مرور کلی

Microsoft Foundry Local قابلیت‌های Azure AI Foundry را مستقیماً به محیط توسعه ویندوز ۱۱ شما می‌آورد و امکان توسعه هوش مصنوعی با حفظ حریم خصوصی، تأخیر کم و ابزارهای سطح سازمانی را فراهم می‌کند. این جلسه شامل نصب کامل، پیکربندی و اجرای عملی مدل‌های محبوب از جمله phi، qwen، deepseek و GPT-OSS-20B است.

اهداف آموزشی

تا پایان این جلسه، شما:

  • Foundry Local را روی ویندوز ۱۱ نصب و پیکربندی خواهید کرد
  • دستورات CLI و گزینه‌های پیکربندی را به خوبی یاد خواهید گرفت
  • استراتژی‌های کش مدل برای عملکرد بهینه را درک خواهید کرد
  • مدل‌های phi، qwen، deepseek و GPT-OSS-20B را با موفقیت اجرا خواهید کرد
  • اولین برنامه هوش مصنوعی خود را با استفاده از Foundry Local ایجاد خواهید کرد

پیش‌نیازها

الزامات سیستم

  • ویندوز ۱۱: نسخه 22H2 یا بالاتر
  • رم: حداقل ۱۶ گیگابایت، توصیه شده ۳۲ گیگابایت
  • فضای ذخیره‌سازی: ۵۰ گیگابایت فضای آزاد برای مدل‌ها و کش
  • سخت‌افزار: دستگاه مجهز به NPU یا GPU ترجیحاً (Copilot+ PC یا GPU انویدیا)
  • شبکه: اینترنت پرسرعت برای دانلود مدل‌ها

محیط توسعه

# Verify Windows version
winver

# Check available memory
Get-ComputerInfo | Select-Object TotalPhysicalMemory

# Verify PowerShell version (5.1+ required)
$PSVersionTable.PSVersion

# Set up Python environment (recommended)
py -m venv .venv
.venv\Scripts\activate

# Install required dependencies
pip install openai foundry-local-sdk

بخش ۱: نصب و راه‌اندازی

مرحله ۱: نصب Foundry Local

Foundry Local را با استفاده از Winget نصب کنید یا نصب‌کننده را از GitHub دانلود کنید:

# Winget (Windows)
winget install --id Microsoft.FoundryLocal --source winget

# Alternatively: download installer from the official repo
# https://aka.ms/foundry-local-installer

مرحله ۲: تأیید نصب

# Check Foundry Local version
foundry --version

# Verify CLI accessibility and categories
foundry --help
foundry model --help
foundry cache --help
foundry service --help

بخش ۲: درک CLI

ساختار دستورات اصلی

# General command structure
foundry [category] [command] [options]

# Main categories
foundry model   # manage and run models
foundry service # manage the local service
foundry cache   # manage local model cache

# Common commands
foundry model list              # list available models
foundry model run phi-4-mini  # run a model (downloads as needed)
foundry cache ls                # list cached models

بخش ۳: مدیریت و کش مدل‌ها

Foundry Local از کش هوشمند مدل برای بهینه‌سازی عملکرد و ذخیره‌سازی استفاده می‌کند:

# Show cache contents
foundry cache ls

# Optional: change cache directory (advanced)
foundry cache cd "C:\\FoundryLocal\\Cache"
foundry cache ls

بخش ۴: اجرای عملی مدل‌ها

اجرای مدل‌های Microsoft Phi

# List catalog and run Phi (auto-downloads best variant for your hardware)
foundry model list
foundry model run phi-4-mini

کار با مدل‌های Qwen

# Run Qwen2.5 models (downloads on first run)
foundry model run qwen2.5-7b
foundry model run qwen2.5-14b

اجرای مدل‌های DeepSeek

# Run DeepSeek model
foundry model run deepseek-r1-7b

اجرای GPT-OSS-20B

# Run the latest OpenAI open-source model (requires recent Foundry Local and sufficient GPU VRAM)
foundry model run gpt-oss-20b

# Check version if you encounter errors (requires 0.6.87+ per docs)
foundry --version

بخش ۵: ایجاد اولین برنامه شما

برنامه چت مدرن (OpenAI SDK + Foundry Local)

یک برنامه چت آماده تولید با استفاده از OpenAI SDK و یکپارچه‌سازی Foundry Local ایجاد کنید، با الگوهای نمونه ۰۱.

# chat_quickstart.py (Sample 01 pattern)
import os
import sys
from openai import OpenAI

try:
    from foundry_local import FoundryLocalManager
    FOUNDRY_SDK_AVAILABLE = True
except ImportError:
    FOUNDRY_SDK_AVAILABLE = False
    print("⚠️ Install foundry-local-sdk: pip install foundry-local-sdk")

def create_client():
    """Create OpenAI client with Foundry Local or Azure OpenAI."""
    # Check for Azure OpenAI configuration
    azure_endpoint = os.environ.get("AZURE_OPENAI_ENDPOINT")
    azure_api_key = os.environ.get("AZURE_OPENAI_API_KEY")
    
    if azure_endpoint and azure_api_key:
        # Azure OpenAI path
        model = os.environ.get("MODEL", "your-deployment-name")
        client = OpenAI(
            base_url=f"{azure_endpoint}/openai",
            api_key=azure_api_key,
            default_query={"api-version": "2024-08-01-preview"},
        )
        print(f"🌐 Using Azure OpenAI with model: {model}")
        return client, model
    
    # Foundry Local path with SDK management
    alias = os.environ.get("MODEL", "phi-4-mini")
    if FOUNDRY_SDK_AVAILABLE:
        try:
            # Use FoundryLocalManager for proper service management
            manager = FoundryLocalManager(alias)
            model_info = manager.get_model_info(alias)
            
            client = OpenAI(
                base_url=manager.endpoint,
                api_key=manager.api_key
            )
            model = model_info.id
            print(f"🏠 Using Foundry Local SDK with model: {model}")
            return client, model
        except Exception as e:
            print(f"⚠️ Foundry SDK failed ({e}), using manual configuration")
    
    # Fallback to manual configuration
    base_url = os.environ.get("BASE_URL", "http://localhost:8000")
    api_key = os.environ.get("API_KEY", "")
    model = alias
    
    client = OpenAI(
        base_url=f"{base_url}/v1",
        api_key=api_key
    )
    print(f"🔧 Manual configuration with model: {model}")
    return client, model

def main():
    """Main chat function."""
    client, model = create_client()
    
    print("Foundry Local Chat Interface (type 'quit' to exit)\n")
    conversation_history = []
    
    while True:
        user_input = input("You: ")
        if user_input.lower() == 'quit':
            break
        
        try:
            # Add user message to history
            conversation_history.append({"role": "user", "content": user_input})
            
            # Create chat completion
            response = client.chat.completions.create(
                model=model,
                messages=conversation_history,
                max_tokens=500,
                temperature=0.7
            )
            
            assistant_message = response.choices[0].message.content
            conversation_history.append({"role": "assistant", "content": assistant_message})
            
            print(f"Assistant: {assistant_message}\n")
            
        except Exception as e:
            print(f"Error: {e}\n")

if __name__ == "__main__":
    main()

اجرای برنامه چت

# Ensure the model is running in another terminal
foundry model run phi-4-mini

# Option 1: Using FoundryLocalManager (recommended)
python chat_quickstart.py "Explain what Foundry Local is"

# Option 2: Manual configuration with environment variables
set BASE_URL=http://localhost:8000
set MODEL=phi-4-mini
set API_KEY=
python chat_quickstart.py "Write a welcome message"

# Option 3: Azure OpenAI configuration
set AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com
set AZURE_OPENAI_API_KEY=your-api-key
set AZURE_OPENAI_API_VERSION=2024-08-01-preview
set MODEL=your-deployment-name
python chat_quickstart.py "Hello from Azure OpenAI"

بخش ۶: رفع اشکال و بهترین روش‌ها

مشکلات رایج و راه‌حل‌ها

# Issue: "Could not use Foundry SDK" warning
pip install foundry-local-sdk
# Or set environment variables for manual configuration

# Issue: Connection refused
foundry service status
foundry service ps  # Check loaded models

# Issue: Model not found
foundry model list
foundry model run phi-4-mini

# Issue: Cache problems or low disk space
foundry cache ls
foundry cache clean

# Issue: GPT-OSS-20B not supported on your version
foundry --version
winget upgrade --id Microsoft.FoundryLocal

# Test API endpoint
curl http://localhost:8000/v1/models

نظارت بر منابع سیستم (ویندوز)

# Quick CPU and process view
Get-Process | Sort-Object -Property CPU -Descending | Select-Object -First 10
Get-Counter '\\Processor(_Total)\\% Processor Time' -SampleInterval 1 -MaxSamples 10

متغیرهای محیطی

متغیرتوضیحاتپیش‌فرضضروری
MODELنام یا نام مستعار مدلphi-4-miniخیر
BASE_URLآدرس پایه Foundry Localhttp://localhost:8000خیر
API_KEYکلید API (معمولاً برای محلی نیاز نیست)""خیر
AZURE_OPENAI_ENDPOINTنقطه پایانی Azure OpenAI-برای Azure
AZURE_OPENAI_API_KEYکلید API Azure OpenAI-برای Azure
AZURE_OPENAI_API_VERSIONنسخه API Azure2024-08-01-previewخیر

بهترین روش‌ها

  • استفاده از OpenAI SDK: به جای درخواست‌های خام HTTP، از OpenAI SDK برای نگهداری بهتر استفاده کنید
  • FoundryLocalManager: از SDK رسمی برای مدیریت سرویس استفاده کنید، در صورت موجود بودن
  • مدیریت خطا: استراتژی‌های جایگزین مناسب برای برنامه‌های تولیدی پیاده‌سازی کنید
  • به‌روزرسانی منظم: Foundry Local را به‌روز نگه دارید تا به مدل‌ها و اصلاحات جدید دسترسی داشته باشید
  • شروع کوچک: با مدل‌های کوچک‌تر (Phi mini، Qwen 7B) شروع کنید و به تدریج مقیاس را افزایش دهید
  • نظارت بر منابع: هنگام تنظیم درخواست‌ها و تنظیمات، CPU/GPU/رم را پیگیری کنید

بخش ۷: تمرین‌های عملی

تمرین ۱: تست سریع چند مدل

# deploy-models.ps1
$models = @(
    "phi-4-mini",
    "qwen2.5-7b"
)
foreach ($model in $models) {
    Write-Host "Running $model..."
    foundry model run $model --verbose
}

تمرین ۲: تست یکپارچه‌سازی OpenAI SDK

# sdk_integration_test.py (matching Sample 01 pattern)
import os
from openai import OpenAI
from foundry_local import FoundryLocalManager

def test_model_integration(model_alias):
    """Test OpenAI SDK integration with different models."""
    try:
        # Use FoundryLocalManager for proper setup
        manager = FoundryLocalManager(model_alias)
        model_info = manager.get_model_info(model_alias)
        
        client = OpenAI(
            base_url=manager.endpoint,
            api_key=manager.api_key
        )
        
        # Test basic completion
        response = client.chat.completions.create(
            model=model_info.id,
            messages=[{"role": "user", "content": "Say hello and state your model name."}],
            max_tokens=50
        )
        
        print(f"✅ {model_alias}: {response.choices[0].message.content}")
        return True
    except Exception as e:
        print(f"❌ {model_alias}: {e}")
        return False

# Test multiple models
models_to_test = ["phi-4-mini", "qwen2.5-7b"]
for model in models_to_test:
    test_model_integration(model)

تمرین ۳: بررسی جامع سلامت سرویس

# health_check.py
from openai import OpenAI
from foundry_local import FoundryLocalManager

def comprehensive_health_check():
    """Perform comprehensive health check of Foundry Local service."""
    try:
        # Initialize with a common model
        manager = FoundryLocalManager("phi-4-mini")
        client = OpenAI(
            base_url=manager.endpoint,
            api_key=manager.api_key
        )
        
        # 1. Check service connectivity
        models_response = client.models.list()
        available_models = [model.id for model in models_response.data]
        print(f"✅ Service healthy - {len(available_models)} models available")
        
        # 2. Test each available model
        for model_id in available_models:
            try:
                response = client.chat.completions.create(
                    model=model_id,
                    messages=[{"role": "user", "content": "Test"}],
                    max_tokens=10
                )
                print(f"✅ {model_id}: Working")
            except Exception as e:
                print(f"❌ {model_id}: {e}")
        
        return True
    except Exception as e:
        print(f"❌ Service check failed: {e}")
        return False

comprehensive_health_check()

منابع


سلب مسئولیت:
این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما تلاش می‌کنیم ترجمه‌ها دقیق باشند، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌ها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، توصیه می‌شود از ترجمه انسانی حرفه‌ای استفاده کنید. ما مسئولیتی در قبال سوء تفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.