Threads, Assistants
Get a run step
Retrieves a run step by its identifier.
路径参数
thread_id
string
必需
The ID of the thread to which the run and run step belongs.
run_id
string
必需
The ID of the run to which the run step belongs.
step_id
string
必需
The ID of the run step to retrieve.
查询参数
include[]
enum[]
A list of additional fields to include in the response. Currently the only supported value is step_details.tool_calls[*].file_search.results[*].content to fetch the file search result content.
See the file search tool documentation for more information.
响应
The request has succeeded.
正文
id
string
必需
The identifier of the run step, which can be referenced in API endpoints.
object
enum
必需
The object type, which is always thread.run.step.
created_at
integer
必需
The Unix timestamp (in seconds) for when the run step was created.
assistant_id
string
必需
The ID of the assistant associated with the run step.
thread_id
string
必需
The ID of the thread that was run.
run_id
string
必需
The ID of the run that this run step is a part of.
type
enum
必需
The type of run step, which can be either message_creation or tool_calls.
status
enum
必需
The status of the run step, which can be either in_progress, cancelled, failed, completed, or expired.
step_details
OpenAI.RunStepDetailsMessageCreationObject | OpenAI.RunStepDetailsToolCallsObject
必需
The details of the run step.
type
enum
必需
Always message_creation.
message_creation
OpenAI.RunStepDetailsMessageCreationObjectMessageCreation
必需
type
enum
必需
Always tool_calls.
tool_calls
OpenAI.RunStepDetailsToolCall[]
必需
An array of tool calls the run step was involved in. These can be associated with one of three types of tools: code_interpreter, file_search, or function.
last_error
OpenAI.RunStepObjectLastError | null
必需
code
enum
必需
metadata
OpenAI.Metadata | null
必需
Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters.
usage
OpenAI.RunStepCompletionUsage
必需
Usage statistics related to the run step. This value will be null while the run step's status is in_progress.
请求
curl https://api.openai.com/v1/threads/thread_abc123/runs/run_abc123/steps/step_abc123 \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-H "OpenAI-Beta: assistants=v2"
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get("OPENAI_API_KEY"), # This is the default and can be omitted
)
run_step = client.beta.threads.runs.steps.retrieve(
step_id="step_id",
thread_id="thread_id",
run_id="run_id",
)
print(run_step.id)
import OpenAI from "openai";
const openai = new OpenAI();
async function main() {
const runStep = await openai.beta.threads.runs.steps.retrieve(
"step_abc123",
{ thread_id: "thread_abc123", run_id: "run_abc123" }
);
console.log(runStep);
}
main();
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: process.env['OPENAI_API_KEY'], // This is the default and can be omitted
});
const runStep = await client.beta.threads.runs.steps.retrieve('step_id', {
thread_id: 'thread_id',
run_id: 'run_id',
});
console.log(runStep.id);
package main
import (
"context"
"fmt"
"github.com/openai/openai-go"
"github.com/openai/openai-go/option"
)
func main() {
client := openai.NewClient(
option.WithAPIKey("My API Key"),
)
runStep, err := client.Beta.Threads.Runs.Steps.Get(
context.TODO(),
"thread_id",
"run_id",
"step_id",
openai.BetaThreadRunStepGetParams{},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v
", runStep.ID)
}
package com.openai.example;
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.beta.threads.runs.steps.RunStep;
import com.openai.models.beta.threads.runs.steps.StepRetrieveParams;
public final class Main {
private Main() {}
public static void main(String[] args) {
OpenAIClient client = OpenAIOkHttpClient.fromEnv();
StepRetrieveParams params = StepRetrieveParams.builder()
.threadId("thread_id")
.runId("run_id")
.stepId("step_id")
.build();
RunStep runStep = client.beta().threads().runs().steps().retrieve(params);
}
}
require "openai"
openai = OpenAI::Client.new(api_key: "My API Key")
run_step = openai.beta.threads.runs.steps.retrieve("step_id", thread_id: "thread_id", run_id: "run_id")
puts(run_step)
响应
{
"id": "step_abc123",
"object": "thread.run.step",
"created_at": 1699063291,
"run_id": "run_abc123",
"assistant_id": "asst_abc123",
"thread_id": "thread_abc123",
"type": "message_creation",
"status": "completed",
"cancelled_at": null,
"completed_at": 1699063291,
"expired_at": null,
"failed_at": null,
"last_error": null,
"step_details": {
"type": "message_creation",
"message_creation": {
"message_id": "msg_abc123"
}
},
"usage": {
"prompt_tokens": 123,
"completion_tokens": 456,
"total_tokens": 579
}
}