[AI OpenAI-doc] 代码解释器 Beta

代码解释器允许助手在受限执行环境中编写和运行 Python 代码。该工具可以处理具有不同数据和格式的文件,并生成带有数据和图形图像的文件。代码解释器允许您的助手迭代运行代码,以解决具有挑战性的代码和数学问题。当您的助手编写的代码无法运行时,它可以通过尝试运行不同的代码来迭代此代码,直到代码执行成功为止。

在这里查看如何开始使用代码解释器的快速入门。

工作原理

代码解释器的费用是每个会话 0.03 美元。如果您的助手在两个不同的线程中同时调用代码解释器(例如,每个终端用户一个线程),则会创建两个代码解释器会话。每个会话默认为一小时处于活动状态,这意味着如果用户在同一线程中与代码解释器交互最多一小时,您只需支付一个会话的费用。

启用代码解释器

在助手对象的 tools 参数中传递 code_interpreter 以启用代码解释器:

assistant = client.beta.assistants.create(instructions="你是一位个人数学导师。当被问及数学问题时,请编写并运行代码来回答问题。",model="gpt-4-turbo",tools=[{"type": "code_interpreter"}]
)

然后,模型根据用户请求的性质决定何时在运行中调用代码解释器。可以通过在助手的说明中提醒来促进此行为(例如,“编写代码来解决这个问题”)。

将文件传递给代码解释器

在助手级别传递的文件可以由具有此助手的所有运行访问:

# 上传一个带有“assistants”用途的文件
file = client.files.create(file=open("mydata.csv", "rb"),purpose='assistants'
)# 使用文件 ID 创建助手
assistant = client.beta.assistants.create(instructions="你是一位个人数学导师。当被问及数学问题时,请编写并运行代码来回答问题。",model="gpt-4-turbo",tools=[{"type": "code_interpreter"}],tool_resources={"code_interpreter": {"file_ids": [file.id]}}
)

文件也可以在线程级别传递。这些文件仅在特定线程中可访问。使用文件上传端点上传文件,然后在消息创建请求中将文件 ID 作为一部分传递:

thread = client.beta.threads.create(messages=[{"role": "user","content": "我需要解方程 `3x + 11 = 14`。你能帮我吗?","attachments": [{"file_id": file.id,"tools": [{"type": "code_interpreter"}]}]}]
)

文件最大大小为 512 MB。代码解释器支持各种文件格式,包括 .csv、.pdf、.json 等等。有关支持的文件扩展名(及其相应的 MIME 类型)的更多详细信息,请参见下面的支持文件部分。

读取代码解释器生成的图像和文件

代码解释器在 API 中还会输出文件,例如生成图像图表、CSV 文件和 PDF 文件。生成的文件有两种类型:

  • 图像
  • 数据文件(例如助手生成的包含数据的 csv 文件)

当代码解释器生成图像时,您可以在助手消息响应的 file_id 字段中查找并下载此文件:

{"id": "msg_abc123","object": "thread.message","created_at": 1698964262,"thread_id": "thread_abc123","role": "assistant","content": [{"type": "image_file","image_file": {"file_id": "file-abc123"}}]
}

然后,可以通过将文件 ID 传递给 Files API 来下载文件内容:

from openai import OpenAIclient = OpenAI()image_data = client.files.content("file-abc123")
image_data_bytes = image_data.read()with open("./my-image.png", "wb") as file:file.write(image_data_bytes)

当代码解释器引用文件路径(例如“下载此 csv 文件”)时,文件路径被列为注释。您可以将这些注释转换为链接以下载文件:

