En modern chattapplikation för Windows 11 som integrerar Microsoft Foundry Local med ett vackert, inbyggt gränssnitt. Byggd med Electron och följer Microsofts officiella Foundry Local-mönster.
Detta exempel visar hur man skapar en produktionsklar chattapplikation som utnyttjar lokala AI-modeller via Foundry Local, vilket ger användare integritetsfokuserade AI-konversationer utan molnberoenden.
- Integration med Fluent Design System
- Mica-materialeffekter och transparens
- Stöd för inbyggd Windows 11-tema
- Responsiv layout för alla skärmstorlekar
- Automatisk växling mellan mörkt/ljust läge
- Integration med Foundry Local-tjänsten
- Stöd för flera modeller med snabb växling
- Realtidsströmmande svar
- Växling mellan lokala och molnbaserade modeller
- Övervakning av modellhälsa och status
- Realtidsindikatorer för skrivande
- Ihållande meddelandehistorik
- Exportera chattkonversationer
- Anpassade systemprompter
- Hantering och förgrening av konversationer
- Lazy loading och virtualisering
- Optimerad rendering för långa konversationer
- Förladdning av modeller i bakgrunden
- Effektiv minneshantering
- Smidiga animationer och övergångar
┌─────────────────────────────────────────────────────────────┐
│ Windows 11 Chat App │
├─────────────────┬─────────────────┬─────────────────────────┤
│ Electron UI │ IPC Bridge │ Foundry Manager │
│ │ │ │
│ • Fluent Design │ • Secure Comms │ • Model Loading │
│ • Chat Interface│ • Event Routing │ • Health Monitoring │
│ • Settings │ • State Sync │ • Performance Tracking │
│ • Themes │ • Error Handler │ • Resource Management │
└─────────────────┴─────────────────┴─────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Microsoft Foundry Local Service │
│ │
│ • Local Model Hosting • OpenAI API Compatibility │
│ • Real-time Inference • Model Catalog Management │
│ • Streaming Responses • Health & Status Monitoring │
└─────────────────────────────────────────────────────────────┘
- OS: Windows 11 (22H2 eller senare rekommenderas)
- RAM: Minst 8GB, 16GB+ rekommenderas för större modeller
- Lagring: 10GB+ ledigt utrymme för modeller
- GPU: Valfritt men rekommenderas för snabbare inferens
- Node.js: v18.0.0 eller senare
- Foundry Local: Senaste versionen från Microsoft
- Git: För kloning och utveckling
# Download from GitHub releases and install
winget install Microsoft.FoundryLocal
# Verify installation
foundry --version# Navigate to sample directory
cd Module08/samples/08
# Install dependencies
npm install
# Install Electron if not global
npm install -g electron# Optional: Set cloud model credentials for hybrid mode
$env:AZURE_OPENAI_KEY="your-api-key"
$env:AZURE_OPENAI_ENDPOINT="your-endpoint"
$env:AZURE_OPENAI_MODEL="gpt-4"# Development mode
npm start
# Production build
npm run build
npm run dist08/
├── README.md # This documentation
├── package.json # Project dependencies and scripts
├── electron.js # Main Electron process
├── preload.js # Secure preload script
├── src/
│ ├── index.html # Main application UI
│ ├── styles/
│ │ ├── fluent.css # Windows 11 Fluent Design
│ │ ├── chat.css # Chat interface styles
│ │ └── themes.css # Light/Dark theme support
│ ├── scripts/
│ │ ├── app.js # Main application logic
│ │ ├── chat.js # Chat functionality
│ │ ├── models.js # Model management
│ │ ├── settings.js # Settings and preferences
│ │ └── utils.js # Utility functions
│ └── assets/
│ ├── icons/ # Application icons
│ ├── sounds/ # Notification sounds
│ └── images/ # UI images and illustrations
├── foundry/
│ ├── manager.js # Foundry Local integration
│ └── health.js # Health monitoring
└── build/
├── icon.ico # Windows application icon
└── installer.nsi # NSIS installer script
Fluent Design System
- Mica-bakgrundsmaterial
- Akryltransparenseffekter
- Rundade hörn och modern spacing
- Inbyggd Windows 11-färgpalett
- Semantiska färgtokens för tillgänglighet
Inbyggda Windows-funktioner
- Jump list-integration för senaste chattar
- Windows-notifikationer för nya meddelanden
- Aktivitetsfältets framsteg för modelloperationer
- Systemfackintegration med snabbåtgärder
- Stöd för Windows Hello-autentisering
Lokala modeller
// Automatic model discovery and loading
const models = await foundryManager.discoverModels();
await foundryManager.loadModel('phi-4-mini');
// Model health monitoring
const health = await foundryManager.checkHealth();
console.log(`Model Status: ${health.status}`);
console.log(`Memory Usage: ${health.memoryUsage}MB`);Hybridstöd för moln/lokalt
// Seamless switching between local and cloud models
if (useCloudModel) {
await chatManager.switchToCloud('gpt-4');
} else {
await chatManager.switchToLocal('phi-4-mini');
}Realtidsströmning
- Token-för-token-svarvisning
- Smidiga skrivanimationer
- Avbrytbara förfrågningar
- Indikatorer för skrivande och status
Hantering av konversationer
- Ihållande chattlogg
- Export/import av konversationer
- Sök och filtrering av meddelanden
- Förgrening av konversationer
- Anpassade systemprompter per konversation
Tillgänglighet
- Fullständig tangentbordsnavigering
- Kompatibilitet med skärmläsare
- Stöd för högkontrastläge
- Anpassningsbara teckenstorlekar
- Röstinmatningsintegration
// Initialize the chat system
const chat = new ChatManager({
foundryEndpoint: 'http://localhost:5273',
defaultModel: 'phi-4-mini',
streaming: true
});
// Send a message
const response = await chat.sendMessage({
content: 'Explain quantum computing',
model: 'phi-4-mini',
systemPrompt: 'You are a helpful physics teacher.'
});
// Handle streaming responses
chat.on('chunk', (chunk) => {
appendMessageChunk(chunk.content);
});// Load a new model
await modelManager.loadModel('qwen2.5-coder-0.5b', {
showProgress: true,
autoStart: true
});
// Monitor model performance
modelManager.on('performance', (metrics) => {
updatePerformanceUI(metrics);
});
// Switch models mid-conversation
await chat.switchModel('phi-4-mini', {
preserveContext: true
});// Configure chat behavior
const settings = {
theme: 'system', // auto, light, dark
model: 'phi-4-mini',
streaming: true,
maxTokens: 1000,
temperature: 0.7,
systemPrompt: 'You are a helpful assistant.'
};
await settingsManager.updateSettings(settings);- Tema: Auto, ljust, mörkt läge
- Modell: Standardval av modell
- Prestanda: Inställningar för inferens
- Integritet: Policyer för datalagring
- Notifikationer: Meddelandevarningar
- Snabbkommandon: Tangentbordsgenvägar
- Strömning: Aktivera/inaktivera realtidssvar
- Kontextlängd: Minneskapacitet för konversationer
- Temperatur: Kreativitet i svar
- Max Tokens: Begränsningar för svarslängd
- Systemprompter: Standardbeteende för assistenten
- Auto-nedladdning: Automatiska modelluppdateringar
- Cache-storlek: Begränsningar för lokal modellagring
- Prestandaläge: CPU kontra GPU-preferenser
- Hälsokontroller: Övervakningsintervaller
# Install development dependencies
npm install
# Run in development mode
npm run dev
# Build for production
npm run build
# Create installer
npm run dist# Enable debug mode
set DEBUG=foundry-chat:*
npm start
# View developer tools
# Press F12 in the application# Run unit tests
npm test
# Run integration tests
npm run test:integration
# Run end-to-end tests
npm run test:e2e- Effektiv virtualisering av meddelanden
- Automatisk garbage collection
- Övervakning av modellminne
- Resursrensning vid avslut
- Virtuell scrollning för långa konversationer
- Lazy loading av meddelandehistorik
- Optimerade React/DOM-uppdateringar
- GPU-accelererade animationer
- Poolning av anslutningar
- Batchning av förfrågningar
- Automatisk återförsökslogik
- Stöd för offline-läge
- Lokal-först-arkitektur
- Ingen dataöverföring till molnet (lokalt läge)
- Krypterad lagring av konversationer
- Säker hantering av autentiseringsuppgifter
- Sandlåda för renderer-processer
- Content Security Policy (CSP)
- Ingen fjärrkodskörning
- Säker IPC-kommunikation
Foundry Local startar inte
# Check service status
foundry status
# Restart service
foundry restart
# Check logs
foundry logsFel vid modellinladdning
- Kontrollera tillräckligt med diskutrymme
- Kontrollera internetanslutning för nedladdningar
- Se till att GPU-drivrutiner är uppdaterade
- Testa olika modellvarianter
Prestandaproblem
- Övervaka systemresurser
- Justera modellinställningar
- Aktivera hårdvaruacceleration
- Stäng andra resurskrävande applikationer
Aktivera felsökningsloggning genom att ställa in miljövariabler:
$env:DEBUG="foundry:*"
$env:FOUNDRY_LOG_LEVEL="debug"- Forka repositoryn
- Skapa en feature branch
- Installera beroenden:
npm install - Gör ändringar och testa
- Skicka in en pull request
- ESLint-konfiguration tillhandahålls
- Prettier för kodformatering
- TypeScript för typkontroll
- JSDoc-kommentarer för dokumentation
Efter att ha slutfört detta exempel kommer du att förstå:
-
Windows 11-inbyggd utveckling
- Implementering av Fluent Design System
- Integration med Windows-funktioner
- Säkerhetsbästa praxis för Electron
-
AI-modellintegration
- Arkitektur för Foundry Local-tjänsten
- Hantering av modellens livscykel
- Övervakning och optimering av prestanda
-
Realtidssystem för chatt
- Hantering av strömmande svar
- Hantering av konversationsstatus
- Mönster för användarupplevelse
-
Utveckling av produktionsapplikationer
- Felhantering och återhämtning
- Prestandaoptimering
- Säkerhetsöverväganden
- Teststrategier
- Exempel 09: Multi-Agent Orchestration System
- Exempel 10: Foundry Local som verktygsintegration
- Avancerade ämnen: Anpassad modellfinjustering
- Distribution: Mönster för företagsdistribution
Detta exempel följer samma licens som Microsoft Foundry Local-projektet.