Class: Telnyx::Resources::AI::Assistants

Inherits:
Object
  • Object
show all
Defined in:
lib/telnyx/resources/ai/assistants.rb,
lib/telnyx/resources/ai/assistants/tags.rb,
lib/telnyx/resources/ai/assistants/tests.rb,
lib/telnyx/resources/ai/assistants/tools.rb,
lib/telnyx/resources/ai/assistants/versions.rb,
lib/telnyx/resources/ai/assistants/tests/runs.rb,
lib/telnyx/resources/ai/assistants/instructions.rb,
lib/telnyx/resources/ai/assistants/canary_deploys.rb,
lib/telnyx/resources/ai/assistants/scheduled_events.rb,
lib/telnyx/resources/ai/assistants/tests/test_suites.rb,
lib/telnyx/resources/ai/assistants/tests/test_suites/runs.rb,
sig/telnyx/resources/ai/assistants.rbs,
sig/telnyx/resources/ai/assistants/tags.rbs,
sig/telnyx/resources/ai/assistants/tests.rbs,
sig/telnyx/resources/ai/assistants/tools.rbs,
sig/telnyx/resources/ai/assistants/versions.rbs,
sig/telnyx/resources/ai/assistants/tests/runs.rbs,
sig/telnyx/resources/ai/assistants/instructions.rbs,
sig/telnyx/resources/ai/assistants/canary_deploys.rbs,
sig/telnyx/resources/ai/assistants/scheduled_events.rbs,
sig/telnyx/resources/ai/assistants/tests/test_suites.rbs,
sig/telnyx/resources/ai/assistants/tests/test_suites/runs.rbs

Overview

Configure AI assistant specifications

Defined Under Namespace

Classes: CanaryDeploys, Instructions, ScheduledEvents, Tags, Tests, Tools, Versions

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ Assistants

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Assistants.

Parameters:



425
426
427
428
429
430
431
432
433
434
# File 'lib/telnyx/resources/ai/assistants.rb', line 425

def initialize(client:)
  @client = client
  @tests = Telnyx::Resources::AI::Assistants::Tests.new(client: client)
  @canary_deploys = Telnyx::Resources::AI::Assistants::CanaryDeploys.new(client: client)
  @scheduled_events = Telnyx::Resources::AI::Assistants::ScheduledEvents.new(client: client)
  @tools = Telnyx::Resources::AI::Assistants::Tools.new(client: client)
  @versions = Telnyx::Resources::AI::Assistants::Versions.new(client: client)
  @tags = Telnyx::Resources::AI::Assistants::Tags.new(client: client)
  @instructions = Telnyx::Resources::AI::Assistants::Instructions.new(client: client)
end

Instance Attribute Details

#canary_deploysTelnyx::Resources::AI::Assistants::CanaryDeploys (readonly)

Configure AI assistant specifications



14
15
16
# File 'lib/telnyx/resources/ai/assistants.rb', line 14

def canary_deploys
  @canary_deploys
end

#instructionsTelnyx::Resources::AI::Assistants::Instructions (readonly)

Configure AI assistant specifications



34
35
36
# File 'lib/telnyx/resources/ai/assistants.rb', line 34

def instructions
  @instructions
end

#scheduled_eventsTelnyx::Resources::AI::Assistants::ScheduledEvents (readonly)

Configure AI assistant specifications



18
19
20
# File 'lib/telnyx/resources/ai/assistants.rb', line 18

def scheduled_events
  @scheduled_events
end

#tagsTelnyx::Resources::AI::Assistants::Tags (readonly)

Configure AI assistant specifications



30
31
32
# File 'lib/telnyx/resources/ai/assistants.rb', line 30

def tags
  @tags
end

#testsTelnyx::Resources::AI::Assistants::Tests (readonly)

Configure AI assistant specifications



10
11
12
# File 'lib/telnyx/resources/ai/assistants.rb', line 10

def tests
  @tests
end

#toolsTelnyx::Resources::AI::Assistants::Tools (readonly)

Configure AI assistant specifications



22
23
24
# File 'lib/telnyx/resources/ai/assistants.rb', line 22

def tools
  @tools
end

#versionsTelnyx::Resources::AI::Assistants::Versions (readonly)

Configure AI assistant specifications



26
27
28
# File 'lib/telnyx/resources/ai/assistants.rb', line 26

def versions
  @versions
end

Instance Method Details

#chat(assistant_id, content:, conversation_id:, name: nil, stream: nil, request_options: {}) ⇒ Telnyx::Models::AI::AssistantChatResponse

Some parameter documentations has been truncated, see Models::AI::AssistantChatParams for more details.

This endpoint allows a client to send a chat message to a specific AI Assistant. The assistant processes the message and returns a relevant reply based on the current conversation context. Refer to the Conversation API to create a conversation, filter existing conversations, fetch messages for a conversation, and manually add messages to a conversation.

