OpenAi assistant run always fails when called from PHP

news2024/9/20 20:59:06

题意:从 PHP 调用时,OpenAI 助理运行总是失败。

问题背景:

The runs I create with the openai-php library fail direct in 100% of cases. What am I doing wrong? I do not have much experience with php but this is the test script.

我使用 openai-php 库创建的运行在 100% 的情况下直接失败。我哪里做错了?我对 PHP 没有太多经验,这是测试脚本。

<?php
require '../../../dev/vendor/autoload.php';

$apiKey = getenv('ASSISTANT_API_KEY');

@ini_set('zlib.output_compression',0);
@ini_set('implicit_flush',1);
@ob_end_clean();
set_time_limit(0);
ob_implicit_flush(1);

$client = OpenAI::client($apiKey);

echo "Creating thread...<br/>";
$response = $client->threads()->create([]);

$array = $response->toArray(); 
$threadId = $response->id;

echo "Thread created, id:" . $response->id . "<br/>";

echo "Adding message Hello World...<br/>";

$response = $client->threads()->messages()->create($threadId, 
    [
        'role' => 'user',
        'content' => 'Hello World!',
    ]
);

echo "Message created, id:" . $response->id . "<br/>";

echo "Creating a run...<br/>";

$response = $client->threads()->runs()->create(
    threadId: $threadId, 
    parameters: [
        'assistant_id' => 'asst_wYzcGyBRwvpcKY3G4O0fEM5A',
    ],
);

echo "Run created, id:" . $response->id . "<br/>";
$runId = $response->id;

echo "Waiting for run result...<br/>";

for ($i=0; $i <= 20; $i++) {
    $response = $client->threads()->runs()->retrieve(
        threadId: $threadId,
        runId: $runId,
    );
    $runStatus = $response->status;
    if(strcmp($runStatus, "in_progress")==0){
        echo "In progres... <br/>";
    }

    if(strcmp($runStatus, "failed")==0){
        echo "Failed... <br/>";
        echo json_encode($response->toArray(), JSON_PRETTY_PRINT);
        echo "<br/>";
        break;
    }
    if(strcmp($runStatus, "completed") ==0){
        echo "In completed... <br/>";
        break;
    }
    sleep(1); 
}

echo "Run complete<br/>";

?>

The result:

Creating thread...
Thread created, id:thread_ZvHJYWZjoYXf04CR6BJbw67C
Adding message Hello World...
Message created, id:msg_Z1Y6Ei4j9b5EKI48BtSzHvot
Creating a run...
Run created, id:run_jR2oc8y3wLqWS8jwfcizK70I
Waiting for run result...
In progres...
Failed...
{
  "id": "run_jR2oc8y3wLqWS8jwfcizK70I",
  "object": "thread.run",
  "created_at": 1710458772,
  "assistant_id": "asst_wYzcGyBRwvpcKY3G4O0fEM5A",
  "thread_id": "thread_ZvHJYWZjoYXf04CR6BJbw67C",
  "status": "failed",
  "started_at": 1710458772,
  "expires_at": null,
  "cancelled_at": null,
  "failed_at": 1710458773,
  "completed_at": null,
  "last_error": {
    "code": "server_error",
    "message": "Sorry, something went wrong."
  },
  "model": "gpt-4-1106-preview",
  "instructions": "You're helping debugging why the api calls to you are not working. Please share everything , all technical details you know about the interaction and the communication aspects. ",
  "tools": [],
  "file_ids": [],
  "metadata": [],
  "usage": {
    "prompt_tokens": 0,
    "completion_tokens": 0,
    "total_tokens": 0
  }
}
Run complete

When I use the api to create the tread and message and use the platform.openai.com website the run completes fine. (I used an online json formatter to format it nicely as above.)

当我使用 API 创建对话和消息,并在 platform.openai.com 网站上运行时,它能够顺利完成。(我使用了在线 JSON 格式化工具,将其格式化得如上所示。)

The error message is: Sorry, something went wrong.

错误信息是:抱歉,出现了一些问题。

Thanks for any help!

问题解决:

The problem was with OpenAI and not with the code. I used an api key restricted to threads write access, thread write access and assistant read access and these did not work.