{"id": "msg_abc123","object": "thread.message","created_at": 1699073585,"thread_id": "thread_abc123","role": "assistant","content": [{"type": "text","text": {"value": "The rows of the CSV file have been shuffled and saved to a new CSV file. You can download the shuffled CSV file from the following link:\n\n[Download Shuffled CSV File](sandbox:/mnt/data/shuffled_file.csv)","annotations": [{"type": "file_path","text": "sandbox:/mnt/data/shuffled_file.csv","start_index": 167,"end_index": 202,"file_path": {"file_id": "file-abc123"}}...

代码解释器的输入和输出日志

通过列出调用代码解释器的运行步骤,您可以检查代码解释器的代码输入和输出日志:

run_steps = client.beta.threads.runs.steps.list(thread_id=thread.id,run_id=run.id
)
{"object": "list","data": [{"id": "step_abc123","object": "thread.run.step","type": "tool_calls","run_id": "run_abc123","thread_id": "thread_abc123","status": "completed","step_details": {"type": "tool_calls","tool_calls": [{"type": "code","code": {"input": "# Calculating 2 + 2\nresult = 2 + 2\nresult","outputs": [{"type": "logs","logs": "4"}...}

支持的文件

对于文本/ MIME 类型,编码必须是 utf-8、utf-16 或 ascii 之一。

文件格式MIME 类型
.ctext/x-c
.cstext/x-csharp
.cpptext/x-c++
.docapplication/msword
.docxapplication/vnd.openxmlformats-officedocument.wordprocessingml.document
.htmltext/html
.javatext/x-java
.jsonapplication/json
.mdtext/markdown
.pdfapplication/pdf
.phptext/x-php
.pptxapplication/vnd.openxmlformats-officedocument.presentationml.presentation
.pytext/x-python
.pytext/x-script.python
.rbtext/x-ruby
.textext/x-tex
.txttext/plain
.csstext/css
.jstext/javascript
.shapplication/x-sh
.tsapplication/typescript
.csvapplication/csv
.jpegimage/jpeg
.jpgimage/jpeg
.gifimage/gif
.pngimage/png
.tarapplication/x-tar
.xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.xmlapplication/xml or “text/xml”
.zipapplication/zip

  • 官网
  • 本文
    • 博客 - 从零开始学AI
    • 公众号 - 从零开始学AI
    • CSDN - 从零开始学AI
    • 掘金 - 从零开始学AI
    • 知乎 - 从零开始学AI

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LabVIEW机械臂控制与图像处理示教平台

LabVIEW机械臂控制与图像处理示教平台 随着工业自动化技术的快速发展,工业机器人在制造业中的应用越来越广泛,它们在提高生产效率、降低人工成本以及保证产品质量方面发挥着重要作用。然而,传统的工业机器人编程和操作需要专业知识&#xff…

Git使用指北

目录 创建一个Git仓库本地仓库添加文件文件提交到本地仓库缓冲区添加远程仓库地址本地仓库推送到远程仓库创建新的分支拉取代码同步删除缓冲区的文件,远程仓库的文件.gitignore文件 创建一个Git仓库 Git仓库分为远程和本地两种,远程仓库如Githu上创建的…

计算机网络之传输层TCP\UDP协议

UDP协议 用户数据报协议UDP概述 UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能 UDP的主要特点: UDP是无连接的,减少开销和发送数据之前的时延 UDP使用最大努力交付,即不保证可靠交付,可靠性由U…

Debian 12 tomcat 9 catalina 日志信息 中文显示乱码

目录 问题现象 解决办法: 1、设定Debian locale 2、设定catalina.sh utf8字符集 问题现象 Debian 12 linux操作系统中,tomcat 9 catalina 启动日志输出 中文乱码 解决办法: 1、设定Debian locale 先确保系统本身就支持中文的 Debian …

免安装SQL管理工具HeidiSQL建库如何选Collation字符校对

免安装SQL管理工具HeidiSQL 文章目录 免安装SQL管理工具HeidiSQL一、安装二、建库因此,通常我们选择: 一、安装 到官方网址:https://www.heidisql.com/ 下载后按不同版本安装或解压,运行目录中的heidisql应用程序。 该工具可以对…

自动驾驶中的深度学习和计算机视觉

书籍:Applied Deep Learning and Computer Vision for Self-Driving Cars: Build autonomous vehicles using deep neural networks and behavior-cloning techniques 作者:Sumit Ranjan,Dr. S. Senthamilarasu 出版:Packt 书籍…

GRACE滤波数据处理之DDK系列滤波

以CSR RL06无约束解为例,进行DDK1-8滤波数据处理,人为构造如下有关读取数据的控制文件: Github上下载DDK滤波核函数:GitHub - strawpants/GRACE-filter: Contains software for filtering (destriping) GRACE Stokes coefficients…

Tomact安装配置及使用(超详细)

文章目录 web相关知识概述web简介(了解)软件架构模式(掌握)BS:browser server 浏览器服务器CS:client server 客户端服务器 B/S和C/S通信模式特点(重要)web资源(理解)资源分类 URL请求路径(理解)作用介绍格式浏览器通过url访问服务器的过程 服务器(掌握)…

【Docker】如何注册Hub账号并上传镜像到Hub仓库

一、创建Hub账户 浏览器访问:hub.docker.com 点击【Sign up】注册账号 输入【邮箱】【用户名】【密码】 ps:用户名要有字母数字;订阅不用勾选 点击【Sign up】注册即可 点击【Sign in】登录账号 输入【邮箱】【密码】 点击【Continue】登录 二…

前端工程化Vue使用Node.js永久设置国内高速npm镜像源

前端工程化Vue使用Node.js永久设置国内高速npm镜像源 接续上篇错误收录,此篇通过简单配置永久设置国内高速npm镜像源方法 1.更换新版镜像 清空npm缓存 npm cache clean --force修改回原版镜像源或直接删除配置过的镜像源 npm config set registry https://registr…

SpringDI方式及Redis应用场景的分享

1、为什么Spring和IDEA 都不推荐使用 Autowired 注解 大家在使用IDEA开发的时候有没有注意到过一个提示,在字段上使用Spring的依赖注入注解Autowired后会出现如下警告Field injection is not recommended (字段注入是不被推荐的);但是使用Resource却不会…

如何用 Redis 实现延迟队列?

延迟队列是一种常见的消息队列模式,用于处理需要延迟执行的任务或消息。Redis 是一种快速、开源的键值对存储数据库,具有高性能、持久性和丰富的数据结构,因此很适合用于实现延迟队列。在这篇文章中,我们将详细讨论如何使用 Redis…

在虚拟环境中找到Qt Designer

Pyqt5中找到Qt Designer 安装Pyqt5和Qt Designer: pip install pyqt5-tools 假设Python的虚拟环境名为:d2l ,虚拟环境在d2l文件夹中 D:\Software\d2l\Lib\site-packages\qt5_applications\Qt\bin 双击Qt designer启动 Pyside2中找到Qt Designer 安装pyside2 …

【牛客网】排列计算

原题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 如果直接涂色来计算单点权重&#xff0c;2e5*2e5必然超时。 所以用差分进行优化。 3. 代码实现 #include<bits/stdc.h> using name…

面试经典算法题之双指针专题

力扣经典面试题之双指针 ( 每天更新, 每天一题 ) 文章目录 力扣经典面试题之双指针 ( 每天更新, 每天一题 )验证回文串收获 392. 判断子序列167. 两数之和 - 输入有序数组11.盛开多水的容器 验证回文串 思路 一: 筛选 双指针验证 class Solution { public:bool isPalindrome(s…

Flutter笔记:谈Material状态属性-为什么FlatButton等旧版按钮就废弃了

Flutter笔记 谈Material状态属性-为什么FlatButton等旧版按钮就废弃了 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this artic…

机器学习:深入解析SVM的核心概念【四、软间隔与正则化】

软间隔与正则化 问题一&#xff1a;优化目标函数是如何得到的&#xff1f;得到的过程是怎样的&#xff1f;问题二&#xff1a;拉格朗日乘子法计算详细过程问题三&#xff1a;KKT条件求解过程问题四&#xff1a;结构风险最小化&#xff08;SRM&#xff09;的原理 在前面的讨论中…

基于 Spring Boot 博客系统开发(五)

基于 Spring Boot 博客系统开发&#xff08;五&#xff09; 本系统是简易的个人博客系统开发&#xff0c;为了更加熟练地掌握 SprIng Boot 框架及相关技术的使用。&#x1f33f;&#x1f33f;&#x1f33f; 基于 Spring Boot 博客系统开发&#xff08;四&#xff09;&#x1f…

[机器学习系列]深入解析K-Means聚类算法:理论、实践与优化

目录 一、KMeans (一)Kmeans简介 (二)Kmeans作用和优点 (三)Kmeans局限和缺点 (四)Kmeans步骤 (五)如何选取最佳的K值的三种方法 (六)手肘法和目标函数的变化两种确定K值方法的区别 (七)如何选取第一次迭代的K个类中心------KMeans方法 (八)KMeans的常用参数介绍 二、…

LeetCode 139 —— 单词拆分

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 定义 d p [ i ] dp[i] dp[i] 表示 s [ 0 , i ] s[0, i] s[0,i] 是否可以被字典中出现的单词拼接&#xff0c;那么状态转移方程为&#xff1a; d p [ i ] t r u e &#xff0c;如果存在任意 j ∈ [ 0 , i − 1…