Windows 11 Chat Eksempel - Foundry Local
January 29, 2026 · View on GitHub
En moderne chatapplikasjon for Windows 11 som integrerer Microsoft Foundry Local med et vakkert, naturlig grensesnitt. Bygget med Electron og følger Microsofts offisielle Foundry Local-mønstre.
Oversikt
Dette eksemplet viser hvordan man lager en produksjonsklar chatapplikasjon som bruker lokale AI-modeller via Foundry Local, og gir brukerne personvernfokuserte AI-samtaler uten avhengighet av skyen.
Funksjoner
🎨 Windows 11 Naturlig Design
- Integrasjon med Fluent Design System
- Mica-materialeffekter og gjennomsiktighet
- Støtte for naturlig Windows 11-tema
- Responsivt oppsett for alle skjermstørrelser
- Automatisk bytte mellom mørk/lys modus
🤖 AI-modellintegrasjon
- Integrasjon med Foundry Local-tjenesten
- Støtte for flere modeller med mulighet for bytte
- Sanntidsstrømming av svar
- Bytte mellom lokale og skybaserte modeller
- Overvåking av modellens helse og status
💬 Chatopplevelse
- Sanntids skriveindikatorer
- Vedvarende meldingshistorikk
- Eksport av chat-samtaler
- Tilpassede systemprompter
- Forgrening og administrasjon av samtaler
⚡ Ytelsesfunksjoner
- Lazy loading og virtualisering
- Optimalisert rendering for lange samtaler
- Forhåndslasting av modeller i bakgrunnen
- Effektiv minnehåndtering
- Glatte animasjoner og overganger
Arkitektur
┌─────────────────────────────────────────────────────────────┐
│ 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 │
└─────────────────────────────────────────────────────────────┘
Forutsetninger
Systemkrav
- OS: Windows 11 (22H2 eller nyere anbefalt)
- RAM: Minimum 8GB, 16GB+ anbefalt for større modeller
- Lagring: 10GB+ ledig plass for modeller
- GPU: Valgfritt, men anbefalt for raskere inferens
Programvareavhengigheter
- Node.js: v18.0.0 eller nyere
- Foundry Local: Nyeste versjon fra Microsoft
- Git: For kloning og utvikling
Installasjon
1. Installer Foundry Local
# Download from GitHub releases and install
winget install Microsoft.FoundryLocal
# Verify installation
foundry --version
2. Klon og sett opp
# Navigate to sample directory
cd Module08/samples/08
# Install dependencies
npm install
# Install Electron if not global
npm install -g electron
3. Konfigurer miljøet
# 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"
4. Kjør applikasjonen
# Development mode
npm start
# Production build
npm run build
npm run dist
Prosjektstruktur
08/
├── 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
Dypdykk i nøkkelfunksjoner
Windows 11-integrasjon
Fluent Design System
- Mica bakgrunnsmaterialer
- Akryl-gjennomsiktighetseffekter
- Runde hjørner og moderne avstand
- Naturlig Windows 11 fargepalett
- Semantiske fargetokens for tilgjengelighet
Naturlige Windows-funksjoner
- Jump list-integrasjon for nylige samtaler
- Windows-varsler for nye meldinger
- Oppgavelinjeprogresjon for modelloperasjoner
- Systemtray-integrasjon med hurtigtilgang
- Støtte for Windows Hello-autentisering
AI-modelladministrasjon
Lokale 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`);
Hybrid sky/lokal støtte
// Seamless switching between local and cloud models
if (useCloudModel) {
await chatManager.switchToCloud('gpt-4');
} else {
await chatManager.switchToLocal('phi-4-mini');
}
Chatgrensesnittfunksjoner
Sanntidsstrømming
- Token-for-token visning av svar
- Glatte skriveanimasjoner
- Avbrytbare forespørsler
- Skriveindikatorer og status
Samtaleadministrasjon
- Vedvarende chat-historikk
- Eksport/import av samtaler
- Søking og filtrering av meldinger
- Forgrening av samtaler
- Tilpassede systemprompter per samtale
Tilgjengelighet
- Full tastaturnavigasjon
- Kompatibilitet med skjermlesere
- Støtte for høy kontrastmodus
- Tilpassbare skrifttyper
- Integrasjon av stemmeinput
Brukseksempler
Grunnleggende chatintegrasjon
// 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);
});
Modelladministrasjon
// 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
});
Innstillinger og tilpasning
// 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);
Konfigurasjonsalternativer
Applikasjonsinnstillinger
- Tema: Auto, lys, mørk modus
- Modell: Standard modellvalg
- Ytelse: Innstillinger for inferens
- Personvern: Retningslinjer for datalagring
- Varsler: Meldingsvarsler
- Snarveier: Tastatursnarveier
Chatinnstillinger
- Strømming: Aktiver/deaktiver sanntidssvar
- Kontekstlengde: Samtaleminne
- Temperatur: Kreativitet i svar
- Maks tokens: Begrensninger på svarlengde
- Systemprompter: Standard assistentoppførsel
Modellinnstillinger
- Automatisk nedlasting: Automatiske modelloppdateringer
- Cache-størrelse: Begrensninger for lokal modellagring
- Ytelsesmodus: CPU vs GPU preferanser
- Helsesjekker: Overvåkingsintervaller
Utvikling
Bygge fra kilde
# Install development dependencies
npm install
# Run in development mode
npm run dev
# Build for production
npm run build
# Create installer
npm run dist
Feilsøking
# Enable debug mode
set DEBUG=foundry-chat:*
npm start
# View developer tools
# Press F12 in the application
Testing
# Run unit tests
npm test
# Run integration tests
npm run test:integration
# Run end-to-end tests
npm run test:e2e
Ytelsesoptimalisering
Minnehåndtering
- Effektiv virtualisering av meldinger
- Automatisk søppelinnsamling
- Overvåking av modellminne
- Ressursopprydding ved avslutning
Renderingoptimalisering
- Virtuell scrolling for lange samtaler
- Lazy loading av meldingshistorikk
- Optimaliserte React/DOM-oppdateringer
- GPU-akselererte animasjoner
Nettverksoptimalisering
- Tilkoblingspooling
- Batch-behandling av forespørsler
- Automatisk gjenopprykkingslogikk
- Støtte for offline modus
Sikkerhetsvurderinger
Datapersonvern
- Lokal-først arkitektur
- Ingen skydataoverføring (lokal modus)
- Kryptert samtalelagring
- Sikker håndtering av legitimasjon
Applikasjonssikkerhet
- Sandkasse for renderer-prosesser
- Content Security Policy (CSP)
- Ingen ekstern kodeutførelse
- Sikker IPC-kommunikasjon
Feilsøking
Vanlige problemer
Foundry Local starter ikke
# Check service status
foundry status
# Restart service
foundry restart
# Check logs
foundry logs
Feil ved modelllasting
- Kontroller tilstrekkelig diskplass
- Sjekk internettforbindelsen for nedlastinger
- Sørg for at GPU-drivere er oppdatert
- Prøv forskjellige modellvarianter
Ytelsesproblemer
- Overvåk systemressurser
- Juster modellinnstillinger
- Aktiver maskinvareakselerasjon
- Lukk andre ressurskrevende applikasjoner
Feilmodus
Aktiver feillogging ved å sette miljøvariabler:
$env:DEBUG="foundry:*"
$env:FOUNDRY_LOG_LEVEL="debug"
Bidra
Utviklingsoppsett
- Fork prosjektet
- Opprett en funksjonsgren
- Installer avhengigheter:
npm install - Gjør endringer og test
- Send inn en pull request
Kodestil
- ESLint-konfigurasjon inkludert
- Prettier for kodeformatering
- TypeScript for typesikkerhet
- JSDoc-kommentarer for dokumentasjon
Læringsutbytte
Etter å ha fullført dette eksemplet, vil du forstå:
-
Windows 11 Naturlig Utvikling
- Implementering av Fluent Design System
- Naturlig Windows-integrasjon
- Beste praksis for Electron-sikkerhet
-
AI-modellintegrasjon
- Foundry Local tjenestearkitektur
- Livssyklusadministrasjon for modeller
- Ytelsesovervåking og optimalisering
-
Sanntidssystemsamtaler
- Håndtering av strømmingssvar
- Administrasjon av samtaletilstand
- Brukeropplevelsesmønstre
-
Utvikling av produksjonsapplikasjoner
- Feilhåndtering og gjenoppretting
- Ytelsesoptimalisering
- Sikkerhetsvurderinger
- Teststrategier
Neste steg
- Eksempel 09: Multi-Agent Orchestration System
- Eksempel 10: Foundry Local som verktøyintegrasjon
- Avanserte emner: Tilpasning av modeller
- Distribusjon: Mønstre for bedriftsdistribusjon
Lisens
Dette eksemplet følger samme lisens som Microsoft Foundry Local-prosjektet.