Praktična delavnica za zagon jezikovnih modelov na lastnem računalniku in gradnjo inteligentnih aplikacij z Foundry Local in Microsoft Agent Framework.
Kaj je Foundry Local? Foundry Local je lahkotno izvršilno okolje, ki vam omogoča prenos, upravljanje in streženje jezikovnih modelov povsem na vaši strojni opremi. Ponuja OpenAI-kompatibilen API, tako da se lahko vsak pripomoček ali SDK, ki podpira OpenAI, poveže - brez potrebe po oblačnem računu.
Arabščina | Bengalščina | Bolgarščina | Burmanski (Myanmar) | Kitajščina (poenostavljena) | Kitajščina (tradicionalna, Hong Kong) | Kitajščina (tradicionalna, Macao) | Kitajščina (tradicionalna, Tajvan) | Hrvaščina | Češčina | Danščina | Nizozemščina | Estonščina | Finščina | Francoščina | Nemščina | Grščina | Hebrejščina | Hindijščina | Madžarščina | Indonezijščina | Italijanščina | Japonščina | Kannada | Khmer | Korejščina | Litovščina | Malezijščina | Malajalščina | Maratščina | Nepalščina | Nigerijski pidžin | Norveščina | Perzijščina (Farsi) | Poljščina | Portugalsščina (Brazilija) | Portugalsščina (Portugalska) | Pandžabščina (Gurmukhi) | Romunščina | Ruščina | Srbščina (cirilica) | Slovaščina | Slovenščina | Španščina | Svahili | Švedščina | Tagalog (Filipinski) | Tamilščina | Telugu | Tajščina | Turščina | Ukrajinščina | Urdu | Vietnamščina
Raje kopirate lokalno?
Ta repozitorij vključuje več kot 50 prevodov jezikov, kar znatno poveča velikost prenosa. Če želite klonirati brez prevodov, uporabite 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"Tako dobite vse, kar potrebujete za zaključek tečaja z veliko hitrejšim prenosom.
Do konca te delavnice boste znali:
| # | Cilj |
|---|---|
| 1 | Namestiti Foundry Local in upravljati modele s CLI |
| 2 | Obvladati Foundry Local SDK API za programatsko upravljanje modelov |
| 3 | Povezati se z lokalnim strežnikom za inferenco preko SDK v Pythonu, JavaScriptu in C# |
| 4 | Zgraditi Retrieval-Augmented Generation (RAG) pipeline, ki temelji na vaših podatkih |
| 5 | Ustvariti AI agente z vztrajnimi navodili in osebnostmi |
| 6 | Orkestrirati večagentne delovne tokove z zankami povratnih informacij |
| 7 | Raziščite produkcijsko aplikacijo - Zava Creative Writer |
| 8 | Zgraditi evalvacijske okvire z zlatimi nizi podatkov in LLM kot sodnikom |
| 9 | Prepisati zvok z Whisper - pretvorba govora v besedilo na napravi z Foundry Local SDK |
| 10 | Sestaviti in izvajati lastne ali Hugging Face modele z ONNX Runtime GenAI in Foundry Local |
| 11 | Omogočiti lokalnim modelom klicanje zunanjih funkcij s shemo za klic orodij |
| 12 | Zgraditi spletni uporabniški vmesnik za Zava Creative Writer s pretakanjem v realnem času |
| Zahteva | Podrobnosti |
|---|---|
| Strojna oprema | Najmanj 8 GB RAM (priporočeno 16 GB); CPU z AVX2 podprtostjo ali podprta GPU |
| Operacijski sistem | Windows 10/11 (x64/ARM), Windows Server 2025 ali macOS 13+ |
| Foundry Local CLI | Namestite z winget install Microsoft.FoundryLocal (Windows) ali brew tap microsoft/foundrylocal && brew install foundrylocal (macOS). Podrobnosti si oglejte v vodniku za začetek. |
| Jezikovno izvršilno okolje | Python 3.9+ in/ali .NET 9.0+ in/ali Node.js 18+ |
| Git | Za kloniranje tega repozitorija |
# 1. Klonirajte repozitorij
git clone https://github.com/microsoft-foundry/foundry-local-lab.git
cd foundry-local-lab
# 2. Preverite, ali je Foundry Local nameščen
foundry model list # Naštejte razpoložljive modele
foundry model run phi-3.5-mini # Zaženite interaktivni klepet
# 3. Izberite svoj jezikovni program (glejte Laboratorij del 2 za celotno nastavitev)| Jezik | Hitri začetek |
|---|---|
| Python | cd python && pip install -r requirements.txt && python foundry-local.py |
| C# | cd csharp && dotnet run |
| JavaScript | cd javascript && npm install && node foundry-local.mjs |
Vodič za laboratorij: labs/part1-getting-started.md
- Kaj je Foundry Local in kako deluje
- Namestitev CLI na Windows in macOS
- Raziščite modele - seznam, prenos, zagon
- Razumevanje aliasov modelov in dinamičnih pristanišč
Vodič za laboratorij: labs/part2-foundry-local-sdk.md
- Zakaj uporabljati SDK namesto CLI za razvoj aplikacij
- Celovit SDK API za Python, JavaScript in C#
- Upravljanje storitev, brskanje po katalogu, življenjski cikel modela (prenosi, nalaganja, razkladanja)
- Vzorec hitrega zagona: Python konstruktor bootstrap, JavaScript
init(), C#CreateAsync() FoundryModelInfometapodatki, aliasi in izbira optimalnih modelov za strojno opremo
Vodič za laboratorij: labs/part3-sdk-and-apis.md
- Povezovanje s Foundry Local iz Pythona, JavaScripta in C#
- Uporaba Foundry Local SDK za programatsko upravljanje storitve
- Pretakanje pogovorov prek OpenAI-kompatibilnega API-ja
- Referenca metod SDK za vsak jezik
Primeri kode:
| Jezik | Datoteka | Opis |
|---|---|---|
| Python | python/foundry-local.py |
Osnovni streaming chat |
| C# | csharp/BasicChat.cs |
Streaming chat z .NET |
| JavaScript | javascript/foundry-local.mjs |
Streaming chat z Node.js |
Vodič za laboratorij: labs/part4-rag-fundamentals.md
- Kaj je RAG in zakaj je pomembno
- Gradnja baze znanja v pomnilniku
- Iskanje s prekrivanjem ključnih besed in ocenjevanje
- Sestavljanje oporiščnih sistemskih pozivov
- Zagon celotnega RAG pipeline na napravi
Primeri kode:
| Jezik | Datoteka |
|---|---|
| Python | python/foundry-local-rag.py |
| C# | csharp/RagPipeline.cs |
| JavaScript | javascript/foundry-local-rag.mjs |
Vodič za laboratorij: labs/part5-single-agents.md
- Kaj je AI agent (v primerjavi s čistim klicem LLM)
- Vzorec
ChatAgentin Microsoft Agent Framework - Sistemska navodila, osebnosti in večvračilni pogovori
- Strukturiran izhod (JSON) agentov
Primeri kode:
| Jezik | Datoteka | Opis |
|---|---|---|
| Python | python/foundry-local-with-agf.py |
Posamezni agent z Agent Framework |
| C# | csharp/SingleAgent.cs |
Posamezni agent (vzorec ChatAgent) |
| JavaScript | javascript/foundry-local-with-agent.mjs |
Posamezni agent (vzorec ChatAgent) |
Vodič za laboratorij: labs/part6-multi-agent-workflows.md
- Večagentni pipelines: Raziskovalec → Pisec → Urednik
- Zaporedna orkestracija in zanke povratnih informacij
- Skupna konfiguracija in strukturirani prenos nalog
- Oblikovanje lastnega večagentnega delovnega toka
Primeri kode:
| Jezik | Datoteka | Opis |
|---|---|---|
| Python | python/foundry-local-multi-agent.py |
Pipelin s tremi agenti |
| C# | csharp/MultiAgent.cs |
Pipelin s tremi agenti |
| JavaScript | javascript/foundry-local-multi-agent.mjs |
Pipelin s tremi agenti |
Vodič za laboratorij: labs/part7-zava-creative-writer.md
- Produkcijska večagentna aplikacija s 4 specializiranimi agenti
- Zaporedni pipeline z evalvacijskimi zankami povratnih informacij
- Pretakan izhod, iskanje po katalogu produktov, strukturiran JSON prenos nalog
- Polna implementacija v Pythonu (FastAPI), JavaScriptu (Node.js CLI) in C# (.NET konzola)
Primeri kode:
| Jezik | Mapa | Opis |
|---|---|---|
| Python | zava-creative-writer-local/src/api/ |
FastAPI spletna storitev z orkestratorjem |
| JavaScript | zava-creative-writer-local/src/javascript/ |
Node.js CLI aplikacija |
| C# | zava-creative-writer-local/src/csharp/ |
.NET 9 konzolna aplikacija |
Vodič za laboratorij: labs/part8-evaluation-led-development.md
- Zgradite sistematični evalvacijski okvir za AI agente z zlatimi nizi podatkov
- Pravilo-osnovane kontrole (dolžina, pokritost ključnih besed, prepovedani izrazi) + LLM kot sodnik
- Primerjava različic pozivov z agregiranimi ocenjevalnimi lističi
- Razširja vzorec Zava Editor agent iz dela 7 v offline testno zbirko
- Veji za Python, JavaScript in C#
Primeri kode:
| Jezik | Datoteka | Opis |
|---|---|---|
| Python | python/foundry-local-eval.py |
Evalvacijski okvir |
| C# | csharp/AgentEvaluation.cs |
Evalvacijski okvir |
| JavaScript | javascript/foundry-local-eval.mjs |
Evalvacijski okvir |
Vodič za laboratorij: labs/part9-whisper-voice-transcription.md
- Prepis govora v besedilo z uporabo OpenAI Whisper, ki teče lokalno
- Obdelava zvoka z mislijo na zasebnost – zvok nikoli ne zapusti vaše naprave
- Podpora za Python, JavaScript in C# z
client.audio.transcriptions.create()(Python/JS) inAudioClient.TranscribeAudioAsync()(C#) - Vključuje zvočne posnetke s temo Zava za praktično vadbo
Primeri kode:
| Jezik | Datoteka | Opis |
|---|---|---|
| Python | python/foundry-local-whisper.py |
Prepis govora Whisper |
| C# | csharp/WhisperTranscription.cs |
Prepis govora Whisper |
| JavaScript | javascript/foundry-local-whisper.mjs |
Prepis govora Whisper |
Opomba: Ta delavnica uporablja Foundry Local SDK za programsko prenos in nalaganje modela Whisper, nato pa pošilja zvok na lokalno OpenAI združljivo končno točko za prepis. Model Whisper (
whisper) je naveden v katalogu Foundry Local in teče v celoti na napravi - niso potrebni API ključi v oblaku ali dostop do omrežja.
Vodnik delavnice: labs/part10-custom-models.md
- Prevajanje Hugging Face modelov v optimizirano obliko ONNX z graditeljem modelov ONNX Runtime GenAI
- Strojno-specifično prevajanje (CPU, NVIDIA GPU, DirectML, WebGPU) in kvantizacija (int4, fp16, bf16)
- Ustvarjanje konfiguracijskih datotek s predlogami klepeta za Foundry Local
- Dodajanje prevedenih modelov v predpomnilnik Foundry Local
- Zaganjanje lastnih modelov prek CLI, REST API in OpenAI SDK
- Referenčni primer: celoten postopek prevajanja Qwen/Qwen3-0.6B
Vodnik delavnice: labs/part11-tool-calling.md
- Omogočanje lokalnim modelom klicanje zunanjih funkcij (klicanje orodij/funkcij)
- Določanje shem orodij z uporabo formata klicanja funkcij OpenAI
- Upravljanje poteka večkratnega klicanja orodij v pogovoru
- Izvajanje klicev orodij lokalno in vračanje rezultatov modelu
- Izbira pravilnega modela za scenarije klicanja orodij (Qwen 2.5, Phi-4-mini)
- Uporaba nativnega
ChatClientv SDK za klic orodij (JavaScript)
Primeri kode:
| Jezik | Datoteka | Opis |
|---|---|---|
| Python | python/foundry-local-tool-calling.py |
Klic orodij z vremenskimi in demografskimi orodji |
| C# | csharp/ToolCalling.cs |
Klic orodij z .NET |
| JavaScript | javascript/foundry-local-tool-calling.mjs |
Klic orodij z ChatClient |
Vodnik delavnice: labs/part12-zava-ui.md
- Dodajanje brskalniško temelječega front-enda za Zava Creative Writer
- Ponujanje skupnega UI iz Pythona (FastAPI), JavaScripta (Node.js HTTP) in C# (ASP.NET Core)
- Potrošnja pretočnega NDJSON v brskalniku z Fetch API in ReadableStream
- Prikaz statusnih značk agenta v živo in pretakanje besedila člankov v realnem času
Koda (skupni UI):
| Datoteka | Opis |
|---|---|
zava-creative-writer-local/ui/index.html |
Postavitev strani |
zava-creative-writer-local/ui/style.css |
Stiliziranje |
zava-creative-writer-local/ui/app.js |
Bralnik pretoka in logika posodabljanja DOM |
Dodatki na strežniški strani:
| Jezik | Datoteka | Opis |
|---|---|---|
| Python | zava-creative-writer-local/src/api/main.py |
Posodobljeno za strežbo statičnega UI |
| JavaScript | zava-creative-writer-local/src/javascript/server.mjs |
Nov HTTP strežnik, ki ovija orkestrator |
| C# | zava-creative-writer-local/src/csharp-web/Program.cs |
Nov minimalni API projekt ASP.NET Core |
Vodnik delavnice: labs/part13-workshop-complete.md
- Povzetek vsega, kar ste zgradili skozi vseh 12 delov
- Nadaljnje ideje za razširitev vaših aplikacij
- Povezave do virov in dokumentacije
├── 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
| Vir | Povezava |
|---|---|
| Foundry Local spletna stran | foundrylocal.ai |
| Katalog modelov | foundrylocal.ai/models |
| Foundry Local GitHub | github.com/microsoft/foundry-local |
| Priročnik za začetek | Microsoft Learn - Foundry Local |
| Referenca za Foundry Local SDK | Microsoft Learn - SDK Reference |
| Microsoft Agent Framework | Microsoft Learn - Agent Framework |
| OpenAI Whisper | github.com/openai/whisper |
| ONNX Runtime GenAI | github.com/microsoft/onnxruntime-genai |
Ta material za delavnico je na voljo za izobraževalne namene.
Veselo ustvarjanje! 🚀
Izjava o omejitvi odgovornosti: Ta dokument je bil preveden z uporabo storitve za avtomatski prevod AI Co-op Translator. Čeprav si prizadevamo za natančnost, upoštevajte, da lahko avtomatski prevodi vsebujejo napake ali netočnosti. Izvirni dokument v izvorni jezik je treba velja za avtoritativni vir. Za ključne informacije priporočamo strokovni človeški prevod. Za katera koli nesporazume ali napačne interpretacije, ki izvirajo iz uporabe tega prevoda, ne prevzemamo nobene odgovornosti.