Atelier Foundry Local - Construiește aplicații AI pe dispozitiv

April 21, 2026 · View on GitHub

Foundry Local

Atelier Foundry Local - Construiește aplicații AI pe dispozitiv

Un atelier practic pentru rularea modelelor de limbaj pe propriul computer și crearea de aplicații inteligente cu Foundry Local și Microsoft Agent Framework.

Ce este Foundry Local? Foundry Local este un runtime ușor care îți permite să descarci, să gestionezi și să servești modele de limbaj direct pe hardware-ul tău. Oferă o API compatibilă cu OpenAI astfel încât orice instrument sau SDK care comunică cu OpenAI se poate conecta - nu este nevoie de un cont cloud.

🌐 Suport Multi-limbă

Suportat prin GitHub Action (Automatizat și Întotdeauna Actualizat)

Arabic | Bengali | Bulgarian | Burmese (Myanmar) | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Macau) | Chinese (Traditional, Taiwan) | Croatian | Czech | Danish | Dutch | Estonian | Finnish | French | German | Greek | Hebrew | Hindi | Hungarian | Indonesian | Italian | Japanese | Kannada | Khmer | Korean | Lithuanian | Malay | Malayalam | Marathi | Nepali | Nigerian Pidgin | Norwegian | Persian (Farsi) | Polish | Portuguese (Brazil) | Portuguese (Portugal) | Punjabi (Gurmukhi) | Romanian | Russian | Serbian (Cyrillic) | Slovak | Slovenian | Spanish | Swahili | Swedish | Tagalog (Filipino) | Tamil | Telugu | Thai | Turkish | Ukrainian | Urdu | Vietnamese

Preferi să clonezi local?

Acest depozit include peste 50 de traduceri de limbă, ceea ce crește semnificativ dimensiunea descărcării. Pentru a clona fără traduceri, folosește sparse checkout:

Bash / macOS / Linux:

git clone --filter=blob:none --sparse https://github.com/microsoft-foundry/Foundry-Local-Lab.git
cd Foundry-Local-Lab
git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'

CMD (Windows):

git clone --filter=blob:none --sparse https://github.com/microsoft-foundry/Foundry-Local-Lab.git
cd Foundry-Local-Lab
git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"

Astfel vei avea tot ce îți trebuie pentru a finaliza cursul, cu o descărcare mult mai rapidă.


Obiective de Învățare

La finalul acestui atelier vei putea:

#Obiectiv
1Instalează Foundry Local și gestionează modelele cu CLI
2Stăpânește API-ul Foundry Local SDK pentru management programatic al modelelor
3Conectează-te la serverul local de inferență folosind SDK-urile Python, JavaScript și C#
4Construiește un pipeline Retrieval-Augmented Generation (RAG) care fundamentează răspunsurile pe datele tale proprii
5Creează agenți AI cu instrucțiuni și personalități persistente
6Orchestrază fluxuri de lucru multi-agent cu bucle de feedback
7Explorează o aplicație capstone de producție - Zava Creative Writer
8Construiește cadre de evaluare cu seturi de date aurite și scoruri LLM ca judecător
9Transcrie audio cu Whisper - recunoaștere vocală pe dispozitiv folosind Foundry Local SDK
10Compilează și rulează modele personalizate sau Hugging Face cu ONNX Runtime GenAI și Foundry Local
11Permite modelelor locale să apeleze funcții externe cu modelul tool-calling
12Construiește o interfață bazată pe browser pentru Zava Creative Writer cu streaming în timp real

Cerințe

CerințăDetalii
HardwareMinimum 8 GB RAM (recomandat 16 GB); CPU compatibil AVX2 sau GPU suportat
Sistem de operareWindows 10/11 (x64/ARM), Windows Server 2025 sau macOS 13+
Foundry Local CLIInstalează cu winget install Microsoft.FoundryLocal (Windows) sau brew tap microsoft/foundrylocal && brew install foundrylocal (macOS). Vezi ghidul de început pentru detalii.
Runtime limbajPython 3.9+ și/sau .NET 9.0+ și/sau Node.js 18+
GitPentru clonarea acestui depozit

Începutul Lucrului

# 1. Clonați depozitul
git clone https://github.com/microsoft-foundry/foundry-local-lab.git
cd foundry-local-lab

# 2. Verificați dacă Foundry Local este instalat
foundry model list              # Listați modelele disponibile
foundry model run phi-3.5-mini  # Porniți o discuție interactivă

# 3. Alegeți fluxul de limbă (vedeți laboratorul Partea 2 pentru configurare completă)
LimbajPornire rapidă
Pythoncd python && pip install -r requirements.txt && python foundry-local.py
C#cd csharp && dotnet run
JavaScriptcd javascript && npm install && node foundry-local.mjs

