使用 Semantic Kernel 实现 Microsoft 365 Copilot 分析
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 分析的更多相关文章
- Semantic Kernel 入门系列:🪄LLM的魔法
ChatGPT 只是LLM 的小试牛刀,让人类能够看到的是机器智能对于语言系统的理解和掌握. 如果只是用来闲聊,而且只不过是将OpenAI的接口封装一下,那么市面上所有的ChatGPT的换皮应用都差不 ...
- Semantic Kernel 入门系列:📅 Planner 计划管理
Semantic Kernel 的一个核心能力就是实现"目标导向"的AI应用. 目标导向 "目标导向"听起来是一个比较高大的词,但是却是实际生活中我们处理问题的 ...
- Semantic Kernel 知多少 | 开启面向AI编程新篇章
引言 在ChatGPT 火热的当下, 即使没有上手亲自体验,想必也对ChatGPT的强大略有耳闻.当一些人在对ChatGPT犹犹豫豫之时,一些敏锐的企业主和开发者们已经急不可耐的开展基于ChatGPT ...
- Semantic Kernel 入门系列:🛸LLM降临的时代
不论你是否关心,不可否认,AGI的时代即将到来了. 在这个突如其来的时代中,OpenAI的ChatGPT无疑处于浪潮之巅.而在ChatGPT背后,我们不能忽视的是LLM(Large Language ...
- Semantic Kernel 入门系列:🔥Kernel 内核和🧂Skills 技能
理解了LLM的作用之后,如何才能构造出与LLM相结合的应用程序呢? 首先我们需要把LLM AI的能力和原生代码的能力区分开来,在Semantic Kernel(以下简称SK),LLM的能力称为 sem ...
- Semantic Kernel 入门系列:💬Semantic Function
如果把提示词也算作一种代码的话,那么语义技能所带来的将会是全新编程方式,自然语言编程. 通常情况下一段prompt就可以构成一个Semantic Function,如此这般简单,如果我们提前可以组织好 ...
- Semantic Kernel 入门系列:💾Native Function
语义的归语义,语法的归语法. 基础定义 最基本的Native Function定义只需要在方法上添加 SKFunction 的特性即可. using Microsoft.SemanticKernel. ...
- Semantic Kernel 入门系列:🥑突破提示词的限制
无尽的上下文 LLM的语言理解和掌握能力在知识内容的解读和总结方面提供了强大的能力. 但是由于训练数据本身来自于公共领域,也就注定了无法在一些小众或者私有的领域能够足够的好的应答. 因此如何给LLM ...
- Semantic Kernel 入门系列:🥑Memory内存
了解的运作原理之后,就可以开始使用Semantic Kernel来制作应用了. Semantic Kernel将embedding的功能封装到了Memory中,用来存储上下文信息,就好像电脑的内存一样 ...
- Semantic Kernel 入门系列:🍋Connector连接器
当我们使用Native Function的时候,除了处理一些基本的逻辑操作之外,更多的还是需要进行外部数据源和服务的对接,要么是获取相关的数据,要么是保存输出结果.这一过程在Semantic Kern ...
随机推荐
- 泛型 ? extends E ? super E的区别
package cn.itcast.generic; import java.util.ArrayList;import java.util.Collection; public class Supp ...
- lc.209 长度最小的子数组
题目 给定一个含有 n 个正整数的数组和一个正整数 target . 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, n ...
- 【QCustomPlot】简介
说明 使用 QCustomPlot 绘图库辅助开发时整理的学习笔记. 目录 说明 1. 库简介 2. 库的官网链接 3. 库的帮助文档 4. 库的下载地址 5. 库的版本号说明 6. 库的 Git 地 ...
- Mathematica的Combinatorica`程序包使用笔记
目录 官方给出的程序包使用指南和一些示例 引论 步骤 0x00 导入程序包 0x01 Integer Partitions 0x02 Integer Compositions 0x03 partiti ...
- Salesforce LWC学习(二十) CLI篇:新版本不支持Audience解决方案
本篇参考:https://github.com/forcedotcom/cli/issues/470 https://developer.salesforce.com/docs/atlas.en-us ...
- Treemap按key和value降序排序
Treemap是一种根据键排序的数据结构,可以通过重载它的比较器来按照值排序.要按键排序,可以使用默认的比较器,而要按值排序,可以创建一个自定义的比较器并将其传递给treemap的构造函数. 以下是按 ...
- Redis事件机制(未写完)
Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件: 文件事件:Redis通过套接字与客户端连接,文件事件是服务器对套接字操作的抽象. 时间事件:Redis服务器中的一些操作需要给定的时间 ...
- .Net 6.0定义全局当前身份缓存对象
背景: 当前身份缓存对象顾名思义就是:当前登录的用户身份对象,那它解决了什么问题呢?其实在我们日常开发过程中经常能用的到几乎是必备的,就比如我给某个表插入数据时需要创建人或者一些权限的访问,都得用到当 ...
- 企业什么喜欢做电视看板,电视看板浏览网页的必备工具 电视看板浏览器 电视看板自动打开网页 电视看板必备APP
企业喜欢做电视看板主要是因为它可以提供以下几个方面的优势: 增强企业形象:电视看板可以将企业的信息和广告以更加生动.直观的方式呈现出来,提高企业形象和知名度. 提高工作效率:电视看板可以在企业内部作为 ...
- PDD也可以通过ID获取商品详情?
先我们可以通过pinduoduo.item_get的接口传入商品的ID参数,这个接口可以获取到拼多多商品的详情数据,包括商品的标题.价格.原价.卖家的昵称.库存.销量.宝贝的链接.商品的备注.宝贝图片 ...