OpenAI GPTs 到底是怎么工作的?

news2024/11/18 19:28:22

▼最近直播超级多,预约保你有收获

今晚直播:《GPTs 构建应用程序案例实现

 1

GPTs 是如何工作的?

OpenAI 官方对 GPTs 的定义是,用户为特定目的创建的 ChatGPT 版本。

GPTs 结合了技能说明、外部知识库和目前可见的 GPT 的任意技能组合,可针对特定版本的 ChatGPT 提供特定功能,比如帮教孩子数学或者设计贴纸、学习棋盘游戏、搜索资源、数据分析等。

要构建一个 GPTs 也非常简单,可以不用代码,只需与 GPT Builder(OpenAI推出的 GPTs 创建器)进行对话,并为其提供说明和其他知识,再选择 GPTs 能够执行的搜索网络、制作图像、分析数据等操作,一个 GPTs 就创建完成了。

程序员还可以用 Assistants API 构建功能更多更专业的 GPTs,这些才有可能成为企业级 Agent 应用。

Assistants API 是 OpenAI 面向 Agents 领域的一次重要更新,通过该 API,你可以在线创建具备自主规划、工具使用与记忆能力的 AI Agent,通过自然语言输入问题与上传文件,实现自主的交互式。Assistants API 实现的基本架构如下:

ae7395205523351e311d30476d4951d4.png

这里有3个核心概念 Assistant、Thread、Run

Assistant 代表了 AI 助理,Thread 则代表 Assistant 与用户的会话,Run 则是一次“人机交互”。

在 Assistants API 的使用中,理论上是一个异步的调用过程。提交一个 Run后,通过 API 轮询状态,直到完成再获取/检索 Assistants 的消息,也就是通常所说的大模型的回答。

Assistant 一个具体指令(instructions),可以利用大模型、工具(tools)和知识来响应用户的查询。

Assistants API 目前支持三种类型的工具(tools):

  • Code Interpreter:代码解释器

  • Retrieval:检索增强

  • Function Calling:理解输入的自然语言,返回函数调用请求

构建一个基于 Assistants AP I的 AI Agent 应用程序的业务架构设计如下:

7cdc1c1c32ab8abe84ea7636f90cc71a.png

更详细的技术剖析,放在本周日直播进行,请同学点击下方按钮预约直播

 2

如何快速构建一个 GPTs 应用案例?

使用 Assistants API 创建 GPTs 包含以下5个步骤:创建一个 Assistant、创建一个 Thread、提交一个 Run、查询 Run 的状态、检索 Assistant 的响应消息。

第一步、创建 Assistant,响应消息返回一个 Assistant ID。

curl "https://api.openai.com/v1/assistants" \
-u:$OPENAI_API_KEY \
-H "Content-Type: application/json" \
-H "OpenAI-Beta: assistants=v1" \
-d '{
   "instructions": "You are a personal math tutor. When asked a question, write and run Python code to answer the question.",
   "name": "Math Tutor"
   "tools": [{"type": "code_interpreter"}],
   "model": "gpt-4"
}'

第二步、创建 Thread,响应消息返回一个 Thread ID。

curl https://api.openai.com/v1/threads \
-u:$OPENAI_API_KEY \
-H 'Content-Type: application/json' \
-H 'OpenAI-Beta: assistants=v1' \
-d '{
   "messages": [
     {
         "role": "user",
         "content": "Work out the sum of 1, 2 and 3"
     }
   ]
}'

 第三步、提交一个 Run,响应消息返回一个 Run ID。

curl https://api.openai.com/v1/threads/<thread_id>/runs \
-u:$OPENAI_API_KEY \
-H 'Content-Type: application/json' \
-H 'OpenAI-Beta: assistants=v1' \
-d '{
   "assistant_id": "<assistant_id>"
 }'

第四步、查询 Run 的状态,响应消息中得到该任务的状态。

curl https://api.openai.com/v1/threads/<thread_id>/runs/<run_id> \
-u:$OPENAI_API_KEY \
-H 'OpenAI-Beta: assistants=v1'

第五步、获取 Assistant 的响应消息,Assistant 的响应将是如下 API 调用中响应的最近一条消息。

curl https://api.openai.com/v1/threads/<thread_id>/messages \
-u:$OPENAI_API_KEY \
-H "Content-Type: application/json" \
-H "OpenAI-Beta: assistants=v1"

LangChain 开发团队一直在积极响应 OpenAI 的变化。LangChain 0.0.331rc2 版本已经支持了 Assistants API。

