.NET AI Preview 2 发布:支持 Aspire 与 Qdrant 向量库集成,加速云原生 AI 开发
引言
随着人工智能(AI)技术的迅猛发展,开发者对简单、高效的AI开发工具需求日益增加。微软 .NET 团队最近发布了 .NET AI 模板的 Preview 2 版本,这一更新为开发者带来了诸多令人兴奋的新功能和改进。本文将深入探讨 .NET AI 模板 Preview 2 的新特性,分析其核心优势,并提供详细的使用指南,帮助开发者快速上手并加速AI项目的开发进程。
.NET AI 模板 Preview 2 的新特性
1. .NET AI 模板简介
.NET AI 模板是微软专为 .NET 开发者设计的一套工具集,旨在简化AI应用的开发流程。它提供了预配置的项目模板,开发者可以基于这些模板快速搭建AI应用的基础架构。自首次发布以来,.NET AI 模板已经受到广泛关注,而 Preview 2 版本则在原有基础上进一步扩展了功能,引入了更强大的工具支持和灵活性。
这些模板不仅适用于传统的桌面开发,还通过与云原生技术的深度集成,为现代分布式应用的开发提供了便利。无论是构建简单的聊天机器人,还是开发复杂的语义搜索系统,.NET AI 模板都能显著减少开发者的上手难度。
2. Preview 2 的新功能
Preview 2 版本带来了多项重要更新,以下是其核心亮点:
2.1 .NET Aspire 支持
.NET Aspire 是微软推出的一款全新框架,专注于云原生应用的开发。它提供了一套工具和组件,帮助开发者更轻松地构建和管理分布式系统。在 Preview 2 中,.NET AI 模板集成了 .NET Aspire,使得开发者可以利用其编排功能(Orchestration)来配置和管理AI服务。这种集成不仅提升了开发效率,还为本地和云端AI模型的部署提供了无缝支持。
2.2 Qdrant 向量数据库
Qdrant 是一个专为AI应用设计的高性能向量数据库,能够高效存储和查询向量数据。Preview 2 提供了一个与 Qdrant 集成的示例项目,开发者可以利用它快速原型化并扩展基于向量数据的应用。这对于需要处理大规模语义搜索或推荐系统的场景尤为重要。
2.3 VS Code 配置支持
对于使用 Visual Studio Code(VS Code)的开发者,Preview 2 增加了对 C# Dev Kit 扩展的增强支持。现在,开发者可以在创建项目时选择配置额外的选项,例如指定AI模型服务提供商(Model Service Provider)和向量存储(Vector Store)。这一改进使得 VS Code 用户能够更灵活地定制项目设置。
3. 安装和使用指南
要开始使用 .NET AI 模板的 Preview 2 版本,你需要先安装模板包。以下是具体步骤:
3.1 安装模板
在终端运行以下命令以安装 Microsoft.Extensions.AI.Templates:
dotnet new install Microsoft.Extensions.AI.Templates

安装完成后,你可以通过以下方式创建新项目:
Visual Studio:在“文件 > 新建项目”中搜索“AI Chat”模板。 VS Code:使用 C# Dev Kit 扩展,通过 .NET: New Project...命令选择“AI Chat Web App”模板。.NET CLI:在终端运行以下命令:
dotnet new aichatweb
3.2 项目配置
创建项目时,你可以选择AI模型提供商(如 GitHub Models、OpenAI 或 Azure OpenAI)和向量存储(如本地存储、Azure AI Search 或 Qdrant)。这些选项为开发者提供了高度的灵活性。
4. .NET Aspire 的集成

.NET Aspire 的引入是 Preview 2 的一个重要亮点。它通过以下方式增强了 .NET AI 模板的功能:
4.1 本地模型支持:Ollama
Ollama 是一个开源工具,允许开发者在本地通过容器化方式部署AI模型。借助 .NET Aspire 的社区工具包(Community Toolkit),开发者可以通过 docker.io/ollama/ollama 镜像轻松运行本地模型。这种方式非常适合快速原型设计和测试。
4.2 云端模型支持
Preview 2 支持与多种云端AI服务集成,包括:
GitHub Models:提供便捷的模型访问。 OpenAI 和 Azure OpenAI:通过 .NET Aspire 的 Azure OpenAI 集成,开发者可以连接到这些强大的语言模型。 Azure AI Search 和 Qdrant:提供增强的语义搜索功能,支持高效的向量数据索引和查询。

