Threads, gRPC: ThreadService.Create
Create a new thread.
gRPC request
rpc Create (CreateThreadRequest) returns (Thread)
CreateThreadRequest
{
"folder_id": "string",
"messages": [
{
"author": {
"id": "string",
"role": "string"
},
"labels": "map<string, string>",
"content": {
"content": [
{
// Includes only one of the fields `text`
"text": {
"content": "string"
}
// end of the list of possible fields
}
]
}
}
],
"name": "string",
"description": "string",
"default_message_author_id": "string",
"expiration_config": {
"expiration_policy": "ExpirationPolicy",
"ttl_days": "int64"
},
"labels": "map<string, string>",
"tools": [
{
// Includes only one of the fields `search_index`, `function`
"search_index": {
"search_index_ids": [
"string"
],
"max_num_results": "google.protobuf.Int64Value"
},
"function": {
"name": "string",
"description": "string",
"parameters": "google.protobuf.Struct"
}
// end of the list of possible fields
}
]
}
Request message for creating a new thread.
Field |
Description |
folder_id |
string Required field. |
messages[] |
List of messages to initialize the thread. |
name |
string Name of the thread. |
description |
string Description of the thread. |
default_message_author_id |
string Default user ID that will be used as the author for thread messages if no other author is specified. |
expiration_config |
Expiration configuration for the thread. |
labels |
object (map<string, string>) Set of key-value pairs to label the thread. |
tools[] |
List of tools that are available for assistants to use in this thread. |
MessageData
Represents the data required to create or initialize a message in a thread.
This message is used, for example, to initialize a thread with some messages upon its creation.
Field |
Description |
author |
Author of the message, containing details about the message's creator. |
labels |
object (map<string, string>) Set of key-value pairs that can be used to organize and categorize the message. |
content |
Content of the message. |
Author
Author of the message, containing details about the message's creator.
Field |
Description |
id |
string Unique identifier of the author. This could be either the user's ID or the assistant's ID, depending on the role. |
role |
string Role of the author, indicating whether the message was created by a "user" or an "assistant". |
MessageContent
Represents the content of a message, which can consist of multiple parts.
Field |
Description |
content[] |
A list of content parts that make up the message. |
ContentPart
ContentPart represents an individual part of the message content, which can be of various types.
Field |
Description |
text |
Text content of the message part. Includes only one of the fields Specifies the type of content that the part contains. |
Text
Text represents a textual content part of a message.
Field |
Description |
content |
string Text content of the message. |
ExpirationConfig
Field |
Description |
expiration_policy |
enum ExpirationPolicy
|
ttl_days |
int64 |
Tool
Represents a general tool that can be one of several types.
Field |
Description |
search_index |
SearchIndexTool tool that performs search across specified indexes. Includes only one of the fields |
function |
Function tool that can be invoked by the assistant. Includes only one of the fields |
SearchIndexTool
Configures a tool that enables Retrieval-Augmented Generation (RAG) by allowing the assistant to search across a specified search index.
Field |
Description |
search_index_ids[] |
string A list of search index IDs that this tool will query. Currently, only a single index ID is supported. |
max_num_results |
The maximum number of results to return from the search. |
FunctionTool
Represents a function tool that can be invoked by the assistant.
Field |
Description |
name |
string The name of the function. |
description |
string A description of the function's purpose or behavior. |
parameters |
A JSON Schema that defines the expected parameters for the function. |
Thread
{
"id": "string",
"folder_id": "string",
"name": "string",
"description": "string",
"default_message_author_id": "string",
"created_by": "string",
"created_at": "google.protobuf.Timestamp",
"updated_by": "string",
"updated_at": "google.protobuf.Timestamp",
"expiration_config": {
"expiration_policy": "ExpirationPolicy",
"ttl_days": "int64"
},
"expires_at": "google.protobuf.Timestamp",
"labels": "map<string, string>",
"tools": [
{
// Includes only one of the fields `search_index`, `function`
"search_index": {
"search_index_ids": [
"string"
],
"max_num_results": "google.protobuf.Int64Value"
},
"function": {
"name": "string",
"description": "string",
"parameters": "google.protobuf.Struct"
}
// end of the list of possible fields
}
]
}
Field |
Description |
id |
string Unique identifier of the thread. |
folder_id |
string ID of the folder that the thread belongs to. |
name |
string Name of the thread. |
description |
string Description of the thread. |
default_message_author_id |
string Default user ID that will be used as the author for thread messages if no other author is specified. |
created_by |
string Identifier of the subject who created this thread. |
created_at |
Timestamp representing when the thread was created. |
updated_by |
string Identifier of the subject who last updated this thread. |
updated_at |
Timestamp representing the last time this thread was updated. |
expiration_config |
Configuration for the expiration of the thread, defining when and how the thread will expire. |
expires_at |
Timestamp representing when the thread will expire. |
labels |
object (map<string, string>) Set of key-value pairs that can be used to organize and categorize the thread. |
tools[] |
List of tools that are available for assistants to use in this thread. |
ExpirationConfig
Field |
Description |
expiration_policy |
enum ExpirationPolicy
|
ttl_days |
int64 |
Tool
Represents a general tool that can be one of several types.
Field |
Description |
search_index |
SearchIndexTool tool that performs search across specified indexes. Includes only one of the fields |
function |
Function tool that can be invoked by the assistant. Includes only one of the fields |
SearchIndexTool
Configures a tool that enables Retrieval-Augmented Generation (RAG) by allowing the assistant to search across a specified search index.
Field |
Description |
search_index_ids[] |
string A list of search index IDs that this tool will query. Currently, only a single index ID is supported. |
max_num_results |
The maximum number of results to return from the search. |
FunctionTool
Represents a function tool that can be invoked by the assistant.
Field |
Description |
name |
string The name of the function. |
description |
string A description of the function's purpose or behavior. |
parameters |
A JSON Schema that defines the expected parameters for the function. |