目前,LangChain通过 langchain-experimental 包提供了 Assistants 支持,你唯一需要的就是实现 OpenAIAssistantRunnable,这将使代码更加清晰。

基于 LangChain 集成开发 GPTs 企业级案例,本周日20点 直播我会详细剖析,直播精彩看点

1、GPTs 构建 AI Agent 总体架构设计

2、AI Agent 架构设计关键技术剖析

3、传统客服系统+AI Agent 构建智能客服中台案例实战

请同学点击下方按钮预约直播,咱们周日20点直播见!

END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1338346.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【消息中间件】Rabbitmq消息可靠性、持久化机制、各种消费

原文作者&#xff1a;我辈李想 版权声明&#xff1a;文章原创&#xff0c;转载时请务必加上原文超链接、作者信息和本声明。 文章目录 前言常见用法1.消息可靠性2.持久化机制3.消息积压批量消费&#xff1a;增加 prefetch 的数量,提高单次连接的消息数并发消费&#xff1a;多部…

最广泛应用的金融风控算法-评分卡

欢迎关注主页个人介绍及相关链接&#xff0c;获取更多算法源码材料 2023数据资源入表白皮书&#xff0c;推荐系统源码下载-CSDN博客 用友BIP数据资产入表解决方案白皮书&#xff0c;推荐系统源码下载-CSDN博客 背景 信用是一切社会金融体系的根本&#xff0c;有了每个人的信…

计算机毕业设计---ssm+mysql+jsp实现的校园二手市场交易平台源码

项目介绍 本系统主要实现的功能有&#xff1a; 前台&#xff1a;&#xff08;1&#xff09;二手物品信息查看、搜索。 &#xff08;2&#xff09;学生注册登录、个人信息修改。 &#xff08;3&#xff09;二手物品信息发布、编辑。 &#xff08;4&#xff09;二手物品评论、回…

axios进行图片上传组件封装

文章目录 前言图片上传接口&#xff08;axios通信)图片上传使用upload上传头像效果展示总结 前言 node项目使用 axios 库进行简单文件上传的模块封装。 图片上传接口&#xff08;axios通信) 新建upload.js文件&#xff0c;定义一个函数&#xff0c;该函数接受一个上传路径和一…

Gateway集成方法以及拦截器和过滤器的使用

前提&#xff1a;请先创建好一个SpringBoot项目 1. 引入依赖 SpringCloud 和 alibabaCloud 、 SpringBoot间对版本有强制要求&#xff0c;我使用的springboot是3.0.2的版本。版本对应关系请看&#xff1a;版本说明 alibaba/spring-cloud-alibaba Wiki GitHub <dependency…

python脚本抢各大平台大额优惠卷

文章目录 python脚本抢各大平台大额优惠卷写在前面准备阶段一、所需工具二、ChromeDriver下载教程 三、Seleuinm安装1、打开cmd&#xff0c;输入如下命令 开始抢券淘宝脚本京东抢购脚本 python脚本抢各大平台大额优惠卷 写在前面 当电商平台上演盛大的购物狂欢时&#xff0c;如…

MongoDB ReplicaSet 部署

文章目录 前言1. 环境准备2. 生成密钥3. 配置参数4. 创建 ReplicaSet5. 副本集维护5.1 新增成员5.2 移除节点5.4 主节点降级5.5 阻止选举5.6 允许副本节点读5.7 延迟观测 6. 连接副本集 后记 前言 本篇文章介绍 MongoDB ReplicaSet 如何搭建&#xff0c;及常用的维护方法。 1…

VScode跑通Remix.js官方的contact程序开发过程

目录 1 引言 2 安装并跑起来 3 设置根路由 4 用links来添加风格资源 ​5 联系人路由的UI 6 添加联系人的UI组件 7 嵌套路由和出口 8 类型推理 9 Loader里的URL参数 10 验证参数并抛出响应 书接上回&#xff0c;我们已经跑通了remix的quick start项目&#xff0c;接下…

【JVM】虚拟机的组成+字节码文件组成+类的生命周期

什么是JVM&#xff1f; JVM 本质上是一个运行在计算机上的程序&#xff0c;他的职责是运行Java字节码文件。 JVM的功能 1.解释和运行&#xff1a;对字节码文件中的指令实时的解释成机器码让计算机执行。 2.内存管理&#xff1a;自动为对象、方法等分配内存&#xff0c;自动…

JAVA8项目升级JDK17指南

