GPT-4 Turbo Assistants API
Assistants API
Assistants API 允许您在自己的应用程序中构建 AI 助手。助手有指令,可以利用模型、工具和知识来响应用户查询。Assistants API 目前支持三种类型的工具:代码解释器、检索和函数调用。未来,我们计划发布更多 OpenAI 构建的工具,并允许您在我们的平台上提供自己的工具。
您可以使用Assistants Playground或通过构建本指南中概述的分步集成来探索 Assistants API 的功能。从较高层面来看,Assistants API 的典型集成具有以下流程:
- 通过定义其自定义指令并选择模型来在 API 中创建助手。如果有帮助,请启用代码解释器、检索和函数调用等工具。
- 当用户开始对话时创建一个线程。
- 当用户提问时将消息添加到线程中。
- 在线程上运行助手以触发响应。这会自动调用相关工具。
本入门指南逐步介绍了创建和运行使用代码解释器的助手的关键步骤。
第 1 步:创建助手
助手代表一个实体,可以配置为使用多个参数响应用户的消息,例如:
- 说明:助理和模特应如何表现或回应
- 模型:您可以指定任何 GPT-3.5 或 GPT-4 模型,包括微调模型。检索工具需要
gpt-3.5-turbo-1106和gpt-4-1106-preview模型。 - 工具:API 支持由 OpenAI 构建和托管的代码解释器和检索。
- 函数:API 允许您定义自定义函数签名,其行为与我们的函数调用功能类似。
在此示例中,我们将创建一个作为个人数学导师的助手,并启用代码解释器工具:
调用 Assistants API 要求您传递 beta HTTP 标头。如果您使用 OpenAI 的官方 Python 或 Node.js SDK,则会自动处理此问题。
OpenAI-Beta: assistants=v1
升级到 Python SDK v1.2 使用 pip install --upgrade openai
assistant = client.beta.assistants.create(name="Math Tutor",instructions="You are a personal math tutor. Write and run code to answer math questions.",tools=[{"type": "code_interpreter"}],model="gpt-4-1106-preview"
)
第 2 步:创建线程
一个线程代表一个对话。我们建议在用户发起对话后立即为每个用户创建一个线程。通过创建消息在此线程中传递任何特定于用户的上下文和文件。
升级到 Python SDK v1.2 使用 pip install --upgrade openai
thread = client.beta.threads.create()
线程没有大小限制。您可以向线程传递任意数量的消息。API 将使用截断等相关优化技术来确保对模型的请求适合最大上下文窗口。
第 3 步:向主题添加消息
消息包含用户的文本以及用户上传的任何文件(可选)。目前不支持图像文件,但我们计划在未来几个月内添加对它们的支持。
升级到 Python SDK v1.2 使用 pip install --upgrade openai
message = client.beta.threads.messages.create(thread_id=thread.id,role="user",content="I need to solve the equation `3x + 11 = 14`. Can you help me?"
)
现在,如果您在 Thread 中列出消息,您将看到该消息在创建时添加到线程中:
{"object": "list","data": [{"created_at": 1696995451,"id": "msg_4rb1Skx3XgQZEe4PHVRFQhr0","object": "thread.message","thread_id": "thread_34p0sfdas0823smfv","role": "user","content": [{"type": "text","text": {"value": "I need to solve the equation `3x + 11 = 14`. Can you help me?","annotations": []}}],...
第四步:运行助手
为了让助手响应用户消息,您需要创建一个Run。这使得助手读取线程并决定是调用工具还是简单地使用模型来最好地回答用户查询。随着运行的进行,助手将消息附加到带有role="assistant".
您可以选择在创建运行时向助手传递附加指令:
升级到 Python SDK v1.2 使用 pip install --upgrade openai
run = client.beta.threads.runs.create(thread_id=thread.id,assistant_id=assistant.id,instructions="Please address the user as Jane Doe. The user has a premium account."
)
[
第 5 步:显示助理的响应
这将创建“运行”状态queued。您可以定期检索运行以检查其状态,看看它是否已移至completed.
升级到 Python SDK v1.2 使用 pip install --upgrade openai
run = client.beta.threads.runs.retrieve(thread_id=thread.id,run_id=run.id
)
运行完成后,您可以检索助手添加到线程的消息。
升级到 Python SDK v1.2 使用 pip install --upgrade openai
messages = client.beta.threads.messages.list(thread_id=thread.id
)
最后,将它们显示给用户!在此运行期间,助理向线程添加了两条新消息。
| 角色 | 内容 |
|---|---|
user | 我需要解方程3x + 11 = 14。你能帮助我吗? |
assistant | 当然,简·多伊。(3x + 11 = 14)要求解的方程(x),您需要(x)在方程的一侧进行隔离。您可以按照以下方法执行此操作:1. 等式两边同时减去11,得到(3x = 3)。2. 然后,两边除以 3 即可解出(x)。(x)让我为您计算一下价值。 |
assistant | 方程的解(3x + 11 = 14)为(x = 1)。 |
相关文章:
GPT-4 Turbo Assistants API
Assistants API Assistants API 允许您在自己的应用程序中构建 AI 助手。助手有指令,可以利用模型、工具和知识来响应用户查询。Assistants API 目前支持三种类型的工具:代码解释器、检索和函数调用。未来,我们计划发布更多 OpenAI 构建的工…...
day08_回顾与课程概括
回顾与课程概括 一、上节课复习 一、上节课复习 1、osi七层与数据传输 2、socketsocket是对传输层以下的封装ipport标识唯一一个基于网络通讯的软件3、tcp与udptcp:因为在通信之前必须建立双向连接,通常都是客户端主动连接服务端的,所以必须…...
iptables、netfilter、firewalld、ufd简单介绍
参考:...
Python基础入门例程53-NP53 前10个偶数(循环语句)
最近的博文: Python基础入门例程52-NP52 累加数与平均值(循环语句)-CSDN博客 Python基础入门例程51-NP51 列表的最大与最小(循环语句)-CSDN博客 Python基础入门例程50-NP50 程序员节(循环语句)-CSDN博客 目录 最近的博文: 描…...
v-bind和v-model
目录 前言 v-bind 作用 语法格式 编译原理 简写 v-model 作用 使用方法 v-bind和v-model的区别和联系 前言 本文我们来了解一下模板语法之指令语法中的v-bind和v-model v-bind 作用 v-bind可以让html标签的某个属性的值产生动态的效果 语法格式 <html标签 v-bin…...
Adobe premiere裁剪视频尺寸并转为GIF格式
第 1 步:裁剪视频 修改序列设置以适应裁剪之后的图像区域;序列中的编辑模式不能使用默认的,这里使用的是“ProRes RAW” 第 2 步:设置背景色 需要设置“颜色遮罩”的大小和颜色,颜色遮罩放在下面。 第 3 步࿱…...
关于react输入框回显问题
绑定表单元素的值到组件状态中。例如,对于一个文本框,可以使用onChange事件将用户输入的值绑定到组件状态中。 创建一个处理表单提交的函数。这个函数通常会使用组件状态中的值来更新页面上的数据。 在handleSubmit函数中,防止默认表单提交…...
案例续集留言板
前端没有保存数据的功能,后端把数据保存下来(内存,数据库等等......) 前端代码如下 : <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initia…...
72 内网安全-域横向CSMSF联动及应急响应初识
目录 演示案例:MSF&CobaltStrike联动ShellWEB攻击应急响应朔源-后门,日志WIN系统攻击应急响应朔源-后门,日志,流量临时给大家看看学的好的怎么干对应CTF比赛 涉及资源 权限维持留到后面在补充,先把后面的知识点给大家讲起来,因为权限维持它是我们前期…...
Leetcode—20.有效的括号【简单】
2023每日刷题(二十七) Leetcode—20.有效的括号 C实现代码 class Solution { public:bool isValid(string s) {stack<char> arr;int len s.size();if(len 1) {return false;}for(int i 0; i < len; i) {if(s[i] ( || s[i] [ || s[i] {)…...
Leetcode—剑指OfferII LCR 019.验证回文串II【简单】
2023每日刷题(二十七) Leetcode—剑指OfferII LCR 019.验证回文串II 实现代码 class Solution { public:bool judgeFunc(string s, int left, int right) {while(left < right) {if(s[left] ! s[right]) {return false;}left;right--;}return true;…...
Mac电脑配置Flutter开发环境
1.进入官网下载页: Flutter SDK releases | Flutter 可以看到有 Windows、macOS、Linux三种系统的下载包 选择macOS,然后点击下载 Stable channel(稳定版)中的最新版本,下载完成后可以移动到资源库Library中。 2.下载…...
QTableView如何清空数据保留表头
QTableView如何清空数据保留表头 调用QAbstractItemModel中的removeRows或者removeColumns方法。 方法原型 bool removeRows(int column, int count, const QModelIndex &parent QModelIndex())在支持此功能的模型上,从模型中删除从父级父级下给定行开始的计…...
[工业自动化-17]:西门子S7-15xxx编程 - 软件编程 - PLC编程语言以及与嵌入式编程的比较
目录 一、博图编程语言 1.1 概述 1.2 三种编程语言之间的关系 二、PLC与嵌入式系统的类比 三、PLC编程与嵌入式系统编程的比较 3.1 不同点 3.2 相同点 3.3 PLC是一种专门用于工业控制系统的嵌入式系统 一、博图编程语言 1.1 概述 西门子(Siemens࿰…...
云原生微服务架构及实现技术
云原生是一种技术理念和架构方法,它充分利用云计算的优势,将应用程序和基础设施进行优化,以适应云环境的特性。云原生的设计原则主要包括弹性、韧性、安全性、可观测性、灰度等,旨在让企业在云环境中实现轻量、敏捷、高度自动化的…...
Uniapp语言切换动态修改Js文件
前言 续接上面两篇文章,第一篇文章是uniapp实现多语言切换,第二篇文章是i8n在js中的使用,由于我的菜单是在js文件中,所以我切换的时候除了菜单不实现效果,别的页面都可以实现,本篇文章主要是针对于怎么动态…...
GetSimple CMS忘记密码
GetSimple CMS是一个超简单的 CMS,适合建立个人网站等只需要极少数页面的网站。在站上百科上,是这么说的: GetSimple是一款基于XML存储数据的开源内容管理系统,且易于安装和定制,无需MySQL支持。提供撤销保护和备份功能…...
数据分析面试题1
1.右表为一组数据,尝试进行简单分析,并给出结论(使用公式和图表辅助) ①理解数据 userid:用户id神兽印记消耗数量 ②数据清洗 冻结首行,将列标题的英文字段转换成汉字字段检查是否有重复项:…...
数据跨领域应用实例—车辆通行大数据应用场景(二)
2023年10月25日,国家数据局正式揭牌。标志着我国数据基础制度正在不断完善,数据资源使用水平稳步提升,数据要素市场将进入发展快车道。当前,数字经济已成为我国经济高质量发展的新动能,国家数据局的成立,在…...
Dart笔记:build_runner-用于 Dart 代码生成和模块化编译的构建系统
Dart笔记 build_runner 用于 Dart 代码生成和模块化编译的构建系统 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/artic…...
Python数据分析环境部署:Anaconda与Phi-3-mini协作指南
Python数据分析环境部署:Anaconda与Phi-3-mini协作指南 1. 为什么选择这个组合? 在开始动手之前,我们先聊聊为什么Anaconda和Phi-3-mini是数据科学家的好搭档。Anaconda就像是一个瑞士军刀,把Python环境管理和包依赖这些麻烦事都…...
PPTist:基于Vue3与TypeScript的在线演示文稿技术架构解析
PPTist:基于Vue3与TypeScript的在线演示文稿技术架构解析 【免费下载链接】PPTist PowerPoint-ist(/pauəpɔintist/), An online presentation application that replicates most of the commonly used features of MS PowerPoint, allowing…...
OpenClaw版本升级指南:Qwen3-14b_int4_awq兼容性检查清单
OpenClaw版本升级指南:Qwen3-14b_int4_awq兼容性检查清单 1. 为什么需要这份升级指南 上周五晚上11点,我的OpenClaw突然罢工了——当时它正在帮我自动整理会议纪要,突然弹出一条错误提示:"Model provider configuration in…...
5个步骤彻底解锁Cursor Pro:完整免费使用方案与设备重置指南
5个步骤彻底解锁Cursor Pro:完整免费使用方案与设备重置指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached yo…...
LoRA训练数据准备:lora-scripts自动标注与预处理实操教程
LoRA训练数据准备:lora-scripts自动标注与预处理实操教程 1. 工具简介与核心价值 lora-scripts是一款开箱即用的LoRA训练自动化工具,它将复杂的模型微调流程封装为简单易用的命令行操作。对于想要定制Stable Diffusion模型风格或优化LLM特定能力的开发…...
PyTorch 2.9实战:用Profiler分析BERT微调,找出LayerNorm性能瓶颈
PyTorch 2.9实战:用Profiler分析BERT微调,找出LayerNorm性能瓶颈 1. 为什么需要分析BERT微调性能 在自然语言处理任务中,BERT模型的微调是常见的实践场景。然而随着模型规模增大,训练过程中的性能问题日益凸显。许多开发者会遇到…...
5个专业级步骤:NVIDIA Profile Inspector开源工具的显卡性能优化指南
5个专业级步骤:NVIDIA Profile Inspector开源工具的显卡性能优化指南 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector NVIDIA Profile Inspector是一款免费开源的显卡配置工具,能…...
NBIO与标准net/http对比:10倍性能提升的秘密
NBIO与标准net/http对比:10倍性能提升的秘密 【免费下载链接】nbio Pure Go 1000k connections solution, support tls/http1.x/websocket and basically compatible with net/http, with high-performance and low memory cost, non-blocking, event-driven, easy-…...
Qwen3-ForcedAligner-0.6B多语言支持实测:52种语言自动检测与对齐能力
Qwen3-ForcedAligner-0.6B多语言支持实测:52种语言自动检测与对齐能力 1. 引言:音文对齐的实用价值 你有没有遇到过这样的场景:手里有一段音频和对应的文字稿,需要精确知道每个词在音频中的具体时间位置?传统方法需要…...
Qwen3-ForcedAligner-0.6B效果展示:WAV/MP3混合输入下98.2%字级对齐准确率
Qwen3-ForcedAligner-0.6B效果展示:WAV/MP3混合输入下98.2%字级对齐准确率 1. 惊艳效果开场:语音识别的精准新标杆 想象一下这样的场景:一段包含中文、英文混合的会议录音,背景还有轻微的键盘敲击声。传统的语音识别工具可能只能…...