问题出在 OpenAI 而不是代码。我使用了一个仅限于对话写入访问、对话写入访问和助手读取访问的 API 密钥,但这些都不起作用。

I set the api key to full access and now it works.

我将 API 密钥设置为完全访问权限后,现在可以正常工作了。

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

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

相关文章

屏幕翻译软件实时工具有哪些?剧粉朋友看这里

日常生活的忙碌之余&#xff0c;观看剧集成为放松心情的绝佳方式。 但当遇到非母语的影视作品时&#xff0c;语言差异可能会让人感到难以投入。 幸运的是&#xff0c;现在有了屏幕翻译软件&#xff0c;我们不再需要为听不懂外语而烦恼。 这些软件能够在你观看剧集时即时翻译…

MySQL索引知识个人笔记总结(持续整理)

本篇笔记是个人整理的索引知识总结&#xff0c;刚开始有点乱&#xff0c;后续会一直边学边整理边总结 索引&#xff08;index&#xff09;是帮助MySQL高效获取数据的数据结构(有序)。就好比索引就是数据的目录 索引结构 Btree索引,Hash索引,Full-text索引&#xff0c;R-tree(空…

SpringBoot+Vue+MySQL驾校预约管理系统

目录 前言 功能设计 系统实现 获取源码 博主主页&#xff1a;百成Java 往期系列&#xff1a;Spring Boot、SSM、JavaWeb、python、小程序 前言 随着社会的进步&#xff0c;各行各业都在充分利用信息化时代的优势。由于计算机技术的广泛应用和普及&#xff0c;各种信息系统…

8年测试工程师 —— 如何使用Playwright优化测试性能!

优化Playwright测试性能是确保自动化测试快速、可靠地执行的重要环节。以下是一些具体的策略和技术&#xff0c;可以帮助你提高Playwright测试的性能&#xff1a; 1. 减少不必要的页面加载 避免重定向&#xff1a;确保测试URL直接指向最终页面&#xff0c;避免不必要的重定向。…

罗马数字详解

一. 罗马数字の背景 1. 罗马数字的诞生与进化 罗马数字起源于古罗马帝国&#xff0c;拥有一个漫长而复杂的历史&#xff0c;始于公元前 8 世纪至 9 世纪&#xff0c;与古罗马帝国在帕兰丁山&#xff08;Palantine Hill&#xff09;周围建立的时间大致相同。不过&#xff0c;罗…

【网络编程】socket套接字|sockaddr|sockaddr_in|通信过程

目录 ​编辑 源IP地址和目的IP地址 Socket 网络字节序 socket编程接口 sockaddr结构 sockaddr sockaddr_in(IPv4) sockaddr_in(IPv6) 完整的套接字&#xff08;socket&#xff09;通信过程 创建socket套接字 bind绑定套接字 listen建立监听 accept接受连接 connect…

错题集锦之C语言

直接寻址和立即寻址 算法的又穷性是指算法程序的运行时间是有限的 未经赋值的全局变量值不确定 集成测试是为了发现概要设计的错误 自然连接要求两个关系中进行比较的是相同的属性&#xff0c;并且进行等值连接&#xff0c;在结果中还要把重复的属性列去掉 赋值运算符 赋值…

CAFE: Catastrophic Data Leakage in Vertical Federated Learning(纵向联邦学习)

NeurIPS 2021 发表单位&#xff1a;美国伦斯勒理工学院、IBM研究院、国立阳明交通大学 GitHub&#xff1a;https://github.com/DeRafael/CAFE 摘要&#xff1a; 梯度共享机制&#xff08;批处理&#xff09;会泄露私有数据—>提出数据泄露攻击CAFE—>提出缓解CAFE对策 在…

云计算课程作业1

作业1 Xmanager连接 rhel连接 作业2 首先确认你的虚拟机设置的是NAT 1-3 然后打开这篇blog&#xff0c;并完成第一步和第二步 因为我们是NAT&#xff0c;所以不需要连接网桥&#xff0c;即跳过第三步&#xff0c;但是这里ping一下测试网络连接 2- 如果到这里你发现提示yum…

2024 Oracle CloudWorld的信息量实在太大了