4.3 使用示例
在启用 .NET Aspire 编排后,模板会生成一个包含 .AppHost 项目的解决方案。这个项目负责配置AI服务和向量存储的集成,开发者只需简单调整即可投入使用。

5. 在开发工具中使用模板
5.1 Visual Studio
在 Visual Studio 中,安装模板后,你可以通过以下步骤创建项目:
打开“文件 > 新建项目”。 在搜索框中输入“AI Chat”或选择“AI”项目类型。 配置项目名称、位置,并选择AI模型提供商和向量存储。


5.2 Visual Studio Code
在 VS Code 中,使用 C# Dev Kit 扩展:
运行 .NET: New Project...命令。选择“AI Chat Web App”模板。 默认情况下,项目将使用 GitHub Models 和本地向量存储,你也可以根据需要调整配置。


❝
为了更好地使用Qdrant向量数据库,有兴趣的朋友可以看看我的这篇关于.NET 原生驾驭 AI 新基建实战系列(四):Qdrant ── 实时高效的向量搜索利器
6. 实际应用场景
.NET AI 模板 Preview 2 的设计充分考虑了实际开发需求,以下是几个典型应用场景:
6.1 聊天应用
基于 RAG(Retrieval Augmented Generation,检索增强生成)模式,开发者可以构建与自定义数据交互的聊天应用。例如,你可以用它创建一个能够回答企业内部文档相关问题的智能助手。
6.2 数据摄取
模板内置了数据摄取功能,支持从多种数据源(如 PDF 文件)中提取信息,并进行缓存和处理。这大大简化了数据预处理的工作。
6.3 自定义开发
生成的代码结构清晰,易于修改。开发者可以根据项目需求调整聊天交互逻辑、添加引用跟踪功能,或实现后续建议提示。
7. 性能优化建议
为了提升项目的性能和稳定性,以下是一些实用建议:
持久化存储:在 program.cs文件中,使用 SQLite 数据库替代默认的内存存储,以避免每次启动项目时重复处理数据。例如:builder.Services.AddDbContext(options => options.UseSqlite("Data Source=ingestioncache.db"));向量存储选择:对于大规模数据,推荐使用 Azure AI Search 或 Qdrant,而不是本地存储,以获得更好的性能和扩展性。
8. 未来展望
微软计划在未来版本中进一步扩展 .NET AI 模板的功能,包括:
Console 和 Minimal API 模板:支持更多类型的项目。 Azure AI Foundry 支持:提供更丰富的云端AI工具。 Semantic Kernel 集成:与 Semantic Kernel 团队合作,增强语义处理能力。
此外,模板预计将默认包含在 .NET SDK 中,进一步降低使用门槛。
结语
.NET AI 模板的 Preview 2 版本为开发者提供了一个功能强大且易于使用的工具集,极大地简化了AI应用的开发流程。通过集成 .NET Aspire、Qdrant 等先进技术,它不仅提升了开发效率,还为云原生AI应用的构建提供了坚实支持。无论你是想快速原型化一个聊天应用,还是开发复杂的AI驱动系统,这个模板都值得一试。相信未来随着社区的持续参与和微软的不断迭代,.NET AI 模板必将成为 .NET 生态中不可或缺的一部分。
参考链接
.NET AI Preview 2 发布:支持 Aspire 与 Qdrant 向量库集成,加速云原生 AI 开发的更多相关文章
- 解锁云原生 AI 技能 - 开发你的机器学习工作流
按照上篇文章<解锁云原生 AI 技能 | 在 Kubernetes 上构建机器学习系统>搭建了一套 Kubeflow Pipelines 之后,我们一起小试牛刀,用一个真实的案例,学习如何 ...
- 公有云上构建云原生 AI 平台的探索与实践 - GOTC 技术论坛分享回顾
7 月 9 日,GOTC 2021 全球开源技术峰会上海站与 WAIC 世界人工智能大会共同举办,峰会聚焦 AI 与云原生两大以开源驱动的前沿技术领域,邀请国家级研究机构与顶级互联网公司的一线技术专家 ...
- 云原生 AI 前沿:Kubeflow Training Operator 统一云上 AI 训练
分布式训练与 Kubeflow 当开发者想要讲深度学习的分布式训练搬上 Kubernetes 集群时,首先想到的往往就是 Kubeflow 社区中形形色色的 operators,如 tf-operat ...
- 解锁云原生 AI 技能|在 Kubernetes 上构建机器学习系统
本系列将利用阿里云容器服务,帮助您上手 Kubeflow Pipelines. 介绍 机器学习的工程复杂度,除了来自于常见的软件开发问题外,还和机器学习数据驱动的特点相关.而这就带来了其工作流程链路更 ...
- 京东云与AI 10 篇论文被AAAI 2020 收录,京东科技实力亮相世界舞台
美国时间2月7-12日,AAAI 2020大会在纽约正式拉开序幕,AAAI作为全球人工智能领域的顶级学术会议,每年评审并收录来自全球最顶尖的学术论文,这些学术研究引领着技术的趋势和未来.京东云与AI在 ...
- 云原生的弹性 AI 训练系列之一:基于 AllReduce 的弹性分布式训练实践
引言 随着模型规模和数据量的不断增大,分布式训练已经成为了工业界主流的 AI 模型训练方式.基于 Kubernetes 的 Kubeflow 项目,能够很好地承载分布式训练的工作负载,业已成为了云原生 ...
- 顶会两篇论文连发,华为云医疗AI低调中崭露头角
摘要:2020年国际医学图像计算和计算机辅助干预会议(MICCAI 2020),论文接收结果已经公布.华为云医疗AI团队和华中科技大学合作的2篇研究成果入选. 同时两篇研究成果被行业顶会收录,华为云医 ...
- 灵雀云发布云原生制品仓库Harbor企业版(Alauda Registry Service for Harbor)
灵雀云发布云原生制品仓库Harbor企业版(Alauda Registry Service for Harbor) 近日,国内领先的云原生全栈私有云提供商灵雀云宣布,推出企业版云原生制品仓库Ala ...
- [翻译] .NET Core 2.1 Preview 1 发布
[翻译] .NET Core 2.1 Preview 1 发布 原文: Announcing .NET Core 2.1 Preview 1 今天,我们宣布发布 .NET Core 2.1 Previ ...
- 【翻译】.NET 5 Preview 1 发布
.NET 5 Preview 1 发布 去年年底,我们发布了.NET Core 3.0和3.1.这些版本添加了桌面应用程序模型Windows Forms(WinForms)和WPF,ASP.NET B ...
随机推荐
- mybatis之使用Map和模糊查询
使用Map 接口类 package com.yeyue.dao; import com.yeyue.pojo.User; import java.util.List; import java.util ...
- .Net 配置绑定 IOptions
准备 首先准备下appsettins.json以及目标类 appsettins.json "StudentSettings": { "Id": 1023 ...
- docker镜像是上传与下载
docker也有自己的镜像仓库,官方仓库网站是https://hub.docker.com/. 如果需要将自己的镜像上传至镜像仓库,首先需要在DockerHub创建账号,地址:https://hu ...
- pycharm上传github问题:rejected
我从pycharm上传项目时,遇到的问题: 以下是一些解决思路: 这个错误提示表明,你在尝试将本地代码推送到远程仓库时,远程仓库中已经包含了你本地尚未获取的更改.换句话说,远程仓库的代码比你的本地代码 ...
- 松下机器人示教器AUR01062触摸无反维修
Panasonic松下机器人示教器AUR01062触摸无反应解决方案 松下机器人示教器现象:触摸屏幕时鼠标箭头无任何动作,没有发生位置改变. 原因:造成此现象产生的原因很多,下面就松下机器人维修中示教 ...
- 安川YASKAWA工业机器人板卡维修策略
一.安川YASKAWA工业机器人板卡识别故障症状 首先,需要准确识别电路板故障的症状.这通常包括安川YASKAWA机器人操作不稳定.错误代码频繁出现.某些功能失效或整体性能下降等.通过仔细观察和诊断, ...
- JUC并发—10.锁优化与锁故障
大纲 1.标志位修改场景优先使用volatile(服务优雅停机) 2.数值递增场景优先使用Atomic类(心跳计数器) 3.共享变量仅对当前线程可见的场景优先使用ThreadLocal(edits l ...
- JavaGUI - [02] 案例Demo
题记部分 一.WindowDemo 窗口 package com.harley; import java.awt.*; /** * @author harley * @date 2024/05/06 ...
- 获取另一个frame中的元素
<frameset cols="12,88" frameborder="no" noresize borders="no" frame ...
- 豆包:php如何模拟多客户端访问服务器
在 PHP 中模拟多客户端访问服务器可以通过以下几种方式实现,具体方法根据需求选择: 方法 1:使用 cURL 多请求(Multi Handle) 通过 curl_multi_* 系列函数实现并发 ...