Părți ale Atelierului

Partea 1: Început cu Foundry Local

Ghid lab: labs/part1-getting-started.md

  • Ce este Foundry Local și cum funcționează
  • Instalarea CLI pe Windows și macOS
  • Explorarea modelelor - listare, descărcare, rulare
  • Înțelegerea alias-urilor modelelor și a porturilor dinamice

Partea 2: Deep Dive în SDK Foundry Local

Ghid lab: labs/part2-foundry-local-sdk.md

  • De ce să folosești SDK în loc de CLI pentru dezvoltarea aplicațiilor
  • Referință completă API SDK pentru Python, JavaScript și C#
  • Managementul serviciilor, navigarea catalogului, ciclul de viață al modelelor (descărcare, încărcare, descărcare din memorie)
  • Modele rapide de pornire: bootstrap constructor Python, init() JavaScript, CreateAsync() C#
  • Metadatele FoundryModelInfo, alias-uri și selecția modelelor optime pentru hardware

Partea 3: SDK-uri și API-uri

Ghid lab: labs/part3-sdk-and-apis.md

  • Conectarea la Foundry Local din Python, JavaScript și C#
  • Utilizarea Foundry Local SDK pentru a gestiona serviciul programatic
  • Streaming chat completions prin API compatibil OpenAI
  • Referință metode SDK pentru fiecare limbaj

Exemple de cod:

LimbajFișierDescriere
Pythonpython/foundry-local.pyChat de streaming de bază
C#csharp/BasicChat.csChat de streaming cu .NET
JavaScriptjavascript/foundry-local.mjsChat de streaming cu Node.js

Partea 4: Retrieval-Augmented Generation (RAG)

Ghid lab: labs/part4-rag-fundamentals.md

  • Ce este RAG și de ce este important
  • Construirea unei baze de cunoștințe în memorie
  • Recuperare prin suprapunere de cuvinte cheie cu scorare
  • Compunerea prompturilor sistem fundamentate
  • Rularea unui pipeline RAG complet pe dispozitiv

Exemple de cod:

LimbajFișier
Pythonpython/foundry-local-rag.py
C#csharp/RagPipeline.cs
JavaScriptjavascript/foundry-local-rag.mjs

Partea 5: Construirea Agenților AI

Ghid lab: labs/part5-single-agents.md

  • Ce este un agent AI (versus un apel brut LLM)
  • Modelul ChatAgent și Microsoft Agent Framework
  • Instrucțiuni sistem, personalități și conversații multi-tur
  • Ieșire structurată (JSON) de la agenți

Exemple de cod:

LimbajFișierDescriere
Pythonpython/foundry-local-with-agf.pyAgent unic cu Agent Framework
C#csharp/SingleAgent.csAgent unic (model ChatAgent)
JavaScriptjavascript/foundry-local-with-agent.mjsAgent unic (model ChatAgent)

Partea 6: Fluxuri de lucru Multi-Agent

Ghid lab: labs/part6-multi-agent-workflows.md

  • Pipeline-uri multi-agent: Cercetător → Scriitor → Editor
  • Orchestrare secvențială și bucle de feedback
  • Configurație partajată și predări structurate
  • Proiectează propriul tău flux de lucru multi-agent

Exemple de cod:

LimbajFișierDescriere
Pythonpython/foundry-local-multi-agent.pyPipeline cu trei agenți
C#csharp/MultiAgent.csPipeline cu trei agenți
JavaScriptjavascript/foundry-local-multi-agent.mjsPipeline cu trei agenți

Partea 7: Zava Creative Writer - Aplicație Capstone

Ghid lab: labs/part7-zava-creative-writer.md

  • O aplicație multi-agent de producție cu 4 agenți specializați
  • Pipeline secvențial cu bucle de feedback conduse de evaluator
  • Ieșire în streaming, căutare catalog produse, predări JSON structurate
  • Implementare completă în Python (FastAPI), JavaScript (CLI Node.js) și C# (consolă .NET)

Exemple de cod:

LimbajDirectorDescriere
Pythonzava-creative-writer-local/src/api/Serviciu web FastAPI cu orchestrator
JavaScriptzava-creative-writer-local/src/javascript/Aplicație CLI Node.js
C#zava-creative-writer-local/src/csharp/Aplicație consolă .NET 9

Partea 8: Dezvoltare condusă de evaluare

Ghid lab: labs/part8-evaluation-led-development.md

  • Construiește un cadru sistematic de evaluare pentru agenții AI folosind seturi de date aurite
  • Verificări bazate pe reguli (lungime, acoperire cuvinte cheie, termeni interziși) + scorare LLM ca judecător
  • Comparare paralelă a variantelor de prompt cu rapoarte agregate
  • Extinde modelul agent Zava Editor din Partea 7 într-un test offline
  • Trasee Python, JavaScript și C#

