LESSON 1 / 20免費試讀
點圖看本課影片
有件事可能會讓你意外:如果你打過 REST API,你就已經具備蓋 AI 應用最核心的技能了。
想想看。呼叫 API 時,你送出一個請求、拿回一個回應。用 AI 蓋東西也是同一套模式:
var response = await chatClient.GetResponseAsync("Summarize this customer feedback");
Console.WriteLine(response);
概念就這樣而已。送出 prompt,拿到回應。剩下的都是你原本就會的 .NET 技能:依賴注入、設定管理、錯誤處理、非同步模式。
不需要 PhD,不需要 Python,不需要複雜的 ML pipeline。
這門課會用可以實際跑起來的程式碼證明給你看,而不是投影片跟理論。
上完這一課,你會:
除了基本的 .NET 知識以外沒有其他先修要求。我們會一步一步把東西蓋起來。
生成式 AI 是一種軟體,它會根據從既有資料學到的模式,產生新的內容(文字、圖片、程式碼、音訊)。
概念就這樣而已。你用 ChatGPT、GitHub Copilot 或 DALL-E 的時候,用的就是生成式 AI。
大多數生成式 AI 應用的核心通常是大型語言模型(Large Language Models,LLM)。這些是在巨量文字資料上訓練出來的神經網路。訓練過程中,它們學到語言裡的模式、關係與結構。
當你送一個 prompt 給 LLM 時,它不是在用人類的方式「理解」。它是根據學到的模式,預測下一個最可能出現的 token(字詞或字詞片段)。因為這些模式來自數十億筆人類寫作的樣本,結果才會感覺很聰明。
幾個關鍵概念:
Token:LLM 會把文字切成一小塊一小塊,稱為 token。一個 token 可能是一個詞、詞的一部分,或標點符號。當你看到「token 上限」這種說法,指的就是模型一次能處理多少文字。

上下文視窗(Context Window):LLM 一次能「看到」的文字量。上下文視窗越大,你能塞進 prompt 裡的資訊就越多。
Temperature:控制輸出隨機程度的設定。溫度低(0.0-0.3)得到的回應比較可預測、聚焦;溫度高(0.7-1.0)得到的回應比較有創意、多變。
想深入了解:生成式 AI 的關鍵概念與考量 涵蓋了 token 上限、計價、上下文視窗等 AI 開發的必要知識。
來比較一下你現在寫程式的方式,跟你跟 AI 模型互動的方式:
| 傳統程式設計 | 生成式 AI |
|---|---|
| 你寫明確的規則 | 你描述你要什麼 |
| 輸出是決定性的(相同輸入 = 相同輸出) | 輸出是機率性的(相同輸入 ≈ 相似的輸出) |
if (score > 90) return "A"; |
"Grade this essay and explain why" |
| 每種邊界情況你都要自己處理 | 模型從學到的模式做泛化 |
例子:
它從數百萬筆範例中學到模式,再套用到你這個具體的輸入上。
以下這些事你不需要擔心:
以下這些事你需要知道:
因為你是在描述你要什麼,而不是寫明確的規則,prompt 怎麼寫就變得非常重要。一個寫得好的 prompt,可能就是「有用的回應」跟「沒用的回應」之間的差別。
好的 prompt 通常會:
我們會在整門課裡不斷練習 prompt engineering,從第 02 課開始。
有個常見的誤解,以為做 AI 開發一定要用 Python 或專門的機器學習專業知識。
這是錯的。
你已經有這些核心技能了:
| 你已經有的技能 | 怎麼套用到 AI 上 |
|---|---|
| 呼叫 REST API | AI 模型也是透過 API 存取的 |
| 依賴注入(Dependency Injection) | 換 AI 供應商不用改程式碼 |
| Async/await 模式 | 呼叫 AI 就是一個非同步操作 |
| 設定管理 | API 金鑰、端點、選模型 |
| 錯誤處理 | 呼叫 AI 可能會失敗,需要重試邏輯 |
IChatClient 的魔力微軟做了一個統一的抽象層,叫 IChatClient(屬於 Microsoft.Extensions.AI 的一部分)。它的用法跟你原本熟悉的模式一模一樣:
ILogger,只是換成處理 AI 對話HttpClient,只是換成處理模型互動一個介面,任何 AI 供應商都能用:
// Use OpenAI
IChatClient client = new OpenAIChatClient("gpt-5-mini", apiKey);
// Or use a local model with Ollama
IChatClient client = new OllamaApiClient(new Uri("http://localhost:11434"), "phi4-mini");
// Or use Azure OpenAI
IChatClient client = new AzureOpenAIChatClient(endpoint, credential, "gpt-5-mini");
// Your application code stays exactly the same!
var response = await client.GetResponseAsync("Hello, AI!");
改一行程式碼就能換供應商。你的商業邏輯完全不用動。
理解了概念之後,來看看工具本身。我們會從簡單的開始,一路走到進階的。
這是你的地基。MEAI 提供:
IChatClient:處理文字對話IEmbeddingGenerator:處理向量搜尋場景**可以把它想成:**把你的程式碼跟任何 AI 模型接起來的水管系統。

