Polyglot Notebooks超详细的命令用法

上一篇文章我们安装了基础环境,还教大家如何单独注册Python、R环境,这次咱们就开始写代码,看看 Polyglot Notebooks 是怎么跨语言协同开发的。

一、安装Nuget包

1、引用 Nuget 包

  • 使用 #r "nuget:<package name>[,<package version>]"命令
  • #r "nuget: Microsoft.SemanticKernel" 引入最新正式发布的包
  • #r "nuget: Microsoft.SemanticKernel, *-*" 引入最新预发布版本的包
  • #r "nuget: Microsoft.SemanticKernel, 1.11.2" 引入指定版本的包

2、指定 Nuget 源

二、定义类

在 Polyglot Notebooks 中定义类跟在 VS 中定义类很相似,而且在 Polyglot Notebooks 中还可以使用 Microsoft.DotNet.Interactive 提供的工具类。

三、引入外部类文件

如图所示创建 config 文件夹,并在其内部创建 EnumHelper 类,帮助类的内容我也一并在下边给出。注意:在 .NET Interactive 环境中不能定义命名空间!!!

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();
    }
}

四、变量共享

1、#!set命令进行变量共享

  • 引用C#代码块中的 msg 变量并赋值到新的 message变量中:#!set --name message --value @csharp:msg
  • 通过 @input 设置变量(要求用户输入变量值):#!set --name url --value @input:"Please enter a URL"
  • 直接为变量设置值:#!set --name age --value 19

2、#!share命令进行变量共享

  • 引用 value 中存储的同名变量:#!share someJson --from value
  • 引用语言代码块中的变量写法1:#!share --from csharp msg --as message
  • 引用语言代码块中的变量写法2:#!share msg --from csharp --as message(参数调换位置之后命令格式就跟 --from value 一样了,--as 是定义一个新变量来接收 msg 的值)
  • 注意:不能把变量共享给html、mermaid

五、通过#!value存储变量

六、通过#!value读取文件中定义的Json

七、通过#!time指令统计代码执行时间

八、发送HTTP请求

九、编程控制Polyglot

十、使用mermaid画图

Mermaid 是一个功能强大的基于 JavaScript 的绘图工具,它可以通过简单的文本语法创建各种类型的图表,如:流程图、序列图、甘特图、状态图、类图等。

十一、禁用Warning

cs 复制代码
using Microsoft.SemanticKernel.Plugins.Core;

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

十二、交互式输入

cs 复制代码
//交互式输入
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();

十三、总结

本文中所展示的例子涵盖了日常生活中常见的用法,如果上述例子不能满足各位需求的话,可以去.NET Interactive官网看一下,地址如下:github官网。相信用熟了 Polyglot Notebook 会提高我们的开发效率,如果大家有其他实用的用法可以在评论区补充。

相关推荐
Jia ming11 天前
《智能法官软件项目》—罪名初判模块
python·教学·案例·智能法官
Jia ming11 天前
《智能法官软件项目》—法律文书生成模块
python·教学·案例·智能法官软件
Jia ming11 天前
《智能法官软件项目》—法律计算器模块
python·教学·案例·智能法官
Jia ming11 天前
《智能法官软件项目》—法条检索模块
python·教学·案例·智能法官软件
Jia ming12 天前
《智能法官软件项目》—数据可视化模块
python·信息可视化·教学·案例·智能法官软件
SeaTunnel2 个月前
Apache SeaTunnel 2025 案例精选重磅发布!
大数据·开源·apache·seatunnel·案例
0和1的舞者2 个月前
Python库使用全攻略:从入门到实战
python·学习·知识·案例
智云软件测评服务9 个月前
软件测评中心如何确保软件品质?需求分析与测试计划很关键
测试·软件·案例
bicijinlian10 个月前
多语言笔记系列:Polyglot Notebooks 中使用扩展库
jupyter·c#·polyglot·notebooks·c# jupyter·.net jupyter·.net notebook