Exemple de cod:

LimbajFișierDescriere
Pythonpython/foundry-local-eval.pyCadru de evaluare
C#csharp/AgentEvaluation.csCadru de evaluare
JavaScriptjavascript/foundry-local-eval.mjsCadru de evaluare

Partea 9: Transcriere vocală cu Whisper

Ghid lab: labs/part9-whisper-voice-transcription.md

  • Transcriere speech-to-text folosind OpenAI Whisper care rulează local
  • Procesare audio cu confidențialitate - audio-ul nu părăsește niciodată dispozitivul tău
  • Trasee Python, JavaScript și C# cu client.audio.transcriptions.create() (Python/JS) și AudioClient.TranscribeAudioAsync() (C#)
  • Include fișiere audio de probă tematice Zava pentru practică hands-on

Exemple de cod:

LanguageFileDescription
Pythonpython/foundry-local-whisper.pyTranscriere vocală Whisper
C#csharp/WhisperTranscription.csTranscriere vocală Whisper
JavaScriptjavascript/foundry-local-whisper.mjsTranscriere vocală Whisper

Notă: Acest laborator utilizează Foundry Local SDK pentru a descărca și încărca programatic modelul Whisper, apoi trimite audio către endpoint-ul local compatibil OpenAI pentru transcriere. Modelul Whisper (whisper) este listat în catalogul Foundry Local și rulează complet pe dispozitiv - nu sunt necesare chei API cloud sau acces la rețea.


Partea 10: Utilizarea modelelor personalizate sau Hugging Face

Ghidul laboratorului: labs/part10-custom-models.md

  • Compilarea modelelor Hugging Face în format ONNX optimizat folosind ONNX Runtime GenAI model builder
  • Compilare specifică hardware-ului (CPU, GPU NVIDIA, DirectML, WebGPU) și cuantizare (int4, fp16, bf16)
  • Crearea fișierelor de configurare chat-template pentru Foundry Local
  • Adăugarea modelelor compilate în cache-ul Foundry Local
  • Rularea modelelor personalizate prin CLI, REST API și OpenAI SDK
  • Exemplu de referință: compilarea Qwen/Qwen3-0.6B end-to-end

Partea 11: Apelarea uneltelor cu modele locale

Ghidul laboratorului: labs/part11-tool-calling.md

  • Permiterea ca modelele locale să apeleze funcții externe (apelarea uneltelor/functii)
  • Definirea schemelor uneltelor folosind formatul OpenAI pentru apelarea funcțiilor
  • Gestionarea fluxului conversațional multi-turn pentru apelarea uneltelor
  • Executarea apelurilor uneltelor local și returnarea rezultatelor către model
  • Alegerea modelului potrivit pentru scenarii de apelare unelte (Qwen 2.5, Phi-4-mini)
  • Utilizarea ChatClient nativ din SDK pentru apelarea uneltelor (JavaScript)

Exemple de cod:

LanguageFileDescription
Pythonpython/foundry-local-tool-calling.pyApelare unelte cu unelte meteo/populație
C#csharp/ToolCalling.csApelare unelte cu .NET
JavaScriptjavascript/foundry-local-tool-calling.mjsApelare unelte cu ChatClient

Partea 12: Construirea unei interfețe web pentru Zava Creative Writer

Ghidul laboratorului: labs/part12-zava-ui.md

  • Adăugarea unei interfețe front-end bazate pe browser pentru Zava Creative Writer
  • Servirea interfeței UI partajate din Python (FastAPI), JavaScript (Node.js HTTP) și C# (ASP.NET Core)
  • Consumarea fluxului NDJSON în browser cu Fetch API și ReadableStream
  • Badge-uri de stare agent live și streaming în timp real al textului articolului

Cod (UI partajat):

FileDescription
zava-creative-writer-local/ui/index.htmlLayout-ul paginii
zava-creative-writer-local/ui/style.cssStilizare
zava-creative-writer-local/ui/app.jsLogică citire stream și actualizare DOM

Adăugiri backend:

LanguageFileDescription
Pythonzava-creative-writer-local/src/api/main.pyActualizat pentru a servi UI static
JavaScriptzava-creative-writer-local/src/javascript/server.mjsNou server HTTP ce înfășoară orchestratorul
C#zava-creative-writer-local/src/csharp-web/Program.csProiect nou API minimal ASP.NET Core

Partea 13: Workshop terminat

Ghidul laboratorului: labs/part13-workshop-complete.md

  • Rezumat al tot ceea ce ați construit în toate cele 12 părți
  • Idei suplimentare pentru extinderea aplicațiilor
  • Linkuri către resurse și documentație

Structura proiectului

