使用 openai-php/client 将消息添加到线程/运行,但没有收到响应消息

问题描述 投票:0回答:1

我有一个端点,它应该向 OpenAI API 发送消息并显示响应。我正在使用 https://github.com/openai-php/client

代码看起来像这样(为了简洁而进行了修剪):

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

$message = $client->threads()->messages()->create($threadId, [
    'role' => 'user',
    'content' => "Option $optionId",
]);

$run = $client->threads()->runs()->retrieve(
    threadId: $threadId,
    runId: $runId,
);

while ($run->status != 'completed') {
    sleep(1);
    $run = $client->threads()->runs()->retrieve($threadId, $runId);

    if($run->status == 'failed') {
        echo json_encode(array('status' => 'failed', 'error' => $run->lastError));
        exit;
    }

    if(++$retries > 20) {
        echo json_encode(array('status' => 'failed', 'error' => 'Timeout waiting for response'));
        exit;
    }
}

$allMessages = $client->threads()->messages()->list($threadId, [
]);

print_r($allmessages);

此打印的消息列表有我发送给 API 的消息,但没有响应。如果我尝试多次运行此端点,我会在线程中获得消息的多个副本,但不会对任何消息做出响应。

为什么我的消息没有得到回复?我已经使用了在 Playground 中用于响应的助手,它始终响应“选项”文本提示。

php openai-api
1个回答
0
投票

我正在做这样的事情,我意识到你从来没有“创建”一次运行,你只是检索以前的一次。而且你的代码也帮助我解决了我的问题。

$message = $client->threads()->messages()->create(

    $threadId,
    [
        "role" => "user",
        "content" => $message
    ]
);

$run = $client->threads()->runs()->create($threadId, [
    "assistant_id" => $assistant_id,
]);

所以你的代码实际上很好,这只是一个烦人的功能。

© www.soinside.com 2019 - 2024. All rights reserved.