En moderne chatapplikation til Windows 11, der integrerer Microsoft Foundry Local med en smuk, indbygget grænseflade. Bygget med Electron og følger Microsofts officielle Foundry Local-mønstre.
Dette eksempel viser, hvordan man opretter en produktionsklar chatapplikation, der udnytter lokale AI-modeller via Foundry Local, og giver brugerne privatlivsfokuserede AI-samtaler uden afhængighed af skyen.
- Integration med Fluent Design System
- Mica-materialeeffekter og gennemsigtighed
- Understøttelse af indbygget Windows 11-tema
- Responsivt layout til alle skærmstørrelser
- Automatisk skift mellem mørk/lys tilstand
- Integration med Foundry Local-tjenesten
- Understøttelse af flere modeller med hot-swapping
- Streaming-svar i realtid
- Skift mellem lokale og cloud-modeller
- Overvågning af modelstatus og sundhed
- Skriveindikatorer i realtid
- Vedvarende beskedhistorik
- Eksport af chat-samtaler
- Tilpassede systemprompter
- Forgrening og styring af samtaler
- Lazy loading og virtualisering
- Optimeret rendering til lange samtaler
- Forudindlæsning af modeller i baggrunden
- Effektiv hukommelseshåndtering
- Glatte animationer og overgange
┌─────────────────────────────────────────────────────────────┐
│ 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 nyere anbefales)
- RAM: Minimum 8GB, 16GB+ anbefales til større modeller
- Lagring: 10GB+ ledig plads til modeller
- GPU: Valgfrit, men anbefales til hurtigere inferens
- Node.js: v18.0.0 eller nyere
- Foundry Local: Seneste version fra Microsoft
- Git: Til kloning og udvikling
# 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 baggrundsmaterialer
- Akryl gennemsigtighedseffekter
- Afrundede hjørner og moderne afstand
- Indbygget Windows 11 farvepalet
- Semantiske farvetokens for tilgængelighed
Indbyggede Windows-funktioner
- Jump list-integration til nylige chats
- Windows-notifikationer for nye beskeder
- Processtatus på proceslinjen for modeloperationer
- Systembakkeintegration med hurtige handlinger
- Understøttelse af Windows Hello-godkendelse
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 Cloud/Lokal Support
// Seamless switching between local and cloud models
if (useCloudModel) {
await chatManager.switchToCloud('gpt-4');
} else {
await chatManager.switchToLocal('phi-4-mini');
}Streaming i realtid
- Token-for-token svarvisning
- Glatte skriveanimationer
- Annullerbare forespørgsler
- Skriveindikatorer og status
Samtalestyring
- Vedvarende chat-historik
- Eksport/import af samtaler
- Beskedsøgning og filtrering
- Forgrening af samtaler
- Tilpassede systemprompter pr. samtale
Tilgængelighed
- Fuld tastaturnavigation
- Kompatibilitet med skærmlæsere
- Understøttelse af høj kontrast-tilstand
- Tilpasning af skrifttypestørrelser
- Integration af stemmeinput
// 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, lys, mørk tilstand
- Model: Standard modelvalg
- Ydelse: Indstillinger for inferens
- Privatliv: Politik for dataopbevaring
- Notifikationer: Beskedalarmer
- Genveje: Tastaturgenveje
- Streaming: Aktiver/deaktiver svar i realtid
- Kontekstens længde: Samtalens hukommelse
- Temperatur: Kreativitet i svar
- Maksimale tokens: Begrænsninger for svarlængde
- Systemprompter: Standardassistentens adfærd
- Auto-download: Automatiske modelopdateringer
- Cache-størrelse: Begrænsninger for lokal modelopbevaring
- Ydelsestilstand: CPU vs GPU præferencer
- Sundhedstjek: Overvågningsintervaller
# 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 af beskeder
- Automatisk affaldsindsamling
- Overvågning af modelhukommelse
- Ressourceoprydning ved afslutning
- Virtuel scrolling til lange samtaler
- Lazy loading af beskedhistorik
- Optimerede React/DOM-opdateringer
- GPU-accelererede animationer
- Forbindelsespooling
- Batchning af forespørgsler
- Automatisk genforsøg
- Understøttelse af offline-tilstand
- Lokal-først arkitektur
- Ingen dataoverførsel til skyen (lokal tilstand)
- Krypteret samtaleopbevaring
- Sikker håndtering af legitimationsoplysninger
- Sandkasse til renderer-processer
- Content Security Policy (CSP)
- Ingen fjernudførelse af kode
- Sikker IPC-kommunikation
Foundry Local Starter Ikke
# Check service status
foundry status
# Restart service
foundry restart
# Check logs
foundry logsFejl ved Modelloading
- Kontroller tilstrækkelig diskplads
- Tjek internetforbindelse til downloads
- Sørg for, at GPU-drivere er opdaterede
- Prøv forskellige modelvarianter
Ydelsesproblemer
- Overvåg systemressourcer
- Juster modelindstillinger
- Aktiver hardwareacceleration
- Luk andre ressourcekrævende applikationer
Aktiver fejllogning ved at indstille miljøvariabler:
$env:DEBUG="foundry:*"
$env:FOUNDRY_LOG_LEVEL="debug"- Fork repositoryet
- Opret en feature branch
- Installer afhængigheder:
npm install - Foretag ændringer og test
- Indsend en pull request
- ESLint-konfiguration inkluderet
- Prettier til kodeformatering
- TypeScript for type-sikkerhed
- JSDoc-kommentarer til dokumentation
Efter at have gennemført dette eksempel vil du forstå:
-
Windows 11 Indbygget Udvikling
- Implementering af Fluent Design System
- Integration med Windows-funktioner
- Elektron-sikkerheds bedste praksis
-
AI Model Integration
- Foundry Local servicearkitektur
- Håndtering af modellivscyklus
- Ydelsesovervågning og optimering
-
Chat Systemer i Real-tid
- Håndtering af streaming-svar
- Styring af samtaletilstand
- Brugeroplevelsesmønstre
-
Udvikling af Produktionsapplikationer
- Fejlhåndtering og genopretning
- Ydelsesoptimering
- Sikkerhedsovervejelser
- Teststrategier
- Eksempel 09: Multi-Agent Orchestration System
- Eksempel 10: Foundry Local som værktøjsintegration
- Avancerede Emner: Tilpasning af model finjustering
- Udrulning: Mønstre for virksomhedsudrulning
Dette eksempel følger samme licens som Microsoft Foundry Local-projektet.