2024年9月9日&#xff0c;为期4天的2024甲骨文全球云大会在美国拉斯维加斯盛大开幕。今年的主题聚焦于&#xff0c;通过将最新的AI技术融入其产品和服务&#xff0c;以构建和使用应用、云技术、数据库、开发人员工具和人工智能服务&#xff0c;帮助各个行业解决复杂的业务挑战。…

【数据结构与算法 | 灵神题单 | 二叉搜索树篇】力扣99, 1305, 230, 897

1. 力扣99&#xff1a;恢复二叉搜索树 1.1 题目&#xff1a; 给你二叉搜索树的根节点 root &#xff0c;该树中的 恰好 两个节点的值被错误地交换。请在不改变其结构的情况下&#xff0c;恢复这棵树 。 示例 1&#xff1a; 输入&#xff1a;root [1,3,null,null,2] 输出&…

天润融通创新功能,将无效会话转化为企业新商机

“您好&#xff0c;请问有什么可以帮您&#xff1f;” “......” 一个新的咨询会话进来&#xff0c;但客户却并不说话&#xff0c;这种情况客服人员肯定不会陌生&#xff0c;它一般被称为“无效会话”。 如今“无效会话”越来越多&#xff0c;已经成为困扰无数企业的难题。…

最清晰 | 自学前端之js

怎么在vscode中运行网页代码 1、在vscode中安装插件“ open PHP/HTML/JS ” 2、在代码区域,右键点击” open PHP/HTML/JS in browser " 一、js概念 1、是什么: (1)运行在客户端(浏览器) (2)一种编程语言(脚本语言) (3)实现人机交互 2、做什么: (1)网页…

react 创建react项目

使用react的环境&#xff1a; 下载nodejs,然后全局安装create-react-app 1、检查是否安装&#xff1a; create-react-app --version 2、全局安装create-react-app npm install create-react-app -g 3、创建react项目 注意&#xff1a;项目第一次安装&#xff0c;可能会直…

ADB 安装教程:如何在 Windows、macOS 和 Linux 上安装 Android Debug Bridge

目录 一、ADB 介绍 二、Windows 系统安装 ADB 1. 下载 ADB 2. 解压文件 3. 验证 ADB 安装 4. 配置环境变量 5. 验证全局 ADB 使用 三、macOS 系统安装 ADB 1. 下载 ADB 2. 解压文件 3. 配置环境变量 4. 验证 ADB 安装 四、Linux 系统安装 ADB 1. 使用包管理器安装…

Pandas和matplotlib实现同期天气温度对比

目录 1、下载近两年的天气Excel数据 2、pandas加载Excel 3、将时间作为索引 4、按日计算最值、均值 5、选取近两年同期温度数据 6、同期温度曲线对比,共享y轴 1、下载近两年的天气Excel数据 一个免费的天气数据下载网址:METAR北京(机场)历史天气 (rp5.ru) 选择”北京天…

20240921 每日AI必读资讯

AI、悟空、西湖文创集盒……2024云栖大会有超多硬核科技&#xff01; - 9月19日&#xff0c;一年一度的阿里云栖大会拉开帷幕 - 阿里现任掌舵者吴泳铭、CTO周靖人携手大模型领域当红炸子鸡月之暗面CEO杨植麟、小鹏汽车CEO何小鹏等一众明星企业创始人给业界带来了一场久违的国…

《 LiteFlow 规则引擎(1) - 入门篇》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

【RabbitMQ】应用

RabbitMQ 应用 1. 七种⼯作模式介绍1.1 Simple(简单模式)1.2 Work Queue(⼯作队列)1.3 Publish/Subscribe(发布/订阅)概念介绍Publish/Subscribe模式 1.4 Routing(路由模式)1.5 Topics(通配符模式)1.6 RPC(RPC通信)1.7 Publisher Confirms(发布确认) 2. ⼯作模式的使⽤案例2.1 …

Java【代码 18】处理Word文档里的Excel表格数据(源码分享)

处理Word文档里的Excel表格数据 1.原始数据2.处理程序2.1 识别替换表格表头2.2 处理多余的换行符2.3 处理后的结果 3.总结 1.原始数据 Word 文档里的 Excel 表格数据&#xff0c;以下仅为示例数据&#xff1a; 读取后的字符串数据为&#xff1a; "姓名\r\n身份证号\r\n手…