.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提供商和本地向量存储,几乎不需要额外设置即可开始开发。这种设计大大降低了入门门槛,开发者可以立即专注于业务逻辑而非基础设施。

Image visual studio template options

2. 核心功能解析

  • 与自定义数据聊天:该模板允许您创建基于聊天的 UI,与示例 PDF 或您的自定义数据进行交互。

  • 本地与 Azure 集成:支持本地向量存储以进行原型开发,同时也支持 Azure AI Search 以实现更高级的配置。

  • 可自定义的代码:生成的代码包含用于聊天交互、引用追踪和后续建议的 UI 组件,您可以根据需要自定义或移除这些组件。

  • 数据提取:模板包含数据提取、缓存和处理的代码,使您能够处理各种数据源和格式。

3. 开发环境集成

3.1 Visual Studio体验

在VS中创建项目的步骤:

  1. 通过模板安装后,搜索"AI Chat"
  2. 选择项目名称和位置
  3. 配置AI提供商和向量存储
  4. 开始开发
3.2 VS Code配置

对于VS Code用户需要:

  1. 安装C# Dev Kit扩展
  2. 使用".NET: New Project…"命令
  3. 选择AI聊天模板
  4. 同样配置提供商和存储选项

Image AITemplatePreview VSCode

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)
];

Image weather code example

结论

.NET AI模板预览版为开发者提供了快速进入AI领域的捷径,其核心价值体现在:

  1. 降低门槛:通过预制模板和默认配置,开发者无需深入了解AI基础设施即可构建智能应用
  2. 灵活扩展:基于Microsoft.Extensions.AI的架构允许深度定制和功能扩展
  3. 生产就绪:支持从原型到生产的全流程,特别是与Azure服务的无缝集成
  4. 现代开发体验:完美融入Visual Studio和VS Code工作流,符合.NET开发者习惯

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/88286.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/88286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EFK9.0.3 windows搭建

背景 最近某个功能要使用到ELK&#xff08;ElasticSearch、Logstash、Kibana&#xff09;采集日志&#xff0c;对数据进行分析&#xff0c;网上百度了一下&#xff0c;目前推荐不使用Logstash而使用Filebeat ,即EFK。 下载链接 Elasticsearch Kibana Filebeat 安装前提 …

上海新华医院奉贤院区:以元宇宙技术重构未来医疗生态

引言&#xff1a;当医疗遇上元宇宙在数字化转型的浪潮中&#xff0c;上海新华医院奉贤院区以"智慧医院"为定位&#xff0c;率先构建了"元宇宙医院"雏形。通过AI大模型、三维影像分析、AR手术导航等前沿技术的深度融合&#xff0c;医院正在打造一个覆盖全周…

知识竞赛答题pk小程序用户操作手册

知识竞赛答题 PK 小程序用户操作手册 一、注册与登录 用户首次使用答题pk小程序需上传头像&#xff0c;输入昵称&#xff0c;并选择加入团队。如果是企业内部人员使用可开启白名单功能。二、进入答题 PK 模式 登录后&#xff0c;在小程序首页&#xff0c;您可以看到 “单人挑战…

等大小谱聚类

聚类是一种将具有相似特征的数据点进行分组的方法。它广泛应用于探索性数据分析&#xff0c;并已被证明在模式识别、市场和客户细分、推荐系统、数据压缩以及生物数据分析等许多应用中都发挥着重要作用。 尽管聚类算法种类繁多&#xff0c;但没有一种能够生成点数均衡的聚类。…

〔从零搭建〕数据湖平台部署指南

&#x1f525;&#x1f525; AllData大数据产品是可定义数据中台&#xff0c;以数据平台为底座&#xff0c;以数据中台为桥梁&#xff0c;以机器学习平台为中层框架&#xff0c;以大模型应用为上游产品&#xff0c;提供全链路数字化解决方案。 ✨杭州奥零数据科技官网&#xff…

Java 导出pdf 写出demo 1、需要设置自定义页眉和文字 2、可以插入表格 3、可以插入图片

以下是一个使用 iText 7 库实现 PDF 导出的 Java 示例&#xff0c;包含自定义页眉、文字、表格和图片功能&#xff1a; 添加 Maven 依赖 <dependencies><!-- iText 7 Core --><dependency><groupId>com.itextpdf</groupId><artifactId>ite…

Ntfs!LfsReadRestart函数分析得到Ntfs!LFS_RESTART_PAGE_HEADER

第一部分&#xff1a;0: kd> p Ntfs!LfsPinOrMapData0x8c: f71797f6 ff15a40016f7 call dword ptr [Ntfs!_imp__CcPinRead (f71600a4)] 0: kd> t nt!CcPinRead: 80bf9a5a 6a2c push 2Ch 0: kd> kc# 00 nt!CcPinRead 01 Ntfs!LfsPinOrMapData 02 N…

skywalking-agent-docker镜像

FROM centos:7.9.2009 USER root# 定义 Arthas 目录环境变量 ENV ARTHAS_HOME/opt/arthas# 更改 YUM 源并清理缓存 RUN mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak && \rm -rf /etc/yum.repos.d/* && \curl -o /etc/yum.rep…