├── python/                        # Python examples
│   ├── foundry-local.py           # Basic chat
│   ├── foundry-local-with-agf.py  # Single agent (AGF)
│   ├── foundry-local-rag.py       # RAG pipeline
│   ├── foundry-local-multi-agent.py # Multi-agent workflow
│   ├── foundry-local-eval.py      # Agent evaluation framework
│   ├── foundry-local-whisper.py   # Whisper voice transcription
│   ├── foundry-local-tool-calling.py # Tool/function calling
│   └── requirements.txt
├── csharp/                        # C# examples
│   ├── Program.cs                 # CLI router (chat|rag|agent|multi|eval|whisper|toolcall)
│   ├── BasicChat.cs               # Basic chat
│   ├── RagPipeline.cs             # RAG pipeline
│   ├── SingleAgent.cs             # Single agent (ChatAgent pattern)
│   ├── MultiAgent.cs              # Multi-agent workflow
│   ├── AgentEvaluation.cs         # Agent evaluation framework
│   ├── WhisperTranscription.cs    # Whisper voice transcription
│   ├── ToolCalling.cs             # Tool/function calling
│   └── csharp.csproj
├── javascript/                    # JavaScript examples
│   ├── foundry-local.mjs          # Basic chat
│   ├── foundry-local-with-agent.mjs # Single agent
│   ├── foundry-local-rag.mjs     # RAG pipeline
│   ├── foundry-local-multi-agent.mjs # Multi-agent workflow
│   ├── foundry-local-eval.mjs     # Agent evaluation framework
│   ├── foundry-local-whisper.mjs  # Whisper voice transcription
│   ├── foundry-local-tool-calling.mjs # Tool/function calling
│   └── package.json
├── zava-creative-writer-local/ # Production multi-agent app
│   ├── ui/                        # Shared browser UI (Part 12)
│   │   ├── index.html             # Page layout
│   │   ├── style.css              # Styling
│   │   └── app.js                 # Stream reader and DOM updates
│   └── src/
│       ├── api/                   # Python FastAPI service
│       │   ├── main.py            # FastAPI server (serves UI)
│       │   ├── orchestrator.py    # Pipeline coordinator
│       │   ├── foundry_config.py  # Shared Foundry Local config
│       │   ├── requirements.txt
│       │   └── agents/            # Researcher, Product, Writer, Editor
│       ├── javascript/            # Node.js CLI and web server
│       │   ├── main.mjs           # CLI entry point
│       │   ├── server.mjs         # HTTP server with UI (Part 12)
│       │   ├── foundryConfig.mjs
│       │   └── package.json
│       ├── csharp/                # .NET 9 console app
│       │   ├── Program.cs
│       │   └── ZavaCreativeWriter.csproj
│       └── csharp-web/            # .NET 9 web API (Part 12)
│           ├── Program.cs
│           └── ZavaCreativeWriterWeb.csproj
├── labs/                          # Step-by-step lab guides
│   ├── part1-getting-started.md
│   ├── part2-foundry-local-sdk.md
│   ├── part3-sdk-and-apis.md
│   ├── part4-rag-fundamentals.md
│   ├── part5-single-agents.md
│   ├── part6-multi-agent-workflows.md
│   ├── part7-zava-creative-writer.md
│   ├── part8-evaluation-led-development.md
│   ├── part9-whisper-voice-transcription.md
│   ├── part10-custom-models.md
│   ├── part11-tool-calling.md
│   ├── part12-zava-ui.md
│   └── part13-workshop-complete.md
├── samples/
│   └── audio/                     # Zava-themed WAV files for Part 9
│       ├── generate_samples.py    # TTS script (pyttsx3) to create WAVs
│       └── README.md              # Sample descriptions
├── AGENTS.md                      # Coding agent instructions
├── package.json                   # Root devDependency (mermaid-cli)
├── LICENSE                        # MIT licence
└── README.md

Resurse

ResourceLink
Site Foundry Localfoundrylocal.ai
Catalog modelefoundrylocal.ai/models
GitHub Foundry Localgithub.com/microsoft/foundry-local
Ghid de pornireMicrosoft Learn - Foundry Local
Referință SDK Foundry LocalMicrosoft Learn - SDK Reference
Microsoft Agent FrameworkMicrosoft Learn - Agent Framework
OpenAI Whispergithub.com/openai/whisper
ONNX Runtime GenAIgithub.com/microsoft/onnxruntime-genai

Licență

Acest material de workshop este oferit în scopuri educaționale.


Construiește cu plăcere! 🚀


Declinare de responsabilitate:
Acest document a fost tradus folosind serviciul de traducere AI Co-op Translator. Deși ne străduim pentru acuratețe, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă trebuie considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională umană. Nu suntem responsabili pentru eventuale neînțelegeri sau interpretări greșite rezultate din utilizarea acestei traduceri.