技术速递|使用 AI 应用模板扩展创建一个 .NET AI 应用与自定义数据进行对话

在本快速入门中,你将学习如何使用 .NET AI 应用模板创建一个 .NET AI 应用,与自定义数据进行对话。该模板旨在简化 .NET 构建 AI 应用的上手体验,帮助你处理常见的设置任务和配置。

先决条件

安装 .NET AI 应用模板

AI Chat Web App 模板通过 NuGet 以模板包的形式提供。使用 dotnet new install 命令安装该包:

csharp 复制代码
dotnet new install Microsoft.Extensions.AI.Templates

创建 .NET AI 应用

安装 AI 应用模板后,你可以通过 Visual Studio 界面、Visual Studio Code 或 .NET CLI 来创建入门应用。

Visual Studio
  1. 在 Visual Studio 中,导航到 文件 > 新建 > 项目。

  2. 在"创建新项 目"界面中,搜索 AI Chat Web App ,选择匹配的结果并点击 下一步。

  3. 在"配置新项目 "界面中,输入项目名称和位置,然后点击 下一步。

  4. 在"附加信息"界面:

    • Framework 选项选择 .NET 9.0。

    • AI service provider 选项选择 GitHub Models。

    • Vector store 选项选择 本地磁盘存储(用于原型开发)。

  5. 点击 创建 完成操作。

Visual Studio Code
  1. 在 Visual Studio Code 中打开命令面板。

  2. 搜索 New project ,并选择结果 .NET: New Project。

  3. 在项目模板列表中搜索 AI 进行筛选。

  4. 选择 AI Chat Web App 并按 Enter。

注意

命令面板目前仅支持默认设置。若要在创建模板时配置 AI 平台和向量存储,请使用 Visual Studio 或 .NET CLI 的工作流。

.NET CLI

  1. 在终端窗口中,导航到设备上的一个空目录。

  2. 使用 dotnet new 命令和以下参数创建一个新应用:

csharp 复制代码
dotnet new aichatweb --Framework net9.0 --provider githubmodels --vector-store local

该命令会根据你指定的配置创建一个新的 .NET 9.0 应用。

  1. 在你喜欢的编辑器(例如 Visual Studio Code)中打开新应用:
csharp 复制代码
code .

探索示例应用

你创建的示例应用是一个 Blazor Interactive Server Web 应用,预先配置了常见的 AI 和数据服务。该应用已为你处理了以下内容:

  • 在 csproj 文件 中包含了必要的 Microsoft.Extensions.AI 包及其他依赖,帮助你快速开始 AI 开发。

  • 在 Program.cs 文件 中创建并注册多个可用于依赖注入的 AI 服务:

    • IChatClient 服务:用于与生成式 AI 模型进行对话。

    • IEmbeddingGenerator 服务:用于生成嵌入向量,这是向量搜索功能的核心。

    • JsonVectorStore:作为内存中的向量存储。

  • 注册一个 SQLite 数据库上下文服务来处理文档导入。应用已预配置为会自动导入你添加到项目 Data 文件夹中的文档(包括示例文件)。

  • 提供一个完整的基于 Blazor 组件的聊天 UI。该 UI 支持 AI 响应的富文本格式,并提供例如结果引用等功能。

GitHub Models:配置对 GitHub Models 的访问

要在代码中访问 GitHub Models,你需要创建一个 GitHub 个人访问 token:

  1. 打开 GitHub 账户设置中 Developer Settings 下的 Personal access tokens 页面。

  2. 选择 Generate new token。

  3. 输入 token 名称,在 Permissions 中将 Models 权限设置为 Access: Read-only。

  4. 在页面底部选择 Generate token。

  5. 复制生成的 token,后续步骤中会使用。

Azure OpenAI:创建并认证 Azure OpenAI 服务

要在 .NET AI 模板中使用 Azure OpenAI,你需要创建并认证一个 Azure OpenAI 服务。

创建 Azure OpenAI 服务

  1. 如果你尚未拥有 Azure OpenAI 服务资源,请先创建一个。

  2. 将 gpt-4o-mini 和 text-embedding-3-small 模型部署到你的 Azure OpenAI 服务资源。在创建这些部署时,请将部署名称与模型名称保持一致(gpt-4o-mini 和 text-embedding-3-small ),以匹配模板的默认值。有关如何部署模型,请参阅 Azure OpenAI 文档中的 创建资源。

