游乐游手机版
首页/AI教程/文章详情

SemanticKernel学习环境搭建指南

时间:2026-06-18 16:52
安装 NET 9 SDK 第一步,先搭建好开发环境。请前往 [dot net download](https: dot net download) 官方页面,选择对应系统的 SDK 版本进行下载与安装。安装完成后,在终端执行 `dotnet --info` 或 `dotnet --version

安装 .NET 9 SDK

第一步,先搭建好开发环境。请前往 [dot.net/download](https://dot.net/download) 官方页面,选择对应系统的 SDK 版本进行下载与安装。安装完成后,在终端执行 `dotnet --info` 或 `dotnet --version`,若能正常显示版本号,即表明环境配置成功。

安装 VS Code

编辑器方面,推荐使用轻量且高效的 VS Code。同样,前往 [code.visualstudio.com/download](https://code.visualstudio.com/download) 下载安装包,按默认设置完成安装即可。

安装 VS Code 插件

编辑器就绪后,还需安装两个关键扩展: 1. **C# 相关插件**:这是编写 .NET 代码的基础支持。

C# PluginsC# Plugins

2. **Polyglot Notebooks 插件**:这是今天的主角,能让你在 VS Code 中像使用 Jupyter Notebook 一样,以交互式方式编写 C# 代码。

polyglotpolyglot

Polyglot Notebooks 使用教学

插件安装完毕后,就可以创建你的第一个 Notebook 了。下面梳理几个常用操作,带你快速掌握。

创建笔记

有两种常用创建方式: * **快捷键**:按下 `Ctrl/Cmd + Shift + P` 调出命令面板,输入并选择 `Polyglot Notebook: Create new blank notebook`。然后根据提示选择文件后缀(`.dib` 或 `.ipynb`)及编程语言(如 C#),即可创建成功。 * **直接新建文件**:更直接的方法是在项目文件夹中新建一个文件,将后缀改为 `.dib` 或 `.ipynb`,然后在文件右上角点击 `Select Kernel`,选择 `.NET Interactive` 内核即可。 > 关于文件格式,说明一下:`.ipynb` 是 Jupyter 标准格式,会保存每次运行的结果,因此文件体积较大。而 `.dib` 是 Polyglot Notebooks 引入的新格式,仅存储代码和文档,不保留输出结果,更适合用 Git 进行版本管理,推荐使用。

安装 Nuget 包

在 Notebook 中安装第三方库,无需使用传统的 `dotnet add package` 命令,而是通过特殊指令完成。 * **引用 Nuget 包**:使用 `#r "nuget:<包名>[,<版本号>]"` 命令。版本号为可选项,若不指定则默认安装最新稳定版。 * `#r "nuget: Microsoft.SemanticKernel"` // 安装最新正式版 * `#r "nuget: Microsoft.SemanticKernel, *-*"` // 安装最新预览版 * `#r "nuget: Microsoft.SemanticKernel, 1.11.1"` // 安装指定版本 * **指定 Nuget 源**:若需从自定义源拉取包,可使用 `#i "nuget: {源地址}"` 指定。 以下是实际操作示例,安装后会自动显示已安装的包信息:
// 安装最新Semantic Kernel正式包
#r "nuget: Microsoft.SemanticKernel"
Installed Packages
Microsoft.SemanticKernel, 1.40.1
// 安装指定版本的OpenAI Connectors 正式包
#r "nuget: Microsoft.SemanticKernel.Connectors.OpenAI, 1.40.1"
Installed Packages
microsoft.semantickernel.connectors.openai, 1.40.1
// 安装最新的Plugins预览包
#r "nuget: Microsoft.SemanticKernel.Plugins.Core, *-*"
Installed Packages
Microsoft.SemanticKernel.Plugins.Core, 1.40.1-alpha

定义类

在 Notebook 中,你可以像在普通 C# 文件中一样定义类并直接使用。
// 定义一个Person类
public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }

    override public string ToString()
    {
        return $"{FirstName} {LastName} is {Age} years old.";
    }
}

var person = new Person
{
    FirstName = "John",
    LastName = "Doe",
    Age = 25
};

Console.WriteLine(person);
person.Display();

引入外部类文件

将通用辅助类放到单独的 `.cs` 文件中,再通过 `#!import` 指令导入 Notebook,能让主笔记更简洁。例如,创建一个 `Config` 文件夹,并在其中放置 `EnumHelper.cs` 文件。
// Config/EnumHelper.cs
using System.ComponentModel;

