Assistants
Create an assistant
Creates an assistant from the supplied request.
Treść żądania
The request body.
model
string | enum
wymagane
Przestarzałe
ID of the model to use. You can use the List models API to see all of your available models, or see our Model overview for descriptions of them.
enum
Przestarzałe
reasoning_effort
string | enum | null
Przestarzałe
Constrains effort on reasoning for reasoning models. Currently supported values are none, minimal, low, medium, high, xhigh, and max. Reducing reasoning effort can result in faster responses and fewer tokens used on reasoning in a response. Not all reasoning models support every value. See the reasoning guide for model-specific support.
enum
Przestarzałe
tools
OpenAI.AssistantTool[]
Przestarzałe
A list of tool enabled on the assistant. There can be a maximum of 128 tools per assistant. Tools can be of types code_interpreter, file_search, or function.
tool_resources
OpenAI.CreateAssistantRequestToolResources | null
Przestarzałe
code_interpreter
OpenAI.CreateAssistantRequestToolResourcesCodeInterpreter
Przestarzałe
file_search
OpenAI.CreateAssistantRequestToolResourcesFileSearch
Przestarzałe
metadata
OpenAI.Metadata | null
Przestarzałe
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.
response_format
enum | OpenAI.ResponseFormatText | OpenAI.ResponseFormatJsonObject | OpenAI.ResponseFormatJsonSchema | null
Przestarzałe
Specifies the format that the model must output. Compatible with GPT-4o, GPT-4 Turbo, and all GPT-3.5 Turbo models since gpt-3.5-turbo-1106. Setting to { "type": "json_schema", "json_schema": {...} } enables Structured Outputs which ensures the model will match your supplied JSON schema. Learn more in the Structured Outputs guide. Setting to { "type": "json_object" } enables JSON mode, which ensures the message the model generates is valid JSON. Important:* when using JSON mode, you must also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if finish_reason="length", which indicates the generation exceeded max_tokens or the conversation exceeded the max context length.
enum
Przestarzałe
type
enum
wymagane
Przestarzałe
The type of response format being defined. Always text.
type
enum
wymagane
Przestarzałe
The type of response format being defined. Always json_object.
type
enum
wymagane
Przestarzałe
The type of response format being defined. Always json_schema.
json_schema
OpenAI.ResponseFormatJsonSchemaJsonSchema
wymagane
Przestarzałe
schema
OpenAI.ResponseFormatJsonSchemaSchema
Przestarzałe
The schema for the response format, described as a JSON Schema object. Learn how to build JSON schemas here.
Odpowiedzi
The request has succeeded.
Treść
id
string
wymagane
Przestarzałe
The identifier, which can be referenced in API endpoints.
object
enum
wymagane
Przestarzałe
The object type, which is always assistant.
created_at
integer
wymagane
Przestarzałe
The Unix timestamp (in seconds) for when the assistant was created.
model
string
wymagane
Przestarzałe
ID of the model to use. You can use the List models API to see all of your available models, or see our Model overview for descriptions of them.
tools
OpenAI.AssistantTool[]
wymagane
Przestarzałe
A list of tool enabled on the assistant. There can be a maximum of 128 tools per assistant. Tools can be of types code_interpreter, file_search, or function.
tool_resources
OpenAI.AssistantObjectToolResources | null
Przestarzałe
code_interpreter
OpenAI.AssistantObjectToolResourcesCodeInterpreter
Przestarzałe
file_search
OpenAI.AssistantObjectToolResourcesFileSearch
Przestarzałe
metadata
OpenAI.Metadata | null
wymagane
Przestarzałe
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.
response_format
enum | OpenAI.ResponseFormatText | OpenAI.ResponseFormatJsonObject | OpenAI.ResponseFormatJsonSchema | null
Przestarzałe
Specifies the format that the model must output. Compatible with GPT-4o, GPT-4 Turbo, and all GPT-3.5 Turbo models since gpt-3.5-turbo-1106. Setting to { "type": "json_schema", "json_schema": {...} } enables Structured Outputs which ensures the model will match your supplied JSON schema. Learn more in the Structured Outputs guide. Setting to { "type": "json_object" } enables JSON mode, which ensures the message the model generates is valid JSON. Important:* when using JSON mode, you must also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if finish_reason="length", which indicates the generation exceeded max_tokens or the conversation exceeded the max context length.
enum
Przestarzałe
type
enum
wymagane
Przestarzałe
The type of response format being defined. Always text.
type
enum
wymagane
Przestarzałe
The type of response format being defined. Always json_object.
type
enum
wymagane
Przestarzałe
The type of response format being defined. Always json_schema.
json_schema
OpenAI.ResponseFormatJsonSchemaJsonSchema
wymagane
Przestarzałe
schema
OpenAI.ResponseFormatJsonSchemaSchema
Przestarzałe
The schema for the response format, described as a JSON Schema object. Learn how to build JSON schemas here.
Żądanie
curl "https://api.openai.com/v1/assistants" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "OpenAI-Beta: assistants=v2" \
-d '{
"instructions": "You are a personal math tutor. When asked a question, write and run Python code to answer the question.",
"name": "Math Tutor",
"tools": [{"type": "code_interpreter"}],
"model": "gpt-4o"
}'
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get("OPENAI_API_KEY"), # This is the default and can be omitted
)
assistant = client.beta.assistants.create(
model="gpt-4o",
)
print(assistant.id)
import OpenAI from "openai";
const openai = new OpenAI();
async function main() {
const myAssistant = await openai.beta.assistants.create({
instructions:
"You are a personal math tutor. When asked a question, write and run Python code to answer the question.",
name: "Math Tutor",
tools: [{ type: "code_interpreter" }],
model: "gpt-4o",
});
console.log(myAssistant);
}
main();
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: process.env['OPENAI_API_KEY'], // This is the default and can be omitted
});
const assistant = await client.beta.assistants.create({ model: 'gpt-4o' });
console.log(assistant.id);
package main
import (
"context"
"fmt"
"github.com/openai/openai-go"
"github.com/openai/openai-go/option"
"github.com/openai/openai-go/shared"
)
func main() {
client := openai.NewClient(
option.WithAPIKey("My API Key"),
)
assistant, err := client.Beta.Assistants.New(context.TODO(), openai.BetaAssistantNewParams{
Model: shared.ChatModelGPT4o,
})
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v
", assistant.ID)
}
package com.openai.example;
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.ChatModel;
import com.openai.models.beta.assistants.Assistant;
import com.openai.models.beta.assistants.AssistantCreateParams;
public final class Main {
private Main() {}
public static void main(String[] args) {
OpenAIClient client = OpenAIOkHttpClient.fromEnv();
AssistantCreateParams params = AssistantCreateParams.builder()
.model(ChatModel.GPT_4O)
.build();
Assistant assistant = client.beta().assistants().create(params);
}
}
require "openai"
openai = OpenAI::Client.new(api_key: "My API Key")
assistant = openai.beta.assistants.create(model: :"gpt-4o")
puts(assistant)
Response
{
"id": "asst_abc123",
"object": "assistant",
"created_at": 1698984975,
"name": "Math Tutor",
"description": null,
"model": "gpt-4o",
"instructions": "You are a personal math tutor. When asked a question, write and run Python code to answer the question.",
"tools": [
{
"type": "code_interpreter"
}
],
"metadata": {},
"top_p": 1.0,
"temperature": 1.0,
"response_format": "auto"
}
Żądanie
curl https://api.openai.com/v1/assistants \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "OpenAI-Beta: assistants=v2" \
-d '{
"instructions": "You are an HR bot, and you have access to files to answer employee questions about company policies.",
"tools": [{"type": "file_search"}],
"tool_resources": {"file_search": {"vector_store_ids": ["vs_123"]}},
"model": "gpt-4o"
}'
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get("OPENAI_API_KEY"), # This is the default and can be omitted
)
assistant = client.beta.assistants.create(
model="gpt-4o",
)
print(assistant.id)
import OpenAI from "openai";
const openai = new OpenAI();
async function main() {
const myAssistant = await openai.beta.assistants.create({
instructions:
"You are an HR bot, and you have access to files to answer employee questions about company policies.",
name: "HR Helper",
tools: [{ type: "file_search" }],
tool_resources: {
file_search: {
vector_store_ids: ["vs_123"]
}
},
model: "gpt-4o"
});
console.log(myAssistant);
}
main();
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: process.env['OPENAI_API_KEY'], // This is the default and can be omitted
});
const assistant = await client.beta.assistants.create({ model: 'gpt-4o' });
console.log(assistant.id);
package main
import (
"context"
"fmt"
"github.com/openai/openai-go"
"github.com/openai/openai-go/option"
"github.com/openai/openai-go/shared"
)
func main() {
client := openai.NewClient(
option.WithAPIKey("My API Key"),
)
assistant, err := client.Beta.Assistants.New(context.TODO(), openai.BetaAssistantNewParams{
Model: shared.ChatModelGPT4o,
})
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v
", assistant.ID)
}
package com.openai.example;
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.ChatModel;
import com.openai.models.beta.assistants.Assistant;
import com.openai.models.beta.assistants.AssistantCreateParams;
public final class Main {
private Main() {}
public static void main(String[] args) {
OpenAIClient client = OpenAIOkHttpClient.fromEnv();
AssistantCreateParams params = AssistantCreateParams.builder()
.model(ChatModel.GPT_4O)
.build();
Assistant assistant = client.beta().assistants().create(params);
}
}
require "openai"
openai = OpenAI::Client.new(api_key: "My API Key")
assistant = openai.beta.assistants.create(model: :"gpt-4o")
puts(assistant)
Response
{
"id": "asst_abc123",
"object": "assistant",
"created_at": 1699009403,
"name": "HR Helper",
"description": null,
"model": "gpt-4o",
"instructions": "You are an HR bot, and you have access to files to answer employee questions about company policies.",
"tools": [
{
"type": "file_search"
}
],
"tool_resources": {
"file_search": {
"vector_store_ids": ["vs_123"]
}
},
"metadata": {},
"top_p": 1.0,
"temperature": 1.0,
"response_format": "auto"
}