JAVA8项目升级JDK17指南 JAVA8项目升级JDK17指南一、模块化对反射的影响二、删除的内置类 JAVA8项目升级JDK17指南 随着SpringBoot2.7的发布&#xff0c;支持jdk8~jdk21。Springboot3.X发布&#xff0c;最低需要jdk17。升级jdk17是大势所趋。 参考1&#xff1a;重磅&#xff…

K8S 外部访问配置、 Ingress、NodePort

将K8S部署应用提供给外部访问一般有三种方式&#xff1a; NodePort 暴露端口到节点&#xff0c;提供了集群外部访问的入口LoadBalancer 需要负载均衡器&#xff08;通常都需要云服务商提供&#xff0c;裸机可以安装 METALLB 测试&#xff09;Ingress 统一管理 svc的外部访问&am…

Kruskal(克鲁斯卡尔)算法总结

知识概览 克鲁斯卡尔算法适用于稀疏图求最小生成树&#xff0c;时间复杂度为O(mlogm)。 例题展示 题目链接 Kruskal算法求最小生成树 859. Kruskal算法求最小生成树 - AcWing题库https://www.acwing.com/problem/content/861/ 代码 #include <iostream> #include &l…

【Git-IDEA】在 IDEA 中使用 Git(clone、pull、push、merge、建立本地分支与远程分支的连接)

【Git-IDEA】在 IDEA 中使用 Git&#xff08;clone、pull、push、merge、建立本地分支与远程分支的连接&#xff09; 1&#xff09;Gitee2&#xff09;配置 Git3&#xff09;初始化本地仓库4&#xff09;连接远程仓库5&#xff09;clone5.1.方式一5.2.方式二 6&#xff09;分支…

el-date-picker周选择器获取选择的日期范围

<el-date-pickerv-model"formData.date"type"week"format"yyyy 第 WW 周"placeholder"选择周"change"weekChange"> </el-date-picker>// 方法一&#xff1a;weekChange(val) {let startTime new Date(val.getT…

向华为学习:IPD运作-PDP产品开发流程-验证和发布阶段的关键活动

前几天华研荟为您分享了IPD体系中产品开发流程&#xff08;PDP流程&#xff0c;很多时候也直接称为IPD流程&#xff09;前三个阶段&#xff1a;概念、计划和开发阶段的主要内容和关键活动。 今天我们继续来介绍PDP流程的后面两个&#xff1a;验证、发布阶段的主要内容和关键活动…

处理及调度与死锁

处理及调度与死锁 一、前言 前面介绍了进程与线程的相关概念&#xff0c;现在继续学习处理机调度&#xff0c;处理机是系统最重要的资源&#xff0c;提高处理机的利用率和改善系统性能&#xff0c;在很大程度上取决于处理机调度性能的好坏&#xff0c;下面来介绍处理的调度以…

大一C语言查缺补漏 12.24

遗留问题&#xff1a; 6-1 1 在C语言中&#xff0c;如果要保留小数的话&#xff0c;一定要除以2.0&#xff0c;而不是2。 设整型变量m,n,a,b的值均为1&#xff0c;执行表达式&#xff08;m a>b&#xff09;||(n a<b)后&#xff0c;表达式的值以及变量m和n的值是&#…

iPhone恢复出厂设置照片还在吗?分享3个恢复方法!

随着使用时间的增长&#xff0c;手机可能会出现卡顿、运行缓慢等情况。此时&#xff0c;将手机恢复出厂设置可以清除缓存和一些不必要的文件&#xff0c;从而提高设备的运行速度。 但是&#xff0c;每当涉及恢复出厂设置的问题时&#xff0c;许多小伙伴都会关心一个问题&#…

Centos7:Jenkins+gitlab+node项目启动(1)

安装Jenkins 虚拟机配置 需要的软件 https://download.csdn.net/download/myy2012/88668255 解压到目录 用xftp 上传 开始安装jdk rmp -ivh jdk-8u181-linux-x64.rpm 开始安装jenkins rmp -ivh jenkins-2.99-1.1.noarch.rpm 修改用户与端口(端口按需修改) vim /etc/sy…

mysql中按字段1去重,按字段2降序排序

数据举例 sql语句 按字段field4降序排序&#xff0c;按字段field1去重 SELECT tt1.name2,tt1.field1,tt1.field2,tt1.field4 from ( select tt2.name2,tt2.field1,tt2.field2,tt2.field4 from t2 tt2 ORDER BY tt2.field4 DESC ) tt1 GROUP BY tt1.field1执行结果