微軟 Foundry Local - 本(ben)地 AI 推理解(jie)決方案
微(wei)軟在其 2025 Build 大(da)會上(shang)(shang)發布了(le) Foundry Local,能(neng)夠在本(ben)地設備上(shang)(shang)執行(xing) AI 推(tui)理,意味著可(ke)以(yi)利(li)用(yong)本(ben)地的 AI 算(suan)力(li),如:CPU/GPU/NPU;也(ye)讓用(yong)戶在隱(yin)私方面得到了(le)充足的保(bao)障,還(huan)(huan)能(neng)有改善成本(ben)效益!Foundry Local 默(mo)認(ren)除了(le)支(zhi)持 CLI外,還(huan)(huan)支(zhi)持 SDK、REST API 和 Catalog API,用(yong)戶可(ke)以(yi)自(zi)行(xing)基于 Foundry Local 進行(xing)開發。在未來 Foundry Local 還(huan)(huan)將內置(zhi)對 Agent/MCP 的支(zhi)持。
Foundry Local 還支(zhi)持跨平(ping)臺,除了(le)能夠(gou)運行在(zai)Windows 11 上,還能夠(gou)運行在(zai) macOS。由于需要本地存儲和運行模型(xing),請確保有足夠(gou)的算(suan)力和存儲,Foundry Local 支(zhi)持硬件加(jia)速:NVIDIA GPU(2000系列或更(geng)(geng)高版(ban)本)、AMD GPU(6000系列或更(geng)(geng)高)、Intel iGPU、Intel NPU(32GB或更(geng)(geng)多內(nei)存)、高通 Snapdragon X Elite(8GB或更(geng)(geng)多內(nei)存)、高通 NPU,以(yi)及 Apple 系列。
要在本地以 Foundry Local 運行(xing) AI 模(mo)型,首先需要安(an)裝 Foundry Local。
- Windows:
- winget install Microsoft.FoundryLocal
- macOS:
- brew tap microsoft/foundrylocal
- brew install foundrylocal
運行模(mo)型只需(xu)要執行:
foundry model run <model>
在 Foundry Local 上可運(yun)行的(de)模型有(you)很多,可使用以(yi)下命令查看(kan):
foundry model list
還(huan)可(ke)以加載 --filter 參數對顯示列表(biao)進行(xing)篩選。
其他有用的(de)參(can)數還有:
foundry model info <model> 顯(xian)示有關(guan)特(te)定模型(xing)的詳(xiang)細信息
foundry model download <model> 在不運行模(mo)型的(de)情(qing)況下只下載模(mo)型到本地緩存
foundry model load <model> 將模(mo)型(xing)加載到服(fu)務中
foundry model unload <model> 從服務(wu)中卸載模
要查看本地已經(jing)下(xia)載緩存的模型,可執行:
foundry cache list
要檢查 Foundry Local 服務狀(zhuang)態,可執行:
foundry service status
Foundry Local CLI 詳細使用可參考:。
目前(qian)支持 JavaScript、Python、C# 和(he) Rust,也可以(yi)使用(yong) 去調用(yong) Foundry Local Service。這(zhe)是(shi)一個用(yong)于(yu)演示或(huo)(huo)本(ben)地(di)實驗的示例項目,可能展示如何在本(ben)地(di)環境(jing)中使用(yong)或(huo)(huo)集(ji)成“Foundry”相關功能。核心代碼在:
封裝 FoundryLocalManager,提供基礎模型管理:
? StartServiceAsync:啟動本地 Foundry 服務
? ListCatalogModelsAsync / ListCachedModelsAsync:列出目錄/本地緩存模型
? DownloadModelAsync:按進度流式下載模型(IAsyncEnumerable<ModelDownloadProgress>)
? LoadModelAsync / UnloadModelAsync:加載/卸載模型
基于選定模型進行流式解析用戶文本為結構化對象:
? ParseStudentProfileStreamingAsync:
? 通過 OpenAIClient + Microsoft.Extensions.AI 創建聊天客戶端(使用 FoundryLocalManager 提供的 Endpoint 和 ApiKey)
? 構造一個包含字符串枚舉的 JSON Schema,要求模型僅輸出 JSON
? 發送提示詞并以流式方式接收回復,邊接收邊通過 IAsyncEnumerable<StudentProfileUpdate> 返回中間文本增量
? 收集完整回復后,去除可能的 <think> 標簽和 ```json 代碼塊圍欄,處理嵌套對象,再用 Json.NET(含 StringEnumConverter)反序列化為 StudentProfile
? 最后(hou)返回(hui)一次包含解析好的 StudentProfile 的更(geng)新
項目地址:
歡迎大家掃描下面二維碼(ma)成為(wei)我的客戶(hu),扶(fu)你(ni)上(shang)云
