.NET AI 模板
引言
随着人工智能技术的快速发展,AI应用开发已成为开发者必备的技能之一。然而,对于许多.NET开发者来说,如何快速上手AI开发仍然是一个挑战。微软推出的.NET AI模板预览版正是为了解决这一问题而生,为开发者提供了构建智能聊天应用的脚手架和最佳实践指南。
本文将详细介绍如何安装和使用这个模板,探索其核心功能,并通过实际案例展示如何扩展其能力,帮助.NET开发者快速进入AI开发领域。
1. 安装与基本使用
1.1 安装模板
要开始使用.NET AI模板,首先需要在终端中运行以下命令安装模板包:
dotnet new install Microsoft.Extensions.AI.Templates
安装完成后,您可以通过多种方式创建新项目:
- 在Visual Studio中通过"文件 > 新建 > 项目"菜单
- 在Visual Studio Code中使用C# Dev Kit扩展
- 直接在命令行运行:
dotnet new aichatweb
1.2 项目结构概览
该模板生成的项目包含以下关键组件:
- Blazor Web应用:基于现代Web技术构建的聊天界面
- Microsoft.Extensions.AI抽象库:提供与AI模型交互的统一接口
- Microsoft.Extensions.VectorData:处理向量数据的核心组件
- 数据提取与处理服务:位于
/Services/Ingestion/DataIngestor.cs
1.3 快速启动
默认配置使用GitHub Models作为AI提供商和本地向量存储,几乎不需要额外设置即可开始开发。这种设计大大降低了入门门槛,开发者可以立即专注于业务逻辑而非基础设施。

2. 核心功能解析
与自定义数据聊天:该模板允许您创建基于聊天的 UI,与示例 PDF 或您的自定义数据进行交互。
本地与 Azure 集成:支持本地向量存储以进行原型开发,同时也支持 Azure AI Search 以实现更高级的配置。
可自定义的代码:生成的代码包含用于聊天交互、引用追踪和后续建议的 UI 组件,您可以根据需要自定义或移除这些组件。
数据提取:模板包含数据提取、缓存和处理的代码,使您能够处理各种数据源和格式。
3. 开发环境集成
3.1 Visual Studio体验
在VS中创建项目的步骤:
- 通过模板安装后,搜索"AI Chat"
- 选择项目名称和位置
- 配置AI提供商和向量存储
- 开始开发
3.2 VS Code配置
对于VS Code用户需要:
- 安装C# Dev Kit扩展
- 使用".NET: New Project..."命令
- 选择AI聊天模板
- 同样配置提供商和存储选项

3.3 跨平台支持
模板完全支持:
- Windows开发环境
- macOS开发
- Linux开发(需.NET支持)
4. 扩展功能开发
4.1 添加自定义工具
通过Microsoft.Extensions.AI可以轻松扩展功能。例如添加天气查询:
private async Task<string> GetWeather([Description("The city, correctly capitalized")] string city)
{
string[] weatherValues = ["Sunny", "Cloudy", "Rainy", "Snowy", "Balmy", "Bracing"];
return city == "London" ? "Drizzle" : weatherValues[Random.Shared.Next(weatherValues.Length)];
}
然后注册到聊天选项:
chatOptions.Tools =
[
AIFunctionFactory.Create(SearchAsync),
AIFunctionFactory.Create(GetWeather)
];

