- 示例工程
【免费下载链接】ailab
Experience, Learn and Code the latest breakthrough innovations with Microsoft AI
Microsoft AI Lab 是微软面向开发者社区推出的 AI 实验开源项目,核心理念可以概括为三个动词:体验(Experience)、学习(Learn)、编码(Code)。它把微软 AI 部门的最新突破成果封装成一个个可动手实操的"实验室",每个实验都附带可运行的示例代码、开发者友好的演示视频,以及对底层工程挑战与解决方案的解读。本文以仓库根目录的 README.md 为主线,结合仓库中真实存在的源码目录,为你梳理这个仓库的项目全景、每个实验的实战内容,以及如何快速上手运行这些示例。
AI Lab 是什么
根据 README.md 的定位,AI Lab 旨在帮助规模庞大且快速成长的开发者社区快速进入 AI 领域。它不是一个单一大模型产品,而是一个实验集合体:每个 Lab 都是一条完整的"动手链路",让你既能在线体验效果,也能拿到源码在本地复现,并通过配套视频理解背后的工程思路。
仓库明确说明,AI Lab 是微软与AI School以及微软研究院(MSR)AI 组织合作开发的成果。这意味着仓库内每一个实验项目背后,都有对应的研究论文或工程实践作为支撑(例如 Pix2Story 就基于 Skip-Thought Vectors 论文)。
仓库根目录的images/下保存了 AI Lab 官方主页截图,可以直观看到实验平台的入口形态:

仓库项目全景:README 清单与实际源码对照
README 提到 AI Lab"目前托管八个项目",并随后给出了一个包含 10 个实验项目的清单:Spektacom "Power Bat"、Snip Insights、Intelligent Robotics、Sketch 2 Code、Build a bot、Drawing Bot、JFK Files、Drones、Style Transfer、MRC(Machine Reading Comprehension)。README 还提到这些实验展示的技术方向包括 **custom vision(自定义视觉)、attnGAN、Visual Studio tools for AI、Cognitive Search(认知搜索)、Machine Reading Comprehension(机器阅读理解)**等。
需要说明的是,README 的清单是对 AI Lab 在线实验平台的汇总;而当前仓库目录中实际包含源码的目录为以下七个(外加 VirtualStage 背景抠像实验):
| 仓库目录 | 对应实验 | 核心技术主题 |
|---|---|---|
| Snip-Insights | Snip Insights | 跨平台智能截屏 + 认知服务 |
| Sketch2Code | Sketch 2 Code | 手绘 UI 草图转 HTML |
| BuildAnIntelligentBot | Build a bot | Bot Framework SDK V4 智能机器人 |
| JFKFiles | JFK Files | Cognitive Search 认知搜索档案理解 |
| MachineTeaching | Intelligent Robotics(机器教学) | Bonsai 强化学习工业控制 |
| Pix2Story | Drawing Bot(图像叙事) | Skip-Thought Vectors 故事生成 |
| GoogleAssistantConnector | Build a bot 的扩展 | Bot Framework 与 Google Assistant 集成 |
其余实验(Spektacom、Drones、Style Transfer、MRC 等)从仓库目录结构看并未包含对应源码目录,可以推断它们可能托管在其他独立仓库中,本文聚焦仓库内实际可运行的实验项目。
Snip Insights:跨平台智能截屏工具
Snip Insights 的定位是开源跨平台 AI 截屏工具,用于从屏幕截图中直接生成智能洞察。其原型诞生于 2018 年微软 Build 大会,由微软 Garage 实习生开发;微软 AI Lab 团队与微软 AI CTO 团队合作将其升级为具有全新 UX 的跨平台应用,支持Windows、macOS、Linux三大平台。
根据 Snip-Insights 文档,应用的能力完全由 Azure 认知服务驱动,需要配置以下服务密钥:
- Entity Search:实体搜索认知服务;
- Image Analysis / Text Recognition:两者共用 Computer Vision API 的密钥;
- Image Search:Bing Search v7 API;
- Translator:Translator Text API;
- Content Moderator:内容审核 API;
- LUIS App ID 与 Key:需在 Language Understanding 门户创建应用,并预置
datetimeV2、email两个预构建实体后训练发布。
配置入口在应用内的Settings图标下,开启 "Cognitive Services, Enable AI assistance" 开关后即可填写各服务密钥与对应 Endpoint。仓库中对应的代码工程包括 SnipInsight、SnipInsight.Forms(Xamarin.Forms 共享 UI)以及 SnipInsight.Forms.GTK(GTK# 桌面实现)。从目录结构可以推断,应用通过状态机(StateMachine/)管理截屏、编辑、AI 分析等交互流程,AI 相关逻辑集中在 AIServices 目录下。
Sketch 2 Code:手绘 UI 一键转 HTML
Sketch 2 Code 用 AI 将手写的 UI 设计草图照片直接转换为可用的 HTML 标记代码。根据 Sketch2Code 文档,其完整处理流程分为五步:
- 用户通过网站上传草图图片;
- Custom Vision 模型预测图片中存在哪些 HTML 元素及其位置(如按钮、文本框、图片);
- 手写文本识别服务(Computer Vision)读取预测元素内部的文字;
- 布局算法利用所有预测元素包围盒的空间信息生成适配的网格结构;
- HTML 生成引擎综合上述信息生成最终 HTML 标记。
整个方案由五个组件构成:Custom Vision 模型、Computer Vision 服务、Azure Blob Storage(存储原始图、results.json预测结果、groups.json布局分组等中间产物)、Azure Function(后端编排入口)、Azure Web App(上传与展示前端)。对应的配置参数在文档中逐项列出,例如 Azure Function 需要配置ObjectDetectionProjectName、ObjectDetectionPredictionKey、ObjectDetectionTrainingKey、Probability(概率阈值,示例为 40)、HandwrittenTextApiEndpoint、ComputerVisionDelay(调用间隔毫秒数)等。
仓库中 Sketch2Code.Api 是 Azure Function 宿主,Sketch2Code.AI 封装了 Custom Vision 客户端与对象检测逻辑,Sketch2Code.Core 承载实体与布局/HTML 生成服务,Sketch2Code.Web 是 MVC 前端,Sketch2Code.Tests 提供了对应的单元与集成测试。
Build a bot:用 Bot Framework SDK V4 打造订位机器人
这是仓库中内容最详实的实验,其 实验文档 完整讲述了如何用Bot Framework SDK V4为虚构的 Contoso 餐厅构建一个支持自然语言订位的交互式机器人。从仓库源码结构看,工程以ChatBot/为核心,包含控制器、对话框、中间件、模型与服务等分层。
实验沿一条清晰的进阶路径展开,每一步都有可复现的代码:
1. 环境搭建与快速起步:安装 Visual Studio 2017 与 Bot Builder SDK V4 模板,创建 Azure Web App Bot 资源,并在 Bot Framework Emulator 中本地调试 Echo Bot(readme.md)。
2. 接入 LUIS 语言理解:在 Azure 创建 Language Understanding 资源(F0 定价层),导入talk-to-my-bot.json基础模型,新增TodaysSpecialty意图与示例话语,然后在Startup.cs中注册LuisRecognizer:
var luisApplication = new LuisApplication( Configuration["LuisAppId"], Configuration["LuisAPIKey"], "https://" + Configuration["LuisAPIHostName"]); services.AddSingleton(new LuisRecognizer(luisApplication));随后在EchoBot.cs的OnTurnAsync中调用_luis.RecognizeAsync提取最高分意图(置信度阈值 0.5),用 switch 分发处理。
3. 视觉化回复(Carousel):通过HeroCard与MessageFactory.Carousel构造菜品推荐轮播卡片。
4. 多轮对话流(Dialogs):安装Microsoft.Bot.Builder.Dialogs包,以WaterfallDialog编排"初始化状态 → 询问时间 → 询问人数 → 询问姓名 → 确认 → 完成"六步订位流程,并通过AmountPeopleValidatorAsync校验人数必须为数字。关键设计是跳过已提供信息的提问:如果用户在初始话语中已说出时间,TimeStepAsync会直接NextAsync跳过。
5. QnA Maker 知识库:创建 QnA Maker 资源并导入qna-ttmb-KB.tsv知识文件,注册QnAMaker服务(ScoreThreshold = 0.9f, Top = 1),在默认回复兜底时先查询知识库。
6. Personality Chat 闲聊人格:通过PersonalityChatMiddleware配置Humorous(幽默)/Professional/Friendly三种人格,让机器人具备寒暄能力。
7. 语音能力(TTS/STT):Speech 资源(S0 层,需选择 East US 以支持神经语音),通过TextToSpeechService生成 SSML,并配置 Web Chat 的SpeechRecognizer/SpeechSynthesizer。
8. Custom Speech 自定义语音识别:在 CRIS 门户导入语言数据集(custom_speech_language_ds.txt)与发音数据集(custom_speech_pronunciation_ds.txt),构建Food Language Model语言模型并部署 WebSocket 端点,解决risotto、calzone等意式词汇的口音识别问题。
9. 语音翻译:通过自定义TranslatorSpeechMiddleware中间件,将预录法语音频(discounts_french.wav)转写并翻译成英文交给 LUIS 处理,再以法语语音回复,实现跨语言对话。
10. 嵌入 Web 应用:将 Bot Framework Web Chat 控件(botchat.js+CognitiveServices.js)与初始化脚本嵌入静态网站index.html,通过 Direct Line 密钥连接部署在 Azure 的机器人。
JFK Files:用 Cognitive Search 理解历史档案
JFK Files 展示如何用Azure Cognitive Search(认知搜索)从海量非结构化历史档案中提取意义。背景是 2017 年美国公开了超过 3.4 万页 CIA 调查文档,其中包含大量印刷文本、手写笔记、照片等传统搜索引擎难以解析的内容。
根据 JFK Files 文档,该实验的架构包含三类能力:
- 内置认知技能:使用 Cognitive Services Vision API 对图片做 OCR、手写识别、图像标题生成;应用命名实体识别(NER)提取文档中的实体;
- 自定义认知技能:通过 Azure Functions 的可扩展机制插入自定义技能,例如CIA Cryptonym 链接器(
link-cryptonyms)——将文档中的 CIA 代号(如GPFLOOR对应 Lee Harvey Oswald)与人物描述关联,以及hocr-generator(将 OCR 元数据转换为 HOCR 开放标准)、image-store(上传图像注释到 Blob)、facet-graph-nodes等; - 独立前端站点:用于搜索索引并浏览文档。
实验完整走通了"数据源 → 技能集 → 索引 → 索引器"四条链路,全部通过 Postman 调用 Azure Search REST API 完成(仓库提供了 Postman 集合 中提到的请求文件),并在高级管道中加入了同义词映射(如oswald的多种拼写变体统一映射到 Oswald)以提升召回率。对应的 Azure Function 源码位于 JfkWebApiSkills,前端搜索应用位于 frontend(TypeScript + webpack 构建),Azure 资源一键部署模板为 azuredeploy.json。
文档同时列出了明确的限制与注意事项:Cognitive Search 当时仅在 South Central US 与 West Europe 区域提供公开预览;OCR 对手写识别处于预览阶段,效果因扫描质量而异;部分扫描版/原生 PDF 可能无法正确解析。
Machine Teaching:用 Bonsai 训练工业控制大脑
Machine Teaching 实验体现的是"机器教学"范式——让领域专家把控制逻辑教给 AI,而不是手工编写强化学习奖励函数。仓库包含三个仿真演示,每个都提供 Inkling 大脑定义文件(.ink)、Bonsai 工程文件(.bproj)与 Python 仿真器:
- Machine-Calibration:CNC 机床校准。金属切削中摩擦会降低精度,需要专家反复旋钮并测量。用 Bonsai 训练一个"大脑"自动完成校准,命令流程为:
bonsai create <brain_name>→pip3 install -r requirements.txt→bonsai push上传 Inkling 与仿真文件 →bonsai train start [--remote]开始训练 →python3 cnc_simulator.py连接仿真器 → 训练达标后bonsai train stop,最后用python cnc_simulator.py --predict观察 AI 预测行为; - Motion-Control:钻孔机运动控制演示,同样提供
drill_simulator.py与训练数据 CSV; - Smart-Building:智能楼宇 HVAC 控制演示,包含 25 份环境数据 CSV 与
hvac_simulator.py。
每个演示都体现了同一套工作流:定义大脑 → 推送训练 → 连接仿真器 → 停止训练 → 获取预测,非常适合理解 Bonsai 平台"用 Inkling 语言描述教学意图"的核心思想。
Pix2Story:看图生成故事的图像叙事 AI
Pix2Story 是一个基于Skip-Thought Vectors论文(Ryan Kiros 等人)与 neural-storyteller 项目的图像叙事 AI:给定一张图片,用不同文学体裁生成一段故事。其处理流水线分为三部分(Pix2Story 文档):
- 视觉语义嵌入(VSE):先用卷积神经网络(CNN)提取图片的 annotation vectors,再用 LSTM 解码器逐词生成简短描述性标题(caption);
- Skip-Thought 向量:训练一个 encoder-decoder 模型,利用书籍文本的连续性重建相邻句子,得到通用的句子向量表示;
- 风格迁移(Style shifting):由于 VSE 输出的短描述句直接送入 Skip-Thought 解码器只能得到短句,需要通过向量运算实现文体转换:
Skipthoughts Decoder Input = 图片编码标题 − 全部标题编码的平均 + 与期望输出等长同特征文本的编码
部署方面,项目使用Azure Machine Learning Services Workspaces生成包含模型与文件的 Docker 镜像,并通过Azure Kubernetes Services弹性扩展推理服务。仓库 config.py 中可配置语料路径与训练参数;自定义训练流程为:conda env create --file environment.yml创建环境 →activate storytelling→ 修改 config →python training.py训练编码器/解码器 → 生成 bias → 在 Python 控制台用generate.StoryGenerator().story(image_loc='...')生成故事。
GoogleAssistantConnector:让 Bot Framework 接入 Google Assistant
仓库还包含一个极具实用价值的扩展实验 GoogleAssistantConnector:通过部署一个Google Assistant Proxy 代理服务,让基于 Bot Framework 的机器人能够直接与 Google Assistant 对话。通信链路为:Google Assistant(Actions on Google 项目)→ 代理服务 → Bot Framework 的Direct Line通道。
配置要点包括:设置DIRECT_LINE_SECRET环境变量(对应机器人 Direct Line 通道的密钥)、确保 Node 版本不低于 7.10.1(Azure 上通过WEBSITE_NODE_DEFAULT_VERSION设置)、更新actions.json动作模板(仓库Deploy/目录提供英文与西语两份示例)中的 fulfillment URL,最后用 gactions CLI(gactions update --project PROJECTID ...)同步到 Actions on Google 项目。代理的实现代码位于 GoogleAssistantProxy(Node.js),Direct Line 到 Actions on Google 的转换库为 DirectLineToActionsOnGoogleLib。
如何开始:克隆仓库并运行示例
git clone https://gitcode.com/gh_mirrors/ai/ailab克隆后即可按各实验文档操作:.NET 相关的实验(Build a bot、Sketch2Code、Snip Insights)用 Visual Studio 打开对应的.sln解决方案并还原 NuGet 包;Python 实验(Pix2Story、Machine Teaching)用 conda/pip 安装依赖后运行仿真脚本;Node.js 实验(GoogleAssistantConnector)直接安装依赖启动。需要注意的是,多数实验依赖 Azure 订阅与认知服务密钥,动手前请先准备好相应资源。
贡献指南(Contributing)
README 明确欢迎社区的贡献与建议。贡献者通常需要签署Contributor License Agreement(CLA),声明你有权授予项目使用你的贡献;提交 Pull Request 时 CLA 机器人会自动判断是否需要 CLA 并在 PR 上添加相应标签与评论。此外,项目采用微软开源行为准则(Microsoft Open Source Code of Conduct)。
开源许可(License)
本仓库基于 MIT 许可 开源。这意味着你可以自由地学习、修改、分发这些实验代码,用于个人学习或商业项目,只需保留原始版权声明。
总结:Microsoft AI Lab 仓库是一份浓缩的"微软 AI 技术栈动手手册"——从视觉理解(Sketch 2 Code、Snip Insights)、对话式 AI(Build a bot、GoogleAssistantConnector)、认知搜索(JFK Files)到生成式叙事(Pix2Story)与工业控制(Machine Teaching),每个实验都遵循"体验 → 学习 → 编码"的完整闭环。无论你是想快速验证一个 AI 想法的可行性,还是想深入理解某类服务的工程集成方式,都能在这里找到一条可复现的起步路径。
- 示例工程
【免费下载链接】ailab
Experience, Learn and Code the latest breakthrough innovations with Microsoft AI
相关推荐
AI技能精选库openclaw-master-skills:2400+每周更新的完整指南
AI技能精选库openclaw master skills:2400+每周更新的完整指南 openclaw master skills(OpenClaw 大师技
人工智能AI 技能微软AI Lab合作案例解析:从学术机构到企业的创新实践指南
微软AI Lab作为微软人工智能生态系统的重要组成部分,通过与学术机构和企业建立深度合作关系,为开发者提供了体验、学习和编码最新AI创新的平台。这个 AI La
示例工程探索技术创新:HOK_ENV - 腾讯AI Lab的强化学习环境
探索技术创新:HOK_ENV 腾讯AI Lab的强化学习环境 是腾讯AI Lab推出的一个开源强化学习(Reinforcement Learning, RL)环
人工智能强化学习游戏开发
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考