使用 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 ...
随机推荐
- 帝国CMS 登录后跳转ecmsadmin.php 白页 多个解决方案
帝国CMS 6.6 版本, 运维的网站查询除了问题, 把网站数据库和整体网站拷贝到本地服务器, 配置好 e/config/config.php 和 e/class/config.php 两个目录 ...
- Blog作业01
目录 前言 设计与分析 踩坑心得 改进建议 总结 前言 这三次作业的知识点覆盖的很全面,从最开始的int赋值变量,循环,到Boolean值,sort等一些函数,到后来的对象,类的创建和声明,gette ...
- Oracle数据库安装时,安装报错ins_emagent.mk
安装oracle数据库过程中,通过图形界面安装,出现ins_emagent.mk报错提示 解决方法 修改$ORACLE_HOME/sysman/lib/ins_emagent.mk,将$(MK_EMA ...
- 1.HTML中的标签
1.HTML的基础标签 <!-- --> 表示注释 1) html语言是解释型语言,不是编译型 浏览器是容错的2) html页面中由一对标签组成:<html> ...
- jvm垃圾收集器汇总
1.吞吐量和延时 吞吐量:吞吐量指的是cpu的利用时间,计算公式是 运行用户代码时间 / (用户代码时间 + 垃圾收集时间),吞吐量越大说明cpu的利用率越大. 延时:延时指的是停顿时间,用户代码不 ...
- [imx6ull][nand] uboot烧录固件
背景 在调试阶段使用nxp的mfg-tools烧录比较麻烦,故考虑使用uboot指令实现固件烧录 烧录方法 //烧写内核 nand erase 0x4000000 0x800000 tftp zIma ...
- day11-MySql存储结构
MySql存储结构 参考视频:MySql存储结构 1.表空间 不同的存储引擎在磁盘文件上的结构均不一致,这里以InnoDB为例: CREATE TABLE t(id int(11)) Engine = ...
- Zab(Zookeeper Atomic Broadcast)协议
更多内容,前往IT-BLOG 一.什么是 Zab协议 Zab( Zookeeper Atomic Broadcast:Zookeeper原子广播)Zookeeper 通过 Zab 协议保证分布式事务的 ...
- OWASP TOP 10 2021
OWASP TOP 10 2021 2021 年的 TOP 10 中有 3 个新类别.4 个更改了名称和范围的类别以及一些合并. A01. 失效的访问控制 Broken Access Control ...
- 如何做到API文档规范化
定义一个好的 API 文档是优秀研发人员的标准配置,在执行接口测试之前,测试人员一定会先拿到开发给予的接口文档. 测试人员可以根据这个文档编写接口测试用例,优秀的文档可以区分好的用户体验和坏的用户体验 ...