认证 Azure OpenAI 服务

AI 模板使用 Microsoft Entra ID 实现无密钥、无缝认证。它利用 DefaultAzureCredential 在本地运行时自动检测并使用开发工具中的证书。要连接到服务,请确保你的开发者账户已分配适当的角色,并已登录到本地开发工具。

  1. 为开发者账户分配角色以访问 Azure OpenAI 资源:

    • 在 Azure Portal 中,导航到你的 Azure OpenAI 资源的概览页面。

    • 从左侧导航选择 Access control (IAM)。

    • 为你的 Azure 账户添加 Azure AI Developer 角色分配。

  2. 使用已分配 Azure AI Developer 角色的 Azure 账户登录本地开发工具,如 Visual Studio 或 Azure CLI。

配置应用

AI Chat Web App 在创建完成后几乎可以立即运行。但你需要配置应用,以便使用为 GitHub Models 设置的个人访问 token。默认情况下,应用模板会在项目的本地 .NET 用户机密中查找该值。你可以通过 Visual Studio 界面 或 .NET CLI 来管理用户机密。

注意

若你使用 Azure OpenAI 服务,为避免认证错误,请确保你已使用在 Azure OpenAI 资源上被分配 Azure AI Developer 角色的用户登录 Visual Studio 或 Azure CLI。

Visual Studio
  1. 在 Visual Studio 中,右键点击 Solution Explorer 中的项目,选择 Manage User Secrets 。这会打开一个 secrets.json 文件,你可以在其中存储 API 密钥,而不会被纳入版本控制。

  2. 添加以下键值对:

csharp 复制代码
{
    "GitHubModels:Token": "<your-personal-access-token>"
}
.NET CLI
csharp 复制代码
dotnet user-secrets set GitHubModels:Token <your-personal-access-token>

默认情况下,应用模板使用 gpt-4o-mini 和 text-embedding-3-small 模型。若要尝试其他模型,请在 Program.cs 中更新名称参数:

csharp 复制代码
var chatClient = ghModelsClient.AsChatClient("gpt-4o-mini");
var embeddingGenerator = ghModelsClient.AsEmbeddingGenerator("text-embedding-3-small");

运行并测试应用

  1. 在 Visual Studio 顶部点击 运行 按钮启动应用。片刻后,你应该会在浏览器中看到如下 UI 加载:
  2. 在输入框中输入提示,例如:"What are some essential tools in the survival kit?",向 AI 模型提问关于示例文件中导入数据的问题。

    应用会对你的问题进行回答,并提供数据来源的引用。你可以点击其中一个引用,跳转到示例文件的相关部分。

下一步

相关推荐
向上的车轮14 分钟前
AI音乐创作实战:用Workbuddy定制专属BGM并仿写《Star Sky》
人工智能·ai音乐·workbuddy
宸津-代码粉碎机5 小时前
OpenAI 连夜迎战 Grok Bot 和 Muse:AI 智能体从 “会聊天” 到 “能办事”,现在入场还来得及吗
java·大数据·人工智能·分布式·python
做萤石二次开发的哈哈6 小时前
视频解码器怎么对接?解码上墙、电视墙开窗与场景切换的ISAPI接入实战
人工智能·物联网·监控·视频编解码·大屏端·萤石开放平台·蓝海aiot一站式工作台
Leo.yuan6 小时前
2026年本地化Data Agent优质厂商盘点:哪些产品更适合企业生产环境
大数据·数据库·人工智能
长谷深风1117 小时前
Tool与Skill:AI能力设计的分水岭
java·人工智能·ai·大模型·aiagent
科技观察哨7 小时前
六足平台选型与纳米定位系统集成:HEB-640六自由度位移台在半导体光刻对准中的参数边界与国产替代评估
前端·人工智能
云上先途7 小时前
任务智能体可以自动完成哪些类型工作,是不是只能做简单重复操作?
大数据·人工智能
明志数科7 小时前
具身智能数据供给的分层:分布式采集与入厂采集的工程边界分析
人工智能·机器学习·机器人
像风一样自由20207 小时前
41.用FastAPI搭建一个RAG后端需要哪些接口
人工智能·大模型·fastapi·rag·智能体
小蒋观天下7 小时前
两轮车检测AI摄像头——2026行业竞争格局、商业模式与核心痛点
大数据·人工智能·安全·计算机视觉·ai大模型