OpenAI 也推出了让开发者更容易使用 OpenAI API 的开发方式——Assistants API。Sam Altman 表示,市面上基于 API 构建 agent 的体验很棒。比如,Shopify 的 Sidekick 可以让用户在平台上采取行动,Discord 的 Clyde 可以让管理员帮忙创建自定义人物,Snap 的 My AI 是一个自定义聊天机器人,可以添加到群聊中并提出建议。但问题是,这些 agent 很难建立。有时需要几个月的时间,由数十名工程师组成的团队,处理很多事情才能使这种定制助手体验。这些事情包括状态管理(state management)、提示和上下文管理(prompt and context management)、扩展功能(extend capabilities)和检索(retrievel)。在 OpenAI 开发者大会上,这些事情被 API 化——OpenAI 推出 Assistants API,让开发人员在他们的应用程序中构建「助手」。使用 Assistants API,OpenAI 客户可以构建一个具有特定指令、利用外部知识并可以调用 OpenAI 生成式 AI 模型和工具来执行任务的「助手」。像这样的案例范围包含,从基于自然语言的数据分析应用程序到编码助手,甚至是人工智能驱动的假期规划器。Assistants API 封装的能力包括

  • 持久的线程(persistent threads),人们不必弄清楚如何处理长的对话历史;

  • 内置的检索(Retrieval),利用来自 OpenAI 模型外部的知识(例如公司员工提供的产品信息或文档)来增强开发人员创建的助手;提供新的 Stateful API 管理上下文;

  • 内置的代码解释器(Code Interpreter),可在沙盒执行环境中编写和运行 Python 代码。这一功能于 3 月份针对 ChatGPT 推出,可以生成图形和图表并处理文件,让使用 Assistants API 创建的助手迭代运行代码来解决代码和数学问题;

  • 改进的函数调用,使助手能够调用开发人员定义的编程函数并将响应合并到他们的消息中。

Assistants API 处于测试阶段,从今天开始可供所有开发人员使用。开发者可以前往Assistants Playground来尝试 Assistants API 测试版,而无需编写任何代码。

有了 Assistants API,构建 agent 应用将变得更容易。OpenAI 表示,随着时间的推移,将会持续提高它们的能力。并且,未来计划允许客户提供自己的 copilot 工具,以补充其平台上的 Code Interpreter、检索组件和函数调用。

Assistants API是在聊天完成模型之上创建代理的新方法和改进方法。有了助手,建立代理所需的大部分繁重工作都被剥离了......

  • 现在,将在线程中为您管理消息。
  • 内存在后台自动为您处理。
  • 并且可以调用多个函数(而不仅仅是一个函数)。

这最终意味着,在 OpenAI 和Semantic kernel 之上构建代理将更快、更容易。SK团队正在博客里推出系列文章与大家分享我们将Assistants 整合到Semantic kernel中的计划,以及它们如何融入我们的 v1 提案中。今天发布了第一篇文章: https://devblogs.microsoft.com/semantic-kernel/assistants-the-future-of-semantic-kernel/

