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/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

Overview

Configure AI assistant specifications

Defined Under Namespace

Classes: CanaryDeploys, 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:



364
365
366
367
368
369
370
371
372
# File 'lib/telnyx/resources/ai/assistants.rb', line 364

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)
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

#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, request_options: {}) ⇒ Telnyx::Models::AI::AssistantChatResponse

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](developers.telnyx.com/api-reference/conversations/create-a-conversation), [filter existing conversations](developers.telnyx.com/api-reference/conversations/list-conversations), [fetch messages for a conversation](developers.telnyx.com/api-reference/conversations/get-conversation-messages), and [manually add messages to a conversation](developers.telnyx.com/api-reference/conversations/create-message).

Parameters:

  • assistant_id (String)
  • 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

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

Returns:

See Also:



245
246
247
248
249
250
251
252
253
254
# File 'lib/telnyx/resources/ai/assistants.rb', line 245

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:

Returns:

See Also:



266
267
268
269
270
271
272
273
# File 'lib/telnyx/resources/ai/assistants.rb', line 266

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:, model:, name:, description: nil, dynamic_variables: nil, dynamic_variables_webhook_url: nil, enabled_features: nil, greeting: nil, insight_settings: nil, llm_api_key_ref: nil, messaging_settings: nil, observability_settings: nil, privacy_settings: 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:



82
83
84
85
86
87
88
89
90
91
# File 'lib/telnyx/resources/ai/assistants.rb', line 82

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:

Returns:

See Also:



212
213
214
215
216
217
218
219
# File 'lib/telnyx/resources/ai/assistants.rb', line 212

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:

Returns:

  • (String)

See Also:



285
286
287
288
289
290
291
292
# File 'lib/telnyx/resources/ai/assistants.rb', line 285

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:



314
315
316
317
318
319
320
321
322
323
# File 'lib/telnyx/resources/ai/assistants.rb', line 314

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:



193
194
195
196
197
198
199
200
# File 'lib/telnyx/resources/ai/assistants.rb', line 193

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)
  • call_control_id (String)
  • fetch_dynamic_variables_from_webhook (Boolean)
  • from (String)
  • to (String)
  • request_options (Telnyx::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



107
108
109
110
111
112
113
114
115
116
117
# File 'lib/telnyx/resources/ai/assistants.rb', line 107

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)
  • 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:



350
351
352
353
354
355
356
357
358
359
# File 'lib/telnyx/resources/ai/assistants.rb', line 350

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, description: nil, dynamic_variables: nil, dynamic_variables_webhook_url: nil, enabled_features: nil, greeting: nil, insight_settings: nil, instructions: nil, llm_api_key_ref: nil, messaging_settings: nil, model: nil, name: nil, observability_settings: nil, privacy_settings: nil, promote_to_main: 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::AssistantUpdateParams for more details.

Update an AI Assistant’s attributes.

Parameters:

Returns:

See Also:



173
174
175
176
177
178
179
180
181
182
# File 'lib/telnyx/resources/ai/assistants.rb', line 173

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