3月16日,微软发布了微软365 Copilot[1]。 Microsoft 365 Copilot 将您现有的 Word、Excel、PowerPoint、Outlook 和 Teams 与大型语言模型 (LLM) 的强大功能以及来自 Microsoft Graph 和 Microsoft 365 应用的数据相结合,以创建前所未有的体验。正如您在官方视频中看到的那样,Microsoft 365 Copilot的核心是一个名为Copilot System的编排器。 今天Semantic Kernel 博客上发布了一篇文章介绍了Copilot 聊天示例程序[2]。 我认为很容易从这个Copilot 聊天示例程序开始 实现这样的一个架构。

1、Copilot 系统

让我们先简单介绍一下M365 Copilot系统的处理流程。 该系统由Copilot系统,Microsoft 365 Apps,Microsoft Graph[3] 和LLM(GPT-4)组成.

Copilot 系统首先接收来自 Microsoft 365 Word、Excel、PowerPoint、Outlook、Teams 等的用户提示。 这些指令不会作为提示直接发送到 GPT-4,而是通过 Microsoft Graph 提供必要的上下文。 这称为接地,如果是电子邮件回复提示,例如,您的电子邮件帐户信息。

接地上下文提示通过Copilot系统发送到LLM。

Copilot 系统接收来自LLM的响应并执行后处理。 此后处理包括对 Microsoft Graph 的其他调用、负责任的 AI 检查、安全性、合规性和隐私审查,以及 Microsoft 365 应用交互的命令生成。

已通过后处理步骤的处理结果和应用操作命令将返回到 Microsoft 365 中的调用应用。应用交互命令是用于处理添加图片或调整 PowerPoint 文本大小等功能的内部命令。

2、使用Semantic Kernel实现

在Semantic Kernel的接地示例中,通过内置的 Microsoft Graph 连接器在上下文中添加的: 连接器是技能的一部分,您还可以使用Memory函数从Memory中的键值存储和矢量数据库中检索和添加内存和先验知识。 当然,您可以自己自定义技能和连接器。 还可以将其连接到 Azure 认知搜索。

对于 Microsoft 365 应用(如商务聊天)和跨用户数据(日历、电子邮件、聊天、文档、会议和联系人)工作的应用),后端需要一个规划器来确定用户的问题意向,将其分解为任务,并将其与操作相关联。 语义内核包括一个计划器,用于将用户的复杂指令分解为任务。 使用规划器将公司系统的每个功能映射到您的技能。

Copilot Chat建立在微软的Semantic Kernel 之上,允许开发人员轻松地将大型语言模型(LLM)的强大功能集成到自己的应用程序中。通过我们的完整示例,你可以利用高级功能,例如多个对话主题、语音识别、文件上传,通过你自己的最新信息使聊天更智能,持久内存存储允许机器人在每次使用时变得越来越智能,甚至可以下载机器人与他人共享,加入他们的对话。

无论您是在构建客户服务工具、个性化推荐系统、人力资源助理、教育工具还是电子商务助手,我们的 Copilot Chat 都可以提供帮助。我们认为,从示例应用下载和生成会有很多好处。

改善用户体验:通过提供个性化帮助和自然语言处理,您自己的聊天机器人可以改善客户、学生和员工的用户体验。用户可以快速轻松地获得所需的信息,而无需浏览复杂的网站或等待客户服务代表的帮助。

提高效率: 通过处理客户服务或人力资源任务的聊天机器人,您可以让员工专注于需要人工干预的更复杂的任务。这可以提高组织的效率并降低成本。

个性化推荐:通过自然语言处理和持久内存存储,您的聊天机器人可以为产品、服务或教育资源提供个性化推荐。这可以提高客户满意度并推动销售。

改进的可访问性:通过语音识别和文件上传,您的聊天机器人可以为用户提供更准确和个性化的帮助。例如,难以浏览网站的患者可以更轻松地使用聊天,并快速有效地接收所需的信息。

可扩展性:通过处理客户服务或教育任务的聊天机器人,您可以轻松扩展以满足不断增长的需求,而无需雇用更多员工。这可以降低成本并增加收入。

总结

Semantic Kernel 支持快速开发用于编排企业中各种系统的内核。 要使用的模型是 Azure OpenAI 服务,它具有丰富的企业安全性,我们可以从Copilot Chat示例程序开始。

