microsoft/Foundry-Local
GitHub: microsoft/Foundry-Local
微软推出的轻量级端侧 AI 运行时与 SDK,支持在用户设备上本地运行经过优化的 AI 模型,实现离线、零延迟且保护隐私的推理。
Stars: 2440 | Forks: 339
## 在您的应用中内置端侧 AI
Foundry Local 是一个**端到端的本地 AI 解决方案**,用于构建完全在用户设备上运行的应用程序。它提供了原生 SDK(C#、JavaScript、Python 和 Rust)、经过精心挑选和优化的模型目录,以及自动硬件加速功能——所有这些都集成在一个轻量级的软件包中(约 20 MB)。其精简的体积使其能够轻松集成到您的应用程序中并分发给最终用户。
用户数据永远不会离开设备,响应可以立即开始且没有任何网络延迟,并且您的应用程序可以在离线状态下工作。没有按 token 计算的成本,无需 API 密钥,无需维护后端基础设施,也无需 Azure 订阅。
### 核心功能
- **轻量级 runtime** — runtime 负责处理模型获取、硬件加速、模型管理和推理(通过 [ONNX Runtime](https://onnxruntime.ai/))。
- **精选的模型目录** — 包含一系列针对消费者通用硬件上的端侧使用进行了优化的高质量模型。该目录涵盖聊天补全(例如 GPT OSS、Qwen、DeepSeek、Mistral 和 Phi)和音频转录(例如 Whisper)。每个模型都经过广泛的量化和压缩,以提供最佳的质量和性能平衡。模型是版本化的,因此您的应用程序可以固定到特定版本或自动接收更新。
- **自动硬件加速** — Foundry Local 会检测用户设备上的可用硬件,并选择最佳的执行提供程序和设备(NPU、GPU 或 CPU)。
- **智能模型管理** — Foundry Local 负责处理终端用户设备上模型的整个生命周期。模型在首次使用时自动下载,并在本地缓存以便后续立即启动,同时会为用户的特定硬件选择性能最佳的变体。
- **兼容 OpenAI 的 API** — 支持 OpenAI 请求和响应格式,包括 [OpenAI Responses API 格式](https://developers.openai.com/api/reference/resources/responses)。如果您的应用程序已经使用了 OpenAI SDK,只需极少量的代码修改,即可将其指向 Foundry Local endpoint。
- **可选的本地服务器** — 一个兼容 OpenAI 的 Web 服务器,用于向多个进程提供模型服务、与 LangChain 等工具集成,或通过 REST 调用进行实验。对于大多数嵌入式应用程序场景,请直接使用 SDK——它会在进程内运行推理,没有独立服务器的开销。
## 🚀 快速入门
JavaScript
1. 安装 SDK:
npm install foundry-local-sdk
2. 运行您的首次聊天补全:
import { FoundryLocalManager } from 'foundry-local-sdk';
const manager = FoundryLocalManager.create({ appName: 'my-app' });
// 下载并加载模型(自动为用户硬件选择最佳变体)
const model = await manager.catalog.getModel('qwen2.5-0.5b');
await model.download((progress) => {
process.stdout.write(`\rDownloading... ${progress.toFixed(2)}%`);
});
await model.load();
// 创建一个聊天客户端并获取补全结果
const chatClient = model.createChatClient();
const response = await chatClient.completeChat([
{ role: 'user', content: 'What is the golden ratio?' }
]);
console.log(response.choices[0]?.message?.content);
// 完成后卸载模型
await model.unload();
Python
1. 安装 SDK:
pip install foundry-local-sdk
2. 运行您的首次聊天补全:
from foundry_local_sdk import Configuration, FoundryLocalManager
config = Configuration(app_name="foundry_local_samples")
FoundryLocalManager.initialize(config)
manager = FoundryLocalManager.instance
# 从目录中选择并加载模型
model = manager.catalog.get_model("qwen2.5-0.5b")
model.download()
model.load()
# 获取聊天客户端
client = model.get_chat_client()
# 创建并发送消息
messages = [
{"role": "user", "content": "What is the golden ratio?"}
]
response = client.complete_chat(messages)
print(f"Response: {response.choices[0].message.content}")
model.unload()
### 💬 音频转录(语音转文本)
该 SDK 还支持通过 Whisper 模型进行音频转录(支持 JavaScript、C#、Python 和 Rust):
```
import { FoundryLocalManager } from 'foundry-local-sdk';
const manager = FoundryLocalManager.create({ appName: 'my-app' });
const whisperModel = await manager.catalog.getModel('whisper-tiny');
await whisperModel.download();
await whisperModel.load();
const audioClient = whisperModel.createAudioClient();
audioClient.settings.language = 'en';
// Transcribe an audio file
const result = await audioClient.transcribe('recording.wav');
console.log('Transcription:', result.text);
// Or stream in real-time
for await (const chunk of audioClient.transcribeStreaming('recording.wav')) {
process.stdout.write(chunk.text);
}
await whisperModel.unload();
```
## 📦 示例
在 [`samples/`](samples/) 文件夹中探索完整的可运行示例:
| 语言 | 示例 | 亮点 |
|----------|---------|------------|
| [**C#**](samples/cs/) | 12 | 原生聊天、音频转录、工具调用、模型管理、Web 服务器、教程 |
| [**JavaScript**](samples/js/) | 12 | 原生聊天、音频、Electron 应用、Copilot SDK、LangChain、工具调用、教程 |
| [**Python**](samples/python/) | 9 | 聊天补全、音频转录、LangChain、工具调用、教程 |
| [**Rust**](samples/rust/) | 8 | 原生聊天、音频转录、工具调用、Web 服务器、教程 |
## 🖥️ CLI
Foundry Local CLI 让您可以探索模型并以交互方式进行实验。
**安装(公开预览版):**
从 [`cli-preview-0.10.0`](https://github.com/microsoft/Foundry-Local/releases/tag/cli-preview-0.10.0) GitHub release 下载适用于您平台的资源。
**运行模型:**
```
foundry run qwen2.5-0.5b
```
**列出可用模型:**
```
foundry model list
```
## 报告问题
请在 [GitHub Issues](https://github.com/microsoft/Foundry-Local/issues) 部分报告问题或提出改进建议。
## 🎓 了解更多
- Microsoft Learn 上的 [Foundry Local 文档](https://learn.microsoft.com/en-us/azure/foundry-local/)
- [Foundry Local 实验室](https://github.com/Microsoft-foundry/foundry-local-lab) — 动手实践练习和分步说明
## ❔ 常见问题解答
### Foundry Local 是一个 Web 服务器和 CLI 工具吗?
不是。Foundry Local 是一个随您的应用程序一起分发的**端到端本地 AI 解决方案**。它通过 SDK 在您的应用程序进程内处理模型获取、硬件加速和推理。可选的 Web 服务器和 CLI 可用于开发工作流,但核心产品是您直接集成到应用程序中的本地 AI runtime 和 SDK。
### 为什么 Foundry Local 不支持所有可用的模型?
Foundry Local 专为交付生产级应用程序而设计,而不是用于通用的模型实验。模型目录是经过精心挑选的,仅包含针对特定应用场景进行了优化、在一系列消费级硬件上进行了测试,并且体积小到足以分发给终端用户的模型。这种方法可确保目录中的每个模型在嵌入您的应用程序时都能提供可靠的性能——而不是提供大量在端侧行为不可预测的模型。
### Foundry Local 可以在服务器上运行吗?
Foundry Local 针对受硬件限制的设备进行了优化,在这些设备上,一次只有一个用户访问模型。虽然从技术上讲,您可以安装并在服务器硬件上运行它,但它并不是作为服务器推理 stack 设计的。
面向服务器的 runtime(如 [vLLM](https://docs.vllm.ai/en/latest/) 或 [Triton Inference Server](https://github.com/triton-inference-server/server))是为多用户场景构建的——它们能够处理并发请求排队、连续批处理以及跨多个并发客户端的高效 GPU 共享。Foundry Local 不提供这些功能。相反,它专注于轻量级的单用户推理,并提供对客户端应用程序有意义的自动硬件检测、KV-cache 管理和模型生命周期处理。
如果您需要向多个并发用户提供模型服务,请使用专用的服务器推理框架。当模型在终端用户自己的设备上运行时,请使用 Foundry Local。
### 支持哪些平台?
Foundry Local 支持 Windows、macOS(Apple silicon)和 Linux。
## ⚖️ 许可证
Foundry Local SDK 采用 MIT 许可证授权。有关更多详细信息,请参阅 [LICENSE](LICENSE) 文件。
Foundry Local CLI 采用 Microsoft 软件许可条款授权。有关更多详细信息,请阅读 [LICENSE](LICENSE) 文件。
可供 Foundry Local 使用的各个模型均受各自模型的许可条款、通知和使用限制的约束。在使用或重新分发模型之前,请参阅模型的文档或下载/列表页面以了解适用的条款。
标签:ONNX Runtime, Petitpotam, 可视化界面, 多语言SDK, 大模型部署, 数据可视化, 本地推理, 硬件加速, 端侧AI, 逆向工具