尽管新的Assistants API 功能强大,但它们并不能做所有事情。这就是Semantic kernel的用武之地。凭借其对插件、规划器和多模型支持的支持,您可以使用Semantic kernel来扩展助手,使其更强大,同时优化性能和成本。

  1. 简化的函数调用 – 为了使代理更有用,您可以为它们提供要运行的操作。我们将通过插件利用内核中已经注册的现有函数来简化此过程。当您与代理交谈时,我们将为其提供您添加的函数,并在我们从模型获得响应时自动运行它们。
  2. 复杂的多步骤计划 – 使用Assistants,OpenAI 可以开始一次调用多个函数,但它仍然无法创建具有条件逻辑、循环和变量传递的复杂计划。使用Semantic kernel 规划器,您可以做到这一点。这不仅可以为您节省Token,还可以让您生成完整的计划,这些计划在执行之前可以由人工审查。
  3. 多模型支持 – 今天的代理使用 GPT-3.5-turbo、GPT-4 和即将推出的 GPT-4-turbo 完成所有聊天。但是,作为开发人员,您可能希望更加挑剔。您可能希望使用 GPT-4-turbo 进行最终响应,同时使用 GPT-3.5-turbo 进行一些更简单的Semantic Function。使用Semantic kernel,您可以进行这些优化。您甚至可以将非 OpenAI 模型与 OpenAI Assistants结合使用。
  4. 更好地控制内存 – 如果要使用高级内存体系结构来更好地控制保存和检索内存的方式(如内核内存Llama 索引),则可以将这些服务添加为插件,以便为代理提供更好的上下文。
  5. 更高的可见性和监视 – 借助Semantic kernel的前/后钩子,您可以轻松地将遥测数据添加到内核中,以便轻松了解所有本机和语义函数中的令牌使用情况、呈现的提示等。

Semantic Kernel 将成为通向Assistants的门户的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. 在DevExpress的GridView的列中,动态创建列的时候,绑定不同的编辑处理控件

    在使用DevExpress的GridView的时候,我们为了方便,往往使用一些扩展函数,动态创建GridView列的编辑控件对象,然后我们可以灵活的对内容进行编辑或者使用一些弹出的对话框窗体进行处理内 ...

  2. Nginx:超时 keeplive_timeout 配置

    参考:Nginx的超时keeplive_timeout配置详解 HTTP 是一种无状态协议,客户端向服务器发送一个 TCP 请求,服务端响应完毕后断开连接. 如果客户端向服务器发送多个请求,每个请求都 ...

  3. git报错:SSL certificate problem: unable to get local issuer certificate

    原因:在windows系统中git没有获取到ssl证书 解决方案 输入以下命令: git config --global http.sslBackend schannel 之后再执行操作就可以啦 另: ...

  4. react18 hooks自定义移动端Popup弹窗组件RcPop

    基于React18 Hooks实现手机端弹框组件RcPop react-popup 基于react18+hook自定义多功能弹框组件.整合了msg/alert/dialog/toast及android ...

  5. 文心一言 VS 讯飞星火 VS chatgpt (69)-- 算法导论6.5 8题

    八.HEAP-DELETE(A,i)操作能够将结点 i 从堆 A 中删除.对于一个包含 n个元素的堆,请设计一个能够在 O(lgn)时间内完成的 HEAP-DELETE 操作. 文心一言: 要在 O( ...

  6. opencv-python 车牌检测和识别

    首先利用级联分类器把车牌位置找到取出来,然后用ocr进行车牌识别. 1 OCR之Tesseract安装 Tesseract安装可以参考这个链接: https://blog.csdn.net/m0_53 ...

  7. Web通用漏洞--RCE

    Web通用漏洞--RCE 漏洞简介 RCE远程代码/命令执行漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统. RCE漏洞也分为代码执行漏洞和命令执行漏洞,所谓代码执行 ...

  8. 不重启Docker能添加自签SSL证书镜像仓库吗?

    应用背景 在企业应用Docker规划初期配置非安全镜像仓库时,有时会遗漏一些仓库没配置,但此时应用程序已经在Docker平台上部署起来了,体量越大就越不会让人去直接重启Docker. 那么,不重启Do ...

  9. 1Nginx基础及编译安装

    1Nginx基础 1.Nginx概述 Nginx 功能介绍 Nginx(发音为"engine-x")是一个开源的高性能 HTTP和反向代理服务器.它具有以下功能: 1.静态文件服务 ...

  10. 《数据结构-C语言》单链表

    @ 目录 单链表 结构定义 初始化 建立 清空 求表长 判断是否为空表 取值 查找 插入 删除 销毁 遍历打印 测试 单链表 结构定义 #include <stdio.h> #includ ...