Parameters:

  • assistant_id (String)

    Unique identifier of the assistant.

  • content (String)

    The message content sent by the client to the assistant

  • conversation_id (String)

    A unique identifier for the conversation thread, used to maintain context

  • name (String)

    The optional display name of the user sending the message

  • stream (Boolean)

    When true, the response is streamed as Server-Sent Events (text/event-stream):

  • request_options (Telnyx::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



298
299
300
301
302
303
304
305
306
307
# File 'lib/telnyx/resources/ai/assistants.rb', line 298

def chat(assistant_id, params)
  parsed, options = Telnyx::AI::AssistantChatParams.dump_request(params)
  @client.request(
    method: :post,
    path: ["ai/assistants/%1$s/chat", assistant_id],
    body: parsed,
    model: Telnyx::Models::AI::AssistantChatResponse,
    options: options
  )
end

#clone_(assistant_id, request_options: {}) ⇒ Telnyx::Models::AI::InferenceEmbedding

Clone an existing assistant, excluding telephony and messaging settings.

Parameters:

  • assistant_id (String)

    Unique identifier of the assistant.

  • request_options (Telnyx::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



320
321
322
323
324
325
326
327
# File 'lib/telnyx/resources/ai/assistants.rb', line 320

def clone_(assistant_id, params = {})
  @client.request(
    method: :post,
    path: ["ai/assistants/%1$s/clone", assistant_id],
    model: Telnyx::AI::InferenceEmbedding,
    options: params[:request_options]
  )
end

#create(instructions:, name:, conversation_flow: nil, description: nil, dynamic_variables: nil, dynamic_variables_webhook_timeout_ms: nil, dynamic_variables_webhook_url: nil, enabled_features: nil, external_llm: nil, fallback_config: nil, greeting: nil, insight_settings: nil, integrations: nil, interruption_settings: nil, llm_api_key_ref: nil, mcp_servers: nil, messaging_settings: nil, model: nil, observability_settings: nil, post_conversation_settings: nil, privacy_settings: nil, tags: nil, telephony_settings: nil, tool_ids: nil, tools: nil, transcription: nil, voice_settings: nil, widget_settings: nil, request_options: {}) ⇒ Telnyx::Models::AI::InferenceEmbedding

Some parameter documentations has been truncated, see Models::AI::AssistantCreateParams for more details.

Create a new AI Assistant.

Parameters:

Returns:

See Also:



104
105
106
107
108
109
110
111
112
113
# File 'lib/telnyx/resources/ai/assistants.rb', line 104

def create(params)
  parsed, options = Telnyx::AI::AssistantCreateParams.dump_request(params)
  @client.request(
    method: :post,
    path: "ai/assistants",
    body: parsed,
    model: Telnyx::AI::InferenceEmbedding,
    options: options
  )
end

#delete(assistant_id, request_options: {}) ⇒ Telnyx::Models::AI::AssistantDeleteResponse

Delete an AI Assistant by assistant_id.

Parameters:

  • assistant_id (String)

    Unique identifier of the assistant.

  • request_options (Telnyx::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



260
261
262
263
264
265
266
267
# File 'lib/telnyx/resources/ai/assistants.rb', line 260

def delete(assistant_id, params = {})
  @client.request(
    method: :delete,
    path: ["ai/assistants/%1$s", assistant_id],
    model: Telnyx::Models::AI::AssistantDeleteResponse,
    options: params[:request_options]
  )
end

#get_texml(assistant_id, request_options: {}) ⇒ String

Get an assistant texml by assistant_id.

Parameters:

  • assistant_id (String)

    Unique identifier of the assistant.

  • request_options (Telnyx::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

  • (String)

See Also:



340
341
342
343
344
345
346
347
# File 'lib/telnyx/resources/ai/assistants.rb', line 340

def get_texml(assistant_id, params = {})
  @client.request(
    method: :get,
    path: ["ai/assistants/%1$s/texml", assistant_id],
    model: String,
    options: params[:request_options]
  )
end

#imports(api_key_ref:, provider:, import_ids: nil, request_options: {}) ⇒ Telnyx::Models::AI::AssistantsList

Some parameter documentations has been truncated, see Models::AI::AssistantImportsParams for more details.

Import assistants from external providers. Any assistant that has already been imported will be overwritten with its latest version from the importing provider.

Parameters:

  • api_key_ref (String)

    Integration secret pointer that refers to the API key for the external provider.

  • provider (Symbol, Telnyx::Models::AI::AssistantImportsParams::Provider)

    The external provider to import assistants from.

  • import_ids (Array<String>)

    Optional list of assistant IDs to import from the external provider. If not prov

  • request_options (Telnyx::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



369
370
371
372
373
374
375
376
377
378
# File 'lib/telnyx/resources/ai/assistants.rb', line 369

def imports(params)
  parsed, options = Telnyx::AI::AssistantImportsParams.dump_request(params)
  @client.request(
    method: :post,
    path: "ai/assistants/import",
    body: parsed,
    model: Telnyx::AI::AssistantsList,
    options: options
  )
end

#list(request_options: {}) ⇒ Telnyx::Models::AI::AssistantsList

Retrieve a list of all AI Assistants configured by the user.

Parameters:

Returns:

See Also:



240
241
242
243
244
245
246
247
# File 'lib/telnyx/resources/ai/assistants.rb', line 240

def list(params = {})
  @client.request(
    method: :get,
    path: "ai/assistants",
    model: Telnyx::AI::AssistantsList,
    options: params[:request_options]
  )
end

#retrieve(assistant_id, call_control_id: nil, fetch_dynamic_variables_from_webhook: nil, from: nil, to: nil, request_options: {}) ⇒ Telnyx::Models::AI::InferenceEmbedding

Retrieve an AI Assistant configuration by assistant_id.

Parameters:

  • assistant_id (String)

    Unique identifier of the assistant.

  • call_control_id (String)

    Filter results by call control id.

  • fetch_dynamic_variables_from_webhook (Boolean)

    Whether to fetch dynamic variables from the configured webhook.

  • from (String)

    Start of the filter range.

  • to (String)

    End of the filter range.

  • request_options (Telnyx::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



134
135
136
137
138
139
140
141
142
143
144
# File 'lib/telnyx/resources/ai/assistants.rb', line 134

def retrieve(assistant_id, params = {})
  parsed, options = Telnyx::AI::AssistantRetrieveParams.dump_request(params)
  query = Telnyx::Internal::Util.encode_query_params(parsed)
  @client.request(
    method: :get,
    path: ["ai/assistants/%1$s", assistant_id],
    query: query,
    model: Telnyx::AI::InferenceEmbedding,
    options: options
  )
end

#send_sms(assistant_id, from:, to:, conversation_metadata: nil, should_create_conversation: nil, text: nil, request_options: {}) ⇒ Telnyx::Models::AI::AssistantSendSMSResponse

Send an SMS message for an assistant. This endpoint:

  1. Validates the assistant exists and has messaging profile configured
  2. If should_create_conversation is true, creates a new conversation with metadata
  3. Sends the SMS message (If text is set, this will be sent. Otherwise, if this is the first message in the conversation and the assistant has a greeting configured, this will be sent. Otherwise the assistant will generate the text to send.)
  4. Updates conversation metadata if provided
  5. Returns the conversation ID

Parameters:

  • assistant_id (String)

    Unique identifier of the assistant.

  • from (String)
  • to (String)
  • conversation_metadata (Hash{Symbol=>String, Integer, Boolean})
  • should_create_conversation (Boolean)
  • text (String)
  • request_options (Telnyx::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



411
412
413
414
415
416
417
418
419
420
# File 'lib/telnyx/resources/ai/assistants.rb', line 411

def send_sms(assistant_id, params)
  parsed, options = Telnyx::AI::AssistantSendSMSParams.dump_request(params)
  @client.request(
    method: :post,
    path: ["ai/assistants/%1$s/chat/sms", assistant_id],
    body: parsed,
    model: Telnyx::Models::AI::AssistantSendSMSResponse,
    options: options
  )
end

#update(assistant_id, conversation_flow: nil, description: nil, dynamic_variables: nil, dynamic_variables_webhook_timeout_ms: nil, dynamic_variables_webhook_url: nil, enabled_features: nil, external_llm: nil, fallback_config: nil, greeting: nil, insight_settings: nil, instructions: nil, integrations: nil, interruption_settings: nil, llm_api_key_ref: nil, mcp_servers: nil, messaging_settings: nil, model: nil, name: nil, observability_settings: nil, post_conversation_settings: nil, privacy_settings: nil, promote_to_main: nil, tags: nil, telephony_settings: nil, tool_ids: nil, tools: nil, transcription: nil, version_name: nil, voice_settings: nil, widget_settings: nil, request_options: {}) ⇒ Telnyx::Models::AI::InferenceEmbedding

Some parameter documentations has been truncated, see Models::AI::AssistantUpdateParams for more details.

Update an AI Assistant's attributes.

Parameters:

Returns:

See Also:



220
221
222
223
224
225
226
227
228
229
# File 'lib/telnyx/resources/ai/assistants.rb', line 220

def update(assistant_id, params = {})
  parsed, options = Telnyx::AI::AssistantUpdateParams.dump_request(params)
  @client.request(
    method: :post,
    path: ["ai/assistants/%1$s", assistant_id],
    body: parsed,
    model: Telnyx::AI::InferenceEmbedding,
    options: options
  )
end