结论
.NET AI模板预览版为开发者提供了快速进入AI领域的捷径,其核心价值体现在:
- 降低门槛:通过预制模板和默认配置,开发者无需深入了解AI基础设施即可构建智能应用
- 灵活扩展:基于Microsoft.Extensions.AI的架构允许深度定制和功能扩展
- 生产就绪:支持从原型到生产的全流程,特别是与Azure服务的无缝集成
- 现代开发体验:完美融入Visual Studio和VS Code工作流,符合.NET开发者习惯
.NET AI 模板的更多相关文章
- 【AI】Android Pie中引入的AI功能
前言 “无AI,不未来”,绝对不是一句豪情壮语,AI早已进入到了我们生活当中.去年Google发布的Android Pie系统在AI功能方面就做了重大革新,本文就对Google在新系统中引入的AI功能 ...
- AI开发利器:HiLens Studio技术解读
摘要:传统的AI应用开发和部署意味着高成本和高门槛,借助HiLens Studio,AI应用开发和部署仅需要三步. 曾几何时, 在我们青春年少时, 当我们看到某篇AI的技术文章时, 心中总不免想要在一 ...
- PLC_SIM 出现I/O访问错误-技术论坛-工业支持中心-西门子中国
PLC_SIM 作为SIEMENS S7-300/400 系列PLC 的仿真软件,在使用时需要有些注意事项,毕竟任何的仿真软件和真正的设备还是有一定差异的,由此而产生的误会经常会令很多客户摸不着头脑, ...
- 【转】iOS 7免费设计资源汇总
原文链接:http://mobile.51cto.com/hot-406317.htm#585532-tsina-1-28470-7e393678b940a4d55500bf3feae3d2e9 以下 ...
- Grafana-监控-报警-运维文档
Grafana运维文档 2019/09/23 Chenxin Wuweiwei 参考资料 https://grafana.com/grafana https://blog.52itstyle.vip/ ...
- 一款批量修改AE模板的工具
一.需求分析 对于视频后期剪辑及相关从业人员来说,AE(After Effects)模板效果是一个不错的开始点.在模板效果的基础上,可以很快的做出各种炫酷的后期效果.但是在网上下载的模板工程中,往往包 ...
- MMORPG大型游戏设计与开发(服务器 AI 控制器)
上一篇我们说了基础接口的组成,想必大家对AI中的基础方法有了一定的了解,而基础接口只能一个通用的,要实现不同的类别还需子类中实现,这就形成了玩家.主动.被动.木桩这些类型.不同类型的AI需要有一个统一 ...
- MMORPG大型游戏设计与开发(服务器 AI 概述)
游戏世界中我们拥有许多对象,常见的就是角色自身以及怪物和NPC,我们可以见到怪物和NPC拥有许多的行为,比如说怪物常常见到敌对的玩家就会攻击一样,又如一些NPC来游戏世界中走来走去,又有些怪物和NPC ...
- VBA嘘嘘嘘(1)——将Excel数据填入到已存在的Word模板表格(实例应用)
傻瓜可以写出机器读懂得代码,但写出让人能读懂的代码的是优秀程序员 Sub 填充() Application.ScreenUpdating = False 'ScreenUpdating 是控制你的ex ...
- [AHOI 2009] 维护序列(线段树模板题)
1798: [Ahoi2009]Seq 维护序列seq Time Limit: 30 Sec Memory Limit: 64 MB Description 老师交给小可可一个维护数列的任务,现在小 ...
随机推荐
- 【逆向】修改LightCycler® 96文件Summary日期
修改LightCycler 96文件Summary日期 零.需求 来自我的一个朋友 她是要准备改某个软件(LightCycler 96)保存的数据(时间和日期),当时得知此意图后心里已经判了8成不能改 ...
- Java24发布,精心总结
Java 24作为2025年3月发布的最新版本,延续了Java平台每半年发布一次的节奏,带来了24项重要改进.本文将按照核心改进领域分类,详细解析每个特性的技术原理和实际价值,帮助开发者全面了解这一版 ...
- ASP.NET Session 清除
// 值为 null,这样对应的 Session 会继续存在,但值为 null Session["UserId"] = null; // 移除指定 Session Session. ...
- IE 条件注释
参考文档 IE6 IE7 IE8 IE9 IE10 Css hack及IE条件注释法 IE的有条件注释判定IE版本详解(附实例代码)
- RocketMQ的Producer是如何发送消息的
RocketMQ 的 Producer 发送消息过程涉及多个步骤,包括初始化.消息创建.发送方式选择 1.Producer初始化 首先,我们需要创建并初始化一个Producer示例 这段代码完成了以下 ...
- 从excle中读取数据的方法
倒入两个库:ExcelLibrary,Collections 首先,必须注意文件格式为xls 表格内容 open_Excel C:\\Users\\Beckham\\Desktop\\a.xls ...
- 掌握Tortoise-ORM高级异步查询技巧
title: 掌握Tortoise-ORM高级异步查询技巧 date: 2025/04/22 12:05:33 updated: 2025/04/22 12:05:33 author: cmdrago ...
- mysql免密登录
开启mysql免密登录, vi /etc/my.cnf [mysqld]下添加 skip-grant-tables , 保存后重启mysql服务:service mysqld restart
- 解决get和post请求提交数据中文乱码问题
目录 get请求乱码 乱码案例 解决办法 方法一:进行转码 方法二:修改tomcat中conf/server.xml post请求乱码 解决办法:在取参数之前设置编码格式 get请求乱码 Tomcat ...
- Java Factory工厂模式
/** * 工厂类:用于连接接口和子类,尽量减少客户端的复杂性 * 2017-08-25 * @author Junwei Zhu * */ interface Fruit { public void ...