public class EnumHelper
{
    public static string GetDescription(Enum value)
    {
        var field = value.GetType().GetField(value.ToString());
        var attributes = (DescriptionAttribute[])field.GetCustomAttributes(typeof(DescriptionAttribute), false);
        return attributes.Length > 0 ? attributes[0].Description : value.ToString();
    }
}
然后在 Notebook 中导入并调用:
// 导入外部文件
#!import Config/EnumHelper.cs

enum DayOfWeek
{
    [Description("星期一")]
    Monday = 1,
    [Description("星期二")]
    Tuesday = 2,
    [Description("星期三")]
    Wednesday = 3,
    [Description("星期四")]
    Thursday = 4,
    [Description("星期五")]
    Friday = 5,
    [Description("星期六")]
    Saturday = 6,
    [Description("星期日")]
    Sunday = 7
}

var desc = EnumHelper.GetDescription(DayOfWeek.Monday);
desc.Display();
星期一

禁用 Warning

有时为了试用预览版库(例如 Semantic Kernel 的实验性功能),会遇到编译器警告。可以使用 `#pragma` 指令在代码块局部屏蔽这些警告。
using Microsoft.SemanticKernel.Plugins.Core;

#pragma warning disable SKEXP0050
typeof(MathPlugin).Display();
#pragma warning restore SKEXP0050

交互式输入

最后,一个非常实用的功能:在 Notebook 中实现交互式输入,等待用户键入信息。这在演示或需要动态参数的场景中格外有用。
//交互式输入:获取用户输入
using PolyglotKernel = Microsoft.DotNet.Interactive.Kernel;

var input = await PolyglotKernel.GetInputAsync("Pick a number.");
input.Display();

var input2 = await PolyglotKernel.GetPasswordAsync("Pick a pwd.");
input2.Display();
以上就是从零搭建环境到上手 Polyglot Notebooks 的完整流程。熟练掌握这些操作后,编写 .NET 项目示例、进行技术验证的效率将显著提升。
来源:https://cloud.tencent.com.cn/developer/article/2691315
上一篇AI Agent全面介绍与核心特点解析 下一篇UI设计技能到底有没有用 用Codex跑一遍实测分享
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
RAG四标融合企业知识资产体系四库协同GEO优化实践
AI教程 · 2026-07-01

RAG四标融合企业知识资产体系四库协同GEO优化实践

生成式AI正在彻底改写信息检索的底层逻辑。传统SEO依赖关键词堆砌和外链建设的策略,在大模型的内容采信规则下已经基本失效。取而代之的,是生成式引擎优化(GEO)。它不再关注外链数量,而是重点衡量你的知识是否结构化、证据链是否坚实、信源是否可靠——这些维度才是RAG(检索增强生成)架构真正看重的核心指

一个普通上班人分享WorkBuddy使用心得与真实体验
AI教程 · 2026-07-01

一个普通上班人分享WorkBuddy使用心得与真实体验

前言 最近我开始使用WorkBuddy——这是腾讯推出的一款AI办公工作台。差不多用了一周时间,趁印象还新鲜,把真实的使用感受记录下来,给还在犹豫的朋友做个参考。不吹不黑,只说实际体验。 初印象:不只是聊天机器人 之前用过不少AI工具,大多数就是个对话框,你问它答,答完就结束了。WorkBuddy不

AI幻觉变真功能实战教程:App Inventor 2视频录制拓展一周开发实录
AI教程 · 2026-07-01

AI幻觉变真功能实战教程:App Inventor 2视频录制拓展一周开发实录

先讲一个颇具戏剧性的开端。 这件事的开端颇显荒诞——有用户前来咨询,称AI Pro版的介绍中提到我们有一款“视频录制拓展”。团队全体成员都感到困惑,翻遍产品列表,发现根本不存在该组件。AI那种“一本正经胡说八道”的能力,这次确实让我们陷入尴尬。 按常理,此事到此便可结束——一句“抱歉,暂时没有这个拓

别再混淆OLAP和SQL-on-Hadoop两者查询本质不同
AI教程 · 2026-07-01

别再混淆OLAP和SQL-on-Hadoop两者查询本质不同

OLAP和SQL-on-Hadoop虽都使用SQL查询数据,但本质不同。SQL-on-Hadoop负责海量数据批量计算与ETL,查询速度秒级至分钟级;OLAP通过预聚合实现毫秒级多维分析,适合BI报表。两者在数据平台分工协作,前者是后厨加工,后者是前台快速服务。

GEO优化深度解析:AI偏好FAQ还是长文内容?
AI教程 · 2026-07-01

GEO优化深度解析:AI偏好FAQ还是长文内容?

在GEO优化中,AI对内容形式无统一偏好:FAQ在简单查询中引用率41%,长文在复杂查询中达58%。内容应基于用户意图选择形式,FAQ适配简单事实类问题,长文建立主题权威,两者互补而非替代。