使用 Semantic Kernel 实现 Microsoft 365 Copilot 分析的更多相关文章

  1. Semantic Kernel 入门系列:🪄LLM的魔法

    ChatGPT 只是LLM 的小试牛刀,让人类能够看到的是机器智能对于语言系统的理解和掌握. 如果只是用来闲聊,而且只不过是将OpenAI的接口封装一下,那么市面上所有的ChatGPT的换皮应用都差不 ...

  2. Semantic Kernel 入门系列:📅 Planner 计划管理

    Semantic Kernel 的一个核心能力就是实现"目标导向"的AI应用. 目标导向 "目标导向"听起来是一个比较高大的词,但是却是实际生活中我们处理问题的 ...

  3. Semantic Kernel 知多少 | 开启面向AI编程新篇章

    引言 在ChatGPT 火热的当下, 即使没有上手亲自体验,想必也对ChatGPT的强大略有耳闻.当一些人在对ChatGPT犹犹豫豫之时,一些敏锐的企业主和开发者们已经急不可耐的开展基于ChatGPT ...

  4. Semantic Kernel 入门系列:🛸LLM降临的时代

    不论你是否关心,不可否认,AGI的时代即将到来了. 在这个突如其来的时代中,OpenAI的ChatGPT无疑处于浪潮之巅.而在ChatGPT背后,我们不能忽视的是LLM(Large Language ...

  5. Semantic Kernel 入门系列:🔥Kernel 内核和🧂Skills 技能

    理解了LLM的作用之后,如何才能构造出与LLM相结合的应用程序呢? 首先我们需要把LLM AI的能力和原生代码的能力区分开来,在Semantic Kernel(以下简称SK),LLM的能力称为 sem ...

  6. Semantic Kernel 入门系列:💬Semantic Function

    如果把提示词也算作一种代码的话,那么语义技能所带来的将会是全新编程方式,自然语言编程. 通常情况下一段prompt就可以构成一个Semantic Function,如此这般简单,如果我们提前可以组织好 ...

  7. Semantic Kernel 入门系列:💾Native Function

    语义的归语义,语法的归语法. 基础定义 最基本的Native Function定义只需要在方法上添加 SKFunction 的特性即可. using Microsoft.SemanticKernel. ...

  8. Semantic Kernel 入门系列:🥑突破提示词的限制

    无尽的上下文 LLM的语言理解和掌握能力在知识内容的解读和总结方面提供了强大的能力. 但是由于训练数据本身来自于公共领域,也就注定了无法在一些小众或者私有的领域能够足够的好的应答. 因此如何给LLM ...

  9. Semantic Kernel 入门系列:🥑Memory内存

    了解的运作原理之后,就可以开始使用Semantic Kernel来制作应用了. Semantic Kernel将embedding的功能封装到了Memory中,用来存储上下文信息,就好像电脑的内存一样 ...

  10. Semantic Kernel 入门系列:🍋Connector连接器

    当我们使用Native Function的时候,除了处理一些基本的逻辑操作之外,更多的还是需要进行外部数据源和服务的对接,要么是获取相关的数据,要么是保存输出结果.这一过程在Semantic Kern ...

随机推荐

  1. kubeadm部署单master Kuberntes集群

    本文参考kubernetes docs 使用kubeadm创建single master的Kuberntes集群 虚机两台Centos75 Kubernetes Yum Repo采用国内阿里源 版本 ...

  2. 解决VUE中document.documentElement.scrollTop为0(转)

    原文地址:https://blog.csdn.net/WDCCSDN/article/details/82107374 Vue中document.documentElement.scrollTop的值 ...

  3. 几种C#实现播放声音的方法 DirectX、SoundPlayer等

    第一种是利用DirectX  1.安装了DirectX SDK(有9个DLL文件).这里我们只用到MicroSoft.DirectX.dll 和 Microsoft.Directx.DirectSou ...

  4. Windows 10 输入法(仅桌面) %100 解决

    大家好,今天我遇到了一件非常难受的一件事,那就是 WIndows 自带的输入发问题,无法输入中文!!! 这时我去网上找找解决方案,总结了一下几个: 文件检查 步骤 以管理员身份运行PowerShell ...

  5. JS判断数据类型的4种方法

    4种判断方法分别是: typeof instanceof prototype属性 constructor属性 可判断的类型对比如下图: 实践代码如下: 1 // 构造函数名方法 2 function ...

  6. SQL语句用法总结

    use quan56_goods; 使用数据库 show tables; 展示数据表 模糊查询 select * from tb_brand where name like '%林%'; 顺序 书写顺 ...

  7. java8-并行计算

    java8提供一个fork/join framework,fork/join框架是ExecutorService接口的一个实现,它可以帮助你充分利用你电脑中的多核处理器,它的设计理念是将一个任务分割成 ...

  8. jdk8 stream部分排序方法

    List<类> list; 代表某集合   //返回 对象集合以类属性一升序排序   list.stream().sorted(Comparator.comparing(类::属性一)); ...

  9. KCP协议浅析

    概述 KCP协议结合了TCP和UDP协议的特点,是一个快速可靠的协议. 引述官方介绍: KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大 ...

  10. Django笔记四之字段属性

    这篇笔记介绍的 field options,也就是 字段的选项属性. 首先,关于 model,是数据库与 python 代码里的一个映射关系,每一个 model 是django.db.models.M ...