数据库开发运维的集成:弥合开发与运维之间的鸿沟

在传统的软件开发工作流程中&#xff0c;数据库变更往往是事后才考虑的问题。应用程序代码遵循定义明确的开发运维实践&#xff0c;包括版本控制、自动测试和持续部署&#xff0c;而数据库变更则经常是由数据库管理员手动执行的高风险操作。这种脱节造成了瓶颈&#xff0c;带来…

PiscTrace应用:从 YOLO-Pose 到深蹲与引体向上计数:实时健身动作分析与实现

随着健身行业的发展&#xff0c;越来越多的智能应用涌现&#xff0c;用于帮助健身者更好地记录和分析运动情况。特别是在体能训练中&#xff0c;俯卧撑和引体向上是两个非常常见的动作&#xff0c;它们通常用来锻炼上半身力量和耐力。为了使训练更加科学和高效&#xff0c;实时…

【unity】webCanvas.enabled = false;和webCanvas.gameObject.SetActive(false);的优缺点比较

在 Unity 中&#xff0c;webCanvas.gameObject.SetActive(false) 和 webCanvas.enabled false 是两种不同的隐藏 UI 的方式&#xff0c;它们的核心区别在于作用范围和对组件状态的影响。理解这些差异能帮助你避免初始化失败、性能问题和逻辑错误。 1核心区别 gameObject.SetAc…

深入探索 pnpm:高效磁盘利用与灵活的包管理解决方案

引言 在现代 JavaScript 开发中&#xff0c;依赖管理效率直接影响开发体验。传统工具如 npm 和 yarn 在大型项目中常面临磁盘冗余和性能瓶颈。pnpm&#xff08;Performant npm&#xff09;通过创新的硬链接和符号链接机制&#xff0c;解决了这些痛点。本文将深入解析 pnpm 的核…

Hive MetaStore的实现和优化

在大数据领域&#xff0c;数据管理与存储至关重要&#xff0c;Hive MetaStore&#xff08;HMS&#xff09;作为 Hive 数据仓库的核心组件&#xff0c;承担着元数据管理的关键职责。随着数据规模不断膨胀&#xff0c;其性能与稳定性面临挑战。本文将深入剖析 HMS 的实现机制&…

一文读懂动态规划:多种经典问题和思路

一、动态规划算法的思想与核心概念框架 1. 动态规划的基本思想 动态规划&#xff08;Dynamic Programming, DP&#xff09;是一种通过将复杂问题分解为重叠子问题&#xff0c;并利用子问题的解来高效解决原问题的方法。其核心思想是避免重复计算&#xff0c;通过存储中间结果&a…

阿幸课堂随机点名

代码功能 这个是一个HTML网页端&#xff0c;简单来说就是可以双击之后运行进行点名。 当然&#xff0c;不局限于课堂点名 代码功能 Excel 导入增强&#xff1a; 增加了列选择器&#xff0c;可以指定从哪一列读取学生姓名 增加了起始行选择器&#xff0c;可以跳过标题行或其…

LeetCode 560: 和为K的子数组

题目描述给定一个整数数组 nums 和一个整数 k&#xff0c;请统计并返回该数组中和为 k 的连续子数组的个数。示例 1&#xff1a;输入&#xff1a;nums [1,1,1], k 2 输出&#xff1a;2示例 2&#xff1a;输入&#xff1a;nums [1,2,3], k 3 输出&#xff1a;2提示&#xff…

微软官方C++构建工具:历史演变、核心组件与现代实践指南

引言&#xff1a;C构建工具的战略意义 在Windows生态系统中&#xff0c;​​微软C构建工具​​&#xff08;Microsoft C Build Tools&#xff09;构成了数百万开发者和应用程序的技术基石。从早期的MS-DOS命令行工具到如今支持​​跨平台开发​​的现代化工具链&#xff0c;微…

探索Cocos_CoilTheRope:一款创新的游戏引擎扩展项目

探索Cocos_CoilTheRope&#xff1a;一款创新的游戏引擎扩展项目 去发现同类优质开源项目:https://gitcode.com/ 是一个基于Cocos2d-x游戏引擎的扩展库&#xff0c;旨在为开发者提供一种简便的方法来实现绳子缠绕和物理交互效果。该项目由DreamLXW开发并维护&#xff0c;为游戏…

爬虫-正则表达式

在线正则表达式测试OSCHINA.NET在线工具,ostools为开发设计人员提供在线工具&#xff0c;提供jsbin在线 CSS、JS 调试&#xff0c;在线 Java API文档,在线 PHP API文档,在线 Node.js API文档,Less CSS编译器&#xff0c;MarkDown编译器等其他在线工具https://tool.oschina.net/…

【BTC】数据结构

目录 那比特币区块链的组织形式到底是以链表的形式&#xff0c;还是树的形式呢&#xff1f; 区块头和区块体与默克尔树的关系 默克尔证明详解 区块链和链表最大的区别就是区块链用哈希指针代替了普通指针。 链表的指针就是指向一个结构体在内存中的地址&#xff0c;而哈希指…