引言

随着人工智能(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 的集成

.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服务和向量存储的集成,开发者只需简单调整即可投入使用。


选中Aspire后的项目结构

5. 在开发工具中使用模板

5.1 Visual Studio

在 Visual Studio 中,安装模板后,你可以通过以下步骤创建项目:

  1. 打开“文件 > 新建项目”。
  2. 在搜索框中输入“AI Chat”或选择“AI”项目类型。
  3. 配置项目名称、位置,并选择AI模型提供商和向量存储。

搜索AI Chat模版

配置AI Chat模版

5.2 Visual Studio Code

在 VS Code 中,使用 C# Dev Kit 扩展:

  1. 运行 .NET: New Project... 命令。
  2. 选择“AI Chat Web App”模板。
  3. 默认情况下,项目将使用 GitHub Models 和本地向量存储,你也可以根据需要调整配置。

创建AI Chat项目

选择向量数据库

为了更好地使用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 开发​的更多相关文章

  1. 解锁云原生 AI 技能 - 开发你的机器学习工作流

    按照上篇文章<解锁云原生 AI 技能 | 在 Kubernetes 上构建机器学习系统>搭建了一套 Kubeflow Pipelines 之后,我们一起小试牛刀,用一个真实的案例,学习如何 ...

  2. 公有云上构建云原生 AI 平台的探索与实践 - GOTC 技术论坛分享回顾

    7 月 9 日,GOTC 2021 全球开源技术峰会上海站与 WAIC 世界人工智能大会共同举办,峰会聚焦 AI 与云原生两大以开源驱动的前沿技术领域,邀请国家级研究机构与顶级互联网公司的一线技术专家 ...

  3. 云原生 AI 前沿:Kubeflow Training Operator 统一云上 AI 训练

    分布式训练与 Kubeflow 当开发者想要讲深度学习的分布式训练搬上 Kubernetes 集群时,首先想到的往往就是 Kubeflow 社区中形形色色的 operators,如 tf-operat ...

  4. 解锁云原生 AI 技能|在 Kubernetes 上构建机器学习系统

    本系列将利用阿里云容器服务,帮助您上手 Kubeflow Pipelines. 介绍 机器学习的工程复杂度,除了来自于常见的软件开发问题外,还和机器学习数据驱动的特点相关.而这就带来了其工作流程链路更 ...

  5. 京东云与AI 10 篇论文被AAAI 2020 收录,京东科技实力亮相世界舞台

    美国时间2月7-12日,AAAI 2020大会在纽约正式拉开序幕,AAAI作为全球人工智能领域的顶级学术会议,每年评审并收录来自全球最顶尖的学术论文,这些学术研究引领着技术的趋势和未来.京东云与AI在 ...

  6. 云原生的弹性 AI 训练系列之一:基于 AllReduce 的弹性分布式训练实践

    引言 随着模型规模和数据量的不断增大,分布式训练已经成为了工业界主流的 AI 模型训练方式.基于 Kubernetes 的 Kubeflow 项目,能够很好地承载分布式训练的工作负载,业已成为了云原生 ...

  7. 顶会两篇论文连发,华为云医疗AI低调中崭露头角

    摘要:2020年国际医学图像计算和计算机辅助干预会议(MICCAI 2020),论文接收结果已经公布.华为云医疗AI团队和华中科技大学合作的2篇研究成果入选. 同时两篇研究成果被行业顶会收录,华为云医 ...

  8. 灵雀云发布云原生制品仓库Harbor企业版(Alauda Registry Service for Harbor)

      灵雀云发布云原生制品仓库Harbor企业版(Alauda Registry Service for Harbor) 近日,国内领先的云原生全栈私有云提供商灵雀云宣布,推出企业版云原生制品仓库Ala ...

  9. [翻译] .NET Core 2.1 Preview 1 发布

    [翻译] .NET Core 2.1 Preview 1 发布 原文: Announcing .NET Core 2.1 Preview 1 今天,我们宣布发布 .NET Core 2.1 Previ ...

  10. 【翻译】.NET 5 Preview 1 发布

    .NET 5 Preview 1 发布 去年年底,我们发布了.NET Core 3.0和3.1.这些版本添加了桌面应用程序模型Windows Forms(WinForms)和WPF,ASP.NET B ...

随机推荐

  1. mybatis之使用Map和模糊查询

    使用Map 接口类 package com.yeyue.dao; import com.yeyue.pojo.User; import java.util.List; import java.util ...

  2. .Net 配置绑定 IOptions

    准备   首先准备下appsettins.json以及目标类   appsettins.json "StudentSettings": { "Id": 1023 ...

  3. docker镜像是上传与下载

    docker也有自己的镜像仓库,官方仓库网站是https://hub.docker.com/.   如果需要将自己的镜像上传至镜像仓库,首先需要在DockerHub创建账号,地址:https://hu ...

  4. pycharm上传github问题:rejected

    我从pycharm上传项目时,遇到的问题: 以下是一些解决思路: 这个错误提示表明,你在尝试将本地代码推送到远程仓库时,远程仓库中已经包含了你本地尚未获取的更改.换句话说,远程仓库的代码比你的本地代码 ...

  5. 松下机器人示教器AUR01062触摸无反维修

    Panasonic松下机器人示教器AUR01062触摸无反应解决方案 松下机器人示教器现象:触摸屏幕时鼠标箭头无任何动作,没有发生位置改变. 原因:造成此现象产生的原因很多,下面就松下机器人维修中示教 ...

  6. 安川YASKAWA工业机器人板卡维修策略

    一.安川YASKAWA工业机器人板卡识别故障症状 首先,需要准确识别电路板故障的症状.这通常包括安川YASKAWA机器人操作不稳定.错误代码频繁出现.某些功能失效或整体性能下降等.通过仔细观察和诊断, ...

  7. JUC并发—10.锁优化与锁故障

    大纲 1.标志位修改场景优先使用volatile(服务优雅停机) 2.数值递增场景优先使用Atomic类(心跳计数器) 3.共享变量仅对当前线程可见的场景优先使用ThreadLocal(edits l ...

  8. JavaGUI - [02] 案例Demo

    题记部分 一.WindowDemo 窗口 package com.harley; import java.awt.*; /** * @author harley * @date 2024/05/06 ...

  9. 获取另一个frame中的元素

    <frameset cols="12,88" frameborder="no" noresize borders="no" frame ...

  10. 豆包:php如何模拟多客户端访问服务器

    在 PHP 中模拟多客户端访问服务器可以通过以下几种方式实现,具体方法根据需求选择: 方法 1:使用 cURL 多请求(Multi Handle) 通过  curl_multi_*  系列函数实现并发 ...