Satu bengkel amali untuk menjalankan model bahasa pada mesin anda sendiri dan membina aplikasi pintar dengan Foundry Local dan Microsoft Agent Framework.
Apakah Foundry Local? Foundry Local ialah runtime ringan yang membolehkan anda memuat turun, mengurus, dan menghidangkan model bahasa sepenuhnya pada perkakasan anda. Ia mendedahkan API serasi OpenAI supaya mana-mana alat atau SDK yang menggunakan OpenAI boleh disambungkan - tiada akaun awan diperlukan.
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
Lebih suka Klon Secara Tempatan?
Repositori ini merangkumi lebih 50 terjemahan bahasa yang secara signifikan meningkatkan saiz muat turun. Untuk klon tanpa terjemahan, gunakan 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"Ini memberikan anda segala yang diperlukan untuk menyelesaikan kursus dengan muat turun yang lebih pantas.
Menjelang akhir bengkel ini anda akan dapat:
| # | Objektif |
|---|---|
| 1 | Pasang Foundry Local dan uruskan model menggunakan CLI |
| 2 | Kuasai API Foundry Local SDK untuk pengurusan model secara programatik |
| 3 | Sambungkan ke pelayan inferens tempatan menggunakan SDK Python, JavaScript, dan C# |
| 4 | Bina saluran Penghasilan Ditambah Pencarian (RAG) yang kedudukan jawapan berdasarkan data anda sendiri |
| 5 | Cipta ejen AI dengan arahan berterusan dan persona |
| 6 | Orkestrasi aliran kerja multi-ejen dengan gelung maklum balas |
| 7 | Terokai aplikasi capstone produksi - Zava Creative Writer |
| 8 | Bina kerangka penilaian dengan set data emas dan penilaian LLM-sebagai-hakim |
| 9 | Transkripsi audio dengan Whisper - pertuturan-ke-teks pada peranti menggunakan Foundry Local SDK |
| 10 | Kompilasi dan jalankan model khusus atau Hugging Face dengan ONNX Runtime GenAI dan Foundry Local |
| 11 | Benarkan model tempatan memanggil fungsi luaran dengan corak panggilan alat |
| 12 | Bina UI berasaskan pelayar untuk Zava Creative Writer dengan penstriman masa nyata |
| Keperluan | Perincian |
|---|---|
| Perkakasan | Minimum 8 GB RAM (16 GB disyorkan); CPU AVX2-mampu atau GPU yang disokong |
| Sistem Pengendalian | Windows 10/11 (x64/ARM), Windows Server 2025, atau macOS 13+ |
| Foundry Local CLI | Pasang melalui winget install Microsoft.FoundryLocal (Windows) atau brew tap microsoft/foundrylocal && brew install foundrylocal (macOS). Lihat panduan mula untuk butiran. |
| Runtime Bahasa | Python 3.9+ dan/atau .NET 9.0+ dan/atau Node.js 18+ |
| Git | Untuk mengklon repositori ini |
# 1. Klon repositori
git clone https://github.com/microsoft-foundry/foundry-local-lab.git
cd foundry-local-lab
# 2. Sahkan Foundry Local telah dipasang
foundry model list # Senaraikan model yang ada
foundry model run phi-3.5-mini # Mulakan sembang interaktif
# 3. Pilih laluan bahasa anda (rujuk makmal Bahagian 2 untuk tetapan penuh)| Bahasa | Mula Cepat |
|---|---|
| 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 |
Panduan makmal: labs/part1-getting-started.md
- Apakah Foundry Local dan bagaimana ia berfungsi
- Memasang CLI pada Windows dan macOS
- Meneroka model - senarai, muat turun, jalankan
- Memahami alias model dan port dinamik
Panduan makmal: labs/part2-foundry-local-sdk.md
- Mengapa menggunakan SDK berbanding CLI untuk pembangunan aplikasi
- Rujukan penuh API SDK untuk Python, JavaScript, dan C#
- Pengurusan perkhidmatan, melayari katalog, kitaran hidup model (muat turun, muat, nyahmuat)
- Corak mula cepat: bootstrap konstruktor Python,
init()JavaScript,CreateAsync()C# - Metadata
FoundryModelInfo, alias, dan pemilihan model optima perkakasan
Panduan makmal: labs/part3-sdk-and-apis.md
- Menyambung ke Foundry Local dari Python, JavaScript, dan C#
- Menggunakan Foundry Local SDK untuk mengurus perkhidmatan secara programatik
- Penstriman penyelesaian sembang melalui API serasi OpenAI
- Rujukan kaedah SDK untuk setiap bahasa
Contoh kod:
| Bahasa | Fail | Penerangan |
|---|---|---|
| Python | python/foundry-local.py |
Sembang penstriman asas |
| C# | csharp/BasicChat.cs |
Sembang penstriman dengan .NET |
| JavaScript | javascript/foundry-local.mjs |
Sembang penstriman dengan Node.js |
Panduan makmal: labs/part4-rag-fundamentals.md
- Apakah RAG dan mengapa ia penting
- Membina pangkalan pengetahuan dalam ingatan
- Pencarian tumpang tindih kata kunci dengan pemarkahan
- Menyusun arahan sistem berasaskan data
- Menjalankan saluran RAG penuh pada peranti
Contoh kod:
| Bahasa | Fail |
|---|---|
| Python | python/foundry-local-rag.py |
| C# | csharp/RagPipeline.cs |
| JavaScript | javascript/foundry-local-rag.mjs |
Panduan makmal: labs/part5-single-agents.md
- Apakah ejen AI (berbanding panggilan LLM mentah)
- Corak
ChatAgentdan Microsoft Agent Framework - Arahan sistem, persona, dan perbualan berbilang giliran
- Output berstruktur (JSON) daripada ejen
Contoh kod:
| Bahasa | Fail | Penerangan |
|---|---|---|
| Python | python/foundry-local-with-agf.py |
Ejen tunggal dengan Agent Framework |
| C# | csharp/SingleAgent.cs |
Ejen tunggal (corak ChatAgent) |
| JavaScript | javascript/foundry-local-with-agent.mjs |
Ejen tunggal (corak ChatAgent) |
Panduan makmal: labs/part6-multi-agent-workflows.md
- Saluran multi-ejen: Penyelidik → Penulis → Penyunting
- Orkestrasi berurutan dan gelung maklum balas
- Konfigurasi berkongsi dan serah tangan berstruktur
- Reka bentuk aliran kerja multi-ejen sendiri
Contoh kod:
| Bahasa | Fail | Penerangan |
|---|---|---|
| Python | python/foundry-local-multi-agent.py |
Saluran tiga ejen |
| C# | csharp/MultiAgent.cs |
Saluran tiga ejen |
| JavaScript | javascript/foundry-local-multi-agent.mjs |
Saluran tiga ejen |
Panduan makmal: labs/part7-zava-creative-writer.md
- Aplikasi multi-ejen gaya produksi dengan 4 ejen khusus
- Saluran berurutan dengan gelung maklum balas dipacu penilai
- Output penstriman, carian katalog produk, serah tangan JSON berstruktur
- Pelaksanaan penuh dalam Python (FastAPI), JavaScript (Node.js CLI), dan C# (konsol .NET)
Contoh kod:
| Bahasa | Direktori | Penerangan |
|---|---|---|
| Python | zava-creative-writer-local/src/api/ |
Perkhidmatan web FastAPI dengan pengorkestrasi |
| JavaScript | zava-creative-writer-local/src/javascript/ |
Aplikasi CLI Node.js |
| C# | zava-creative-writer-local/src/csharp/ |
Aplikasi konsol .NET 9 |
Panduan makmal: labs/part8-evaluation-led-development.md
- Bina kerangka penilaian sistematik untuk ejen AI menggunakan set data emas
- Semakan berasaskan peraturan (panjang, liputan kata kunci, istilah dilarang) + penilaian LLM-sebagai-hakim
- Perbandingan sebaris varian arahan dengan skor agregat
- Memperluas corak ejen Penyunting Zava dari Bahagian 7 ke suite ujian luar talian
- Laluan Python, JavaScript, dan C#
Contoh kod:
| Bahasa | Fail | Penerangan |
|---|---|---|
| Python | python/foundry-local-eval.py |
Kerangka penilaian |
| C# | csharp/AgentEvaluation.cs |
Kerangka penilaian |
| JavaScript | javascript/foundry-local-eval.mjs |
Kerangka penilaian |
Panduan makmal: labs/part9-whisper-voice-transcription.md
- Transkripsi ucapan ke teks menggunakan OpenAI Whisper yang dijalankan secara setempat
- Pemprosesan audio berpandukan privasi - audio tidak pernah meninggalkan peranti anda
- Jejak Python, JavaScript, dan C# dengan
client.audio.transcriptions.create()(Python/JS) danAudioClient.TranscribeAudioAsync()(C#) - Merangkumi fail audio contoh bertema Zava untuk latihan praktikal
Contoh kod:
| Bahasa | Fail | Penerangan |
|---|---|---|
| Python | python/foundry-local-whisper.py |
Transkripsi suara Whisper |
| C# | csharp/WhisperTranscription.cs |
Transkripsi suara Whisper |
| JavaScript | javascript/foundry-local-whisper.mjs |
Transkripsi suara Whisper |
Nota: Makmal ini menggunakan Foundry Local SDK untuk memuat turun dan memuatkan model Whisper secara program, kemudian menghantar audio ke titik akhir OpenAI yang serasi secara setempat untuk transkripsi. Model Whisper (
whisper) disenaraikan dalam katalog Foundry Local dan dijalankan sepenuhnya pada peranti - tiada kunci API awan atau akses rangkaian diperlukan.
Panduan makmal: labs/part10-custom-models.md
- Menyusun model Hugging Face ke format ONNX yang dioptimumkan menggunakan pembina model ONNX Runtime GenAI
- Penyusunan khusus perkakasan (CPU, GPU NVIDIA, DirectML, WebGPU) dan kuantisasi (int4, fp16, bf16)
- Membuat fail konfigurasi templat-bualan untuk Foundry Local
- Menambah model yang disusun ke cache Foundry Local
- Menjalankan model tersuai melalui CLI, REST API, dan OpenAI SDK
- Contoh rujukan: penyusunan Qwen/Qwen3-0.6B dari awal hingga akhir
Panduan makmal: labs/part11-tool-calling.md
- Membolehkan model setempat memanggil fungsi luaran (panggilan alat/fungsi)
- Mendefinisikan skema alat menggunakan format panggilan fungsi OpenAI
- Mengendalikan aliran perbualan panggilan alat berbilang giliran
- Melaksanakan panggilan alat secara setempat dan mengembalikan keputusan kepada model
- Memilih model yang tepat untuk senario panggilan alat (Qwen 2.5, Phi-4-mini)
- Menggunakan
ChatClientnatif SDK untuk panggilan alat (JavaScript)
Contoh kod:
| Bahasa | Fail | Penerangan |
|---|---|---|
| Python | python/foundry-local-tool-calling.py |
Panggilan alat dengan alat cuaca/populasi |
| C# | csharp/ToolCalling.cs |
Panggilan alat dengan .NET |
| JavaScript | javascript/foundry-local-tool-calling.mjs |
Panggilan alat dengan ChatClient |
Panduan makmal: labs/part12-zava-ui.md
- Menambah antaramuka hadapan berasaskan penyemak imbas untuk Penulis Kreatif Zava
- Menyajikan UI dikongsi dari Python (FastAPI), JavaScript (Node.js HTTP), dan C# (ASP.NET Core)
- Menggunakan streaming NDJSON di penyemak imbas dengan Fetch API dan ReadableStream
- Lencana status agen langsung dan penstriman teks artikel masa nyata
Kod (UI dikongsi):
| Fail | Penerangan |
|---|---|
zava-creative-writer-local/ui/index.html |
Susun atur halaman |
zava-creative-writer-local/ui/style.css |
Gaya |
zava-creative-writer-local/ui/app.js |
Pembaca aliran dan logik kemaskini DOM |
Penambahan backend:
| Bahasa | Fail | Penerangan |
|---|---|---|
| Python | zava-creative-writer-local/src/api/main.py |
Dikemas kini untuk menyajikan UI statik |
| JavaScript | zava-creative-writer-local/src/javascript/server.mjs |
Pelayan HTTP baru membalut pengaturcara |
| C# | zava-creative-writer-local/src/csharp-web/Program.cs |
Projek API minimal ASP.NET Core baru |
Panduan makmal: labs/part13-workshop-complete.md
- Ringkasan segala yang telah anda bina merentasi semua 12 bahagian
- Idea lanjut untuk memperluas aplikasi anda
- Pautan ke sumber dan dokumentasi
├── 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
| Sumber | Pautan |
|---|---|
| Laman web Foundry Local | foundrylocal.ai |
| Katalog model | foundrylocal.ai/models |
| Foundry Local GitHub | github.com/microsoft/foundry-local |
| Panduan permulaan | Microsoft Learn - Foundry Local |
| Rujukan SDK Foundry Local | Microsoft Learn - SDK Reference |
| Rangka Kerja Ejen Microsoft | Microsoft Learn - Agent Framework |
| OpenAI Whisper | github.com/openai/whisper |
| ONNX Runtime GenAI | github.com/microsoft/onnxruntime-genai |
Bahan bengkel ini disediakan untuk tujuan pendidikan.
Selamat membina! 🚀
Penafian:
Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI Co-op Translator. Walaupun kami berusaha untuk ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidakakuratan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang sahih. Untuk maklumat penting, terjemahan profesional oleh manusia adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.