來源:Microsoft Extensions AI - Preview Announcement
你有幾個選項:
| 選項 | 最適合 | 費用 |
|---|---|---|
| Ollama(本機) | 隱私、離線工作、學習 | 免費 |
| Azure OpenAI / Microsoft Foundry | 正式環境、企業、合規 | 按用量計費 |
這些全部都用同一個 IChatClient 介面!
Microsoft Agent Framework —— 用開源的 Microsoft Agent Framework,以 .NET 打造智慧代理人(agent)。Agent 是能使用工具、維持狀態、並與其他 agent 協作的 AI 工作者。動手範例請見第 04 課:用 MAF 建立 Agent。
不過在那之前,先讓你從基礎開始寫程式。
點圖看設定教學影片
我們已經把設定的門檻降到最低。挑一條適合你工作流程的路:
**最適合:**想要完整體驗這門課、使用雲端託管的 AI 模型。
./setup.ps1 自動佈建 Azure 資源,或直接用你既有的 Azure OpenAI 部署。gpt-5-mini(對話)與 text-embedding-3-small(embedding)。**最適合:**重視隱私、想離線工作、想要免費的本機能力。
在這個工作坊裡,你學到的不會只有理論,你會實際做出:
| 你會做出的東西 | 說明 | 課次 |
|---|---|---|
| 聊天應用 | 有上下文與記憶的對話 | 第 02 課:生成式 AI 技巧 |
| 語意搜尋 | 理解意思、而不只是比對關鍵字的搜尋 | 第 03 課:AI 模式與應用 |
| RAG 應用 | 立基於你自己文件與資料的應用 | 第 03 課:AI 模式與應用 |
| 會用工具的 Agent | 能呼叫 API、採取行動的 agent | 第 04 課:AI Agent |
| 多 Agent 系統 | 能互相協作的自主 agent | 第 04 課:AI Agent |
每一課都是建立在前一課之上,而且全部都是你可以馬上動手跑的程式碼。
在往下走之前,先重點複習一下:
| 概念 | 重點 |
|---|---|
| 生成式 AI | 根據學到的模式產生新內容的軟體 |
| 決定性 vs. 機率性 | 傳統程式碼給出精確的輸出;AI 給出生成、可變的輸出 |
| 你的 .NET 技能可以直接搬過來 | API 呼叫、依賴注入、async/await:這些模式你早就會了 |
IChatClient |
一個介面通吃各家 AI 供應商(OpenAI、Ollama、Azure) |
| 不需要自己訓練模型 | 你用的是預訓練好的模型,重點在整合 |
你能回答以下問題嗎?
IChatClient 是什麼?它為什麼有用?三題都答得出來,就可以進到下一課了!
你有兩件事要做:
./setup.ps1 快速上手)想深入研究?這裡有幾個很不錯的資源:
核心 .NET AI 文件:
建立 Agent:
在本機跑模型:
想看完整全貌?
內容來源:本頁譯自 Microsoft 的開源課程
Generative AI for beginners .NET,原文連結:https://github.com/microsoft/Generative-AI-for-beginners-dotnet/blob/main/01-IntroductionToGenerativeAI/readme.mdMIT License, Copyright (c) Microsoft Corporation。
本頁為碼力獅社群的中文翻譯與整理(翻譯課文、保留原文的參考資源與範例程式碼連結),
非原作者的官方中文版;內容如與原文有出入,以原文為準。上游translations/tw
停留在舊版課綱,與目前的英文原文結構不同,本頁不是以該譯文為底稿。
範例程式碼請直接使用原始 repo 的samples/目錄。