Det här exemplet visar hur man använder Microsoft Foundry Local som en REST API-tjänst utan att förlita sig på OpenAI SDK. Det demonstrerar direkta HTTP-integrationsmönster för maximal kontroll och anpassning.
Baserat på Microsofts officiella Foundry Local-mönster erbjuder detta exempel:
- Direkt REST API-integration med FoundryLocalManager
- Anpassad implementation av HTTP-klient
- Modellhantering och hälsokontroll
- Hantering av både strömmande och icke-strömmande svar
- Produktionsklara felhanterings- och återförsökslogik
-
Foundry Local Installation
# Install from GitHub releases winget install Microsoft.FoundryLocal -
Python-beroenden
pip install foundry-local-sdk requests asyncio aiohttp
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Your App │───▶│ REST API Client │───▶│ Foundry Local │
│ │ │ │ │ Service │
│ - Custom Logic │ │ - HTTP Requests │ │ - Model Loading │
│ - Business Rules│ │ - Authentication │ │ - Inference │
│ - Data Pipeline │ │ - Error Handling │ │ - Health Check │
└─────────────────┘ └──────────────────┘ └─────────────────┘
- Enbart REST API-anrop utan SDK-beroenden
- Anpassad autentisering och headers
- Full kontroll över begäran/svarshantering
- Dynamisk laddning och avladdning av modeller
- Hälsokontroll och statusövervakning
- Insamling av prestandamått
- Återförsöksmekanismer med exponentiell backoff
- Circuit breaker för felhantering
- Omfattande loggning och övervakning
- Strömmande svar för realtidsapplikationer
- Batchbearbetning för hög genomströmning
- Anpassad svarsparsing och validering
from api_client import FoundryAPIClient
# Initialize the API client
client = FoundryAPIClient()
# Simple completion
response = await client.complete(
prompt="Explain quantum computing",
model="phi-4-mini",
max_tokens=500
)
print(response.content)# Stream responses for real-time applications
async for chunk in client.stream_complete(
prompt="Write a story about AI",
model="phi-4-mini"
):
print(chunk.content, end="", flush=True)# Check service health
health = await client.health_check()
print(f"Service Status: {health.status}")
print(f"Active Models: {health.loaded_models}")
print(f"Memory Usage: {health.memory_usage}")07/
├── README.md # This documentation
├── requirements.txt # Python dependencies
├── api_client.py # Core API client implementation
├── health_monitor.py # Health checking and monitoring
├── examples/
│ ├── basic_usage.py # Simple API integration example
│ ├── streaming.py # Streaming response example
│ ├── batch_processing.py # Batch processing example
│ └── production.py # Production-ready implementation
└── tests/
├── test_api_client.py # Unit tests for API client
└── test_integration.py # Integration tests
Detta exempel följer Microsofts officiella mönster:
- SDK-integration: Använder
FoundryLocalManagerför tjänstehantering - REST-endpoints: Direkta anrop till
/v1/chat/completionsoch andra endpoints - Autentisering: Korrekt hantering av API-nycklar för lokala tjänster
- Modellhantering: Kataloglistning, nedladdning och laddningsmönster
- Felhantering: Microsoft-rekommenderade felkoder och svar
-
Installera beroenden
pip install -r requirements.txt
-
Kör grundläggande exempel
python examples/basic_usage.py
-
Testa strömning
python examples/streaming.py
-
Produktionsinställning
python examples/production.py
Miljövariabler för anpassning:
FOUNDRY_MODEL: Standardmodell att använda (standard: "phi-4-mini")FOUNDRY_TIMEOUT: Begäran timeout i sekunder (standard: 30)FOUNDRY_RETRIES: Antal återförsöksförsök (standard: 3)FOUNDRY_LOG_LEVEL: Loggnivå (standard: "INFO")
- Anslutningshantering: Återanvänd HTTP-anslutningar för bättre prestanda
- Felhantering: Implementera korrekt återförsökslogik med exponentiell backoff
- Resursövervakning: Spåra modellens minnesanvändning och prestanda
- Säkerhet: Använd korrekt autentisering även för lokala tjänster
- Testning: Inkludera både enhets- och integrationstester
Tjänsten körs inte
# Check Foundry Local status
foundry status
# Start if needed
foundry startProblem med modellens laddning
# List available models
foundry model list
# Download specific model
foundry model download phi-4-miniAnslutningsfel
- Kontrollera att Foundry Local körs på rätt port
- Kontrollera brandväggsinställningar
- Säkerställ korrekta autentiseringsheaders
- Anslutningspoolning: Använd sessionsobjekt för flera begäranden
- Asynkrona operationer: Utnyttja asyncio för samtidiga begäranden
- Caching: Cacha modellsvar där det är lämpligt
- Övervakning: Spåra svarstider och justera timeouts
Efter att ha genomfört detta exempel kommer du att förstå:
- Direkt REST API-integration med Foundry Local
- Mönster för anpassad implementation av HTTP-klient
- Produktionsklar felhantering och övervakning
- Microsoft Foundry Local tjänstearkitektur
- Prestandaoptimeringstekniker för lokala AI-tjänster
- Utforska Exempel 08: Windows 11 Chat-applikation
- Testa Exempel 09: Multi-Agent Orchestration
- Lär dig Exempel 10: Foundry Local som verktygsintegration