技术速递|使用 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-minitext-embedding-3-small 模型部署到你的 Azure OpenAI 服务资源。在创建这些部署时,请将部署名称与模型名称保持一致(gpt-4o-minitext-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-minitext-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 模型提问关于示例文件中导入数据的问题。

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

下一步

相关推荐
一念&28 分钟前
今日科技热点 | AI加速变革,量子计算商用化,5G应用新机遇
人工智能·科技·量子计算
严文文-Chris44 分钟前
【GPT-5 与 GPT-4 的主要区别?】
人工智能·gpt
小清兔1 小时前
c#基础知识
开发语言·数据库·学习·unity·c#·游戏引擎·.net
过往入尘土2 小时前
计算机视觉:从 “看见” 到 “理解”,解锁机器感知世界的密码
人工智能
飞哥数智坊2 小时前
别再组团队了,AI时代一个人就能创业
人工智能·创业
严文文-Chris3 小时前
GPT5的Test-time compute(测试时计算)是什么?
人工智能
Java中文社群3 小时前
白嫖ClaudeCode秘籍大公开!超详细
人工智能·后端
迪菲赫尔曼4 小时前
大模型入门实战 | 基于 YOLO 数据集微调 Qwen2.5-VL-3B-Instruct 的目标检测任务
人工智能·yolo·目标检测·大模型·微调·新手入门·qwen2.5